diff --git a/files/setup/autodesk_fusion_installer_x86-64.sh b/files/setup/autodesk_fusion_installer_x86-64.sh index 0c4a0e24..4b91d349 100755 --- a/files/setup/autodesk_fusion_installer_x86-64.sh +++ b/files/setup/autodesk_fusion_installer_x86-64.sh @@ -7,8 +7,8 @@ # Author URI: https://cryinkfly.com # # License: MIT # # Copyright (c) 2020-2026 # -# Time/Date: 00:55/25.01.2026 # -# Version: 2.0.6-Alpha # +# Time/Date: 11:15/28.01.2026 # +# Version: 2.0.7-Alpha # #################################################################################################### ############################################################################################################################################################### @@ -25,6 +25,8 @@ NOCOLOR=$'\033[0m' SELECTED_OPTION="$1" SELECTED_DIRECTORY="$2" SELECTED_EXTENSIONS="$3" +DOWNLOAD_EXTENSIONS=0 +PROTON_VERSION="" if [ -z "$SELECTED_DIRECTORY" ] || [ "$SELECTED_DIRECTORY" == "--default" ]; then SELECTED_DIRECTORY="$HOME/.autodesk_fusion" @@ -33,45 +35,46 @@ fi # if selected_extensions is set to --full, then all extensions will be installed if [ "$SELECTED_EXTENSIONS" == "--full" ]; then SELECTED_EXTENSIONS="CzechlocalizationforF360,HP3DPrintersforAutodesk®Fusion®,MarkforgedforAutodesk®Fusion®,OctoPrintforAutodesk®Fusion360™,UltimakerDigitalFactoryforAutodeskFusion360™" -else - SELECTED_EXTENSIONS="" + DOWNLOAD_EXTENSIONS=1 fi +REPO_URL="https://raw.githubusercontent.com/Lolig4/Autodesk-Fusion-360-for-Linux/main" + # URL to download translations po. files <-- Still in progress!!! -UPDATER_TRANSLATIONS_URL="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/update-locale.sh" +UPDATER_TRANSLATIONS_URL="$REPO_URL/files/setup/locale/update-locale.sh" declare -A TRANSLATION_URLS=( - ["cs_CZ"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/cs_CZ/LC_MESSAGES/autodesk_fusion.po" - ["de_DE"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/de_DE/LC_MESSAGES/autodesk_fusion.po" - ["en_US"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/en_US/LC_MESSAGES/autodesk_fusion.po" - ["es_ES"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/es_ES/LC_MESSAGES/autodesk_fusion.po" - ["fr_FR"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/fr_FR/LC_MESSAGES/autodesk_fusion.po" - ["it_IT"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/it_IT/LC_MESSAGES/autodesk_fusion.po" - ["ja_JP"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/ja_JP/LC_MESSAGES/autodesk_fusion.po" - ["ko_KR"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/ko_KR/LC_MESSAGES/autodesk_fusion.po" - ["pl_PL"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/pl_PL/LC_MESSAGES/autodesk_fusion.po" - ["pt_BR"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/pt_BR/LC_MESSAGES/autodesk_fusion.po" - ["tr_TR"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/tr_TR/LC_MESSAGES/autodesk_fusion.po" - ["zh_CN"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/zh_CN/LC_MESSAGES/autodesk_fusion.po" - ["zh_TW"]="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/locale/zh_TW/LC_MESSAGES/autodesk_fusion.po" + ["cs_CZ"]="$REPO_URL/files/setup/locale/cs_CZ/LC_MESSAGES/autodesk_fusion.po" + ["de_DE"]="$REPO_URL/files/setup/locale/de_DE/LC_MESSAGES/autodesk_fusion.po" + ["en_US"]="$REPO_URL/files/setup/locale/en_US/LC_MESSAGES/autodesk_fusion.po" + ["es_ES"]="$REPO_URL/files/setup/locale/es_ES/LC_MESSAGES/autodesk_fusion.po" + ["fr_FR"]="$REPO_URL/files/setup/locale/fr_FR/LC_MESSAGES/autodesk_fusion.po" + ["it_IT"]="$REPO_URL/files/setup/locale/it_IT/LC_MESSAGES/autodesk_fusion.po" + ["ja_JP"]="$REPO_URL/files/setup/locale/ja_JP/LC_MESSAGES/autodesk_fusion.po" + ["ko_KR"]="$REPO_URL/files/setup/locale/ko_KR/LC_MESSAGES/autodesk_fusion.po" + ["pl_PL"]="$REPO_URL/files/setup/locale/pl_PL/LC_MESSAGES/autodesk_fusion.po" + ["pt_BR"]="$REPO_URL/files/setup/locale/pt_BR/LC_MESSAGES/autodesk_fusion.po" + ["tr_TR"]="$REPO_URL/files/setup/locale/tr_TR/LC_MESSAGES/autodesk_fusion.po" + ["zh_CN"]="$REPO_URL/files/setup/locale/zh_CN/LC_MESSAGES/autodesk_fusion.po" + ["zh_TW"]="$REPO_URL/files/setup/locale/zh_TW/LC_MESSAGES/autodesk_fusion.po" ) # URL to download winetricks WINETRICKS_URL="https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks" # URL to download Fusion360Installer.exe files -#AUTODESK_FUSION_INSTALLER_URL="https://dl.appstreaming.autodesk.com/production/installers/Fusion%20360%20Admin%20Install.exe" <-- Old Link!!! AUTODESK_FUSION_INSTALLER_URL="https://dl.appstreaming.autodesk.com/production/installers/Fusion%20Admin%20Install.exe" #AUTODESK_FUSION_INSTALLER_URL="https://dl.appstreaming.autodesk.com/production/installers/Fusion%20Client%20Downloader.exe" +#AUTODESK_FUSION_INSTALLER_URL="https://dl.appstreaming.autodesk.com/production/installers/Fusion%20360%20Admin%20Install.exe" <-- Old Link!!! # URL to download Microsoft Edge WebView2.Exec WEBVIEW2_INSTALLER_URL="https://github.com/aedancullen/webview2-evergreen-standalone-installer-archive/releases/download/109.0.1518.78/MicrosoftEdgeWebView2RuntimeInstallerX64.exe" # Testing a newer version (144.0.3719.93): WEBVIEW2_INSTALLER_URL="https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/ba1bb4b1-79ea-47b5-a0e0-967253cd7900/MicrosoftEdgeWebView2RuntimeInstallerX64.exe" # URL to download the patched Qt6WebEngineCore.dll file -QT6_WEBENGINECORE_URL="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/extras/patched-dlls/Qt6WebEngineCore-06-2025.7z" +QT6_WEBENGINECORE_URL="$REPO_URL/files/extras/patched-dlls/Qt6WebEngineCore-06-2025.7z" # URL to download the patched siappdll.dll file -SIAPPDLL_URL="https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/extras/patched-dlls/siappdll.dll" +SIAPPDLL_URL="$REPO_URL/files/extras/patched-dlls/siappdll.dll" ############################################################################################################################################################################## # CHECK THE REQUIRED PACKAGES FOR THE INSTALLER: # @@ -179,7 +182,7 @@ function check_required_packages() { # INSTALLATION OF THE REQUIRED PACKAGES FOR THE INSTALLER: # ############################################################################################################################################################################## -function install_required_packages { +function install_required_packages() { echo -e "$(gettext "${YELLOW}The installer will install the required packages for the installation!")${NOCOLOR}" echo -e "$(gettext "${RED}Missing package: ${cmd}")${NOCOLOR}" sleep 2 @@ -274,7 +277,7 @@ function install_required_packages { ############################################################################################################################################################################## # <-- Still in progress!!! -function download_translations { +function download_translations() { curl -o "./locale/update-locale.sh" "$UPDATER_TRANSLATIONS_URL" chmod +x "./locale/update-locale.sh" @@ -304,7 +307,7 @@ function download_translations { function check_option() { case "$1" in - "--uninstall") + --uninstall) clear echo "$(gettext "${YELLOW}Starting the uninstallation process ...${NOCOLOR}")" # Show a list of two options with: @@ -353,13 +356,25 @@ function check_option() { exit;; esac ;; - "--install") + --install|--proton=*) echo -e "$(gettext "${GREEN}Starting the installation process ...${NOCOLOR}")" sleep 2 echo -e "$(gettext "${GREEN}Linux distribution: ${YELLOW}$DISTRO_VERSION${NOCOLOR}")" sleep 2 + if [[ "$1" == --proton=* ]]; then + PROTON_VERSION="${1#--proton=}" + SELECTED_OPTION="--proton" + fi echo -e "$(gettext "${GREEN}Selected option: ${YELLOW}$SELECTED_OPTION${NOCOLOR}")" sleep 2 + if [ -n "$PROTON_VERSION" ]; then + echo -e "$(gettext "${GREEN}Selected Proton version: ${YELLOW}$PROTON_VERSION${NOCOLOR}")" + PROTONPREFIX_DIRECTORY="$SELECTED_DIRECTORY/protonprefix" + WINE_PFX="$PROTONPREFIX_DIRECTORY/pfx" + sleep 2 + else + WINE_PFX="$SELECTED_DIRECTORY/wineprefixes/default" + fi echo -e "$(gettext "${GREEN}Selected directory: ${YELLOW}$SELECTED_DIRECTORY${NOCOLOR}")" sleep 2 echo -e "$(gettext "${GREEN}Selected extensions: ${YELLOW}$SELECTED_EXTENSIONS${NOCOLOR}")" @@ -371,6 +386,9 @@ function check_option() { check_gpu_driver check_gpu_vram check_disk_space + if [ -n "$PROTON_VERSION" ]; then + check_steam_proton + fi download_files check_and_install_wine wine_autodesk_fusion_install @@ -384,7 +402,7 @@ function check_option() { run_wine_autodesk_fusion exit;; *) - echo -e "$(gettext "${RED}Invalid option! Please use the --install or --uninstall flag!")${NOCOLOR}"; + echo -e "$(gettext "${RED}Invalid option! Please use the --install, --proton, --proton= or --uninstall flag!")${NOCOLOR}"; exit;; esac } @@ -408,13 +426,12 @@ function deactivate_window_not_responding_dialog() { function create_data_structure() { mkdir -p "$SELECTED_DIRECTORY/bin" \ - "$SELECTED_DIRECTORY/config" \ "$SELECTED_DIRECTORY/downloads/extensions" \ "$SELECTED_DIRECTORY/logs" \ - "$SELECTED_DIRECTORY/locale" \ + "$SELECTED_DIRECTORY/.desktop" \ "$SELECTED_DIRECTORY/resources/graphics" \ "$SELECTED_DIRECTORY/resources/styles" \ - "$SELECTED_DIRECTORY/wineprefixes/default" + "$WINE_PFX" } ############################################################################################################################################################################## @@ -422,19 +439,19 @@ function create_data_structure() { ############################################################################################################################################################################## # Function to check if Secure Boot is activated -function check_secure_boot { +function check_secure_boot() { if ! command -v mokutil &> /dev/null; then echo "${RED} mokutil command not found. Please install it to check Secure Boot status.${NOCOLOR}" exit 1 fi # Check if Secure Boot is enabled - if mokutil --sb-state | grep -q 'Secure Boot enabled'; then + if mokutil --sb-state | grep -qE 'Secure Boot enabled|SecureBoot enabled'; then echo "Secure Boot is enabled." - SECURE_BOOT="1" + SECURE_BOOT=1 else echo "Secure Boot is not enabled." - SECURE_BOOT="0" + SECURE_BOOT=0 fi } @@ -442,7 +459,7 @@ function check_secure_boot { # CHECKING THE MINIMUM RAM (RANDOM ACCESS MEMORY) REQUIREMENT: # ############################################################################################################################################################################## -function check_ram { +function check_ram() { # Get total RAM space in kilobytes GET_RAM_KILOBYTES=$(grep MemTotal /proc/meminfo | awk '{print $2}') @@ -475,13 +492,13 @@ function check_ram { # CHECK GPU DRIVER FOR THE INSTALLER: # ############################################################################################################################################################################## -function check_gpu_driver { +function check_gpu_driver() { echo -e "$(gettext "${YELLOW}Checking the GPU drivers for the installer...${NOCOLOR}")" - if [[ $SECURE_BOOT == "0" ]]; then + if (( !SECURE_BOOT )); then # If Secure Boot is disabled, check NVIDIA GPU if nvidia-smi &>/dev/null; then - NVIDIA_PRESENT=true + NVIDIA_PRESENT=1 NVIDIA_VRAM=$(nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits | head -n1) echo -e "$(gettext "${GREEN}NVIDIA GPU detected with ${NVIDIA_VRAM}MB VRAM${NOCOLOR}")" fi @@ -491,24 +508,26 @@ function check_gpu_driver { INTEL_AMD_VRAM=$(glxinfo | grep -i "Video memory" | grep -Eo '[0-9]+MB' | grep -Eo '[0-9]+' | head -n1) if [[ $INTEL_AMD_GPU == "AMD" ]]; then - AMD_PRESENT=true + AMD_PRESENT=1 AMD_VRAM=$(glxinfo | grep -i "Video memory" | grep -Eo '[0-9]+MB' | grep -Eo '[0-9]+' | head -n1) echo -e "$(gettext "${GREEN}${INTEL_AMD_GPU} GPU recognized with ${AMD_VRAM}MB VRAM${NOCOLOR}")" elif [[ $INTEL_AMD_GPU == "Intel" ]]; then - INTEL_PRESENT=true + INTEL_PRESENT=1 INTEL_VRAM=$(glxinfo | grep -i "Video memory" | grep -Eo '[0-9]+MB' | grep -Eo '[0-9]+' | head -n1) echo -e "$(gettext "${GREEN}${INTEL_AMD_GPU} GPU recognized with ${INTEL_VRAM}MB VRAM${NOCOLOR}")" fi - if [[ $SECURE_BOOT == "1" && $NVIDIA_PRESENT ]]; then + if (( SECURE_BOOT && NVIDIA_PRESENT )); then # If Secure Boot is enabled and the NVIDIA GPU is detected, the NVIDIA GPU should use OpenGL. GPU_DRIVER="OpenGL" - GET_VRAM_MEGABYTES=$NVIDIA_VRAM + GET_VRAM_MEGABYTES="$NVIDIA_VRAM" echo -e "$(gettext "${GREEN}Secure Boot is enabled. The OpenGL GPU driver is being used for the NVIDIA GPU.${NOCOLOR}")" - elif [[ $SECURE_BOOT == "0" ]]; then + #elif (( !SECURE_BOOT )); then # WHY???? + else + echo -e "$(gettext "${GREEN}Secure Boot is disabled. Checking available GPU drivers...${NOCOLOR}")" # If Secure Boot is disabled, handle GPU selection - if [[ $NVIDIA_PRESENT && ($INTEL_PRESENT || $AMD_PRESENT) ]]; then - echo -e "$(gettext "${YELLOW}MMultiple GPUs detected. Please select which one to use (default is DXVK):${NOCOLOR}")" + if (( NVIDIA_PRESENT && (INTEL_PRESENT || AMD_PRESENT) )); then + echo -e "$(gettext "${YELLOW}Multiple GPUs detected. Please select which one to use (default is DXVK):${NOCOLOR}")" echo "1) NVIDIA" echo "2) ${INTEL_AMD_GPU}" read -p "Enter your choice (1 or 2): " gpu_choice @@ -516,44 +535,44 @@ function check_gpu_driver { case $gpu_choice in 1) GPU_DRIVER="DXVK" - GET_VRAM_MEGABYTES=$NVIDIA_VRAM + GET_VRAM_MEGABYTES="$NVIDIA_VRAM" echo -e "$(gettext "${GREEN}NVIDIA GPU selected. The DXVK GPU driver will be used for installation.${NOCOLOR}")" ;; 2) GPU_DRIVER="OpenGL" - GET_VRAM_MEGABYTES=$INTEL_AMD_VRAM + GET_VRAM_MEGABYTES="$INTEL_AMD_VRAM" echo -e "$(gettext "${GREEN}The OpenGL GPU fallback driver is used for the installation.${NOCOLOR}")" ;; *) GPU_DRIVER="OpenGL" - GET_VRAM_MEGABYTES=$INTEL_VRAM + GET_VRAM_MEGABYTES="$INTEL_VRAM" ;; esac - elif [[ $NVIDIA_PRESENT ]]; then + elif (( NVIDIA_PRESENT )); then GPU_DRIVER="DXVK" - GET_VRAM_MEGABYTES=$NVIDIA_VRAM + GET_VRAM_MEGABYTES="$NVIDIA_VRAM" echo -e "$(gettext "${GREEN}The DXVK GPU driver is used for the installation.${NOCOLOR}")" - elif [[ $AMD_PRESENT ]]; then + elif (( AMD_PRESENT )); then GPU_DRIVER="DXVK" - GET_VRAM_MEGABYTES=$AMD_VRAM + GET_VRAM_MEGABYTES="$AMD_VRAM" echo -e "$(gettext "${GREEN}The DXVK GPU driver is used for the installation.${NOCOLOR}")" - elif [[ $INTEL_PRESENT ]]; then + elif (( INTEL_PRESENT )); then GPU_DRIVER="OpenGL" - GET_VRAM_MEGABYTES=$INTEL_VRAM + GET_VRAM_MEGABYTES="$INTEL_VRAM" echo -e "$(gettext "${GREEN}The OpenGL GPU fallback driver is used for the installation.${NOCOLOR}")" else echo -e "$(gettext "${RED}No GPU driver detected on your system!${NOCOLOR}")" GET_VRAM_MEGABYTES=0 fi - else - echo -e "$(gettext "${RED}No GPU driver detected on your system!${NOCOLOR}")" - GET_VRAM_MEGABYTES=0 + #else + # echo -e "$(gettext "${RED}No GPU driver detected on your system!${NOCOLOR}")" + # GET_VRAM_MEGABYTES=0 fi sleep 2 # Get the current display resolution of the main monitor if more than one is connected. - MONITOR_RESOLUTION=$(xrandr | grep '*' | awk '{print $1}') + MONITOR_RESOLUTION=$(xrandr 2>/dev/null | grep 'primary' | awk '{print $4}' | cut -d'+' -f1) # If the $MONITOR_RESOLUTION value is empty, set it to "1920x1080" if [ -z "$MONITOR_RESOLUTION" ]; then @@ -570,7 +589,7 @@ function check_gpu_driver { # CHECKING THE MINIMUM VRAM (VIDEO RAM) REQUIREMENT: # ############################################################################################################################################################################## -function check_gpu_vram { +function check_gpu_vram() { # Get the total memory of the graphics card in megabytes from check_gpu_driver if [ -z "$GET_VRAM_MEGABYTES" ]; then @@ -601,7 +620,7 @@ function check_gpu_vram { # CHECKING THE MINIMUM DISK SPACE (DEFAULT: HOME-PARTITION) REQUIREMENT: # ############################################################################################################################################################################## -function check_disk_space { +function check_disk_space() { # Get the free disk space in the selected directory GET_DISK_SPACE=$(df -h "$SELECTED_DIRECTORY" 2>/dev/null | awk 'NR==2 {print $4}') @@ -635,11 +654,29 @@ function check_disk_space { fi } +function check_steam_proton() { + # Check if Proton is installed and use Proton to run Autodesk Fusion 360 + STEAM_DIRECTORY="$HOME/.local/share/Steam" + PROTON_DIRECTORY="$STEAM_DIRECTORY/compatibilitytools.d/$PROTON_VERSION" + if [ -d "$STEAM_DIRECTORY" ]; then + echo -e "$(gettext "${GREEN}Steam is installed!${NOCOLOR}")" + if [ -d "$PROTON_DIRECTORY" ]; then + echo -e "$(gettext "${GREEN}$PROTON_VERSION is installed!${NOCOLOR}")" + else + echo -e "$(gettext "${RED}$PROTON_VERSION is not installed!${NOCOLOR}")" + exit 1 + fi + else + echo -e "$(gettext "${RED}Steam is not installed in $STEAM_DIRECTORY${NOCOLOR}")" + exit 1 + fi +} + ############################################################################################################################################################################## # CHECK FIREFOX VERSION FOR THE INSTALLER: # ############################################################################################################################################################################## -function get_firefox_version { +function get_firefox_version() { if command -v firefox &>/dev/null; then firefox --version | grep -oP '\d+\.\d+(\.\d+)?' else @@ -647,7 +684,7 @@ function get_firefox_version { fi } -function is_snap_firefox_installed { +function is_snap_firefox_installed() { if snap list | grep -q firefox; then return 0 else @@ -655,7 +692,7 @@ function is_snap_firefox_installed { fi } -function check_install_firefox_deb { +function check_install_firefox_deb() { # Function to check if Firefox is installed via Snap function is_snap_firefox_installed { snap list firefox &> /dev/null @@ -712,71 +749,82 @@ function download_files() { echo -e "$(gettext "${GREEN}Downloading the required files for the installation ...${NOCOLOR}")" sleep 2 # Download the newest winetricks version: - echo -e "$(gettext "${YELLOW}Downloading the newest winetricks version ...${NOCOLOR}")" - curl -L "$WINETRICKS_URL" -o "$SELECTED_DIRECTORY/bin/winetricks" + download_file "winetricks" "$WINETRICKS_URL" "$SELECTED_DIRECTORY/bin" chmod +x "$SELECTED_DIRECTORY/bin/winetricks" + # Search for an existing installer of Autodesk Fusion and download it if it doesn't exist or is older than 7 days - AUTODESK_FUSION_INSTALLER="$SELECTED_DIRECTORY/downloads/FusionClientInstaller.exe" - if [ -f "$AUTODESK_FUSION_INSTALLER" ]; then - echo -e "$(gettext "${GREEN}The Autodesk Fusion installer exists!${NOCOLOR}")" - if find "$AUTODESK_FUSION_INSTALLER" -mtime +7 | grep -q .; then - echo -e "$(gettext "${YELLOW}The Autodesk Fusion installer exists but is older than 7 days and will be updated!")${NOCOLOR}" - rm -rf "$AUTODESK_FUSION_INSTALLER" - curl -L "$AUTODESK_FUSION_INSTALLER_URL" -o "$AUTODESK_FUSION_INSTALLER" - fi - else - echo -e "$(gettext "${YELLOW}The Autodesk Fusion installer doesn't exist and will be downloaded for you!${NOCOLOR}")" - curl -L "$AUTODESK_FUSION_INSTALLER_URL" -o "$AUTODESK_FUSION_INSTALLER" - fi + download_file "FusionClientInstaller.exe" "$AUTODESK_FUSION_INSTALLER_URL" + # Search for an existing installer of WEBVIEW2 and download it if it doesn't exist or is older than 7 days - WEBVIEW2_INSTALLER="$SELECTED_DIRECTORY/downloads/WebView2installer.exe" - if [ -f "$WEBVIEW2_INSTALLER" ]; then - echo -e "$(gettext "${GREEN}The WebView2installer installer exists!${NOCOLOR}")" - if find "$WEBVIEW2_INSTALLER" -mtime +7 | grep -q .; then - echo -e "$(gettext "${YELLOW}The WebView2installer installer exists but is older than 7 days and will be updated!")${NOCOLOR}" - rm -rf "$WEBVIEW2_INSTALLER" - curl -L "$WEBVIEW2_INSTALLER_URL" -o "$WEBVIEW2_INSTALLER" - fi - else - echo -e "$(gettext "${YELLOW}The WebView2installer installer doesn't exist and will be downloaded for you!${NOCOLOR}")" - curl -L "$WEBVIEW2_INSTALLER_URL" -o "$WEBVIEW2_INSTALLER" - fi + download_file "WebView2installer.exe" "$WEBVIEW2_INSTALLER_URL" + # Download all tested extensions for Autodesk Fusion 360 on Linux - download_extensions_files + if (( DOWNLOAD_EXTENSIONS )); then + download_extensions_files + fi + # Download the patched Qt6WebEngineCore.dll file - curl -L "$QT6_WEBENGINECORE_URL" -o "$SELECTED_DIRECTORY/downloads/Qt6WebEngineCore.dll.7z" + download_file "Qt6WebEngineCore.dll.7z" "$QT6_WEBENGINECORE_URL" + # Download the patched siappdll.dll file - curl -L "$SIAPPDLL_URL" -o "$SELECTED_DIRECTORY/downloads/siappdll.dll" + download_file "siappdll.dll" "$SIAPPDLL_URL" + + mkdir -p "$SELECTED_DIRECTORY/downloads/$GPU_DRIVER" + # Download the DXVK registry file if the DXVK GPU driver is selected + if [[ $GPU_DRIVER == "DXVK" ]]; then + download_file "DXVK.reg" "$REPO_URL/files/setup/resource/video_driver/DXVK/DXVK.reg" "$SELECTED_DIRECTORY/downloads/DXVK" + fi + download_file "NMachineSpecificOptions.xml" "$REPO_URL/files/setup/resource/video_driver/$GPU_DRIVER/NMachineSpecificOptions.xml" "$SELECTED_DIRECTORY/downloads/$GPU_DRIVER" + + # Download Autodesk Fusion SVG! + download_file "autodesk_fusion.svg" "$REPO_URL/files/setup/resource/graphics/autodesk_fusion.svg" "$SELECTED_DIRECTORY/resources/graphics" + download_file "Autodesk Fusion.desktop" "$REPO_URL/files/setup/resource/.desktop/Autodesk%20Fusion.desktop" "$SELECTED_DIRECTORY/.desktop" + download_file "adskidmgr-opener.desktop" "$REPO_URL/files/setup/resource/.desktop/adskidmgr-opener.desktop" "$SELECTED_DIRECTORY/.desktop" + + # Download some script files for Autodesk Fusion 360! + download_file "autodesk_fusion_launcher.sh" "$REPO_URL/files/setup/data/autodesk_fusion_launcher.sh" "$SELECTED_DIRECTORY/bin" + chmod +x "$SELECTED_DIRECTORY/bin/autodesk_fusion_launcher.sh" } -# Download an extension if it doesn't exist or is older than 7 days -function download_extensions_files { +function download_extensions_files() { echo -e "$(gettext "${YELLOW}Downloading the tested extensions for Autodesk Fusion on Linux ...${NOCOLOR}")" - download_extension "Ceska_lokalizace_pro_Autodesk_Fusion.exe" \ - "https://www.cadstudio.cz/dl/Ceska_lokalizace_pro_Autodesk_Fusion_360.exe" - download_extension "HP_3DPrinters_for_Fusion360-win64.msi" \ - "https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/HP_3DPrinters_for_Fusion360-win64.msi" - download_extension "Markforged_for_Fusion360-win64.msi" \ - "https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/Markforged_for_Fusion360-win64.msi" - download_extension "OctoPrint_for_Fusion360-win64.msi" \ - "https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/OctoPrint_for_Fusion360-win64.msi" - download_extension "Ultimaker_Digital_Factory-win64.msi" \ - "https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/Ultimaker_Digital_Factory-win64.msi" + EXTENSION_FILE_DIRECTORY="$SELECTED_DIRECTORY/downloads/extensions" + download_file "Ceska_lokalizace_pro_Autodesk_Fusion.exe" \ + "https://www.cadstudio.cz/dl/Ceska_lokalizace_pro_Autodesk_Fusion_360.exe" \ + "$EXTENSION_FILE_DIRECTORY" + download_file "HP_3DPrinters_for_Fusion360-win64.msi" \ + "https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/HP_3DPrinters_for_Fusion360-win64.msi" \ + "$EXTENSION_FILE_DIRECTORY" + download_file "Markforged_for_Fusion360-win64.msi" \ + "https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/Markforged_for_Fusion360-win64.msi" \ + "$EXTENSION_FILE_DIRECTORY" + download_file "OctoPrint_for_Fusion360-win64.msi" \ + "https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/OctoPrint_for_Fusion360-win64.msi" \ + "$EXTENSION_FILE_DIRECTORY" + download_file "Ultimaker_Digital_Factory-win64.msi" \ + "https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/Ultimaker_Digital_Factory-win64.msi" \ + "$EXTENSION_FILE_DIRECTORY" echo -e "$(gettext "${GREEN}All tested extensions for Autodesk Fusion on Linux are downloaded!${NOCOLOR}")" } -function download_extension { - local EXTENSION_FILE_NAME="$1" - local EXTENSION_FILE_URL="$2" - local EXTENSION_FILE_DIRECTORY="$SELECTED_DIRECTORY/downloads/extensions/$EXTENSION_FILE_NAME" - - if [ -f "$EXTENSION_FILE_DIRECTORY" ]; then - if find "$EXTENSION_FILE_DIRECTORY" -mtime +7 | grep -q .; then - curl -L "$EXTENSION_FILE_URL" -o "$EXTENSION_FILE_DIRECTORY" +function download_file() { + local FILE_NAME="$1" + local FILE_URL="$2" + local DESTINATION_DIRECTORY="${3:-$SELECTED_DIRECTORY/downloads/}" + local FILE="$DESTINATION_DIRECTORY/$FILE_NAME" + + if [ -f "$FILE" ]; then + echo -e "$(gettext "${GREEN}$FILE_NAME exists!${NOCOLOR}")" + if find "$FILE" -mtime +7 | grep -q .; then + echo -e "$(gettext "${YELLOW}$FILE_NAME exists but is older than 7 days and will be updated!")${NOCOLOR}" + rm -rf "$FILE" + curl -L "$FILE_URL" -o "$FILE" fi else - curl -L "$EXTENSION_FILE_URL" -o "$EXTENSION_FILE_DIRECTORY" + echo -e "$(gettext "${YELLOW}$FILE_NAME doesn't exist and will be downloaded for you!${NOCOLOR}")" + curl -L "$FILE_URL" -o "$FILE" fi + } ############################################################################################################################################################################## @@ -1041,9 +1089,9 @@ function check_and_install_wine() { # Helper function for the following function. The AdskIdentityManager.exe can be installed # into a variable alphanumeric folder. # This function finds that folder alphanumeric folder name. -function determine_variable_folder_name_for_identity_manager { +function determine_variable_folder_name_for_identity_manager() { echo "Searching for the variable location of the Autodesk Fusion identity manager..." - IDENT_MAN_PATH=$(find "$SELECTED_DIRECTORY/wineprefixes/default" -name 'AdskIdentityManager.exe') + IDENT_MAN_PATH=$(find "$WINE_PFX" -name 'AdskIdentityManager.exe') # Get the dirname of the identity manager's alphanumeric folder. # With the full path of the identity manager, go 2 folders up and isolate the folder name. IDENT_MAN_VARIABLE_DIRECTORY=$(basename "$(dirname "$(dirname "$IDENT_MAN_PATH")")") @@ -1052,108 +1100,63 @@ function determine_variable_folder_name_for_identity_manager { ######################################################################################## # Load the icons and .desktop-files: -function autodesk_fusion_shortcuts_load { +function autodesk_fusion_shortcuts_load() { # Create a .desktop file (launcher.sh) for Autodesk Fusion! - curl -L https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/resource/graphics/autodesk_fusion.svg -o "$SELECTED_DIRECTORY/resources/graphics/autodesk_fusion.svg" - cat > "$HOME/.local/share/applications/wine/Programs/Autodesk/Autodesk Fusion.desktop" << EOF -[Desktop Entry] -Name=Autodesk Fusion -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 is a cloud-based 3D modeling, CAD, CAM, and PCB software platform for product design and manufacturing. -Comment[cs]=Autodesk Fusion je cloudová platforma pro 3D modelování, CAD, CAM a PCB určená k navrhování a výrobě produktů. -Comment[de]=Autodesk Fusion ist eine cloudbasierte Softwareplattform für Modellierung, CAD, CAM, CAE und Leiterplatten in 3D für Produktdesign und Fertigung. -Comment[es]=Autodesk Fusion 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 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 è 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、製品の設計と製造のためのクラウドベースの3Dモデリング、CAD、CAM、およびPCBソフトウェアプラットフォームです。 -Comment[ko]=Autodesk Fusion 제품 설계 및 제조를 위한 클라우드 기반 3D 모델링, CAD, CAM 및 PCB 소프트웨어 플랫폼입니다. -Comment[zh_CN]=Autodesk Fusion 是一个基于云的 3D 建模、CAD、CAM 和 PCB 软件平台,用于产品设计和制造。 -Exec=$SELECTED_DIRECTORY/bin/autodesk_fusion_launcher.sh -Type=Application -Categories=Education;Engineering;Graphics;Science -StartupNotify=true -Icon=$SELECTED_DIRECTORY/resources/graphics/autodesk_fusion.svg -Terminal=false -Path=$SELECTED_DIRECTORY/bin -EOF + DESKTOP_DIRECTORY="$HOME/.local/share/applications/wine/Programs/Autodesk" + mkdir -p "$DESKTOP_DIRECTORY" + rm -f "$DESKTOP_DIRECTORY/Autodesk Fusion.desktop" + cp "$SELECTED_DIRECTORY/.desktop/Autodesk Fusion.desktop" "$DESKTOP_DIRECTORY/Autodesk Fusion.desktop" + echo "Exec=$SELECTED_DIRECTORY/bin/autodesk_fusion_launcher.sh" >> "$DESKTOP_DIRECTORY/Autodesk Fusion.desktop" + echo "Icon=$SELECTED_DIRECTORY/resources/graphics/autodesk_fusion.svg" >> "$DESKTOP_DIRECTORY/Autodesk Fusion.desktop" + echo "Path=$SELECTED_DIRECTORY/bin" >> "$DESKTOP_DIRECTORY/Autodesk Fusion.desktop" # Set the permissions for the .desktop file to read-only - chmod 444 "$HOME/.local/share/applications/wine/Programs/Autodesk/Autodesk Fusion.desktop" + chmod 444 "$DESKTOP_DIRECTORY/Autodesk Fusion.desktop" + # Execute function determine_variable_folder_name_for_identity_manager #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=sh -c 'env WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" wine "$(find $SELECTED_DIRECTORY/wineprefixes/default/ -name "AdskIdentityManager.exe" | head -1 | xargs -I '{}' echo {})" "%u"' -StartupNotify=false -MimeType=x-scheme-handler/adskidmgr; -EOL + rm -f "$DESKTOP_DIRECTORY/adskidmgr-opener.desktop" + cp "$SELECTED_DIRECTORY/.desktop/adskidmgr-opener.desktop" "$DESKTOP_DIRECTORY/adskidmgr-opener.desktop" + if [ -n "$PROTON_VERSION" ]; then + echo "Exec=sh -c 'env STEAM_COMPAT_CLIENT_INSTALL_PATH="$STEAM_DIRECTORY" STEAM_COMPAT_DATA_PATH="$PROTONPREFIX_DIRECTORY" "$PROTON_DIRECTORY/proton" run \"\$(find $WINE_PFX -name AdskIdentityManager.exe | head -1)\" \"%u\"'" >> "$DESKTOP_DIRECTORY/adskidmgr-opener.desktop" + else + echo "Exec=sh -c 'env WINEPREFIX=$WINE_PFX wine \"\$(find $WINE_PFX -name AdskIdentityManager.exe | head -1)\" \"%u\"'" >> "$DESKTOP_DIRECTORY/adskidmgr-opener.desktop" + fi #Set the permissions for the .desktop file to read-only - chmod 444 $HOME/.local/share/applications/adskidmgr-opener.desktop + chmod 444 "$DESKTOP_DIRECTORY/adskidmgr-opener.desktop" #Set the mimetype handler for the Identity Manager 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/Autodesk Fusion.desktop" - - # Download some script files for Autodesk Fusion 360! - curl -L https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/data/autodesk_fusion_launcher.sh -o "$SELECTED_DIRECTORY/bin/autodesk_fusion_launcher.sh" - chmod +x "$SELECTED_DIRECTORY/bin/autodesk_fusion_launcher.sh" -} - -############################################################################################################################################################### - -function dxvk_opengl_1 { - if [[ $GPU_DRIVER = "DXVK" ]]; then - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" sh "$SELECTED_DIRECTORY/bin/winetricks" -q dxvk - curl -L https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/resource/video_driver/dxvk/DXVK.reg -o "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads/DXVK.reg" - # Add the "return"-option. Here you can read more about it -> https://github.com/koalaman/shellcheck/issues/592 - cd "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads" || return - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" wine regedit.exe DXVK.reg - fi -} - -function dxvk_opengl_2 { - if [[ $GPU_DRIVER = "DXVK" ]]; then - curl -L https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/resource/video_driver/dxvk/NMachineSpecificOptions.xml -o "NMachineSpecificOptions.xml" - else - curl -L https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/setup/resource/video_driver/opengl/NMachineSpecificOptions.xml -o "NMachineSpecificOptions.xml" - fi + sed -i 's/=env WINEPREFIX=/=env WINEDEBUG=-all env WINEPREFIX=/g' "$DESKTOP_DIRECTORY/Autodesk Fusion.desktop" } ############################################################################################################################################################### # Execute the installation of Autodesk Fusion -function autodesk_fusion_run_install_client { - cd "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads" - #WINEPREFIX="$selected_directory/wineprefixes/default" timeout -k 5m 1m wine "$selected_directory/wineprefixes/default/drive_c/users/$USER/Downloads/Fusion360Clientinstaller.exe" --quiet - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" timeout -k 10m 9m wine "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads/FusionClientInstaller.exe" --quiet - sleep 5s - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" timeout -k 5m 1m wine "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads/FusionClientInstaller.exe" --quiet +function autodesk_fusion_run_install_client() { + echo -e "$(gettext "${YELLOW}Installing Autodesk Fusion 360 Client ...${NOCOLOR}")" + sleep 2 + WINEPREFIX="$WINE_PFX" timeout -k 10m 9m wine "$SELECTED_DIRECTORY/downloads/FusionClientInstaller.exe" --quiet 2>> "$SELECTED_DIRECTORY/logs/FusionClientInstaller_1.log" + sleep 5 + echo -e "$(gettext "${YELLOW}Finalizing Autodesk Fusion 360 installation...${NOCOLOR}")" + WINEPREFIX="$WINE_PFX" timeout -k 5m 1m wine "$SELECTED_DIRECTORY/downloads/FusionClientInstaller.exe" --quiet 2>> "$SELECTED_DIRECTORY/logs/FusionClientInstaller_2.log" + echo -e "$(gettext "${GREEN}Autodesk Fusion 360 Client installation completed!${NOCOLOR}")" } ############################################################################################################################################################### # Patch the Qt6WebEngineCore.dll to fix the login issue and other issues -function autodesk_fusion_patch_qt6webenginecore { +function autodesk_fusion_patch_qt6webenginecore() { # Find the Qt6WebEngineCore.dll file in the Autodesk Fusion directory - QT6_WEBENGINECORE=$(find "$SELECTED_DIRECTORY/wineprefixes/default" -name 'Qt6WebEngineCore.dll' -printf "%T+ %p\n" | sort -r | head -n 1 | sed -r 's/^[^ ]+ //') + QT6_WEBENGINECORE=$(find "$WINE_PFX" -name 'Qt6WebEngineCore.dll' -printf "%T+ %p\n" | sort -r | head -n 1 | sed -r 's/^[^ ]+ //') QT6_WEBENGINECORE_DIR=$(dirname "$QT6_WEBENGINECORE") - clear + echo "$QT6_WEBENGINECORE_DIR" echo -e "${YELLOW}The old Qt6WebEngineCore.dll file is located in the following directory: $QT6_WEBENGINECORE_DIR${NOCOLOR}" @@ -1172,7 +1175,7 @@ function autodesk_fusion_patch_qt6webenginecore { sleep 2 # Copy the patched Qt6WebEngineCore.dll file to the Autodesk Fusion directory - cp -f "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads/Qt6WebEngineCore.dll" "$QT6_WEBENGINECORE_DIR/Qt6WebEngineCore.dll" + cp -f "$SELECTED_DIRECTORY/downloads/Qt6WebEngineCore.dll" "$QT6_WEBENGINECORE_DIR/Qt6WebEngineCore.dll" echo -e "${GREEN}The Qt6WebEngineCore.dll file is patched successfully!${NOCOLOR}" } @@ -1180,7 +1183,7 @@ function autodesk_fusion_patch_qt6webenginecore { # Add/Patch the siappdll.dll to fix the SpaceMouse issue -function autodesk_fusion_patch_siappdll { +function autodesk_fusion_patch_siappdll() { echo -e "${YELLOW}Patching the siappdll.dll file for Autodesk Fusion ...${NOCOLOR}" sleep 2 @@ -1206,60 +1209,83 @@ function wine_autodesk_fusion_install() { # 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! + if [ -n "$PROTON_VERSION" ]; then + echo -e "$(gettext "${YELLOW}Init Proton...${NOCOLOR}")" + if ! pgrep -x steam >/dev/null 2>&1; then + echo -e "$(gettext "${YELLOW}Starting Steam...${NOCOLOR}")" + steam &>/dev/null & + sleep 5 + fi + STEAM_COMPAT_CLIENT_INSTALL_PATH="$STEAM_DIRECTORY" STEAM_COMPAT_DATA_PATH="$PROTONPREFIX_DIRECTORY" "$PROTON_DIRECTORY/proton" run -- wineboot -u + fi + echo -e "$(gettext "${YELLOW}Setting up the Wine prefix for Autodesk Fusion 360 in Sandbox... (suppressed)${NOCOLOR}")" + WINEPREFIX="$WINE_PFX" wineboot -u + DRIVE_PATH="$WINE_PFX/dosdevices/g:" + if [ ! -L "$DRIVE_PATH" ]; then + mkdir -p "$WINE_PFX/dosdevices" + ln -s "/" "$DRIVE_PATH" + fi + WINEPREFIX="$WINE_PFX" sh "$SELECTED_DIRECTORY/bin/winetricks" -q sandbox >> "$SELECTED_DIRECTORY/logs/winetricks_sandbox.log" 2>&1 - mkdir -p "$SELECTED_DIRECTORY/wineprefixes/default" - cd "$SELECTED_DIRECTORY/wineprefixes/default" || return - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" sh "$SELECTED_DIRECTORY/bin/winetricks" -q sandbox - sleep 5s + echo -e "$(gettext "${YELLOW}Linking the downloads folder to the Wine prefix...${NOCOLOR}")" + rm -r "$WINE_PFX/drive_c/users/$USER/Downloads" + ln -s "$SELECTED_DIRECTORY/downloads" "$WINE_PFX/drive_c/users/$USER/Downloads" + + echo -e "$(gettext "${YELLOW}Configuring the Wine prefix for Autodesk Fusion 360...${NOCOLOR}")" + sleep 5 # If Mono or Gecko were not installed correctly in your Wine prefix: - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" wine control.exe appwiz.cpl install_mono - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" wine control.exe appwiz.cpl install_gecko - sleep 5s + WINEPREFIX="$WINE_PFX" wine control.exe appwiz.cpl install_mono + WINEPREFIX="$WINE_PFX" wine control.exe appwiz.cpl install_gecko + sleep 5 # We must install some packages! - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" sh "$SELECTED_DIRECTORY/bin/winetricks" -q atmlib gdiplus arial corefonts cjkfonts dotnet452 msxml4 msxml6 vcrun2017 fontsmooth=rgb winhttp win10 + WINEPREFIX="$WINE_PFX" sh "$SELECTED_DIRECTORY/bin/winetricks" -q atmlib gdiplus corefonts cjkfonts dotnet48 msxml4 msxml6 vcrun2022 fontsmooth=rgb winhttp win10 2>> "$SELECTED_DIRECTORY/logs/winetricks_dotnet452.log" # We must install cjkfonts again then sometimes it doesn't work in the first time! - sleep 5s - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" sh "$SELECTED_DIRECTORY/bin/winetricks" -q cjkfonts + echo -e "$(gettext "${YELLOW}Re-installing cjkfonts... (suppressed)${NOCOLOR}")" + sleep 5 + WINEPREFIX="$WINE_PFX" sh "$SELECTED_DIRECTORY/bin/winetricks" -q cjkfonts >> "$SELECTED_DIRECTORY/logs/winetricks_cjkfonts_2.log" 2>&1 # We must set to Windows 10 or 11 again because some other winetricks sometimes set it back to Windows XP! - sleep 5s - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" sh "$SELECTED_DIRECTORY/bin/winetricks" -q win11 + echo -e "$(gettext "${YELLOW}Setting Windows 11 as the Windows version... (suppressed)${NOCOLOR}")" + sleep 5 + WINEPREFIX="$WINE_PFX" sh "$SELECTED_DIRECTORY/bin/winetricks" -q win11 >> "$SELECTED_DIRECTORY/logs/winetricks_win11.log" 2>&1 # Remove tracking metrics/calling home - sleep 5s - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "adpclientservice.exe" /t REG_SZ /d "" /f + sleep 5 + WINEPREFIX="$WINE_PFX" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "adpclientservice.exe" /t REG_SZ /d native /f # Navigation bar does not work well with anything other than the wine builtin DX9 - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "AdCefWebBrowser.exe" /t REG_SZ /d builtin /f + WINEPREFIX="$WINE_PFX" 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="$SELECTED_DIRECTORY/wineprefixes/default" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "msvcp140" /t REG_SZ /d native /f - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "mfc140u" /t REG_SZ /d native /f + WINEPREFIX="$WINE_PFX" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "msvcp140" /t REG_SZ /d native /f + WINEPREFIX="$WINE_PFX" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "mfc140u" /t REG_SZ /d native /f # Fixed the problem with the bcp47langs issue and now the login works again! - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" wine reg add "HKCU\Software\Wine\DllOverrides" /v "bcp47langs" /t REG_SZ /d "" /f - sleep 5s + WINEPREFIX="$WINE_PFX" wine reg add "HKCU\Software\Wine\DllOverrides" /v "bcp47langs" /t REG_SZ /d "" /f + sleep 5 # Install 7-Zip inside the Wine prefix via winetricks. # This method does NOT require 7-Zip on the host system and is more stable/reliable than previous approaches. - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" sh "$SELECTED_DIRECTORY/bin/winetricks" -q 7zip - cp "$SELECTED_DIRECTORY/downloads/Qt6WebEngineCore.dll.7z" "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads/Qt6WebEngineCore.dll.7z" - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" wine "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/Program Files/7-Zip/7z.exe" x "C:\\users\\$USER\\Downloads\\Qt6WebEngineCore.dll.7z" -o"C:\\users\\$USER\\Downloads\\" + WINEPREFIX="$WINE_PFX" sh "$SELECTED_DIRECTORY/bin/winetricks" -q 7zip >> "$SELECTED_DIRECTORY/logs/winetricks_7zip.log" 2>&1 + WINEPREFIX="$WINE_PFX" wine "$WINE_PFX/drive_c/Program Files/7-Zip/7z.exe" x "C:\\users\\$USER\\Downloads\\Qt6WebEngineCore.dll.7z" -o"C:\\users\\$USER\\Downloads\\" # Disabled by Default - Configure the correct virtual desktop resolution - # WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" sh "$SELECTED_DIRECTORY/bin/winetricks" -q vd="$MONITOR_RESOLUTION" + # WINEPREFIX="$WINE_PFX" sh "$SELECTED_DIRECTORY/bin/winetricks" -q vd="$MONITOR_RESOLUTION" # Download and install WebView2 to handle Login attempts, required even though we redirect to your default browser - # sleep 5s - cp "$SELECTED_DIRECTORY/downloads/WebView2installer.exe" "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads/WebView2installer.exe" - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" wine "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads/WebView2installer.exe" /silent /install + echo -e "$(gettext "${YELLOW}Installing Microsoft Edge WebView2 Runtime for Autodesk Fusion ...${NOCOLOR}")" + sleep 2 + WINEPREFIX="$WINE_PFX" wine "$SELECTED_DIRECTORY/downloads/WebView2installer.exe" /silent /install 2>> "$SELECTED_DIRECTORY/logs/WebView2_install.log" + echo -e "$(gettext "${GREEN}Microsoft Edge WebView2 Runtime installation completed!${NOCOLOR}")" # Pre-create shortcut directory for latest re-branding Microsoft Edge WebView2 - mkdir -p "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/AppData/Roaming/Microsoft/Internet Explorer/Quick Launch/User Pinned/" - dxvk_opengl_1 - cp "$SELECTED_DIRECTORY/downloads/FusionClientInstaller.exe" "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads" + APPDATA_DIRECTORY="$WINE_PFX/drive_c/users/$USER/AppData" + APPLICATION_DATA_DIRECTORY="$WINE_PFX/drive_c/users/$USER/Application Data" + mkdir -p "$APPDATA_DIRECTORY/Roaming/Microsoft/Internet Explorer/Quick Launch/User Pinned" + + if [[ $GPU_DRIVER = "DXVK" ]]; then + WINEPREFIX="$WINE_PFX" sh "$SELECTED_DIRECTORY/bin/winetricks" -q dxvk + # Add the "return"-option. Here you can read more about it -> https://github.com/koalaman/shellcheck/issues/592 + WINEPREFIX="$WINE_PFX" wine regedit.exe "C:\\users\\$USER\\Downloads\\DXVK\\DXVK.reg" + fi autodesk_fusion_run_install_client - mkdir -p "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/AppData/Roaming/Autodesk/Neutron Platform/Options" - cd "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/AppData/Roaming/Autodesk/Neutron Platform/Options" || return - dxvk_opengl_2 - mkdir -p "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/AppData/Local/Autodesk/Neutron Platform/Options" - cd "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/AppData/Local/Autodesk/Neutron Platform/Options" || return - dxvk_opengl_2 - mkdir -p "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Application Data/Autodesk/Neutron Platform/Options" - cd "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Application Data/Autodesk/Neutron Platform/Options" || return - dxvk_opengl_2 - cd "$SELECTED_DIRECTORY/bin" || return + mkdir -p "$APPDATA_DIRECTORY/Roaming/Autodesk/Neutron Platform/Options" + mkdir -p "$APPDATA_DIRECTORY/Local/Autodesk/Neutron Platform/Options" + mkdir -p "$APPLICATION_DATA_DIRECTORY/Autodesk/Neutron Platform/Options" + cp "$SELECTED_DIRECTORY/downloads/$GPU_DRIVER/NMachineSpecificOptions.xml" "$APPDATA_DIRECTORY/Roaming/Autodesk/Neutron Platform/Options/NMachineSpecificOptions.xml" || return + cp "$SELECTED_DIRECTORY/downloads/$GPU_DRIVER/NMachineSpecificOptions.xml" "$APPDATA_DIRECTORY/Local/Autodesk/Neutron Platform/Options/NMachineSpecificOptions.xml" || return + cp "$SELECTED_DIRECTORY/downloads/$GPU_DRIVER/NMachineSpecificOptions.xml" "$APPLICATION_DATA_DIRECTORY/Autodesk/Neutron Platform/Options/NMachineSpecificOptions.xml" || return } ############################################################################################################################################################### @@ -1267,51 +1293,29 @@ function wine_autodesk_fusion_install() { # Check and install the selected extensions function wine_autodesk_fusion_install_extensions() { if [[ "$SELECTED_EXTENSIONS" == *"CzechlocalizationforF360"* ]]; then - autodesk_fusion_extension_czech_locale + run_install_extension_client "Ceska_lokalizace_pro_Autodesk_Fusion.exe" fi if [[ "$SELECTED_EXTENSIONS" == *"HP3DPrintersforAutodesk®Fusion®"* ]]; then - autodesk_fusion_extension_hp_3dprinter_connector + run_install_extension_client "HP_3DPrinters_for_Fusion360-win64.msi" fi if [[ "$SELECTED_EXTENSIONS" == *"MarkforgedforAutodesk®Fusion®"* ]]; then - autodesk_fusion_extension_markforged + run_install_extension_client "Markforged_for_Fusion360-win64.msi" fi if [[ "$SELECTED_EXTENSIONS" == *"OctoPrintforAutodesk®Fusion360™"* ]]; then - autodesk_fusion_extension_octoprint + run_install_extension_client "OctoPrint_for_Fusion360-win64.msi" fi if [[ "$SELECTED_EXTENSIONS" == *"UltimakerDigitalFactoryforAutodeskFusion360™"* ]]; then - autodesk_fusion_extension_ultimaker_digital_factory + run_install_extension_client "Ultimaker_Digital_Factory-win64.msi" fi } -function autodesk_fusion_extension_czech_locale { - run_install_extension_client "Ceska_lokalizace_pro_Autodesk_Fusion.exe" -} - -function autodesk_fusion_extension_hp_3dprinter_connector { - run_install_extension_client "HP_3DPrinters_for_Fusion360-win64.msi" -} - -function autodesk_fusion_extension_markforged { - run_install_extension_client "Markforged_for_Fusion360-win64.msi" -} - -function autodesk_fusion_extension_octoprint { - run_install_extension_client "OctoPrint_for_Fusion360-win64.msi" -} - -function autodesk_fusion_extension_ultimaker_digital_factory { - run_install_extension_client "Ultimaker_Digital_Factory-win64.msi" -} - -function run_install_extension_client { +function run_install_extension_client() { local EXTENSION_FILE="$1" - cp "$SELECTED_DIRECTORY/extensions/$EXTENSION_FILE" "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads" + local WIN_EXTENSION_DIRECTORY="C:\\users\\$USER\\Downloads\\extensions" if [[ "$EXTENSION_FILE" == *.msi ]]; then - cd "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads" || return - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" wine msiexec /i "$EXTENSION_FILE" + WINEPREFIX="$WINE_PFX" wine msiexec /i "$WIN_EXTENSION_DIRECTORY\\$EXTENSION_FILE" /quiet else - cd "$SELECTED_DIRECTORY/wineprefixes/default/drive_c/users/$USER/Downloads" || return - WINEPREFIX="$SELECTED_DIRECTORY/wineprefixes/default" wine "$EXTENSION_FILE" + WINEPREFIX="$WINE_PFX" wine "$SELECTED_DIRECTORY/downloads/$EXTENSION_FILE" fi } @@ -1321,7 +1325,12 @@ function autodesk_fusion_safe_logfile() { # Log the Wineprefixes echo "$GPU_DRIVER" >> "$SELECTED_DIRECTORY/logs/wineprefixes.log" echo "$SELECTED_DIRECTORY" >> "$SELECTED_DIRECTORY/logs/wineprefixes.log" - echo "$SELECTED_DIRECTORY/wineprefixes/default" >> "$SELECTED_DIRECTORY/logs/wineprefixes.log" + echo "$WINE_PFX" >> "$SELECTED_DIRECTORY/logs/wineprefixes.log" + if [ -n "$PROTON_VERSION" ]; then + echo "$PROTON_VERSION" >> "$SELECTED_DIRECTORY/logs/wineprefixes.log" + else + echo "Wine" >> "$SELECTED_DIRECTORY/logs/wineprefixes.log" + fi } ############################################################################################################################################################################## diff --git a/files/setup/data/autodesk_fusion_launcher.sh b/files/setup/data/autodesk_fusion_launcher.sh index 4ac0665d..406bd6d6 100644 --- a/files/setup/data/autodesk_fusion_launcher.sh +++ b/files/setup/data/autodesk_fusion_launcher.sh @@ -22,22 +22,34 @@ ############################################################################################################################################################### # Check in which directory the autodesk_fusion_launcher.sh file is located. -WINEPREFIX_LOG_FILE=$HOME/.autodesk_fusion/logs/wineprefixes.log -AUTODESK_ROOT_DIRECTORY=$(awk 'NR == 2' "$WINEPREFIX_LOG_FILE") +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +# Make AUTODESK_ROOT_DIRECTORY absolute (one level up from the script dir) +AUTODESK_ROOT_DIRECTORY="$(cd "$SCRIPT_DIR/.." && pwd)" +WINEPREFIX_LOG_FILE="$AUTODESK_ROOT_DIRECTORY/logs/wineprefixes.log" +if [ ! -f "$WINEPREFIX_LOG_FILE" ]; then + echo "wineprefixes.log not found at $WINEPREFIX_LOG_FILE. Exiting..." + exit 1 +fi +LOG_AUTODESK_ROOT_DIRECTORY=$(awk 'NR == 2' "$WINEPREFIX_LOG_FILE") +if [ "$AUTODESK_ROOT_DIRECTORY" != "$LOG_AUTODESK_ROOT_DIRECTORY" ]; then + echo "Error: AUTODESK_ROOT_DIRECTORY does not match wineprefixes.log (line 2). Exiting..." + exit 1 +fi WINEPREFIX_DIRECTORY=$(awk 'NR == 3' "$WINEPREFIX_LOG_FILE") +PROTON_VERSION=$(awk 'NR == 4' "$WINEPREFIX_LOG_FILE") # This feature will check if there is a new version of Autodesk Fusion 360. -function check_autodesk_fusion_online_versions { - curl -o $HOME/.autodesk_fusion/logs/version.txt -L https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/build-version.txt - ONLINE_BUILD_VERSION=$(awk 'NR == 1' $AUTODESK_ROOT_DIRECTORY/logs/version.txt) - ONLINE_INSIDER_BUILD_VERSION=$(awk 'NR == 2' $AUTODESK_ROOT_DIRECTORY/logs/version.txt) +function check_autodesk_fusion_online_versions() { + curl -o "$AUTODESK_ROOT_DIRECTORY/logs/version.txt" -L https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/build-version.txt + ONLINE_BUILD_VERSION=$(awk 'NR == 1' "$AUTODESK_ROOT_DIRECTORY/logs/version.txt") + ONLINE_INSIDER_BUILD_VERSION=$(awk 'NR == 2' "$AUTODESK_ROOT_DIRECTORY/logs/version.txt") echo "Online Build-Version: $ONLINE_BUILD_VERSION" echo "Online Insider-Build-Version: $ONLINE_INSIDER_BUILD_VERSION" #check_versions #Update function not work correctly at the moment!!! run_autodesk_fusion } -function check_version_file { +function check_version_file() { # Find the newest version.txt file from the Autodesk Fusion 360 installation. AUTODESK_FUSION_API_VERSION=$(find "$WINEPREFIX_DIRECTORY" -name fusion_version.txt -printf "%T+ %p\n" | sort -r 2>&1 | head -n 1 | sed -r 's/.+0000000000 (.+)/\1/') if [ -f "$AUTODESK_FUSION_API_VERSION" ]; then @@ -49,7 +61,7 @@ function check_version_file { fi } -function check_versions { +function check_versions() { # Get the string from the version.txt file from FUSION360_API_VERSION SYSTEM_BUILD_VERSION=$(cat "$AUTODESK_FUSION_API_VERSION") echo "System Build-Version: $SYSTEM_BUILD_VERSION" @@ -62,14 +74,14 @@ function check_versions { fi } -function backup_old_version { +function backup_old_version() { # Backup the old version of the Autodesk Fusion 360 echo "Backup the old version of the Autodesk Fusion 360!" # Copy $wineprefix to $wineprefix-backup-$SYSTEM_BUILD_VERSION cp -r "$WINEPREFIX_DIRECTORY" "$WINEPREFIX_DIRECTORY-backup-$SYSTEM_BUILD_VERSION" } -function update { +function update() { echo "Update the Autodesk Fusion 360 version!" # Download the newest version of the Autodesk Fusion 360 AUTODESK_FUSION_INSTALLER="$AUTODESK_ROOT_DIRECTORY/downloads/Fusion360ClientInstaller.exe" @@ -82,13 +94,36 @@ function update { run_autodesk_fusion } +function run_autodesk_fusion() { + if [ "$PROTON_VERSION" == "Wine" ]; then + run_autodesk_fusion_wine + else + run_autodesk_fusion_proton + fi +} # You must change the first part ($HOME/.wineprefixes/fusion360) and the last part (WINEPREFIX="$HOME/.wineprefixes/fusion360") when you have installed Autodesk Fusion 360 into another directory! -function run_autodesk_fusion { - LAUNCHER="$(find "$WINEPREFIX_DIRECTORY" -name Fusion360.exe -printf "%T+ %p\n" | sort -r 2>&1 | head -n 1 | sed -r 's/.+0000000000 (.+)/\1/')" && echo $LAUNCHER && WINEPREFIX="$WINEPREFIX_DIRECTORY" WINEDEBUG=-all WINEDEBUG=-d3d wine "$LAUNCHER" +function run_autodesk_fusion_wine() { + LAUNCHER="$(find "$WINEPREFIX_DIRECTORY" -name Fusion360.exe -printf "%T+ %p\n" | sort -r 2>&1 | head -n 1 | cut -d' ' -f2-)" + echo $LAUNCHER && WINEPREFIX="$WINEPREFIX_DIRECTORY" WINEDEBUG=-all WINEDEBUG=-d3d wine "$LAUNCHER" # WINEDEBUG=-all = Logs everything, probably gives too much information in most cases, but may come in handy for subtle issues # WINEDEBUG=-d3d = Will turn off all d3d messages, and additionally disable checking for GL errors after operations. This may improve performance. } +function run_autodesk_fusion_proton() { + LAUNCHER="$(find "$WINEPREFIX_DIRECTORY" -name Fusion360.exe -printf "%T+ %p\n" | sort -r 2>&1 | head -n 1 | cut -d' ' -f2-)" + #LAUNCHER_WIN=$(echo "$LAUNCHER" | sed "s|$PROTONPREFIX_DIRECTORY/pfx/drive_c|C:|" | sed 's|/|\\|g') + STEAM_DIRECTORY="$HOME/.local/share/Steam" + PROTON_DIRECTORY="$STEAM_DIRECTORY/compatibilitytools.d/$PROTON_VERSION" + + if ! pgrep -x steam >/dev/null 2>&1; then + echo -e "$(gettext "${YELLOW}Starting Steam...${NOCOLOR}")" + steam &>/dev/null & + sleep 5 + fi + + echo $LAUNCHER && STEAM_COMPAT_CLIENT_INSTALL_PATH="$STEAM_DIRECTORY" STEAM_COMPAT_DATA_PATH="$AUTODESK_ROOT_DIRECTORY/protonprefix" "$PROTON_DIRECTORY/proton" run "$LAUNCHER" +} + ############################################################################################################################################################### # THE PROGRAM IS STARTED HERE: # ############################################################################################################################################################### diff --git a/files/setup/resource/.desktop/Autodesk Fusion.desktop b/files/setup/resource/.desktop/Autodesk Fusion.desktop new file mode 100644 index 00000000..87a95b9a --- /dev/null +++ b/files/setup/resource/.desktop/Autodesk Fusion.desktop @@ -0,0 +1,24 @@ +[Desktop Entry] +Name=Autodesk Fusion +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 is a cloud-based 3D modeling, CAD, CAM, and PCB software platform for product design and manufacturing. +Comment[cs]=Autodesk Fusion je cloudová platforma pro 3D modelování, CAD, CAM a PCB určená k navrhování a výrobě produktů. +Comment[de]=Autodesk Fusion ist eine cloudbasierte Softwareplattform für Modellierung, CAD, CAM, CAE und Leiterplatten in 3D für Produktdesign und Fertigung. +Comment[es]=Autodesk Fusion 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 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 è 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、製品の設計と製造のためのクラウドベースの3Dモデリング、CAD、CAM、およびPCBソフトウェアプラットフォームです。 +Comment[ko]=Autodesk Fusion 제품 설계 및 제조를 위한 클라우드 기반 3D 모델링, CAD, CAM 및 PCB 소프트웨어 플랫폼입니다. +Comment[zh_CN]=Autodesk Fusion 是一个基于云的 3D 建模、CAD、CAM 和 PCB 软件平台,用于产品设计和制造。 +Type=Application +Categories=Education;Engineering;Graphics;Science +StartupNotify=true +Terminal=false diff --git a/files/setup/resource/.desktop/adskidmgr-opener.desktop b/files/setup/resource/.desktop/adskidmgr-opener.desktop new file mode 100644 index 00000000..9b6e58c8 --- /dev/null +++ b/files/setup/resource/.desktop/adskidmgr-opener.desktop @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Application +Name=adskidmgr Scheme Handler +StartupNotify=false +MimeType=x-scheme-handler/adskidmgr; diff --git a/files/setup/resource/video_driver/dxvk/DXVK.reg b/files/setup/resource/video_driver/DXVK/DXVK.reg similarity index 100% rename from files/setup/resource/video_driver/dxvk/DXVK.reg rename to files/setup/resource/video_driver/DXVK/DXVK.reg diff --git a/files/setup/resource/video_driver/dxvk/NMachineSpecificOptions.xml b/files/setup/resource/video_driver/DXVK/NMachineSpecificOptions.xml similarity index 82% rename from files/setup/resource/video_driver/dxvk/NMachineSpecificOptions.xml rename to files/setup/resource/video_driver/DXVK/NMachineSpecificOptions.xml index 7daf4162..27f56687 100644 --- a/files/setup/resource/video_driver/dxvk/NMachineSpecificOptions.xml +++ b/files/setup/resource/video_driver/DXVK/NMachineSpecificOptions.xml @@ -1,7 +1,9 @@ - + + + diff --git a/files/setup/resource/video_driver/opengl/NMachineSpecificOptions.xml b/files/setup/resource/video_driver/OpenGL/NMachineSpecificOptions.xml similarity index 82% rename from files/setup/resource/video_driver/opengl/NMachineSpecificOptions.xml rename to files/setup/resource/video_driver/OpenGL/NMachineSpecificOptions.xml index 485aab5e..284ea9ef 100644 --- a/files/setup/resource/video_driver/opengl/NMachineSpecificOptions.xml +++ b/files/setup/resource/video_driver/OpenGL/NMachineSpecificOptions.xml @@ -1,7 +1,9 @@ - + + +