Last active
August 16, 2024 02:58
-
-
Save sugoidogo/5a42715e6589a836b9692399013d1657 to your computer and use it in GitHub Desktop.
New PC setup script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# irm 'https://gist.githubusercontent.com/sugoidogo/5a42715e6589a836b9692399013d1657/raw/0-setup.ps1' | iex | |
# allow running local scripts. Question: why is it called -Force when it's really a -NoConfirm? | |
Set-ExecutionPolicy RemoteSigned -Force | |
# Disable forced updates | |
$RegPath="HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" | |
New-Item $RegPath -Force | |
New-ItemProperty $RegPath AUOptions -PropertyType DWORD -Value 2 -Force | |
# start windows activation and move over old user folder while this script runs | |
start-job { | |
# Note: the site says to use https://get.activated.win, but isn't working at time of writing | |
irm https://massgrave.dev/get | iex | |
# I don't have a way to download the latest release of this software automatically, | |
# so just open their respective download pages | |
# also sign in to discord so it transfers to the app | |
$urls="app.discord.com" | |
$urls+=" github.com/Off-World-Live/obs-spout2-plugin/releases" | |
$urls+=" loudmax.blogspot.com" | |
$urls+=" vb-audio.com/Cable/ https://shop.vb-audio.com/en/module/vblicensing/myDownloads" | |
$urls+=" obsproject.com/forum/resources/audio-monitor.1186" | |
$urls+=" github.com/Enubia/ghost-chat/releases" | |
runas /trustlevel:0x20000 "C:\Program Files\Google\Chrome\Application\chrome.exe $urls" | |
$sourcePath = "\Windows.old$env:HOMEPATH" | |
$destinationPath = "$env:HOMEPATH" | |
$sourceFolder = (new-object -com shell.application).NameSpace($sourcePath) | |
$destinationFolder = (new-object -com shell.application).NameSpace($destinationPath) | |
$destinationFolder.MoveHere($sourceFolder) | |
} | |
# start microsoft store install for windows LTSC | |
wsreset -i | |
# ensure profile exists so that chocolatey installer adds ChocolateyProfile module | |
mkdir $profile | |
rm $profile | |
echo $null >> $profile | |
# https://chocolatey.org/install | |
irm 'https://community.chocolatey.org/install.ps1' | iex | |
# every single package seems to show the same prompt for a 'chocolateyInstall.ps1' script | |
# since this prompt doesn't give you any other information, it's not very useful | |
choco feature enable -n=allowGlobalConfirmation | |
# some of these packages need custom flags, so remember that during upgrades | |
choco feature enable -n=useRememberedArgumentsForUpgrades | |
# Google Chrome is my primary web browser | |
# Install this first so we can download files while other packages install | |
# Note: want to replace this with chromium, need proprietary codec support | |
choco install googlechrome | |
# open shell restores the windows 7 style start menu | |
# requires flag to avoid unwanted extra features | |
choco install open-shell --params="/StartMenu" | |
# I use Firefox Dev to test my websites | |
# prerelease software requires extra flag | |
choco install firefox-dev --pre | |
# sudo allows me to elevate a command without a new terminal | |
# windows 11 has a built-in sudo, but on windows 10 we need the gsudo package | |
(sudo config --enable normal) -or ($packages+=" gsudo") | |
# the Link Shell Extention allows me to create filesystem links from Explorer | |
$packages+=" LinkShellExtension" | |
# the official GUI for chocolatey | |
$packages+=" chocolateygui" | |
# VSCodium is my current code editor, Lapce is my next | |
$packages+=" vscodium lapce" | |
# Steam is where I own most of my games | |
$packages+=" steam" | |
# GOG Galaxy is my primary launcher | |
$packages+=" goggalaxy" | |
# Discord is the primary internet messaging service I use, want to replace | |
$packages+=" discord" | |
# OBS Studio is my primary streaming software | |
$packages+=" obs-studio" | |
# I use OBS-NDI to send OBS captures over the network | |
$packages+=" obs-ndi" | |
# Android Messages allows me to text and call from my PC | |
$packages+=" android-messages-desktop" | |
# AnyDesk grants me remote support capabilities | |
$packages+=" anydesk" | |
# borderless gaming allows me to add borderless window mode to games without it | |
$packages+=" borderlessgaming" | |
# Equalizer APO allows me to apply VSTs to my Windows audio devices | |
$packages+=" equalizerapo" | |
# OCCT is a stress testing suite, good for troubleshooting performance issues | |
$packages+=" occt" | |
# tailscale is my all-purpose VPN | |
$packages+=" tailscale" | |
# WizTree lets me see what's taking up all my storage | |
$packages+=" wiztree" | |
# I use ungoogled-chromium to test my websites | |
# keep this item last since firefox-dev needs an aditional flag | |
$packages+=" ungoogled-chromium" | |
# All chocolatey-installable packages have been collected, run the command (this will take a while) | |
choco install $packages.split(' ');refreshenv | |
# environment variables which enable google account sync in chromium | |
#[Environment]::SetEnvironmentVariable("GOOGLE_DEFAULT_CLIENT_ID", "77185425430.apps.googleusercontent.com", "User") | |
#[Environment]::SetEnvironmentVariable("GOOGLE_DEFAULT_CLIENT_SECRET", "OTJgUOQcT7lO7GsGZq2G4IlT", "User") | |
# ungoogled-chromium doesn't create a start menu shortcut, so do that here | |
# https://stackoverflow.com/questions/9701840/how-to-create-a-shortcut-using-powershell | |
$WshShell = New-Object -comObject WScript.Shell | |
$Shortcut = $WshShell.CreateShortcut("$Home\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\ungoogled-chromium.lnk") | |
$Shortcut.TargetPath = "C:\ProgramData\chocolatey\lib\ungoogled-chromium\tools\ungoogled-chromium\chrome.exe" | |
$Shortcut.Save() | |
# Symlink the Equalizer APO VSTPlugins folder to a more generic location | |
New-Item -Path "C:\Program Files\VSTPlugins" -ItemType SymbolicLink -Value "C:\Program Files\EqualizerAPO\VSTPlugins" | |
# RNNoise is the high-quality noise suppression algorithm used by OBS Studio | |
invoke-webrequest https://github.com/werman/noise-suppression-for-voice/releases/latest/download/win-rnnoise.zip ` | |
-outfile ~/Downloads/win-rnnoise.zip | |
expand-archive ~/Downloads/win-rnnoise.zip -destinationpath ~/Downloads -Force | |
cp ~\Downloads\win-rnnoise\vst\*.dll "C:\Program Files\VSTPlugins\" | |
# Create an interactive update on login task | |
# https://learn.microsoft.com/en-us/powershell/module/scheduledtasks/register-scheduledtask?view=windowsserver2019-ps | |
Register-ScheduledTask -TaskName "Chocolatey Updates" ` | |
-Description "Interactively update all chocolatey packages" ` | |
-Action $(New-ScheduledTaskAction powershell "-c choco upgrade all;pause") ` | |
-Trigger $(New-ScheduledTaskTrigger -AtLogOn) ` | |
-Settings $(New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -RunOnlyIfNetworkAvailable -StartWhenAvailable) ` | |
-RunLevel Highest | |
# vencord is a discord enhancement | |
invoke-webrequest https://github.com/Vencord/Installer/releases/latest/download/VencordInstallerCli.exe ` | |
-outfile ~/Downloads/VencordInstallerCli.exe | |
# first run, install vencord | |
~/Downloads/VencordInstallerCli.exe -branch stable -install | |
# second run, install openasar | |
~/Downloads/VencordInstallerCli.exe -branch stable -install-openasar | |
# download our EqualizerAPO config | |
invoke-webrequest https://gist.githubusercontent.com/sugoidogo/5a42715e6589a836b9692399013d1657/raw/config.txt ` | |
-outfile "C:\Program Files\EqualizerAPO\config\config.txt" | |
# pause before we start opening promps and windows over whatever I'm doing | |
echo "process all browser pages before continuing" | |
pause | |
# I use audio monitor to create a discord-capturable obs monitor with audio | |
expand-archive ~/Downloads/audio-monitor*.zip -destinationpath "C:\Program Files\obs-studio" -Force | |
# I use Spout2 for my VTuber | |
(expand-archive ~/Downloads/OBS_Spout2*.zip -destinationpath "C:\Program Files\obs-studio" -Force) ` | |
-or (~/Downloads/OBS_Spout2*.exe) | |
# LoudMax allows me to even out my audio volume | |
expand-archive ~/Downloads/LoudMax*.zip -destinationpath "C:\Program Files\VSTPlugins" -Force | |
# VBCABLE allows me to do some advanced audio routing | |
expand-archive ~/Downloads/VBCABLE_Driver*.zip -destinationpath ~/Downloads/VBCABLE -Force | |
expand-archive ~/Downloads/VBCABLE_A_B_Driver*.zip -destinationpath ~/Downloads -Force | |
expand-archive ~/Downloads/VBCABLE_A_Driver*.zip -destinationpath ~/Downloads/VBCABLE_A -Force | |
expand-archive ~/Downloads/VBCABLE_B_Driver*.zip -destinationpath ~/Downloads/VBCABLE_B -Force | |
~/Downloads/VBCABLE/VBCABLE_Setup_x64.exe | |
~/Downloads/VBCABLE_A/VBCABLE_Setup_x64.exe | |
~/Downloads/VBCABLE_B/VBCABLE_Setup_x64.exe | |
# GhostChat lets me have an on-screen chat overlay | |
# want to replace with a generic multi-window option | |
~/Downloads/Ghost-Chat*.exe | |
# finish microsoft store install for windows LTSC | |
wsreset -i |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Stage: pre-mix | |
Device: CABLE-A Input VB-Audio Cable A | |
VSTPlugin: Library LoudMax64.dll Thresh 0 "Large GUI" 0 "ISP Detection" 0 Output 0.75 "Fader Link" 0 | |
Device: CABLE-B Input VB-Audio Cable B | |
VSTPlugin: Library LoudMax64.dll Thresh 0 "Large GUI" 0 "ISP Detection" 0 Output 1 "Fader Link" 0 | |
Device: CABLE Input VB-Audio Virtual Cable | |
VSTPlugin: Library LoudMax64.dll Thresh 0 "Large GUI" 0 "ISP Detection" 0 Output 0.5 "Fader Link" 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment