My 'dotfiles' and configuration scripts for Windows.
Unlike better operating systems (ahem... Linux), Windows can't fully be configured automatically very easily (largely due to the need for multiple reboots). Well, in fairness, simple installations might be able to but full desktop configurations with disparate applications and settings is nearly impossible to achieve. Registry values, shell and environment variables, Windows feature installations, and application installs or configurations all might require the restarting of PowerShell or even a reboot to be recognized.
This is my attempt at making the setup of my machines as quick and "automatic" as possible. There are still a number of individual and ordered steps I have to take, but each step is mostly just executing a single script and then waiting. Still, I can usually get a brand new Windows installation up and running fairly quickly and consistently with this setup.
This repository also contains my personal settings and configurations much in the same way that dotfiles
are used on Linux. In fact, a sub-module of this repository is in fact my Linux\Mac dotfiles
so that I can share some files between all systems.
During installation, the scripts will prompt for what "system type" the installation is for. I offer two options, "Home" and "Work", which should largely be self-explanatory. The primary difference between the two types are the mix of applications installed and which settings are being used.
Full installation steps, including the manual portions can be found in Installation Steps.
In summary, the broad steps (particularly the automated parts) are as follows:
- Install Windows & Run Updates (rebooting as necessary)
- Open PowerShell as an Administrator
- Run:
Set-ExecutionPolicy Bypass -Scope Process -Force -ErrorAction Ignore
- Run:
iex ((iwr -UseBasicParsing -Uri 'https://git.io/fjBQX').Content)
- Run:
- Once complete, close PowerShell and re-open as Administrator
- Once complete run: `.\01-setup-profile.ps1'
- Once complete, close PowerShell and re-open as Administrator
- Run:
.\02-bootstrap.ps1
, this will take a while - Reboot. Once up, re-open PowerShell as Administrator
- Run:
.\03-app-installs.ps1
, this will take a LONG time - (Optional) Also run any or all of the "optional-install" scripts found at the root of the project. These install extra applications for the given use case (currently gaming and development).
- Reboot (again). Re-open PowerShell as Administrator
- Run:
.\04-cleanup.ps1
At that point the automated portions are complete. For more details and further (manual and optional) instructions, see Installation Steps.
The initial script run in Step 2 above will initialize Git and clone this repository. If instead it is preferred to do that manually, you can. Afterward, you can start at Step 3 above from within the folder for this repository.
I used to use Chocolatey but have recently moved to WinGet. WinGet is the "official" package manager supported by Microsoft. It is still v1 and such a bit limited but works well enough for my needs.
MIT © 2020 Brennan Fee