dotfiles
dotfiles copied to clipboard
~. Nix all the things!
#+title: Dotfiles
[[https://builtwithnix.org/badge.svg]]
/Code is like humor. When you have to explain it, it’s bad./ - Cory House
This repository houses the codebase for my dotfiles. Nix all the things!
** Features
- Nix/NixOS. Keep it declarative and reproducible.
- Agenix. Keep secrets well-kept.
- Home-manager. A separate, fully configurable home configuration.
- Org-babel. Literate configuration for any application, written in Org-mode and exported with Org-babel.
- Doom Emacs. (To the dark side!)
- WSL NixOS. For an optimal development environment on Windows.
- Devshell + Direnv. Automatically enter a fully-fledged, pure development environment.
- ... and more!
** In detail...
This repository is a huge [[https://github.com/divnix/digga][digga]] flake that provides outputs for all of my hosts, users, etc.
*** Secret management
In order to manage secrets, I use ryantm's [[https://github.com/ryantm/agenix][agenix]]. It conveniently encrypts everything - even in the Nix store - until my user signs in and has been recognized. I have previously used [[https://github.com/AGWA/git-crypt][git-crypt]], but unfortunately, all secrets are decrypted /in the nix store/, which is dangerous - especially when share stores to, say, Cachix. This supported my migration to agenix.
*** Org tangling
Any non-Nix configuration is actually written in Org-mode. This adds the convenience of writing any configuration literately, and being able to export them during compiletime. More can be found on this topic [[file:home/config/default.nix][here]].
** Useful links
*** Nix
- [[https://github.com/gytis-ivaskevicius/flake-utils-plus][Gytis Ivaskevicius' flake-utils-plus]]
- [[https://github.com/terlar/nix-config][Terlar's nixfiles]] for the inspiration on how to modularize his =home/=.
- [[http://chriswarbo.net/projects/nixos/useful_hacks.html][Chris Warbo's "Useful Nix Hacks"]]
*** Emacs
- [[https://orgmode.org/worg/org-tutorials/orgtutorial_dto.html][David O'Toole Org Tutorial]]
- [[https://www.cs.cmu.edu/~15131/f17/topics/extratations/advanced-emacs.pdf]["Advanced Emacs" but not really advanced]]
- [[https://github.com/willbush/system/blob/0c1aadad079f3c484a98bb43ca51f0f9eac44dc4/users/profiles/emacs.nix][Will Bush's beautiful template emacs.nix]]
- [[https://github.com/rememberYou/.emacs.d][rememberYou's .emacs.d]] and usual r/emacs TIP of the week posts
*** Miscellaneous
- [[https://notes.srid.ca/apps][Sridhar's Apps]]