linux package management
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bashrc
git
nix
script
tmux
vim
.gitignore
README.md
default.nix
homies.png

README.md

Homies

homies

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.

How-To

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]