Disclaimer: This is a private configuration that will change drastically based on my own use cases: it is not a community distribution or framework. This configuration is only on Github here for my own convenience and to inspire others.
This is an evolving, pragmatic NixOS configuration + various dotfiles, built around my daily computing use cases:
- evolving because I'm still figuring out what kind of structure I like best, and have a lot to learn. There are many TODOs to properly refactor the code.
- pragmatic because I strive for reproducibility, purity, and modularity, but there may be sacrifices as temporary workarounds or due to my current lack of knowledge.
As far as my use cases: I'm a mathematician who spends a lot of time in neovim writing LaTeX using the vimtex plugin; I live in terminal emulators, and I like to toy with functional programming.
- Based on an entry point flake
- Unstable channel by default (this may change)
- Home manager is used as a module, although I might move it to a standalone
- Window Manager: a highly customized XMonad
- Status Bar: XMobar
- Shell: Fish shell with a custom prompt forked from the sample fish nim prompt
- Terminal Emulator: Alacritty
- Editor: Neovim, with many custom Ultisnips snippets that built around latex snippets for my current research papers.
- Other
- I use Interception tools with custom plugins to modify the behavior of pressed keys:
- my caps lock key is swapped with escape (turning into escape immediately on press, this is different than caps2esc);
- my right control functions as another super key (useful for XMonad);
- and my enter key functions as right control when held, enter when tapped.
- I use Interception tools with custom plugins to modify the behavior of pressed keys:
I run a couple of servers, but they're not on NixOS...yet.
Here's a description of the most important files and directories:
flake.nix: entrypoint flakeconfiguration.nix: currently the main desktop, system-level confighome.nix: some user-level configurationmodules/: NixOS moduleshome-modules/: modules called by home-managerpackages/: custom packagesdotfiles/: configuration files and datadata/: more static data: (TODO: combine with dotfiles)hosts/: machines to run NixOS on
bespoke configuration + lazy functional programming mathematician => NixOS
Paraphrasing Henrik Lissner: almost certainly no.
The following dotfiles are configurations that I use as inspiration and strive for:
- hlissner's config: I aspire toward a configuration with this sort of organization
- vyp's config: I picked up a few tricks from here