dotfiles icon indicating copy to clipboard operation
dotfiles copied to clipboard

My dotfiles.

Dotfiles

This is my collection of configuration files.

It uses home-manager—a Nix-based tool—to install programs and create their configuration files based off the home.nix file in this repository. I wrote more about it in a blog post.

(I used to use GNU Stow. The last Stow-based commit was 4f1feee1e.)

Usage

Install Nix and then install home-manager. You should be able to run the home-manager program in a shell.

Next, clone this repository to ~/.config/nixpkgs.

$ git clone [email protected]:alexpearce/dotfiles.git ~/.config/nixpkgs

This will place the home.nix file in the location home-manager expects. The home-manager profile can then be built and activated:

$ home-manager switch

To update home-manager:

$ nix-channel --update nixpkgs
unpacking channels...
$ nix-env -u home-manager

To update home-manager-managed packages:

$ nix-channel --update nixpkgs
unpacking channels...
$ home-manager switch

Fish

I like to set fish as my default shell. On macOS this means:

  1. Editing /etc/shells to include an entry for the home-manager-managed fish binary at ~/.nix-profile/bin/fish.
  2. Setting the default shell with chsh -s ~/.nix-profile/bin/fish.

Neovim

On its first run Neovim will install the packer.nvim package management plugin. Restart Neovim and install the other packages with :PackerInstall.

iTerm2

The iTerm2 profile can be installed with:

$ ln -s (realpath config/iterm2/DynamicDefault.json) ~/Library/Application\ Support/iTerm2/DynamicProfiles/

It depends on the Nerd Fonts variant of the IBM Plex Mono fonts.

License

MIT.