PowerShell 'dotfiles' for Windows, including common application installations through winget
, as well as developer-friendly Windows configuration defaults.
Note Windows Package Manager
winget
command-line tool is bundled with Windows 11 and modern versions of Windows 10 by default as the App Installer. Read more
Open any Windows PowerShell 5.1 (or later) host console with administrator rights, and run:
$GitHubRepositoryAuthor = "erelado"; `
$GitHubRepositoryName = "dotfiles-windows"; `
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass; `
Invoke-Expression (Invoke-RestMethod -Uri "https://raw.githubusercontent.com/$($GitHubRepositoryAuthor)/$($GitHubRepositoryName)/main/Download.ps1");
The Download.ps1
script will download and copy the files to your ${HOME}\.dotfiles
directory. Then, the Setup.ps1
script will be launched automatically, which is responsible for configuring the machine.
Note You must have your execution policy set to Unrestricted (or at least in Bypass) for this to work (As a developer, you will need it anyway).
First, the user will be asked if they want to execute each option separately. Then, a config.json
is created containing the selected settings1. Finally, by giving permission to run, the script will execute according to them, giving you time to do anything else.
You will be given the option to select which source to use if there are multiple sources.
- Basic tools installation
- 7-Zip
- Fluent Search (winget, msstore)
- PowerToys (winget, msstore)
- ShareX (winget, msstore)
- SnipDo (msstore)
- SumatraPDF
- Sysinternals (msstore)
- VLC
- WinSCP
- DevOps tools installation
- Espanso
- Custom matches
- Git
- Globals configuration (
user.email
,user.name
, and more)
- Globals configuration (
- Visual Studio Code (winget, msstore)
- Extensions installation
- Settings configuration
- Windows Terminal (winget, msstore)
- Settings configuration
- Custom actions
- Profile defaults
- Settings configuration
- Windows
- Configurations
- Dark mode
- Cursor
- Theme
- Explorer settings
- Show file extensions
- Show hidden files
- Turn off Windows Narrator hotkey
- Power plan settings
- AC timeout
- Privacy settings
- Deny Microsoft Store applications access
- Deny personalized advertisements
- Regional formats
- Date
- FirstDayOfWeek
- Time
- Rename computer
- Dark mode
- Directories
- 'Workspace' directory configuration
- Fonts
- Nerd Font
- Default font for Windows Terminal
- Nerd Font
- Configurations
- PowerShell Core (winget, msstore - currently broken; issue: #9278)
$PROFILE
configuration- Optional: Removing selected sections not to be installed
- Modules installation
- Oh My Posh
- Using
powerlevel10k_classic
theme
- Using
Suggestions/improvements are welcome and encouraged.
Footnotes
-
The option of loading or creating a new configuration file will be given if there is already one in the directory. ↩