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
Themelios is built into a NixOS livedisk and bootstraps machine-specific installations, using the corresponding machine-name/configuration.sh and machine-name/default.nix files from within the hosts/ directory.
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.