Find a file
2020-01-17 04:06:29 -05:00
bin Use cached-nix-shell for scr{cap,rec} scripts 2020-01-12 18:20:28 -05:00
config Rearrange aliases & xdg compliance hacks 2020-01-14 08:59:42 -05:00
machines Rearrange aliases & xdg compliance hacks 2020-01-14 08:59:42 -05:00
modules Allow password w/ local ssh connections 2020-01-16 18:57:59 -05:00
options Fix unterminated property 2020-01-13 22:12:32 -05:00
packages Add linode-cli package 2020-01-17 04:06:29 -05:00
.gitignore Complete rewrite 2020-01-12 18:20:28 -05:00
default.nix Remove references to removed secret files 2020-01-14 06:55:27 -05:00
deploy Bring back deploy script for remote bootstrap 2020-01-13 19:56:39 -05:00
LICENSE Update copyright year 2020-01-12 18:14:27 -05:00
Makefile Remove secrets.nix.gpg 2020-01-14 00:35:15 -05:00
README.md Bring back deploy script for remote bootstrap 2020-01-13 19:56:39 -05:00

Mein dotfiles

A tidy $HOME is a tidy mind.

It takes a touch of madness to use nixOS. I arrived here because there are a few special computers in my life, local and remote, and maintaining them was busywork I wouldn't wish on my worst enemy.

Nix, with its luscious tendrils, drew me in with a promise of glorious reproducibility and declared its declarative-ness with enough chutzpah to make anime real again. So, with XDG conventions in hand, I set out to conquer my white whale and annihilate what vestiges of my social life remain.

Quick start

# Assumes your partitions are set up and root is mounted on /mnt
curl https://raw.githubusercontent.com/hlissner/dotfiles/nixos/deploy | sh

This is equivalent to:

DOTFILES=/home/$USER/.dotfiles
git clone https://github.com/hlissner/dotfiles $DOTFILES
ln -s /etc/dotfiles $DOTFILES
chown -R $USER:users $DOTFILES

# make channels
nix-channel --add "https://nixos.org/channels/nixos-${NIXOS_VERSION}" nixos
nix-channel --add "https://github.com/rycee/home-manager/archive/release-${NIXOS_VERSION}.tar.gz" home-manager
nix-channel --add "https://nixos.org/channels/nixpkgs-unstable" nixpkgs-unstable

# make /etc/nixos/configuration.nix
nixos-generate-config --root /mnt
echo "import /etc/dotfiles \"$$(hostname)\"" >/mnt/etc/nixos/configuration.nix

# make secrets.nix
nix-shell -p gnupg --run "gpg -dq secrets.nix.gpg >secrets.nix"

# make install
nixos-install --root /mnt -I "my=/etc/dotfiles"

Management

  • make = nixos-rebuild test
  • make switch = nixos-rebuild switch
  • make upgrade = nix-channel --update && nixos-rebuild switch
  • make install = nixos-generate-config --root $PREFIX && nixos-install --root $PREFIX
  • make gc = nix-collect-garbage -d (use sudo to clear system profile)

Overview

  • OS: NixOS 19.09
  • Shell: zsh
  • DE/WM: bspwm + polybar
  • Editor: Doom Emacs (and occasionally vim)
  • Terminal: st
  • Browser: firefox (waiting for qutebrowser to mature)