I spend a lot of time thinking about “workstation UX”. About how good things could be for me as a professional computer toucher, if only I could figure out how to automate this or that.
I have decided that Nix is the technology that will finally allow me to explore these kinds of questions.
This repository contains all the Nix expressions which comprise my personal computing workstations and servers. As such, it reflects my own personal “state of the art” with regards to the answers to these questions around workstation UX.
How is it organized?
Brief description of the root directories:
|hosts/||top-level expressions specific to individual workstations or servers|
|overlays/||package and module overrides used throughout the configuration|
|modules/||custom option modules, enabled, or not, by host configuration|
|util/||non-module helper nixlang functions|
|unmanaged/||mutable configuration that should not live in the nix store|
|external/||submodules containing additional assets|
|manuals/||additional documentation files|
What else can I read?
Documents the design and conventions of this repository and its intended use. Read this if you want to learn more about Nix.
Documents the contents of my primary workstation environment covering everything including: keyboard layouts, window managers, editors, shell configuration and much more. Additionally, this manual addresses the UX philosophy driving my choices.
Throughout the repository, supplemental README.org files contain additional information relevant to the nearby configuration files.
I have something to say about this!
Awesome. The vast majority of anything worth a damn in here are things I’ve absorbed from others. If you think there’s a better way to do something please let me know (so I can steal it ;)
Thanks to the
#nixos community on Freenode, particularly
for holding my hand on many many things.
The nature of this document was definitely inspired by Fox Keister’s dotfile repo.