This repository holds my dotfiles setup. It is based on home-manager, a Nix based approach to handling all dependencies and setup. This means that all dotfiles are actually symlinked to the nix store, and are immutable. This in turn means I’ll have to deploy changes every time I want to change something, but I can live with it.
Command Line Tools are needed to build various things, and bring in git.
xcode-select --install
The new installer from Determinate Systems is really good, and the option to use single user mode disappeared from all installers, so:
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | \
sh -s -- install \
--extra-conf "extra-substituters = https://knl.cachix.org https://nix-community.cachix.org https://niv.cachix.org https://cache.nixos.org https://devenv.cachix.org" \
--extra-conf "extra-trusted-public-keys = knl.cachix.org-1:/iqUbqBexzvcDn5ee7Q3Kj1MBh6P9RTwEVh6hh9SDE0= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= niv.cachix.org-1:X32PCg2e/zAm3/uD1ScqW2z/K0LtDyNV7RdaxIuLgQM= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw= nixpkgs-python.cachix.org-1:hxjI7pFxTyuTHn2NkvWCrAUcNZLNS3ZAvfYNuYifcEU=" \
--extra-conf "keep-outputs = true" \
--extra-conf "keep-derivations = true"
source "$HOME/.nix-profile/etc/profile.d/nix.sh"
These tools can’t be installed by home-manager, because they are macOS applications. So, install them manually.
One can’t live without good fonts. I prefer Iosevka: Iosevka Term SS08. This font will be installed by home-manager.
Finally, just run the following command:
nix-shell
home-manager switch
Afterwards, it’s just riding on the good wave of direnv and aliases:
z skel
stash; gl --rebase; unstash
d reload
hm switch