An original .dotfiles
implementation for Windows. I didn't find much on Windows implementations of .dotfiles, so this is my version of it after reading some of the documentation for other operating systems.
More information on what .dotfiles
are: https://dotfiles.github.io/
- Install a preset set of apps via Chocolatey
- Settings sync for apps that supports text-based settings (VS Code, Microsoft Terminal, PowerShell profiles, etc.)
- A framework for syncing non settings file items (VS Code Extensions, PowerShell modules, etc.)
- A CLI tool for managing syncing (
dotfiles
) - A bin folder that's added to the path
curl -u "[username]" "https://api.github.com/repos/thisjustin816/.dotfiles/forks" -d " "
git clone https://github.com/[username]/.dotfiles.git`
cd .dotfiles
git remote add upstream https://github.com/thisjustin816/.dotfiles.git
- Review the settings files in each directory.
- Check the parameters in the
init.ps1
,.sync-*.ps1
, and.setup.ps1
PowerShell scripts. - Modify the
.[item]
lists in each folder.
powershell init.ps1
To add an application/folder to settings sync. Create a named folder in the root with a .path.ps1
file containing just the path to the settings folder, and a .setup.ps1
file with any app specific setup. Copy the settings files and folders that you want synced into this repo. After running init
, all those files and folders are replaced with symlinks to the versions here.
For each group of manual items that can't be synced using symlinks, create a folder here with at least these 3 files:
.export-[itemtype].ps1
- This should contain a method for exporting the items on the current machines and merging it with the list in this repo..sync-[itemtype].ps1
- This should contain the method for installing/applying the list of items..[itemtype]
- The list of items to sync.
dotfiles <command> [section]
dfi
can also be used in place of dotfiles
.
Pulls the latest files, installs all apps and PowerShell modules, applies symbolic links to settings directories, and syncs all configured items.
Shows the functional sections that the command can apply to.
Pulls the latest files, installs all apps and PowerShell modules, and syncs all configured items.
Pulls the latest files to update synced settings.
Commits and pushes all local changes to the .dotfiles origin repo.
Discards all local changes.
Gives the git status of the .dotfiles repo.
Exports all configured items on the current machine to sync to other machines.
Displays this information.
dotfiles update
Pulls the latest from all folders.
dotfiles sync VSCode
Gets the latest settings and installs any missing extensions for VS Code.
dotfiles sync PowerShell, apps
Gets the latest settings and syncs PowerShell modules and apps.