@ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION SET "repo=https://git.mylloon.fr/Anri/confOS/raw/branch/main" SET "local=%HOMEPATH%\Documents\Local" SET "startmenu=%APPDATA%\Microsoft\Windows\Start Menu\Programs" MKDIR "!local!" 2>NUL :: => NO-ADMIN RIGHTS <= fltmc >NUL 2>&1 || ( ECHO Please wait until the administrator popup appears. :: === Update winget to latest version == PowerShell -Command "" ^ "Invoke-WebRequest -Uri https://aka.ms/getwinget -OutFile winget.msixbundle;" ^ "Add-AppPackage -ForceApplicationShutdown .\winget.msixbundle;" ^ "del .\winget.msixbundle" :: === Scripts from ./windows directory == PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/update.bat -OutFile '!local!\update.bat'" PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/clean.bat -OutFile '!local!\ctmpf.bat'" PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/installers/spotify.bat -OutFile '!local!\blockthespot.bat'" PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/installers/vencord.bat -OutFile '!local!\vencord_installer.bat'" PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/fix_nvidia_wsl.bat -OutFile '!local!\fix_nvidia_wsl.bat'" PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/fix_mihoyo_shortcut.bat -OutFile '!local!\fix_mihoyo_shortcut.bat'" PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/start_obs_as_shadowplay.bat -OutFile '%LOCALAPPDATA%\start_obs_as_shadowplay.bat'" :: === Install Spotify == DEL "%APPDATA%\Spotify" :: Use already downloaded script ECHO Y| CMD /c "!local!\blockthespot.bat" yes PowerShell -Command "Stop-Process -Name Spotify -ErrorAction SilentlyContinue" :: Start as administrator PowerShell Start -Verb RunAs "%0 noskipadmin" 2>NUL || ( EXIT 1 ) EXIT 0 ) :: => ADMIN RIGHTS <= IF NOT "%1"=="noskipadmin" ( ECHO You have to run the script as normal user first. PAUSE EXIT 0 ) :: === Registery modifications == ECHO Registery entries... :: Right click of Windows 10 @REM REG ADD "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve :: Disabling widgets REG ADD "HKLM\Software\Policies\Microsoft\Dsh" /v AllowNewsAndInterests /t REG_DWORD /d 0 /f :: Disabling hibernation (prevents computer to really shutdown) REG ADD "HKLM\System\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 0 /f powercfg /H off :: Disabling the SysMain service (preload some apps in memory) sc stop "SysMain" & sc config "SysMain" start=disabled :: Added confirmation when trashing REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v ConfirmFileDelete /t REG_DWORD /d 1 /f :: Don't create Zone.Identifier REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments" /v SaveZoneInformation /t REG_DWORD /d 1 /f :: Disables memory integrity :: see https://support.microsoft.com/en-us/windows/options-to-optimize-gaming-performance-in-windows-11-a255f612-2949-4373-a566-ff6f3f474613 REG ADD "HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v Enabled /t REG_DWORD /d 0 /f :: Disables sticky keys REG ADD "HKCU\Control Panel\Accessibility\StickyKeys" /v Flags /t REG_SZ /d 506 /f :: Remove default shortcuts for changing input language and keyboard layout :: WIN+Space still available REG ADD "HKCU\Keyboard Layout\toggle" /v "Hotkey" /t REG_SZ /d 3 /f REG ADD "HKCU\Keyboard Layout\toggle" /v "Language Hotkey" /t REG_SZ /d 3 /f :: Disable Game Bar REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\GameDVR" /v AppCaptureEnabled /t REG_DWORD /d 0 /f REG ADD "HKCU\System\GameConfigStore" /v GameDVR_Enabled /t REG_DWORD /d 0 /f :: Edge tweaks REG ADD "HKLM\Software\Policies\Microsoft\Edge" /v HubsSidebarEnabled /t REG_DWORD /d 0 /f REG ADD "HKLM\Software\Policies\Microsoft\Edge" /v ShowRecommendationsEnabled /t REG_DWORD /d 0 /f REG ADD "HKLM\Software\Policies\Microsoft\Edge" /v SpotlightExperiencesAndRecommendationsEnabled /t REG_DWORD /d 0 /f :: Disable Windows Copilot REG ADD "HKCU\Software\Policies\Microsoft\Windows\WindowsCopilot" /v TurnOffWindowsCopilot /t REG_DWORD /d 1 /f :: Disable checkboxes in explorer REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v AutoCheckSelect /t REG_DWORD /d 0 /f :: Set "This PC" default window when opening explorer REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v LaunchTo /t REG_DWORD /d 1 /f :: Show file extension REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f :: Show hidden files REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t REG_DWORD /d 1 /f :: Disable web search in start menu REG ADD "HKCU\Software\Policies\Microsoft\Windows\Explorer" /v DisableSearchBoxSuggestions /t REG_DWORD /d 1 /f :: Disable ad in file explorer REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSyncProviderNotifications /t REG_DWORD /d 0 /f :: Disable ad in login screen REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v RotatingLockScreenOverlayEnabled /t REG_DWORD /d 0 /f REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v SubscribedContent-338387Enabled /t REG_DWORD /d 0 /f :: Disable ad in settings and notifications REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v SubscribedContent-338393Enabled /t REG_DWORD /d 0 /f REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v SubscribedContent-353694Enabled /t REG_DWORD /d 0 /f REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v SubscribedContent-353696Enabled /t REG_DWORD /d 0 /f :: Disable ad at boot REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\UserProfileEngagement" /v ScoobeSystemSettingEnabled /t REG_DWORD /d 0 /f REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v SubscribedContent-310093Enabled /t REG_DWORD /d 0 /f :: Disable targeted ad REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" /v Enabled /t REG_DWORD /d 0 /f REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Privacy" /v TailoredExperiencesWithDiagnosticDataEnabled /t REG_DWORD /d 0 /f :: Disable ad in start menu REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_IrisRecommendations /t REG_DWORD /d 0 /f :: Disable HAGS :: see https://obsproject.com/wiki/How-to-disable-Windows-10-Hardware-GPU-Scheduler REG ADD "HKLM\System\CurrentControlSet\Control\GraphicsDrivers" /v HwSchMode /t REG_DWORD /d 1 /f :: === Install optional features == PowerShell -Command "" ^ "Get-WindowsCapability -Online -Name 'App.WirelessDisplay.Connect*' | Add-WindowsCapability -Online" :: === WinGet == :: Auto accept ToT ECHO Y | winget list >NUL SET "pmi=winget install --silent --exact" :: C++ libraries SET ^"cpp_libs=^ Microsoft.VCRedist.2005.x86 Microsoft.VCRedist.2005.x64 ^ Microsoft.VCRedist.2008.x86 Microsoft.VCRedist.2008.x64 ^ Microsoft.VCRedist.2010.x86 Microsoft.VCRedist.2010.x64 ^ Microsoft.VCRedist.2012.x86 Microsoft.VCRedist.2012.x64 ^ Microsoft.VCRedist.2013.x86 Microsoft.VCRedist.2013.x64 ^ Microsoft.VCRedist.2015+.x86 Microsoft.VCRedist.2015+.x64" ECHO C++ libraries... for %%i in (!cpp_libs!) do ( !pmi! %%i ) :: .NET libraries SET ^"net_libs=^ Microsoft.DotNet.DesktopRuntime.3_1 Microsoft.DotNet.SDK.3_1 ^ Microsoft.DotNet.DesktopRuntime.5 Microsoft.DotNet.SDK.5 ^ Microsoft.DotNet.DesktopRuntime.6 Microsoft.DotNet.SDK.6 ^ Microsoft.DotNet.DesktopRuntime.7 Microsoft.DotNet.SDK.7 ^ Microsoft.DotNet.DesktopRuntime.8 Microsoft.DotNet.SDK.8" ECHO .NET libraries... for %%i in (!net_libs!) do ( !pmi! %%i ) :: Java dev kits SET ^"java_jdk=^ Oracle.JavaRuntimeEnvironment EclipseAdoptium.Temurin.17.JDK ^ EclipseAdoptium.Temurin.21.JDK" ECHO JDK... for %%i in (!java_jdk!) do ( !pmi! %%i ) :: Drivers @REM SET ^"drivers=^ @REM Nvidia.CUDA" @REM ECHO Drivers... @REM for %%i in (!drivers!) do ( @REM !pmi! %%i @REM ) :: Applications SET ^"apps=^ Mozilla.Firefox M2Team.NanaZip GIMP.GIMP Rem0o.FanControl ^ voidtools.Everything.Lite VideoLAN.VLC Obsidian.Obsidian Parsec.Parsec ^ Microsoft.VisualStudioCode Bitwarden.Bitwarden sylikc.JPEGView ^ TheDocumentFoundation.LibreOffice Armin2208.WindowsAutoNightMode ^ OBSProject.OBSStudio Xournal++.Xournal++ Microsoft.PowerToys KDE.KDEConnect ^ OpenWhisperSystems.Signal TenacityTeam.Tenacity Microsoft.PowerShell" ECHO Apps... for %%i in (!apps!) do ( !pmi! %%i ) SET ^"games=^ RiotGames.LeagueOfLegends.EUW RiotGames.Valorant.EU Valve.Steam ^ HeroicGamesLauncher.HeroicGamesLauncher PrismLauncher.PrismLauncher ^ ppy.osu pizzaboxer.Bloxstrap" ECHO Games... for %%i in (!games!) do ( !pmi! %%i ) :: === Install WSL == ECHO WSL... wsl --install --no-distribution :: === Activate Windows == @REM TODO: Fix command, see https://massgrave.dev/command_line_switches#uses-in-powershell-one-liner @REM PowerShell -Command "" ^ @REM "& ([ScriptBlock]::Create((irm https://get.activated.win )))" ^ @REM "/HWID" :: === Modules for Windows Update == PowerShell -Command "Install-PackageProvider -Name NuGet -Force" PowerShell -Command "Install-Module -Name PSWindowsUpdate -Force" :: === Geek Uninstaller == PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/installers/geek.bat -OutFile '%TEMP%\geek.bat'" CMD /c "%TEMP%\geek.bat" yes :: === LosslessCut == PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/installers/losslesscut.bat -OutFile '%TEMP%\losslesscut.bat'" CMD /c "%TEMP%\losslesscut.bat" yes :: === DSR == PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/installers/dsr.bat -OutFile '%TEMP%\dsr.bat'" CMD /c "%TEMP%\dsr.bat" yes :: === Vencord == :: Use already downloaded script CMD /c "!local!\vencord_installer.bat" yes :: === OpenTabletDriver == ECHO OpenTabletDriver... PowerShell -Command "" ^ "$archive = '%TEMP%\OpenTabletDriver.win-x64.zip';" ^ "Invoke-WebRequest -Uri https://github.com/OpenTabletDriver/OpenTabletDriver/releases/latest/download/OpenTabletDriver.win-x64.zip -OutFile $archive;" ^ "Expand-Archive -Path $archive -DestinationPath '%ProgramFiles%\OpenTabletDriver' -Force;" ^ "$WshShell = New-Object -comObject WScript.Shell;" ^ "$Shortcut = $WshShell.CreateShortcut('!startmenu!\OpenTabletDriver.lnk');" ^ "$Shortcut.TargetPath = '%ProgramFiles%\OpenTabletDriver\OpenTabletDriver.UX.Wpf.exe';" ^ "$Shortcut.WorkingDirectory = '%ProgramFiles%\OpenTabletDriver';" ^ "$Shortcut.Save();" ^ "Remove-Item -Force $archive" REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTabletDriver" /f /v DisplayName /t REG_SZ /d "OpenTabletDriver" REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTabletDriver" /f /v InstallLocation /t REG_SZ /d "%ProgramFiles%\OpenTabletDriver" :: WindowsInk for OpenTabletDriver ECHO WindowsInk support for OpenTabletDriver... PowerShell -Command "Invoke-WebRequest -Uri https://github.com/X9VoiD/vmulti-bin/releases/download/v1.0/VMulti.Driver.zip -OutFile '%TEMP%\VMulti-Driver.zip'" PowerShell -Command "Expand-Archive -Path '%TEMP%\VMulti-Driver.zip' -DestinationPath '%TEMP%\VMulti-Driver' -Force" CALL "%TEMP%\VMulti-Driver\install_hiddriver.bat" PowerShell -Command "Invoke-WebRequest -Uri https://github.com/X9VoiD/VoiDPlugins/releases/latest/download/WindowsInk.zip -OutFile '%TEMP%\WindowsInk.zip'" PowerShell -Command "Expand-Archive -Path '%TEMP%\WindowsInk.zip' -DestinationPath '%LOCALAPPDATA%\OpenTabletDriver\Plugins\Windows Ink' -Force" :: Presets of OpenTabletDriver ECHO Downloading OpenTabletDriver presets... MKDIR "%LOCALAPPDATA%\OpenTabletDriver\Presets" 2>NUL PowerShell -Command "Invoke-WebRequest -Uri !repo!/opentabletdriver/vertical-main.json -OutFile '%LOCALAPPDATA%\OpenTabletDriver\Presets\vertical-main.json'" PowerShell -Command "Invoke-WebRequest -Uri !repo!/opentabletdriver/vertical-second.json -OutFile '%LOCALAPPDATA%\OpenTabletDriver\Presets\vertical-second.json'" :: Settings of OpenTabletDriver, using 'vertical-main.json' as default settings ECHO Setting up OpenTabletDriver... XCOPY "%LOCALAPPDATA%\OpenTabletDriver\Presets\vertical-main.json" "%LOCALAPPDATA%\OpenTabletDriver\settings.json" /-I /Y :: Start minimized at startup PowerShell -Command "" ^ "$WshShell = New-Object -comObject WScript.Shell;" ^ "$Shortcut = $WshShell.CreateShortcut('!startmenu!\Startup\OpenTabletDriver.lnk');" ^ "$Shortcut.TargetPath = '%ProgramFiles%\OpenTabletDriver\OpenTabletDriver.UX.Wpf.exe';" ^ "$Shortcut.WorkingDirectory = '%ProgramFiles%\OpenTabletDriver';" ^ "$Shortcut.WindowStyle = 7;" ^ "$Shortcut.Save()" :: === NOWT == PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/installers/nowt.bat -OutFile '%TEMP%\nowt.bat'" CMD /c "%TEMP%\nowt.bat" yes :: === Deceive == PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/installers/deceive.bat -OutFile '%TEMP%\deceive.bat'" CMD /c "%TEMP%\deceive.bat" yes :: === Xournal++ == :: TODO: Winget report an incorrect hash on installation, :: that's why we're installing it manually @REM ECHO Xournal++... @REM PowerShell -Command "" ^ @REM "$repo = 'xournalpp/xournalpp';" ^ @REM "$releases = \"https://api.github.com/repos/$repo/releases\";" ^ @REM "$tag = (Invoke-WebRequest $releases | ConvertFrom-Json)[1].tag_name;" ^ @REM "$file = \"xournalpp-$($tag.substring(1))-windows.zip\";" ^ @REM "$link = \"https://github.com/$repo/releases/download/$tag/$file\";" ^ @REM "$archive = 'xournalpp.zip';" ^ @REM "$outfile = Join-Path -Path $env:TEMP -ChildPath $archive;" ^ @REM "Invoke-WebRequest -Uri $link -OutFile $outfile;" ^ @REM "cd $env:TEMP;" ^ @REM "Expand-Archive -Path $archive -DestinationPath $env:TEMP -Force;" ^ @REM "$exe = $env:TEMP + '\' + $file.Substring(0, $file.Length - 3) + 'exe';" ^ @REM "Start-Process $exe /S;" ^ @REM "Remove-Item -Force $outfile;" ^ @REM "Remove-Item -Force $exe" :: === Minecraft == :: Copy shortcut of Prism Launcher to a Minecraft shortcut COPY /Y "!startmenu!\Prism Launcher.lnk" "!startmenu!\Minecraft.lnk" :: === Cubiomes viewer == PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/installers/cubiomesviewer.bat -OutFile '%TEMP%\cubiomesviewer.bat'" CMD /c "%TEMP%\cubiomesviewer.bat" yes :: === Firefox configuration == :: Open and close Firefox for the first time, generating a profile "%ProgramFiles%\Mozilla Firefox\firefox.exe" TIMEOUT 5 TASKKILL /im firefox.exe /F ECHO Firefox configuration... FOR /F "usebackq delims=" %%i IN (`dir /B /S "%APPDATA%\Mozilla\Firefox\Profiles\*.default-release"`) DO SET "vbc=%%i" PowerShell -Command "Invoke-WebRequest -Uri !repo!/.mozilla/firefox/user.js -OutFile '!vbc!\user.js'" :: Download addons settings in "Download" folder PowerShell -Command "Invoke-WebRequest -Uri !repo!/.mozilla/firefox/extensions/SponsorBlockConfig.json -OutFile '%HOMEPATH%\Downloads\SponsorBlockConfig.json'" PowerShell -Command "Invoke-WebRequest -Uri !repo!/.mozilla/firefox/extensions/auto-tab-discard-preferences.json -OutFile '%HOMEPATH%\Downloads\auto-tab-discard-preferences.json'" ECHO Configuration files for Firefox Addons are in the download folder (%HOMEPATH%\Downloads). :: === WindowsAutoNightMode == ECHO WindowsAutoNightMode configuration... MKDIR "%APPDATA%\AutoDarkMode" 2>NUL PowerShell -Command "Invoke-WebRequest -Uri !repo!/.config/WindowsAutoNightMode/config.yaml -OutFile '%APPDATA%\AutoDarkMode\config.yaml'" "%LOCALAPPDATA%\Programs\AutoDarkMode\adm-app\AutoDarkModeApp.exe" :: === OBS == :: Create directories for configurations MKDIR "%ProgramFiles%\obs-studio\config\obs-studio\basic\profiles\ReplayBuffer" 2>NUL MKDIR "%ProgramFiles%\obs-studio\config\obs-studio\basic\scenes" 2>NUL :: Download configuration PowerShell -Command "Invoke-WebRequest -Uri !repo!/.config/obs/global.ini -OutFile '%ProgramFiles%\obs-studio\config\obs-studio\global.ini'" PowerShell -Command "Invoke-WebRequest -Uri !repo!/.config/obs/basic/profiles/ReplayBuffer/basic.ini -OutFile '%ProgramFiles%\obs-studio\config\obs-studio\basic\profiles\ReplayBuffer\basic.ini'" PowerShell -Command "Invoke-WebRequest -Uri !repo!/.config/obs/basic/profiles/ReplayBuffer/recordEncoder.json -OutFile '%ProgramFiles%\obs-studio\config\obs-studio\basic\profiles\ReplayBuffer\recordEncoder.json'" PowerShell -Command "Invoke-WebRequest -Uri !repo!/.config/obs/basic/scenes/ReplayBuffer.json -OutFile '%ProgramFiles%\obs-studio\config\obs-studio\basic\scenes\ReplayBuffer.json'" :: OBS Scripts PowerShell -Command "" ^ "$archive = '%TEMP%\obs-replay-folders.zip';" ^ "Invoke-WebRequest -Uri https://github.com/Mylloon/obs-replay-folders/releases/latest/download/obs-replay-folders.zip -OutFile $archive;" ^ "Expand-Archive -Path $archive -DestinationPath '%ProgramFiles%\obs-studio\config' -Force;" ^ "Remove-Item -Force $archive" :: Setup the autostart of shadowplay SCHTASKS /Create /RU "%USERNAME%" /SC ONLOGON /TN "OBS Shadowplay" ^ /TR "'%LOCALAPPDATA%\start_obs_as_shadowplay.bat'" ^ /F /RL HIGHEST :: Allow system to go in sleep mode when OBS is running POWERCFG /REQUESTSOVERRIDE PROCESS obs64.exe DISPLAY SYSTEM AWAYMODE ECHO About OBS, you may need to adjust the screen ID by opening the OBS app ECHO in the systray as it may be not the same as the one presaved. :: === miHoYo Games launcher == PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/installers/collapse.bat -OutFile '%TEMP%\collapse.bat'" CMD /c "%TEMP%\collapse.bat" yes :: Fix games shortcut CMD /c "!local!\fix_mihoyo_shortcut.bat" yes :: === FiveM == PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/installers/fivem.bat -OutFile '%TEMP%\fivem.bat'" CMD /c "%TEMP%\fivem.bat" yes :: === DaVinci Resolve == ECHO Useful link to download the latest version of DaVinci Resolve: ECHO https://www.blackmagicdesign.com/support/family/davinci-resolve-and-fusion :: === Drivers notice == ECHO Installs drivers, for a list of drivers, use UserDiag https://userdiag.com/download ECHO For NVidia, use NVC and DDU. :: === End message == ECHO "" ECHO About WSL, look at this: https://github.com/yuk7/ArchWSL/releases ECHO "" ECHO Take a look at your Windows settings, after you've done all the updates available on your PC. ECHO Lastly, restart the computer. PAUSE EXIT /B