This is my latest dotfiles generation.
I've been experimenting with many different tools to manage them properly, from Ansible to shell scripts, and never liked any of them that much, to be honest.
You can see the history on these repositories:
This is my most recent attempt, using nix.
It contains home-manager, nixOS and nix-darwin configuration for several machines and VMs I use.
sh <(curl -L https://nixos.org/nix/install)
echo "experimental-features = nix-command flakes">~/.config/nix/nix.conf
On macOS, install homebrew too:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Also make sure the terminal being used has full disk access, otherwise you might
get errors like Could not write domain
.
To apply updates, simply run:
nix develop -c dot-apply
# pull, update flake, clean old, apply
nix develop -c dot-sync
nix develop -c dot-clean
To create a release, run:
nix develop -c dot-release
which fish | sudo tee -a /etc/shells
chsh -s $(which fish)
Add the US layout so input doesn't wait after opening quotes and such.