#!/usr/bin/env bash #################################################################################################### # Name: Autodesk Fusion 360 - Setup Wizard (Linux) # # Description: With this file you can install Autodesk Fusion 360 on Linux. # # Author: Steve Zabka # # Author URI: https://cryinkfly.com # # License: MIT # # Copyright (c) 2020-2024 # # Time/Date: 07:29/23.03.2024 # # Version: 1.9.7 # #################################################################################################### # Path: /$HOME/.fusion360/bin/install.sh ############################################################################################################################################################### # DESCRIPTION IN DETAIL # ############################################################################################################################################################### # With the help of my setup wizard, you will be given a way to install Autodesk Fusion 360 with some extensions on # # Linux so that you don't have to use Windows or macOS for this program in the future! # # # # Also, my setup wizard will guides you through the installation step by step and will install some required packages. # # # # The next one is you have the option of installing the program directly on your system or you can install it on an external storage medium. # # # # But it's important to know, you must to purchase the licenses directly from the manufacturer of Autodesk Fusion 360, when you will work with them on Linux! # ############################################################################################################################################################### ############################################################################################################################################################### # THE INITIALIZATION OF DEPENDENCIES STARTS HERE: # ############################################################################################################################################################### # Default-Path: SP_PATH="$HOME/.fusion360" # Reset the graphics driver value: WP_DRIVER="DXVK" # Reset the logfile-value for the installation of Autodesk Fusion 360! SP_FUSION360_CHANGE=0 REQUIRED_COMMANDS=( "yad" "wget" ) # URL to download Fusion360Installer.exe #SP_FUSION360_INSTALLER_URL="https://dl.appstreaming.autodesk.com/production/installers/Fusion%20360%20Admin%20Install.exe" <-- Old Link!!! SP_FUSION360_INSTALLER_URL="https://dl.appstreaming.autodesk.com/production/installers/Fusion%20Admin%20Install.exe" # URL to download Microsoft Edge WebView2.Exec SP_WEBVIEW2_INSTALLER_URL="https://github.com/aedancullen/webview2-evergreen-standalone-installer-archive/releases/download/109.0.1518.78/MicrosoftEdgeWebView2RuntimeInstallerX64.exe" ############################################################################################################################################################### function SP_CHECK_REQUIRED_COMMANDS { for cmd in "${REQUIRED_COMMANDS[@]}"; do echo "Testing presence of ${cmd} ..." local path="$(command -v "${cmd}")" if [ -n "${path}" ]; then echo "Found: ${path}" else echo "No ${cmd} found in \$PATH!" exit 1 fi done } function SP_STRUCTURE { mkdir -p "$SP_PATH/bin" mkdir -p "$SP_PATH/logs" mkdir -p "$SP_PATH/config" mkdir -p "$SP_PATH/graphics" mkdir -p "$SP_PATH/downloads" mkdir -p "$SP_PATH/extensions" mkdir -p "$SP_PATH/wineprefixes/default" # Fixes a bug in the standard installation routine! mkdir -p "$SP_PATH/locale/cs-CZ" mkdir -p "$SP_PATH/locale/de-DE" mkdir -p "$SP_PATH/locale/en-US" mkdir -p "$SP_PATH/locale/es-ES" mkdir -p "$SP_PATH/locale/fr-FR" mkdir -p "$SP_PATH/locale/it-IT" mkdir -p "$SP_PATH/locale/ja-JP" mkdir -p "$SP_PATH/locale/ko-KR" mkdir -p "$SP_PATH/locale/zh-CN" # Create a temporary folder with some information for the next step: mkdir -p /tmp/fusion360 echo "English" > /tmp/fusion360/settings.txt echo "DXVK" >> /tmp/fusion360/settings.txt echo "English" > "$SP_PATH/config/settings.txt" echo "DXVK" >> "$SP_PATH/config/settings.txt" } ############################################################################################################################################################### # ALL LOG-FUNCTIONS ARE ARRANGED HERE: # ############################################################################################################################################################### # Provides information about setup actions during installation. function SP_LOGFILE_INSTALL { exec 5> "$SP_PATH/logs/setupact.log" BASH_XTRACEFD="5" set -x } ############################################################################################################################################################### # Check if already exists a Autodesk Fusion 360 installation on your system. function SP_LOGFILE_WINEPREFIX_CHECK { SP_FUSION360_WINEPREFIX_CHECK="$SP_PATH/logs/wineprefixes.log" # Search for wineprefixes.log if [ -f "$SP_FUSION360_WINEPREFIX_CHECK" ]; then cp "$SP_FUSION360_WINEPREFIX_CHECK" "/tmp/fusion360/logs" SP_LOGFILE_WINEPREFIX_INFO # Add/Modify or Delete a exists Wineprefix of Autodesk Fusion 360. else SP_INSTALLDIR # Add a new Wineprefix of Autodesk Fusion 360. fi } ############################################################################################################################################################### # Create a WP-TYPE for the .desktop-files: function SP_GET_WINEPREFIX_TYPE { if [[ $WP_DIRECTORY = "$SP_PATH/wineprefixes/default" ]]; then WP_TYPE="default" else # Create the directory (custom, custom-1, custom-2, ...) SP_ADD_CUSTOM_WINEPREFIX_TYPE fi } function SP_ADD_CUSTOM_WINEPREFIX_TYPE { WP_TYPE="custom" if [[ -e $WP_TYPE || -L $WP_TYPE ]] ; then i=0 while [[ -e $WP_TYPE-$i || -L $WP_TYPE-$i ]] ; do (( i++ )) done WP_TYPE=$WP_TYPE-$i fi } ############################################################################################################################################################### function SP_LOGFILE_WINEPREFIX { if [ $SP_FUSION360_CHANGE -eq 1 ]; then echo "FALSE" >> "$SP_PATH/logs/wineprefixes.log" echo "$WP_TYPE" >> "$SP_PATH/logs/wineprefixes.log" echo "$WP_DRIVER" >> "$SP_PATH/logs/wineprefixes.log" echo "$WP_DIRECTORY" >> "$SP_PATH/logs/wineprefixes.log" fi } ############################################################################################################################################################### function SP_INSTALLDIR_CHECK { # Check if this wineprefix already exist or not! WP_PATH_CHECK="$WP_DIRECTORY/box-run.sh" if [[ -f "$WP_PATH_CHECK" ]]; then echo "FALSE" SP_INSTALLDIR_INFO else echo "TRUE" SP_FUSION360_CHANGE=1 SP_WINE_SETTINGS fi } ############################################################################################################################################################### function SP_CHECK_WINE_VERSION { #Wine version checking, warn user if their wine install is out of date WINE_VERSION="$(wine --version | cut -d ' ' -f1 | sed -e 's/wine-//' -e 's/-rc.*//')" WINE_VERSION_MINIMUM=8.14 if (( $(echo "$WINE_VERSION < $WINE_VERSION_MINIMUM" | bc -l) )); then echo "Your version of wine ${WINE_VERSION} is too old and will not work with Autodesk Fusion. You should upgrade to at least ${WINE_VERSION_MINIMUM}" SP_OS_SETTINGS else SP_FUSION360_INSTALL fi } ############################################################################################################################################################### # ALL LOCALE-FUNCTIONS ARE ARRANGED HERE: # ############################################################################################################################################################### # Load the index of locale files: function SP_LOCALE_INDEX { wget -NP "$SP_PATH/locale" https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/builds/stable-branch/locale/locale.sh chmod +x "$SP_PATH/locale/locale.sh" # shellcheck source=../locale/locale.sh source "$SP_PATH/locale/locale.sh" SP_LOCALE_EN } # Czech: function SP_LOCALE_CS { # shellcheck source=../locale/cs-CZ/locale-cs.sh source "$SP_PATH/locale/cs-CZ/locale-cs.sh" } # German: function SP_LOCALE_DE { # shellcheck source=../locale/de-DE/locale-de.sh source "$SP_PATH/locale/de-DE/locale-de.sh" } # English: function SP_LOCALE_EN { # shellcheck source=../locale/en-US/locale-en.sh source "$SP_PATH/locale/en-US/locale-en.sh" } # Spanish: function SP_LOCALE_ES { # shellcheck source=../locale/es-ES/locale-es.sh source "$SP_PATH/locale/es-ES/locale-es.sh" } # French: function SP_LOCALE_FR { # shellcheck source=../locale/fr-FR/locale-fr.sh source "$SP_PATH/locale/fr-FR/locale-fr.sh" } # Italian: function SP_LOCALE_IT { # shellcheck source=../locale/it-IT/locale-it.sh source "$SP_PATH/locale/it-IT/locale-it.sh" } # Japanese: function SP_LOCALE_JA { # shellcheck source=../locale/ja-JP/locale-ja.sh source "$SP_PATH/locale/ja-JP/locale-ja.sh" } # Korean: function SP_LOCALE_KO { # shellcheck source=../locale/ko-KR/locale-ko.sh source "$SP_PATH/locale/ko-KR/locale-ko.sh" } # Chinese: function SP_LOCALE_ZH { # shellcheck source=../locale/zh-CN/locale-zh.sh source "$SP_PATH/locale/zh-CN/locale-zh.sh" } ############################################################################################################################################################### function SP_LOCALE_SETTINGS { SP_LOCALE=$(awk 'NR == 1' /tmp/fusion360/settings.txt) case "$SP_LOCALE" in "Czech") echo "CS" SP_LOCALE_CS ;; "English") echo "EN" SP_LOCALE_EN ;; "German") echo "DE" SP_LOCALE_DE ;; "Spanish") echo "ES" SP_LOCALE_ES ;; "French") echo "FR" SP_LOCALE_FR ;; "Italian") echo "IT" SP_LOCALE_IT ;; "Japanese") echo "JP" SP_LOCALE_JP ;; "Korean") echo "KO" SP_LOCALE_KO ;; "Chinese") echo "ZH" SP_LOCALE_ZH ;; *) echo "EN" SP_LOCALE_EN ;; esac } ############################################################################################################################################################### # DONWLOAD WINETRICKS, AUTODESK FUSION 360 AND WEBVIEW2: # ############################################################################################################################################################### # Load the newest winetricks version: function SP_WINETRICKS_LOAD { wget -Nc -P "$SP_PATH/bin" https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks chmod +x "$SP_PATH/bin/winetricks" } ############################################################################################################################################################### # Load newest Autodesk Fusion 360 installer version for the Setup Wizard! function SP_FUSION360_INSTALLER_LOAD { # Search for a existing installer of Autodesk Fusion 360 FUSION360_INSTALLER="$SP_PATH/downloads/Fusion360installer.exe" if [ -f "$FUSION360_INSTALLER" ]; then echo "The Autodesk Fusion 360 installer exist!" else echo "The Autodesk Fusion 360 installer doesn't exist and will be downloaded for you!" wget "$SP_FUSION360_INSTALLER_URL" -cO Fusion360installer.exe mv "Fusion360installer.exe" "$SP_PATH/downloads/Fusion360installer.exe" fi } ############################################################################################################################################################### # Load newest WebView2 installer version for the Setup Wizard! function SP_WEBVIEW2_INSTALLER_LOAD { # Search for a existing installer of WEBVIEW2 WEBVIEW2_INSTALLER="$SP_PATH/downloads/WebView2installer.exe" if [ -f "$WEBVIEW2_INSTALLER" ]; then echo "The WebView2installer installer exist!" else echo "The WebView2installer installer doesn't exist and will be downloaded for you!" wget "$SP_WEBVIEW2_INSTALLER_URL" -cO WebView2installer.exe mv "WebView2installer.exe" "$SP_PATH/downloads/WebView2installer.exe" fi } ############################################################################################################################################################### # ALL FUNCTIONS FOR DESKTOP-FILES START HERE: # ############################################################################################################################################################### # Load the icons and .desktop-files: function SP_FUSION360_SHORTCUTS_LOAD { # Create a .desktop file (launcher.sh) for Autodesk Fusion 360! wget -Nc -P "$SP_PATH/graphics" https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/fusion360.svg rm "$HOME/.local/share/applications/wine/Programs/Autodesk/Autodesk Fusion 360.desktop" mkdir -p "$HOME/.local/share/applications/wine/Programs/Autodesk/Fusion360/$WP_TYPE" cat >> "$HOME/.local/share/applications/wine/Programs/Autodesk/Fusion360/$WP_TYPE/fusion360.desktop" << EOF [Desktop Entry] Name=Autodesk Fusion 360 - $WP_TYPE GenericName=CAD Application GenericName[cs]=Aplikace CAD GenericName[de]=CAD-Anwendung GenericName[es]=Aplicación CAD GenericName[fr]=Application CAO GenericName[it]=Applicazione CAD GenericName[ja]=CADアプリケーション GenericName[ko]=CAD 응용 GenericName[zh_CN]=计算机辅助设计应用 Comment=Autodesk Fusion 360 is a cloud-based 3D modeling, CAD, CAM, and PCB software platform for product design and manufacturing. Comment[cs]=Autodesk Fusion 360 je cloudová platforma pro 3D modelování, CAD, CAM a PCB určená k navrhování a výrobě produktů. Comment[de]=Autodesk Fusion 360 ist eine cloudbasierte Softwareplattform für Modellierung, CAD, CAM, CAE und Leiterplatten in 3D für Produktdesign und Fertigung. Comment[es]=Autodesk Fusion 360 es una plataforma de software de modelado 3D, CAD, CAM y PCB basada en la nube destinada al diseño y la fabricación de productos. Comment[fr]=Autodesk Fusion 360 est une plate-forme logicielle 3D cloud de modélisation, de CAO, de FAO, d’IAO et de conception de circuits imprimés destinée à la conception et à la fabrication de produits. Comment[it]=Autodesk Fusion 360 è una piattaforma software di modellazione 3D, CAD, CAM, CAE e PCB basata sul cloud per la progettazione e la realizzazione di prodotti. Comment[ja]=Autodesk Fusion 360は、製品の設計と製造のためのクラウドベースの3Dモデリング、CAD、CAM、およびPCBソフトウェアプラットフォームです。 Comment[ko]=Autodesk Fusion 360은 제품 설계 및 제조를 위한 클라우드 기반 3D 모델링, CAD, CAM 및 PCB 소프트웨어 플랫폼입니다. Comment[zh_CN]=Autodesk Fusion 360 是一个基于云的 3D 建模、CAD、CAM 和 PCB 软件平台,用于产品设计和制造。 Exec=$WP_DIRECTORY/box-run.sh Type=Application Categories=Education;Engineering; StartupNotify=true Icon=$SP_PATH/graphics/fusion360.svg Terminal=false Path=$WP_DIRECTORY EOF # Create a .desktop file (uninstall.sh) for Autodesk Fusion 360! wget -Nc -P "$SP_PATH/graphics" https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/fusion360.svg cat >> "$HOME/.local/share/applications/wine/Programs/Autodesk/Fusion360/$WP_TYPE/fusion360uninstall.desktop" << EOF [Desktop Entry] Name=Autodesk Fusion 360 (Uninstall) - $WP_TYPE Name[cs]=Autodesk Fusion 360 (Odinstalovat) - $WP_TYPE Name[de]=Autodesk Fusion 360 (Deinstallieren) - $WP_TYPE Name[es]=Autodesk Fusion 360 (Desinstalar) - $WP_TYPE Name[fr]=Autodesk Fusion 360 (Désinstaller) - $WP_TYPE Name[it]=Autodesk Fusion 360 (Disinstalla) - $WP_TYPE Name[ja]=Autodesk Fusion 360 (アンインストール) - $WP_TYPE Name[ko]=Autodesk Fusion 360 (제거) - $WP_TYPE Name[zh_CN]=Autodesk Fusion 360 (卸载) - $WP_TYPE Comment=With this program you can delete Autodesk Fusion 360 on your system! Comment[cs]=Pomocí tohoto programu můžete odstranit Autodesk Fusion 360 ze svého systému! Comment[de]=Mit diesem Programm können Sie Autodesk Fusion 360 auf Ihrem System löschen! Comment[es]=¡Con este programa puede eliminar Autodesk Fusion 360 en su sistema! Comment[fr]=Avec ce programme, vous pouvez supprimer Autodesk Fusion 360 sur votre système ! Comment[it]=Con questo programma puoi eliminare Autodesk Fusion 360 sul tuo sistema! Comment[ja]=このプログラムを使用すると、システム上のAutodeskFusion360を削除できます。 Comment[ko]=이 프로그램을 사용하면 시스템에서 Autodesk Fusion 360을 삭제할 수 있습니다! Comment[zh_CN]=使用此程序,您可以删除系统上的 Autodesk Fusion 360! Exec=bash ./uninstall.sh Type=Application Categories=Education;Engineering; StartupNotify=true Icon=$SP_PATH/graphics/fusion360.svg Terminal=false Path=$SP_PATH/bin EOF #Create mimetype link to handle web login call backs to the Identity Manager cat > $HOME/.local/share/applications/adskidmgr-opener.desktop << EOL [Desktop Entry] Type=Application Name=adskidmgr Scheme Handler Exec=env WINEPREFIX="$WP_DIRECTORY" wine "C:\Program Files\Autodesk\webdeploy\production\99249ee497b13684a43f5bacd5f1f09974049c6b\Autodesk Identity Manager\AdskIdentityManager.exe" %u StartupNotify=false MimeType=x-scheme-handler/adskidmgr; EOL xdg-mime default adskidmgr-opener.desktop x-scheme-handler/adskidmgr #Disable Debug messages on regular runs, we dont have a terminal, so speed up the system by not wasting time prining them into the Void sed -i 's/=env WINEPREFIX=/=env WINEDEBUG=-all env WINEPREFIX=/g' "$HOME/.local/share/applications/wine/Programs/Autodesk/Fusion360/$WP_TYPE/fusion360.desktop" # Create a link to the Wineprefixes Box: cat >> "$WP_DIRECTORY/box-run.sh" << EOF #!/usr/bin/env bash WP_BOX='$WP_DIRECTORY' source $SP_PATH/bin/launcher.sh EOF chmod +x "$WP_DIRECTORY/box-run.sh" # Download some script files for Autodesk Fusion 360! wget -NP "$SP_PATH/bin" https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/uninstall.sh chmod +x "$SP_PATH/bin/uninstall.sh" wget -NP "$SP_PATH/bin" https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/launcher.sh chmod +x "$SP_PATH/bin/launcher.sh" wget -NP "$SP_PATH/bin" https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/update.sh chmod +x "$SP_PATH/bin/update.sh" } ############################################################################################################################################################### # ALL FUNCTIONS FOR DXVK AND OPENGL START HERE: # ############################################################################################################################################################### function SP_DXVK_OPENGL_1 { if [[ $WP_DRIVER = "DXVK" ]]; then WINEPREFIX=$WP_DIRECTORY sh "$SP_PATH/bin/winetricks" -q dxvk wget -Nc -P "$WP_DIRECTORY/drive_c/users/$USER/Downloads" https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/builds/stable-branch/driver/video/dxvk/DXVK.reg # Add the "return"-option. Here you can read more about it -> https://github.com/koalaman/shellcheck/issues/592 cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return WINEPREFIX=$WP_DIRECTORY wine regedit.exe DXVK.reg fi } function SP_DXVK_OPENGL_2 { if [[ $WP_DRIVER = "DXVK" ]]; then wget -N https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/builds/stable-branch/driver/video/dxvk/NMachineSpecificOptions.xml else wget -N https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/builds/stable-branch/driver/video/opengl/NMachineSpecificOptions.xml fi } ############################################################################################################################################################### function SP_DRIVER_SETTINGS { WP_DRIVER=$(awk 'NR == 2' /tmp/fusion360/settings.txt) } ############################################################################################################################################################### # ALL FUNCTIONS FOR WINE AND WINETRICKS START HERE: # ############################################################################################################################################################### # Start Fusion360installer.exe - Part 1 function SP_FUSION360_INSTALL_DEFAULT_1 { WINEPREFIX="$WP_DIRECTORY" timeout -k 10m 9m wine "$WP_DIRECTORY/drive_c/users/$USER/Downloads/Fusion360installer.exe" --quiet } # Start Fusion360installer.exe - Part 2 function SP_FUSION360_INSTALL_DEFAULT_2 { WINEPREFIX="$WP_DIRECTORY" timeout -k 5m 4m wine "$WP_DIRECTORY/drive_c/users/$USER/Downloads/Fusion360installer.exe" --quiet } ############################################################################################################################################################### # Start Fusion360installer.exe - Part 1 (Refresh) function SP_FUSION360_INSTALL_REFRESH_1 { WINEPREFIX="$WP_WINEPREFIXES_REFRESH" timeout -k 10m 9m wine "$WP_WINEPREFIXES_REFRESH/drive_c/users/$USER/Downloads/Fusion360installer.exe" --quiet } # Start Fusion360installer.exe - Part 2 (Refresh) function SP_FUSION360_INSTALL_REFRESH_2 { WINEPREFIX="$WP_WINEPREFIXES_REFRESH" timeout -k 5m 4m wine "$WP_WINEPREFIXES_REFRESH/drive_c/users/$USER/Downloads/Fusion360installer.exe" --quiet } ############################################################################################################################################################### # Autodesk Fusion 360 will now be installed using Wine and Winetricks. function SP_FUSION360_INSTALL { SP_WINETRICKS_LOAD SP_FUSION360_INSTALLER_LOAD SP_WEBVIEW2_INSTALLER_LOAD # Note that the winetricks sandbox verb merely removes the desktop integration and Z: drive symlinks and is not a "true" sandbox. # It protects against errors rather than malice. It's useful for, e.g., keeping games from saving their settings in random subdirectories of your home directory. # But it still ensures that wine, for example, no longer has access permissions to Home! # For this reason, the EXE files must be located directly in the Wineprefix folder! mkdir -p "$WP_DIRECTORY" cd "$WP_DIRECTORY" || return WINEPREFIX="$WP_DIRECTORY" sh "$SP_PATH/bin/winetricks" -q sandbox sleep 5s WINEPREFIX="$WP_DIRECTORY" sh "$SP_PATH/bin/winetricks" -q sandbox sleep 5s # We must install some packages! WINEPREFIX="$WP_DIRECTORY" sh "$SP_PATH/bin/winetricks" -q atmlib gdiplus arial corefonts cjkfonts dotnet452 msxml4 msxml6 vcrun2017 fontsmooth=rgb winhttp win10 sleep 5s # We must install cjkfonts again then sometimes it doesn't work in the first time! WINEPREFIX="$WP_DIRECTORY" sh "$SP_PATH/bin/winetricks" -q cjkfonts sleep 5s SP_DXVK_OPENGL_1 # We must set to Windows 10 again because some other winetricks sometimes set it back to Windows XP! WINEPREFIX="$WP_DIRECTORY" sh "$SP_PATH/bin/winetricks" -q win10 sleep 5s #Remove tracking metrics/calling home WINEPREFIX="$WP_DIRECTORY" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "adpclientservice.exe" /t REG_SZ /d "" /f #Navigation bar does not work well with anything other than the wine builtin DX9 WINEPREFIX="$WP_DIRECTORY" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "AdCefWebBrowser.exe" /t REG_SZ /d builtin /f #Use Visual Studio Redist that is bundled with the application WINEPREFIX="$WP_DIRECTORY" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "msvcp140" /t REG_SZ /d native /f WINEPREFIX="$WP_DIRECTORY" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "mfc140u" /t REG_SZ /d native /f sleep 5s #Download and install WebView2 to handle Login attempts, required even though we redirect to your default browser cp "$SP_PATH/downloads/WebView2installer.exe" "$WP_DIRECTORY/drive_c/users/$USER/Downloads" WINEPREFIX="$WP_DIRECTORY" wine "$WP_DIRECTORY/drive_c/users/$USER/Downloads/WebView2installer.exe" /install #/silent sleep 5s # We must copy the EXE-file directly in the Wineprefix folder (Sandbox-Mode)! cp "$SP_PATH/downloads/Fusion360installer.exe" "$WP_DIRECTORY/drive_c/users/$USER/Downloads" # This start and stop the installer automatically after a time! # For more information check this link: https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/issues/232 SP_FUSION360_INSTALL_PROGRESS mkdir -p "$WP_DIRECTORY/drive_c/users/$USER/AppData/Roaming/Autodesk/Neutron Platform/Options" cd "$WP_DIRECTORY/drive_c/users/$USER/AppData/Roaming/Autodesk/Neutron Platform/Options" || return SP_DXVK_OPENGL_2 mkdir -p "$WP_DIRECTORY/drive_c/users/$USER/AppData/Local/Autodesk/Neutron Platform/Options" cd "$WP_DIRECTORY/drive_c/users/$USER/AppData/Local/Autodesk/Neutron Platform/Options" || return SP_DXVK_OPENGL_2 mkdir -p "$WP_DIRECTORY/drive_c/users/$USER/Application Data/Autodesk/Neutron Platform/Options" cd "$WP_DIRECTORY/drive_c/users/$USER/Application Data/Autodesk/Neutron Platform/Options" || return SP_DXVK_OPENGL_2 cd "$SP_PATH/bin" || return SP_GET_WINEPREFIX_TYPE SP_FUSION360_SHORTCUTS_LOAD SP_FUSION360_EXTENSIONS SP_LOGFILE_WINEPREFIX SP_COMPLETED } function SP_FUSION360_REFRESH { wget "$SP_FUSION360_INSTALLER_URL" -cO Fusion360installer.exe mv "Fusion360installer.exe" "$SP_PATH/downloads/Fusion360installer.exe" rmdir "$WP_WINEPREFIXES_REFRESH/drive_c/users/$USER/Downloads/Fusion360installer.exe" cp "$SP_PATH/downloads/Fusion360installer.exe" "$WP_WINEPREFIXES_REFRESH/drive_c/users/$USER/Downloads" SP_FUSION360_INSTALL_PROGRESS_REFRESH } ############################################################################################################################################################### # ALL FUNCTIONS FOR SUPPORTED LINUX DISTRIBUTIONS START HERE: # ############################################################################################################################################################### function OS_ARCHLINUX { echo "Checking for multilib..." if ARCHLINUX_VERIFY_MULTILIB ; then echo "multilib found. Continuing..." pkexec sudo pacman -Syu --needed wine wine-mono wine_gecko winetricks p7zip curl cabextract samba ppp SP_FUSION360_INSTALL else echo "Enabling multilib..." echo "[multilib]" | sudo tee -a /etc/pacman.conf echo "Include = /etc/pacman.d/mirrorlist" | sudo tee -a /etc/pacman.conf pkexec sudo pacman -Syu --needed wine wine-mono wine_gecko winetricks p7zip curl cabextract samba ppp SP_FUSION360_INSTALL fi } function ARCHLINUX_VERIFY_MULTILIB { if grep -q '^\[multilib\]$' /etc/pacman.conf ; then true else false fi } ############################################################################################################################################################### function DEBIAN_BASED_1 { # Some systems require this command for all repositories to work properly and for the packages to be downloaded for installation! pkexec sudo apt-get --allow-releaseinfo-change update # Added i386 support for wine! sudo dpkg --add-architecture i386 } function DEBIAN_BASED_2 { sudo apt-get update sudo apt-get install -y p7zip p7zip-full p7zip-rar curl winbind cabextract wget sudo apt-get install -y --install-recommends winehq-staging SP_FUSION360_INSTALL } function OS_DEBIAN_11 { sudo apt-add-repository -r 'deb https://dl.winehq.org/wine-builds/debian/ bullseye main' wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_11/Release.key -O Release.key -O- | sudo apt-key add - sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_11/ ./' } function OS_DEBIAN_12 { sudo apt-add-repository -r 'deb https://dl.winehq.org/wine-builds/debian/ bookworm main' wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_12/Release.key -O Release.key -O- | sudo apt-key add - sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_12/ ./' } function OS_DEBIAN_TESTING { sudo apt-add-repository -r 'deb https://dl.winehq.org/wine-builds/debian/ testing main' wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_Testing_standard//Release.key -O Release.key -O- | sudo apt-key add - sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_Testing_standard/ ./' } function OS_UBUNTU_20 { sudo add-apt-repository -r 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main' wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_20.04/Release.key -O Release.key -O- | sudo apt-key add - sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_20.04/ ./' } function OS_UBUNTU_22 { sudo add-apt-repository -r 'deb https://dl.winehq.org/wine-builds/ubuntu/ jammy main' wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_22.04/Release.key -O Release.key -O- | sudo apt-key add - sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_22.04/ ./' } function OS_UBUNTU_23 { sudo add-apt-repository -r 'deb https://dl.winehq.org/wine-builds/ubuntu/ lunar main' wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_23.10/Release.key -O Release.key -O- | sudo apt-key add - sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_23.10/ ./' } ############################################################################################################################################################### function FEDORA_BASED_1 { pkexec sudo dnf update sudo dnf upgrade sudo dnf install "https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm" } function FEDORA_BASED_2 { sudo dnf install p7zip p7zip-plugins curl wget wine cabextract SP_FUSION360_INSTALL } function OS_FEDORA_38 { sudo dnf config-manager --add-repo https://download.opensuse.org/repositories/Emulators:/Wine:/Fedora/Fedora_38/Emulators:Wine:Fedora.repo } function OS_FEDORA_39 { sudo dnf config-manager --add-repo https://download.opensuse.org/repositories/Emulators:/Wine:/Fedora/Fedora_39/Emulators:Wine:Fedora.repo } function OS_FEDORA_RAWHIDE { sudo dnf config-manager --add-repo https://download.opensuse.org/repositories/Emulators:/Wine:/Fedora/Fedora_Rawhide/Emulators:Wine:Fedora.repo } ############################################################################################################################################################### function OS_OPENSUSE_154 { pkexec su -c 'zypper up && zypper rr https://download.opensuse.org/repositories/Emulators:/Wine/15.4/ wine && zypper ar -cfp 95 https://download.opensuse.org/repositories/Emulators:/Wine/15.4/ wine && zypper install p7zip-full curl wget wine cabextract' SP_FUSION360_INSTALL } # Has not been published yet! function OS_OPENSUSE_155 { pkexec su -c 'zypper up && zypper rr https://download.opensuse.org/repositories/Emulators:/Wine/15.5/ wine && zypper ar -cfp 95 https://download.opensuse.org/repositories/Emulators:/Wine/15.5/ wine && zypper install p7zip-full curl wget wine cabextract' SP_FUSION360_INSTALL } function OS_OPENSUSE_TW { pkexec su -c 'zypper up && zypper rr https://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_Tumbleweed/ wine && zypper ar -cfp 95 https://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_Tumbleweed/ wine && zypper install p7zip-full curl wget wine cabextract' SP_FUSION360_INSTALL } ############################################################################################################################################################### function OS_REDHAT_LINUX_8 { pkexec sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf upgrade sudo dnf install wine SP_FUSION360_INSTALL } function OS_REDHAT_LINUX_9 { pkexec sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm sudo dnf upgrade sudo dnf install wine SP_FUSION360_INSTALL } ############################################################################################################################################################### function OS_SOLUS_LINUX { pkexec sudo eopkg install -y wine winetricks p7zip curl cabextract samba ppp SP_FUSION360_INSTALL } ############################################################################################################################################################### function OS_VOID_LINUX { pkexec sudo xbps-install -Sy wine wine-mono wine-gecko winetricks p7zip curl cabextract samba ppp SP_FUSION360_INSTALL } ############################################################################################################################################################### function OS_GENTOO_LINUX { pkexec sudo emerge -nav virtual/wine app-emulation/winetricks app-emulation/wine-mono app-emulation/wine-gecko app-arch/p7zip app-arch/cabextract net-misc/curl net-fs/samba net-dialup/ppp SP_FUSION360_INSTALL } ############################################################################################################################################################### # ALL FUNCTIONS FOR THE EXTENSIONS START HERE: # ############################################################################################################################################################### # Install a extension: Airfoil Tools function EXTENSION_AIRFOIL_TOOLS { cd "$SP_PATH/extensions" || return wget -Nc https://github.com/cryinkfly/Fusion-360---Linux-Wine-Version-/raw/main/files/extensions/AirfoilTools_win64.msi && cp AirfoilTools_win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads" cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return WINEPREFIX=$WP_DIRECTORY wine msiexec /i AirfoilTools_win64.msi } ############################################################################################################################################################### # Install a extension: Additive Assistant (FFF) function EXTENSION_ADDITIVE_ASSISTANT { cd "$SP_PATH/extensions" || return wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/AdditiveAssistant.bundle-win64.msi && cp AdditiveAssistant.bundle-win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads" cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return WINEPREFIX=$WP_DIRECTORY wine msiexec /i AdditiveAssistant.bundle-win64.msi } ############################################################################################################################################################### # Install a extension: Czech localization for F360 function EXTENSION_CZECH_LOCALE { cd "$SP_PATH/extensions" || return wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/Ceska_lokalizace_pro_Autodesk_Fusion_360_v7.exe && cp "Ceska_lokalizace_pro_Autodesk_Fusion_360_v7.exe" "$WP_DIRECTORY/drive_c/users/$USER/Downloads" cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return WINEPREFIX="$WP_DIRECTORY" wine Ceska_lokalizace_pro_Autodesk_Fusion_360_v7.exe } ############################################################################################################################################################### # Install a extension: HP 3D Printers for Autodesk® Fusion 360™ function EXTENSION_HP_3DPRINTER_CONNECTOR { cd "$SP_PATH/extensions" || return wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/HP_3DPrinters_for_Fusion360-win64.msi && cp HP_3DPrinters_for_Fusion360-win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads" cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return WINEPREFIX="$WP_DIRECTORY" wine msiexec /i HP_3DPrinters_for_Fusion360-win64.msi } ############################################################################################################################################################### # Install a extension: Helical Gear Generator function EXTENSION_HELICAL_GEAR_GENERATOR { cd "$SP_PATH/extensions" || return wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/HelicalGear_win64.msi && cp HelicalGear_win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads" cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return WINEPREFIX="$WP_DIRECTORY" wine msiexec /i HelicalGear_win64.msi } ############################################################################################################################################################### # Install a extension: OctoPrint for Autodesk® Fusion 360™ function EXTENSION_OCTOPRINT { cd "$SP_PATH/extensions" || return wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/OctoPrint_for_Fusion360-win64.msi && cp OctoPrint_for_Fusion360-win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads" cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return WINEPREFIX="$WP_DIRECTORY" wine msiexec /i OctoPrint_for_Fusion360-win64.msi } ############################################################################################################################################################### # Install a extension: Parameter I/O function EXTENSION_PARAMETER_IO { cd "$SP_PATH/extensions" || return wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/ParameterIO_win64.msi && cp ParameterIO_win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads" cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return WINEPREFIX="$WP_DIRECTORY" wine msiexec /i ParameterIO_win64.msi } ############################################################################################################################################################### # Install a extension: RoboDK function EXTENSION_ROBODK { cd "$SP_PATH/extensions" || return wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/RoboDK.bundle-win64.msi && cp RoboDK.bundle-win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads" cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return WINEPREFIX="$WP_DIRECTORY" wine msiexec /i RoboDK.bundle-win64.msi } ############################################################################################################################################################### # Install a extension: Ultimaker Digital Factory for Autodesk Fusion 360™ function EXTENSION_ULTIMAKER_DIGITAL_FACTORY { cd "$SP_PATH/extensions" || return wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/Ultimaker_Digital_Factory-win64.msi && cp Ultimaker_Digital_Factory-win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads" cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return WINEPREFIX="$WP_DIRECTORY" wine msiexec /i Ultimaker_Digital_Factory-win64.msi } ############################################################################################################################################################### # ALL DIALOGS ARE ARRANGED HERE: # ############################################################################################################################################################### function SP_WELCOME { yad \ --form \ --separator="" \ --center \ --height=125 \ --width=750 \ --buttons-layout=center \ --title="$SP_TITLE" \ --field="$SP_SUBTITLE:LBL" \ --field="$SP_WELCOME_LABEL_1:LBL" \ --field="$SP_WELCOME_LABEL_2:LBL" \ --align=center \ --button=gtk-about!!"$SP_WELCOME_TOOLTIP_1":1 \ --button=gtk-preferences!!"$SP_WELCOME_TOOLTIP_2":2 \ --button=gtk-cancel:99 \ --button=gtk-ok:3 ret=$? # Responses to above button presses are below: case $ret in 1) xdg-open https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux SP_WELCOME ;; 2) SP_SETTINGS SP_LOCALE_SETTINGS SP_DRIVER_SETTINGS SP_WELCOME ;; 3) SP_LICENSE ;; esac } ############################################################################################################################################################### function SP_SETTINGS { yad --title="$SP_TITLE" \ --form --separator="," --item-separator="," \ --borders=15 \ --width=550 \ --buttons-layout=center \ --align=center \ --field="$SP_SETTINGS_TITLE:LBL" \ --field=":LBL" \ --field="$SP_SETTINGS_LABEL_1:LBL" \ --field="$SP_LOCALE_LABEL:CB" \ --field="$WP_DRIVER_LABEL:CB" \ --field="$SP_SETTINGS_LABEL_2:LBL" \ "" "" "" "$SP_LOCALE_SELECT" "$WP_DRIVER_SELECT" "" | while read line; do echo "$line" | awk -F',' '{print $4}' > /tmp/fusion360/settings.txt echo "$line" | awk -F',' '{print $5}' >> /tmp/fusion360/settings.txt cp "/tmp/fusion360/settings.txt" "$SP_PATH/config" done } ############################################################################################################################################################### function SP_LICENSE { SP_LICENSE_TEXT=$(cat "$SP_LICENSE") SP_LICENSE_CHECK=$(yad \ --title="$SP_TITLE" \ --form \ --borders=15 \ --width=550 \ --height=450 \ --buttons-layout=center \ --align=center \ --field=":TXT" "$SP_LICENSE_TEXT" \ --field="$SP_LICENSE_CHECK_LABEL:CHK" ) if [[ $SP_LICENSE_CHECK = *"TRUE"* ]]; then echo "TRUE" SP_LOGFILE_WINEPREFIX_CHECK else echo "FALSE" SP_WELCOME fi } ############################################################################################################################################################### function SP_LOGFILE_WINEPREFIX_INFO { yad \ --form \ --separator="" \ --center \ --height=125 \ --width=750 \ --buttons-layout=center \ --title="$SP_TITLE" \ --field="$SP_LOGFILE_WINEPREFIX_INFO_TITLE:LBL" \ --field="$SP_LOGFILE_WINEPREFIX_INFO_LABEL_1:LBL" \ --field="$SP_LOGFILE_WINEPREFIX_INFO_LABEL_2:LBL" \ --align=center \ --button=gtk-new!!"$SP_LOGFILE_WINEPREFIX_INFO_TOOLTIP_1":1 \ --button=gtk-refresh!!"$SP_LOGFILE_WINEPREFIX_INFO_TOOLTIP_2":2 \ --button=gtk-delete!!"$SP_LOGFILE_WINEPREFIX_INFO_TOOLTIP_3":3 \ --button=gtk-cancel:99 ret=$? # Responses to above button presses are below: case $ret in 1) SP_INSTALLDIR ;; 2) # Get informations about the current wineprefix - Repair WP_WINEPREFIXES_STRING=$(yad --height=300 --separator="|" --list --radiolist --column="$SELECT" --column="$WINEPREFIXES_TYPE" --column="$WINEPREFIXES_DRIVER" --column="$WINEPREFIXES_DIRECTORY" < /tmp/fusion360/logs/wineprefixes.log) WP_WINEPREFIXES_REFRESH=$(echo "$WP_WINEPREFIXES_STRING" | awk -F'|' '{print $4}') SP_FUSION360_REFRESH ;; 3) # Get informations about the current wineprefix - Delete # shellcheck source=./uninstall.sh source "$SP_PATH/bin/uninstall.sh" ;; esac } ############################################################################################################################################################### function SP_INSTALLDIR { WP_DIRECTORY=$(yad --title="$SP_TITLE" \ --form --separator="" \ --borders=15 \ --width=550 \ --buttons-layout=center \ --align=center \ --field="$SP_INSTALLDIR_TITLE:LBL" \ --field=":LBL" \ --field="$SP_INSTALLDIR_LABEL_1:LBL" \ --field="$SP_INSTALLDIR_LABEL_2:DIR" \ --field="$SP_INSTALLDIR_LABEL_3:LBL" \ "" "" "" "$SP_PATH/wineprefixes/default" "" ) # Continue with the installation ... SP_INSTALLDIR_CHECK } ############################################################################################################################################################### function SP_INSTALLDIR_INFO { yad \ --form \ --separator="" \ --center \ --height=125 \ --width=750 \ --buttons-layout=center \ --title="$SP_TITLE" \ --field="$SP_INSTALLDIR_INFO_TITLE:LBL" \ --field="$SP_INSTALLDIR_INFO_LABEL_1:LBL" \ --field="$SP_INSTALLDIR_INFO_LABEL_2:LBL" \ --align=center \ --button=gtk-cancel:99 \ --button=gtk-ok:1 ret=$? # Responses to above button presses are below: if [[ $ret -eq 1 ]]; then SP_INSTALLDIR fi } ############################################################################################################################################################### function SP_WINE_SETTINGS { WINE_VERSION=$(yad --title="$SP_TITLE" \ --form --separator="" --item-separator="," \ --borders=15 \ --width=550 \ --buttons-layout=center \ --align=center \ --field="$SP_WINE_SETTINGS_TITLE:LBL" \ --field=":LBL" \ --field="$SP_WINE_SETTINGS_LABEL_1:LBL" \ --field="$SP_WINE_SETTINGS_LABEL_2:CB" \ --field="$SP_WINE_SETTINGS_LABEL_3:LBL" \ "" "" "" "$SP_WINE_VERSION_SELECT" "" ) case "$WINE_VERSION" in # Czech: "Verze vína (Staging)") echo "Install Wine on your system!" SP_OS_SETTINGS ;; # German: "Wine Version (Entwicklungsversion)") echo "Install Wine on your system!" SP_OS_SETTINGS ;; # English: "Wine Version (Staging)") echo "Install Wine on your system!" SP_OS_SETTINGS ;; # Spanish: "Versión Vino (Puesta en Escena)") echo "Install Wine on your system!" SP_OS_SETTINGS ;; # French: "Version Vin (Mise en scène)") echo "Install Wine on your system!" SP_OS_SETTINGS ;; # Italian "Versione vino (messa in scena)") echo "Install Wine on your system!" SP_OS_SETTINGS ;; # Japanese: "ワインバージョン(ステージング)") echo "Install Wine on your system!" SP_OS_SETTINGS ;; # Korean: "와인 버전(스테이징)") echo "Install Wine on your system!" SP_OS_SETTINGS ;; # Chinese: "葡萄酒版(分期)") echo "Install Wine on your system!" SP_OS_SETTINGS ;; *) echo "Wine version (8.14 or higher) is already installed on the system!" # Check the correct Wine Version before continuing! SP_CHECK_WINE_VERSION ;; esac } ############################################################################################################################################################### function SP_OS_SETTINGS { SP_OS=$(yad --title="$SP_TITLE" \ --form --separator="" --item-separator="," \ --borders=15 \ --width=550 \ --buttons-layout=center \ --align=center \ --field="$SP_OS_TITLE:LBL" \ --field=":LBL" \ --field="$SP_OS_LABEL_1:LBL" \ --field="$SP_OS_LABEL_2:CB" \ "" "" "" "$SP_OS_SELECT" ) case "$SP_OS" in "Arch Linux") echo "Arch Linux" OS_ARCHLINUX ;; "Debian 11") echo "Debian 11" DEBIAN_BASED_1 OS_DEBIAN_11 DEBIAN_BASED_2 ;; "Debian 12") echo "Debian 12" DEBIAN_BASED_1 OS_DEBIAN_12 DEBIAN_BASED_2 ;; "Debian Testing") echo "Debian Testing" DEBIAN_BASED_1 OS_DEBIAN_TESTING DEBIAN_BASED_2 ;; "EndeavourOS") echo "EndeavourOS" OS_ARCHLINUX ;; "Fedora 38") echo "Fedora 38" FEDORA_BASED_1 OS_FEDORA_37 FEDORA_BASED_2 ;; "Fedora 39") echo "Fedora 39" FEDORA_BASED_1 OS_FEDORA_38 FEDORA_BASED_2 ;; "Fedora Rawhide") echo "Fedora Rawhide" FEDORA_BASED_1 OS_FEDORA_RAWHIDE FEDORA_BASED_2 ;; "Linux Mint 20.x") echo "Linux Mint 20.x" DEBIAN_BASED_1 OS_UBUNTU_20 DEBIAN_BASED_2 ;; "Linux Mint 21.x") echo "Linux Mint 21.x" DEBIAN_BASED_1 OS_UBUNTU_23 DEBIAN_BASED_2 ;; "Linux Mint 5.x - LMDE Version") echo "Linux Mint 5.x - LMDE Version" DEBIAN_BASED_1 OS_DEBIAN_11 DEBIAN_BASED_2 ;; "Manjaro Linux") echo "Manjaro Linux" OS_ARCHLINUX ;; "openSUSE Leap 15.4") echo "openSUSE Leap 15.4" OS_OPENSUSE_154 ;; "openSUSE Leap 15.5") echo "openSUSE Leap 15.5" OS_OPENSUSE_155 ;; "openSUSE Tumbleweed") echo "openSUSE Tumbleweed" OS_OPENSUSE_TW ;; "Red Hat Enterprise Linux 8.x") echo "Red Hat Enterprise Linux 8.x" OS_REDHAT_LINUX_8 ;; "Red Hat Enterprise Linux 9.x") echo "Red Hat Enterprise Linux 9.x" OS_REDHAT_LINUX_9 ;; "Solus") echo "Solus" OS_SOLUS_LINUX ;; "Ubuntu 18.04") echo "Ubuntu 18.04" DEBIAN_BASED_1 OS_UBUNTU_18 DEBIAN_BASED_2 ;; "Ubuntu 20.04") echo "Ubuntu 20.04" DEBIAN_BASED_1 OS_UBUNTU_20 DEBIAN_BASED_2 ;; "Ubuntu 22.04") echo "Ubuntu 22.04" DEBIAN_BASED_1 OS_UBUNTU_22 DEBIAN_BASED_2 ;; "Ubuntu 23.10") echo "Ubuntu 23.10" DEBIAN_BASED_1 OS_UBUNTU_23 DEBIAN_BASED_2 ;; "Void Linux") echo "Void Linux" OS_VOID_LINUX ;; "Gentoo Linux") echo "Gentoo Linux" OS_GENTOO_LINUX ;; esac } ############################################################################################################################################################### function SP_FUSION360_INSTALL_PROGRESS { SP_FUSION360_INSTALL_PROGRESS_MAIN () { cd "$WP_DIRECTORY" || return echo "20" SP_FUSION360_INSTALL_DEFAULT_1 echo "70" SP_FUSION360_INSTALL_DEFAULT_2 sleep 5 echo "100" } SP_FUSION360_INSTALL_PROGRESS_MAIN | yad --progress --progress-text "$SP_INSTALL_PROGRESS_LABEL" --percentage=0 --auto-close } ############################################################################################################################################################### function SP_FUSION360_INSTALL_PROGRESS_REFRESH { SP_FUSION360_INSTALL_PROGRESS_MAIN_REFRESH () { cd "$WP_DIRECTORY" || return echo "20" SP_FUSION360_INSTALL_REFRESH_1 echo "70" SP_FUSION360_INSTALL_REFRESH_2 sleep 5 echo "100" } SP_FUSION360_INSTALL_PROGRESS_MAIN_REFRESH | yad --title="$SP_TITLE" --borders=15 --progress --progress-text "$SP_INSTALL_PROGRESS_REFRESH_LABEL" --percentage=0 --auto-close } ############################################################################################################################################################### function SP_FUSION360_EXTENSIONS { EXTENSIONS=$(yad --title="$SP_TITLE" --borders=15 --button=gtk-cancel:99 --button=gtk-ok:0 --height=300 --list --multiple --checklist --column="$SP_EXTENSION_SELECT" --column="$SP_EXTENSION_NAME" --column="$SP_EXTENSION_DESCRIPTION" < "$SP_EXTENSION_LIST") if [[ $EXTENSIONS = *"Airfoil Tools"* ]]; then echo "Airfoil Tools" EXTENSION_AIRFOIL_TOOLS fi if [[ $EXTENSIONS = *"Additive Assistant (FFF)"* ]]; then echo "Additive Assistant (FFF)" EXTENSION_ADDITIVE_ASSISTANT fi if [[ $EXTENSIONS = *"Czech localization for F360"* ]]; then echo "Czech localization for F360" EXTENSION_CZECH_LOCALE fi if [[ $EXTENSIONS = *"HP 3D Printers for Autodesk® Fusion 360™"* ]]; then echo "HP 3D Printers for Autodesk® Fusion 360™" EXTENSION_HP_3DPRINTER_CONNECTOR fi if [[ $EXTENSIONS = *"Helical Gear Generator"* ]]; then echo "Helical Gear Generator" EXTENSION_HELICAL_GEAR_GENERATOR fi if [[ $EXTENSIONS = *"OctoPrint for Autodesk® Fusion 360™"* ]]; then echo "OctoPrint for Autodesk® Fusion 360™" EXTENSION_OCTOPRINT fi if [[ $EXTENSIONS = *"Parameter I/O"* ]]; then echo "Parameter I/O" EXTENSION_PARAMETER_IO fi if [[ $EXTENSIONS = *"RoboDK"* ]]; then echo "RoboDK" EXTENSION_ROBODK fi if [[ $EXTENSIONS = *"Ultimaker Digital Factory for Autodesk Fusion 360™"* ]]; then echo "Ultimaker Digital Factory for Autodesk Fusion 360™" EXTENSION_ULTIMAKER_DIGITAL_FACTORY fi } ############################################################################################################################################################### # The installation is complete and will be terminated. function SP_COMPLETED { echo "The installation is completed!" SP_COMPLETED_CHECK=$(yad \ --title="$SP_TITLE" \ --form \ --borders=15 \ --width=550 \ --height=450 \ --buttons-layout=center \ --align=center \ --field=":TXT" "$SP_COMPLETED_TEXT" \ --field="$SP_COMPLETED_CHECK_LABEL:CHK" ) if [[ $SP_COMPLETED_CHECK = *"TRUE"* ]]; then echo "TRUE" # shellcheck source=/dev/null source "$WP_DIRECTORY/box-run.sh" else echo "FALSE" fi } ############################################################################################################################################################### # THE INSTALLATION PROGRAM IS STARTED HERE: # ############################################################################################################################################################### SP_CHECK_REQUIRED_COMMANDS SP_STRUCTURE SP_LOGFILE_INSTALL SP_LOCALE_INDEX SP_WELCOME