@ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION SET "repo=https://git.mylloon.fr/Anri/confOS/raw/branch/main" SET "local=%HOMEPATH%\Documents\Local" 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/fix_obs_shortcut.bat -OutFile '!local!\fix_obs_shortcut.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 :: 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 "HKCU\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 :: Disable web search in start menu :: TODO: Need testing :: 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 :: === 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" ECHO JDK... for %%i in (!java_jdk!) do ( !pmi! %%i ) :: Drivers SET ^"java_jdk=^ Nvidia.CUDA" ECHO Drivers... for %%i in (!java_jdk!) do ( !pmi! %%i ) :: Applications SET ^"apps=^ Discord.Discord Spotify.Spotify Mozilla.Firefox M2Team.NanaZip Parsec.Parsec ^ voidtools.Everything.Lite VideoLAN.VLC Obsidian.Obsidian GIMP.GIMP ^ Microsoft.VisualStudioCode Bitwarden.Bitwarden DuongDieuPhap.ImageGlass ^ 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 ) :: Games related - Osu! separated because of exclamation mark escaping SET ^"games=^ RiotGames.LeagueOfLegends.EUW RiotGames.Valorant.EU Valve.Steam ^ HeroicGamesLauncher.HeroicGamesLauncher PrismLauncher.PrismLauncher ^ Ryujinx.Ryujinx" ECHO Games... !pmi! Peppy.Osu^^! for %%i in (!games!) do ( !pmi! %%i ) :: === Ryujinx shortcut == :: Installed from winget as a portable app PowerShell -Command "" ^ "$WshShell = New-Object -comObject WScript.Shell;" ^ "$exe = (Get-ChildItem $env:LOCALAPPDATA\Microsoft\WinGet\Packages\Ryujinx.Ryujinx_Microsoft.Winget.*\publish\Ryujinx.exe).FullName;" ^ "$Shortcut = $WshShell.CreateShortcut('%APPDATA%\Microsoft\Windows\Start Menu\Programs\Ryujinx.lnk');" ^ "$Shortcut.TargetPath = $exe;" ^ "$Shortcut.Save()" :: === Install WSL == ECHO WSL... wsl --install --no-distribution :: === Activate Windows == :: TODO: Fix command, see https://massgrave.dev/command_line_switches#uses-in-powershell-one-liner :: PowerShell -Command "" ^ :: "& ([ScriptBlock]::Create((irm https://mass grave.dev/get)))" ^ :: "/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('%APPDATA%\Microsoft\Windows\Start Menu\Programs\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... 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('%APPDATA%\Microsoft\Windows\Start Menu\Programs\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 :: ECHO Xournal++... :: PowerShell -Command "" ^ :: "$repo = 'xournalpp/xournalpp';" ^ :: "$releases = \"https://api.github.com/repos/$repo/releases\";" ^ :: "$tag = (Invoke-WebRequest $releases | ConvertFrom-Json)[1].tag_name;" ^ :: "$file = \"xournalpp-$($tag.substring(1))-windows.zip\";" ^ :: "$link = \"https://github.com/$repo/releases/download/$tag/$file\";" ^ :: "$archive = 'xournalpp.zip';" ^ :: "$outfile = Join-Path -Path $env:TEMP -ChildPath $archive;" ^ :: "Invoke-WebRequest -Uri $link -OutFile $outfile;" ^ :: "cd $env:TEMP;" ^ :: "Expand-Archive -Path $archive -DestinationPath $env:TEMP -Force;" ^ :: "$exe = $env:TEMP + '\' + $file.Substring(0, $file.Length - 3) + 'exe';" ^ :: "Start-Process $exe /S;" ^ :: "Remove-Item -Force $outfile;" ^ :: "Remove-Item -Force $exe" :: === Minecraft == :: Rename shortcut for Minecraft RENAME "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Prism Launcher.lnk" 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 == :: TODO: Replaced by NVidia Shadowplay :: OBS replay buffer at startup :: PowerShell -Command "$WshShell = New-Object -COM WScript.Shell;" ^ :: "$Shortcut = $WshShell.CreateShortcut('%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\OBS.lnk');" ^ :: "$Shortcut.TargetPath = '%ProgramFiles%\obs-studio\bin\64bit\obs64.exe';" ^ :: "$Shortcut.WorkingDirectory = '%ProgramFiles%\obs-studio\bin\64bit';" ^ :: "$Shortcut.Arguments = '--disable-missing-files-check --minimize-to-tray " ^ :: "--startreplaybuffer --profile ""ReplayBuffer"""" --scene ""ReplayBuffer""""';" ^ :: "$Shortcut.Save()" :: :: Default shortcut should start default profile :: CALL "!local!\fix_obs_shortcut.bat" yes :: :: Allow system to go in sleep mode when OBS is running :: powercfg -requestsoverride process obs64.exe display system awaymode :: === miHoYo Games launcher == PowerShell -Command "Invoke-WebRequest -Uri !repo!/windows/installers/collapse.bat -OutFile '%TEMP%\collapse.bat'" CMD /c "%TEMP%\collapse.bat" yes :: 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 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