My personal dotfiles and NixOS system config for all my systems with attached screens
Find a file
Christopher Mühl e51dfb70c9
Add SSH config
2025-08-04 18:21:27 +02:00
homes/x86_64-linux/christopher@cobalt Add SSH config 2025-08-04 18:21:27 +02:00
lib Publish my config 2025-07-30 23:36:39 +02:00
modules Publish my config 2025-07-30 23:36:39 +02:00
overlays Publish my config 2025-07-30 23:36:39 +02:00
packages/scripts Publish my config 2025-07-30 23:36:39 +02:00
secrets Add SSH config 2025-08-04 18:21:27 +02:00
shells/deploy Publish my config 2025-07-30 23:36:39 +02:00
systems Remove unused flake inputs 2025-07-31 10:40:29 +02:00
.gitignore Add rekeyed secrets 2025-07-31 10:06:27 +02:00
.pre-commit-config.yaml Publish my config 2025-07-30 23:36:39 +02:00
flake.lock Migrate to ohmyposh prompt 2025-08-04 17:41:37 +02:00
flake.nix Migrate to ohmyposh prompt 2025-08-04 17:41:37 +02:00
Justfile Remove unused flake inputs 2025-07-31 10:40:29 +02:00
README.md Remove unused flake inputs 2025-07-31 10:40:29 +02:00

My NixOS systems

This repository contains all my NixOS (and nix-darwin) system and home manager configurations. It's not meant to be deployable by anyone other than me, but just as a reference for others.

General principles

I'm using Snowfall in order to organize my flake in an easy way that doesn't require too much boilerplate code.

Every wheels user will have a command available called elements with which they are able to interface with this main Nix flake. Internally this command is an alias for the just command runner which automatically links to the flake's Justfile.

Additionally, every dev shell can also expand on the available elements recipes depending on the context. In order to enter one of the configured devshells, one can use either the command elements shell <name> (if elements is already available) or run nix develop .#name in the flake root directory.

Todo

Since this is pretty much always a work-in-progress I do not expect it to be in the most presentable state at all times. Whenever I have time I try to streamline some of the config, but especially when trying out new tools the code could be a bit wild.

There's a couple of ideas I have for this:

  • Build a deployment dev shell
  • Deploy base tooling to all hosts. This mainly includes nushell and helix configs. They should still be configurable per-host. Potential issue here could be hosts where I don't use home manager
  • Make everything more composable. Can make use of the elements config some more, like how it's done for quirks