Reproducible set of dotfiles and packages for Linux and macOS
This is the setup I use on all my machines. The installation process is very
simple and allows me to get up and running on any new machine in a matter of
seconds. The following is run on a pristine Ubuntu machine with curl
available:
$ # install Nix
$ curl https://nixos.org/nix/install | sh
$ echo ". $HOME/.nix-profile/etc/profile.d/nix.sh" >> .bashrc # optional
$ . $HOME/.nix-profile/etc/profile.d/nix.sh
$ # pull the homies
$ nix-shell -p git --run 'git clone http://github.com/nmattia/homies'
$ # applying the config
$ cd homies; nix-env -f default.nix -i --remove-all
$ echo 'if [ -x "$(command -v bashrc)" ]; then $(bashrc); fi' >> .bashrc
The homies will be available in all subsequent shells, including the customizations (vim with my favorite plugins, tmux with my customized configuration, etc). See the introduction blog post for an overview.
Trying out the package set:
$ nix-shell --pure
Installing the package set:
$ nix-env -f default.nix -i --remove-all
Listing the currently installed packages:
$ nix-env -q
Listing the previous and current configurations:
$ nix-env --list-generations
Rolling back to the previous configuration:
$ nix-env --rollback
Deleting old configurations:
$ nix-env --delete-generations [3 4 9 | old | 30d]