My NixOS .nix files
Switch branches/tags
Nothing to show
Clone or download
Latest commit ebaef4a Oct 28, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
dotfiles rm nix-mode addons Oct 28, 2018
hosts misc Sep 30, 2018
iso reformat Sep 17, 2018
lib enable multiple and add utils Sep 15, 2018
modules upd Oct 27, 2018
util enable multiple and add utils Sep 15, 2018
.gitignore add gitignore Sep 12, 2018 add md mode Sep 25, 2018


This repo contains all of my Linux configuration files for everything I do on a computer. Using this setup, I am able to bootstrap complete, custom NixOS installations with one-command. This includes zfs-on-root with custom disk arrays and automatic pool setup, my system services and settings, all of my favorite applications-- the works!


I like to build robust and reproducible, automated systems. By reducing state we can increase productivity and developer happiness. :)

Let's just call it, "personal computer hygeine."

How it all works

  1. Themelios is built into a NixOS livedisk and bootstraps machine-specific installations, using the corresponding machine-name/ and machine-name/default.nix files from within the hosts/ directory.

  2. NixOS with lib/recimport.nix auto-imports everything in the modules/ directory. The corresponding hosts/machine-name/default.nix file determines which modules should be enabled.

  3. I use Emacs for nearly everything I do, it is the central hub of my workflow. The following are just a few of my favorite Emacs packages that I use daily:

  • gnus (email)
  • erc (irc)
  • emms (media player)
  • pdf-tools (pdf viewer)
  • image-mode (image viewer)
  • dired (file manager)
  • eww (browser)
  • org-mode (todo lists, planning and time-management)
  • shell and ansi-term (terminals)
  • And much more...

I have made an exception for Emacs, instead of using the nix built-in package manager, in my dotfiles/.emacs.d/init.el I use straight.el, which is a "Next-generation, purely functional package manager for the Emacs hacker." I appreciate Straight's use-package integration and prefer doing all Emacs configuration and package management in elisp.

How I bootstrap my complete, custom NixOS installations in one-command:

  • My laptop:
[root@nixos:~] themelios adamant a-schaefers/nix-config
  • My workstation:
[root@nixos:~] themelios Z a-schaefers/nix-config


  • Everyone in #nixos and #emacs on freenode, for always helping me out.
  • ldlework's dotfiles, which helped inspire my nix files and the themelios installer.
  • Various Emacs starter-kits, technomancy, purcell, prelude, spacemacs, the Emacs wiki, etc. I've taken bits and pieces from everywhere by now.