My NixOS configurations and other Nix files ❄️
flake.nix
: Flakes for each configuration, outputs for libs/modules/packages, and a dev shell for working with secrets.modules/
: Custom NixOS modules; see themixins
sectionhosts/
: Configuration for each of my NixOS machineshm-modules/
: Custom home-manager modulesdarwin-modules/
: Custom nix-darwin modulespkgs/
: Custom-built derivations exported from flakeinstaller/
: Minimal custom installer configuration using nixos-generators; see theinstaller
sectionoverlays/
: Nixpkgs overlays for overriding or adding packagestemplates/
: Various templates that can be used with thenix flake init/new
subcommands
Most of the code for building configurations is split into mixins, which are NixOS modules that configure part of a system according to my preferences. Mixins can be mixed-and-matched and composed together to create the base config for a specific system.
base/
: The common base of all of my systems, with essential packages, services, and settingsdesktop/
: Different mixins for creating a development workstation on a (usually graphical) computerdesktop/x
: Mixins for display managers, window managers, and desktop environments
users/
: Per-user system user settings and home-manager configurations
installer/
contains a custom installer configuration, built with nixos-generators.
The justfile
contains a recipe for building installers:
# x86_64-linux installer iso
$ just build-nixos-installer x86_64-linux ./installer/configuration.nix
# aarch64-linux installer sd image (requires 'boot.binfmt.emulatedSystems = [ "aarch64-linux" ];')
$ just build-nixos-installer aarch64-linux ./installer/configuration.nix
Some things cannot be set up automatically, especially some of the Catppuccin theming. Here are some things that may need to be done manually:
- BetterDiscord installation: run
betterdiscordctl install
- Obsidian theming: follow the instructions here
- Browser stuff:
- Userchrome stuff (
~/.mozilla/firefox/<profile>/chrome/userChrome.css
):- Hide tab bar:
#tabbrowser-tabs { visibility: collapse !important; }
- Hide TST bar:
#TabsToolbar { visibility: collapse !important; } #sidebar-header { display: none; }
- Hide tab bar:
- Firefox extensions:
- Themes:
- Extensions:
- Privacy:
- Integrations:
- Interface/navigation:
- Workflow:
- Site enhancements:
- Misc:
- Userchrome stuff (
- Wallpapers: https://github.com/catppuccin/wallpapers
- Update wallpaper with
betterlockscreen -u ...
andbetterlockscreen -w
- Update wallpaper with