Skip to content

❄️ my configurations for home-manager, nixOS, and nix-darwin

License

Notifications You must be signed in to change notification settings

caarlos0/dotfiles

Repository files navigation

caarlos0/dotfiles

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.

First run

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.

Updating

To apply updates, simply run:

nix develop -c dot-apply

# pull, update flake, clean old, apply
nix develop -c dot-sync

Clean up

nix develop -c dot-clean

Create release

To create a release, run:

nix develop -c dot-release

Post first run

Fish as the default shell

which fish | sudo tee -a /etc/shells
chsh -s $(which fish)

Keyboard layouts

Add the US layout so input doesn't wait after opening quotes and such.