⚠️ WARNING⚠️ - Proceed at your own risk.The setup here have been tweaked to cater my personal workflow. They don't suit everyone, so please review the code to make sure the dotfiles fit your setup.
First, clone the repository with submodules. You can put it wherever you want.
git clone --recurse-submodules --remote-submodules https://github.com/pmmmwh/dotfiles.git
cd dotfiles
Then, set the bootstrap script as executable and run it. It will ensure the environment contains binaries needed for the setup (Git and GNU Stow).
chmod u+x bootstrap
bootstrap
The environment is now properly setup and ready to go.
If you're using macOS, you can also setup a few extra things.
Setting some sensible macOS defaults with settings.zsh
.
chmod u+x @macos/settings.zsh
@macos/settings.zsh
Installing binaries and apps (via Homebrew
and mas
) with brew.zsh
:
(The actual list is in the Brewfile
)
chmod u+x @macos/brew.zsh
@macos/brew.zsh
If you want to customise the setup, you can add .zsh
files within the .zshcustom
folder.
It has been set as the "custom" directory for Oh My Zsh
, so any .zsh
files inside will be automatically sourced.
If you do not like the setup and would like to revert the changes it did, you can run the teardown script. It will remove any symlinks created by the bootstrap process.
chmod u+x teardown
teardown
To update, go to your local dotfiles
repository and run the teardown script.
Then, re-run the bootstrap script -
it will then pull in the latest changes and re-run the whole setup process.
cd dotfiles
teardown
bootstrap
The project have been structured as Stow packages and named with a specific convention in mind:
lowercase
for anything to be symlinked to$HOME
- a leading
@
for anything dependent on the installation operating system - a leading
_
for anything that should not be symlinked (i.e. not a Stow package.)
External packages are applied using Git Submodules. Here's a list of all dependencies pulled in:
- Github does dotfiles
- Dotfiles by @mathiasbynens,
which is an amazing starting point for custom dotfiles
(also contains the amazing
~/.macos
script!) - Dotfiles by @Kraymer, which inspired me to use GNU Stow for dotfiles management
- Dotfiles by @driesvints,
which introduced me to tools like
mackup
andmas
to manage apps and preferences - Dock.sh by @kamui545, which is used here to programmatically setup the macOS Dock