This repo now exposes a layered layout so common building blocks can be reused per host without copy/pasting whole files.
flake.nixwires all inputs and defines a smallmkHosthelper so new hosts only need to describe their unique modules and Home Manager imports.configuration.nixsimply imports the NixOS module tree undermodules/nixos.home.nixin the same way imports the reusable Home Manager modules belowmodules/home.hosts/contains per-machine overrides plus their generated hardware profiles.
modules/nixos/coreholds boot, user, package, font, and global environment defaults.modules/nixos/servicesgroups opt-in services such as audio, bluetooth, docker, and power tweaks.modules/nixos/desktopencapsulates display manager, GNOME, Wayland, and X11 settings.modules/nixos/programspulls in application-level modules like Firefox, Steam, and GnuPG.modules/home/corekeeps username, state version, and shared package/xdg options.modules/home/programsprovides shell tooling, dev tooling, and optional extras (spicetify, etc.).modules/home/desktopcontains GNOME- and Waybar-specific Home Manager tweaks, with additional per-WM modules imported only by the hosts that need them.
To add a new machine, drop its configuration into hosts/<name> and register it through mkHost inside flake.nix, composing the modules that make sense for that device.