mirror of
https://github.com/ayufan/steam-deck-tools.git
synced 2025-12-06 07:12:01 +01:00
324 lines
11 KiB
Plaintext
324 lines
11 KiB
Plaintext
!pragma warning error all
|
|
|
|
!define /ifndef VERSION "0.0.1"
|
|
!define /ifndef BUILD_DIR "../build-Debug"
|
|
!define /ifndef OUTPUT_FILE "../SteamDeckTools_Setup_${VERSION}.exe"
|
|
|
|
;--------------------------------
|
|
;Include Modern UI
|
|
|
|
!include "MUI2.nsh"
|
|
|
|
;--------------------------------
|
|
;General
|
|
|
|
;Properly display all languages (Installer will not work on Windows 95, 98 or ME!)
|
|
Unicode true
|
|
|
|
;Name and file
|
|
Name "Windows Deck Tools for Steam Deck"
|
|
OutFile "${OUTPUT_FILE}"
|
|
|
|
;Default installation folder
|
|
InstallDir "$PROGRAMFILES64\SteamDeckTools"
|
|
|
|
;Get installation folder from registry if available
|
|
InstallDirRegKey HKCU "Software\SteamDeckTools" ""
|
|
|
|
;Request application privileges for Windows Vista
|
|
RequestExecutionLevel admin
|
|
|
|
; Version
|
|
VIProductVersion "${VERSION}.0"
|
|
VIFileVersion "${VERSION}.0"
|
|
VIAddVersionKey "FileVersion" "${VERSION}"
|
|
VIAddVersionKey "LegalCopyright" "(C) Kamil Trzciński 2022."
|
|
VIAddVersionKey "FileDescription" "Windows Deck Tools for Steam Deck"
|
|
|
|
;--------------------------------
|
|
;Interface Settings
|
|
|
|
!define MUI_ABORTWARNING
|
|
|
|
;Show all languages, despite user's codepage
|
|
!define MUI_LANGDLL_ALLLANGUAGES
|
|
|
|
;--------------------------------
|
|
;Interface Configuration
|
|
|
|
!define MUI_HEADERIMAGE
|
|
#!define MUI_HEADERIMAGE_BITMAP "logo.bmp" ; optional
|
|
|
|
|
|
;--------------------------------
|
|
;Language Selection Dialog Settings
|
|
|
|
;Remember the installer language
|
|
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
|
|
!define MUI_LANGDLL_REGISTRY_KEY "Software\Modern UI Test"
|
|
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
|
|
|
|
;--------------------------------
|
|
;Pages
|
|
|
|
!insertmacro MUI_PAGE_WELCOME
|
|
!insertmacro MUI_PAGE_LICENSE "..\License.md"
|
|
!insertmacro MUI_PAGE_COMPONENTS
|
|
!insertmacro MUI_PAGE_DIRECTORY
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
!insertmacro MUI_PAGE_FINISH
|
|
|
|
!insertmacro MUI_UNPAGE_WELCOME
|
|
!insertmacro MUI_UNPAGE_CONFIRM
|
|
!insertmacro MUI_UNPAGE_LICENSE "..\License.md"
|
|
!insertmacro MUI_UNPAGE_COMPONENTS
|
|
!insertmacro MUI_UNPAGE_DIRECTORY
|
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|
!insertmacro MUI_UNPAGE_FINISH
|
|
|
|
;--------------------------------
|
|
;Languages
|
|
|
|
!insertmacro MUI_LANGUAGE "English" ; The first language is the default language
|
|
!insertmacro MUI_LANGUAGE "French"
|
|
!insertmacro MUI_LANGUAGE "German"
|
|
!insertmacro MUI_LANGUAGE "Spanish"
|
|
!insertmacro MUI_LANGUAGE "SpanishInternational"
|
|
!insertmacro MUI_LANGUAGE "SimpChinese"
|
|
!insertmacro MUI_LANGUAGE "TradChinese"
|
|
!insertmacro MUI_LANGUAGE "Japanese"
|
|
!insertmacro MUI_LANGUAGE "Korean"
|
|
!insertmacro MUI_LANGUAGE "Italian"
|
|
!insertmacro MUI_LANGUAGE "Dutch"
|
|
!insertmacro MUI_LANGUAGE "Danish"
|
|
!insertmacro MUI_LANGUAGE "Swedish"
|
|
!insertmacro MUI_LANGUAGE "Norwegian"
|
|
!insertmacro MUI_LANGUAGE "NorwegianNynorsk"
|
|
!insertmacro MUI_LANGUAGE "Finnish"
|
|
!insertmacro MUI_LANGUAGE "Greek"
|
|
!insertmacro MUI_LANGUAGE "Russian"
|
|
!insertmacro MUI_LANGUAGE "Portuguese"
|
|
!insertmacro MUI_LANGUAGE "PortugueseBR"
|
|
!insertmacro MUI_LANGUAGE "Polish"
|
|
!insertmacro MUI_LANGUAGE "Ukrainian"
|
|
!insertmacro MUI_LANGUAGE "Czech"
|
|
!insertmacro MUI_LANGUAGE "Slovak"
|
|
!insertmacro MUI_LANGUAGE "Croatian"
|
|
!insertmacro MUI_LANGUAGE "Bulgarian"
|
|
!insertmacro MUI_LANGUAGE "Hungarian"
|
|
!insertmacro MUI_LANGUAGE "Thai"
|
|
!insertmacro MUI_LANGUAGE "Romanian"
|
|
!insertmacro MUI_LANGUAGE "Latvian"
|
|
!insertmacro MUI_LANGUAGE "Macedonian"
|
|
!insertmacro MUI_LANGUAGE "Estonian"
|
|
!insertmacro MUI_LANGUAGE "Turkish"
|
|
!insertmacro MUI_LANGUAGE "Lithuanian"
|
|
!insertmacro MUI_LANGUAGE "Slovenian"
|
|
!insertmacro MUI_LANGUAGE "Serbian"
|
|
!insertmacro MUI_LANGUAGE "SerbianLatin"
|
|
!insertmacro MUI_LANGUAGE "Arabic"
|
|
!insertmacro MUI_LANGUAGE "Farsi"
|
|
!insertmacro MUI_LANGUAGE "Hebrew"
|
|
!insertmacro MUI_LANGUAGE "Indonesian"
|
|
!insertmacro MUI_LANGUAGE "Mongolian"
|
|
!insertmacro MUI_LANGUAGE "Luxembourgish"
|
|
!insertmacro MUI_LANGUAGE "Albanian"
|
|
!insertmacro MUI_LANGUAGE "Breton"
|
|
!insertmacro MUI_LANGUAGE "Belarusian"
|
|
!insertmacro MUI_LANGUAGE "Icelandic"
|
|
!insertmacro MUI_LANGUAGE "Malay"
|
|
!insertmacro MUI_LANGUAGE "Bosnian"
|
|
!insertmacro MUI_LANGUAGE "Kurdish"
|
|
!insertmacro MUI_LANGUAGE "Irish"
|
|
!insertmacro MUI_LANGUAGE "Uzbek"
|
|
!insertmacro MUI_LANGUAGE "Galician"
|
|
!insertmacro MUI_LANGUAGE "Afrikaans"
|
|
!insertmacro MUI_LANGUAGE "Catalan"
|
|
!insertmacro MUI_LANGUAGE "Esperanto"
|
|
!insertmacro MUI_LANGUAGE "Asturian"
|
|
!insertmacro MUI_LANGUAGE "Basque"
|
|
!insertmacro MUI_LANGUAGE "Pashto"
|
|
!insertmacro MUI_LANGUAGE "ScotsGaelic"
|
|
!insertmacro MUI_LANGUAGE "Georgian"
|
|
!insertmacro MUI_LANGUAGE "Vietnamese"
|
|
!insertmacro MUI_LANGUAGE "Welsh"
|
|
!insertmacro MUI_LANGUAGE "Armenian"
|
|
!insertmacro MUI_LANGUAGE "Corsican"
|
|
!insertmacro MUI_LANGUAGE "Tatar"
|
|
!insertmacro MUI_LANGUAGE "Hindi"
|
|
|
|
;--------------------------------
|
|
;Reserve Files
|
|
|
|
;If you are using solid compression, files that are required before
|
|
;the actual installation should be stored first in the data block,
|
|
;because this will make your installer start faster.
|
|
|
|
!insertmacro MUI_RESERVEFILE_LANGDLL
|
|
|
|
;--------------------------------
|
|
;Installer Sections
|
|
|
|
Section "" ShutdownTools
|
|
; Shutdown existing processes
|
|
#!if /FileExists "$INSTDIR\Updater.exe"
|
|
ExecWait '"$INSTDIR\Updater.exe" -uninstall'
|
|
#!endif
|
|
SectionEnd
|
|
|
|
Section "Windows Deck Tools for Steam Deck" SteamDeckTools
|
|
SetShellVarContext All
|
|
SectionIn RO
|
|
|
|
SetOutPath "$INSTDIR"
|
|
SetRegView 64
|
|
|
|
;ADD YOUR OWN FILES HERE...
|
|
File /r "${BUILD_DIR}\*"
|
|
|
|
;Store installation folder
|
|
WriteRegStr HKLM "Software\SteamDeckTools" "" $INSTDIR
|
|
|
|
;Create uninstaller
|
|
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
|
|
|
; Create entry in Programs
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SteamDeckTools" \
|
|
"DisplayName" "Windows Deck Tools for Steam Deck - ${VERSION}"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SteamDeckTools" \
|
|
"UninstallString" "$\"$INSTDIR\Uninstall.exe$\""
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SteamDeckTools" \
|
|
"QuietUninstallString" "$\"$INSTDIR\Uninstall.exe$\" /S"
|
|
SectionEnd
|
|
|
|
Section "Desktop Shortcut" DesktopShortcut
|
|
SetShellVarContext All
|
|
CreateShortcut "$DESKTOP\Fan Control.lnk" "$INSTDIR\FanControl.exe"
|
|
CreateShortcut "$DESKTOP\Performance Overlay.lnk" "$INSTDIR\PerformanceOverlay.exe"
|
|
CreateShortcut "$DESKTOP\Power Control.lnk" "$INSTDIR\PowerControl.exe"
|
|
CreateShortcut "$DESKTOP\Steam Controller.lnk" "$INSTDIR\SteamController.exe"
|
|
SectionEnd
|
|
|
|
Section "Programs Folder Shortcut" ProgramsShortcut
|
|
SetShellVarContext All
|
|
CreateShortcut "$SMPROGRAMS\Steam Deck Tools\Fan Control.lnk" "$INSTDIR\FanControl.exe"
|
|
CreateShortcut "$SMPROGRAMS\Steam Deck Tools\Performance Overlay.lnk" "$INSTDIR\PerformanceOverlay.exe"
|
|
CreateShortcut "$SMPROGRAMS\Steam Deck Tools\Power Control.lnk" "$INSTDIR\PowerControl.exe"
|
|
CreateShortcut "$SMPROGRAMS\Steam Deck Tools\Steam Controller.lnk" "$INSTDIR\SteamController.exe"
|
|
CreateShortcut "$SMPROGRAMS\Steam Deck Tools\Check for Updates.lnk" "$INSTDIR\Updater.exe"
|
|
CreateShortcut "$SMPROGRAMS\Steam Deck Tools\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
|
SectionEnd
|
|
|
|
!ifdef USE_REDIST
|
|
Section "Visual Studio Runtime" VisualStudioRuntime
|
|
SetOutPath "$INSTDIR\Redist"
|
|
File "Redist\vc_redist.x64.exe"
|
|
ExecWait '"$INSTDIR\Redist\vc_redist.x64.exe" /passive /norestart'
|
|
SectionEnd
|
|
|
|
Section "ViGEmBus Setup 1.21.442" ViGEmBus
|
|
SetOutPath "$INSTDIR\Redist"
|
|
File "Redist\ViGEmBus_1.21.442_x64_x86_arm64.exe"
|
|
ExecWait '"$INSTDIR\Redist\ViGEmBus_1.21.442_x64_x86_arm64.exe" /quiet /norestart'
|
|
SectionEnd
|
|
|
|
Section ".NET Desktop Runtime 6.0.11" DotNetRuntime
|
|
SetOutPath "$INSTDIR\Redist"
|
|
File "Redist\windowsdesktop-runtime-6.0.11-win-x64.exe"
|
|
ExecWait '"$INSTDIR\Redist\windowsdesktop-runtime-6.0.11-win-x64.exe" /passive /norestart'
|
|
SectionEnd
|
|
!endif
|
|
|
|
!ifdef USE_WINGET
|
|
Section "Visual Studio Runtime" VisualStudioRuntime
|
|
ExecWait 'winget install -e --id Microsoft.VC++2015-2022Redist-x64 --override "/passive /norestart"'
|
|
SectionEnd
|
|
|
|
Section "ViGEmBus Setup" ViGEmBus
|
|
ExecWait 'winget install -e --id ViGEm.ViGEmBus'
|
|
SectionEnd
|
|
|
|
Section ".NET Desktop Runtime 6.0" DotNetRuntime
|
|
ExecWait 'winget install -e --id Microsoft.DotNet.DesktopRuntime.6 --override "/passive /norestart"'
|
|
SectionEnd
|
|
!endif
|
|
|
|
Section "Run on Startup" StartAllComponents
|
|
Exec '"$INSTDIR\FanControl.exe" -run-on-startup'
|
|
Exec '"$INSTDIR\PerformanceOverlay.exe" -run-on-startup'
|
|
Exec '"$INSTDIR\PowerControl.exe" -run-on-startup'
|
|
Exec '"$INSTDIR\SteamController.exe" -run-on-startup'
|
|
SectionEnd
|
|
|
|
Section /o "Disable Check for Updates" DisableCheckForUpdates
|
|
SetShellVarContext All
|
|
FileOpen $0 "$INSTDIR\DisableCheckForUpdates.txt" w
|
|
FileClose $0
|
|
SectionEnd
|
|
|
|
;--------------------------------
|
|
;Installer Functions
|
|
|
|
Function .onInit
|
|
|
|
!insertmacro MUI_LANGDLL_DISPLAY
|
|
|
|
FunctionEnd
|
|
|
|
;--------------------------------
|
|
;Descriptions
|
|
|
|
;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC
|
|
|
|
;Assign descriptions to sections
|
|
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${SteamDeckTools} "The Steam Deck Tools components."
|
|
!ifdef USE_REDIST | USE_WINGET
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${VisualStudioRuntime} "Install Visual Studio C++ Runtime 2015-2022."
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${DotNetRuntime} "Install .NET Desktop Runtime 6.0."
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${ViGEmBus} "Install ViGEmBus Driver."
|
|
!endif
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${DesktopShortcut} "Create a shortcut on your desktop."
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${ProgramsShortcut} "Create a shortcut in your start menu folder."
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${StartAllComponents} "Start all components on system boot."
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${DisableCheckForUpdates} "This application might connect remote server to check for updates or track errors. This helps this project development."
|
|
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
|
|
|
;--------------------------------
|
|
;Uninstaller Section
|
|
|
|
Section "Uninstall"
|
|
SetShellVarContext all
|
|
|
|
ExecWait '"$INSTDIR\FanControl.exe" -uninstall'
|
|
ExecWait '"$INSTDIR\PerformanceOverlay.exe" -uninstall'
|
|
ExecWait '"$INSTDIR\PowerControl.exe" -uninstall'
|
|
ExecWait '"$INSTDIR\SteamController.exe" -uninstall'
|
|
ExecWait '"$INSTDIR\Updater.exe" -uninstall'
|
|
|
|
Delete "$INSTDIR\*"
|
|
Delete "$DESKTOP\Fan Control.lnk"
|
|
Delete "$DESKTOP\Performance Overlay.lnk"
|
|
Delete "$DESKTOP\Power Control.lnk"
|
|
Delete "$DESKTOP\Steam Controller.lnk"
|
|
Delete "$SMPROGRAMS\Steam Deck Tools\Fan Control.lnk"
|
|
Delete "$SMPROGRAMS\Steam Deck Tools\Performance Overlay.lnk"
|
|
Delete "$SMPROGRAMS\Steam Deck Tools\Power Control.lnk"
|
|
Delete "$SMPROGRAMS\Steam Deck Tools\Steam Controller.lnk"
|
|
Delete "$SMPROGRAMS\Steam Deck Tools\Check for Updates.lnk"
|
|
Delete "$SMPROGRAMS\Steam Deck Tools\Uninstall.lnk"
|
|
RMDir "$SMPROGRAMS\Steam Deck Tools"
|
|
|
|
DeleteRegKey /ifempty HKLM "Software\SteamDeckTools"
|
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SteamDeckTools"
|
|
SectionEnd
|
|
|
|
;--------------------------------
|
|
;Uninstaller Functions
|
|
|
|
Function un.onInit
|
|
|
|
!insertmacro MUI_UNGETLANGUAGE
|
|
|
|
FunctionEnd
|