Automating something I do at most once every year
- Operations should be idempotent - in that you may run the script as many times as you like in setting up or resetting your machine
- Errors should be actionable, but resolved programmatically
- dotfiles
- hard link
- ask force overwrite?
- split git file
- split stack vs core profile
- spellcheck dictionary
- Download necessary assets (git repo)
- Icons
- Wallpapers
- windows explorer
- Enable View Hidden files
- Disable recent in Quick Access
- set chrome as default browser
- winget
- only install new apps
- winget upgrade
- download
winget
if not present
- bootstrap
- if you don't have ps, download via bat or sh
- windows
- increase thumbnail size
- taskbar tweaker
- apps
- scripting
- out-menu so we don't accidentally run anything
- stop script if sub-error
- use test checks
- Add requires reboot and instructions on create admin account
- todo - prompt for values or set via config?
- trackpad
- invert scrolling
- three finger tap -> middle click
- VS Code - Powershell Integrated Console
- Use PS7
- Document dependendencies (i.e. Font relies on Scoop)
-
How to use Visual Studio Code as default editor for git?
git config --global core.editor "code --wait"
-
Add to profile
"`nNew-Alias which get-command" | add-content $profile
-
The main problem is that in recent versions of Windows 8/10 This key is protected by a hash associated with the file type, and succeeding in editing it without generating the valid hash the association is automatically restored to the default application.
$regKeyUrl = "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\{0}\UserChoice"
$regKeyHttp = $regKeyUrl -f 'http'
$regKeyHttps = $regKeyUrl -f 'https'
$regKeyFile = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\{0}\UserChoice"
$regKeyHtm = $regKeyFile -f '.htm'
$regKeyHtml = $regKeyFile -f '.html'
Set-ItemProperty $regKeyHttp -name ProgId ChromeHTML
Set-ItemProperty $regKeyHttps -name ProgId ChromeHTML
Set-ItemProperty $regKeyHtm -name ProgId ChromeHTML
Set-ItemProperty $regKeyHtml -name ProgId ChromeHTML
Get-ItemProperty $regKeyHttp
Get-ItemProperty $regKeyHttps
Get-ItemProperty $regKeyHtm
Get-ItemProperty $regKeyHtml
<Association Identifier=".htm" ProgId="MSEdgeHTM" ApplicationName="Microsoft Edge" />
<Association Identifier=".html" ProgId="MSEdgeHTM" ApplicationName="Microsoft Edge" />
<Association Identifier="http" ProgId="MSEdgeHTM" ApplicationName="Microsoft Edge" />
<Association Identifier="https" ProgId="MSEdgeHTM" ApplicationName="Microsoft Edge" />
<Association Identifier=".htm" ProgId="ChromeHTML" ApplicationName="Google Chrome" />
<Association Identifier=".html" ProgId="ChromeHTML" ApplicationName="Google Chrome" />
<Association Identifier="http" ProgId="ChromeHTML" ApplicationName="Google Chrome" />
<Association Identifier="https" ProgId="ChromeHTML" ApplicationName="Google Chrome" />