[dms]: https://github.com/AvengeMedia/DankMaterialShell [ez-configs]: https://github.com/ehllie/ez-configs/ [flake-parts]: https://github.com/hercules-ci/flake-parts [flake-schemas]: https://github.com/DeterminateSystems/flake-schemas [rofi]: https://github.com/davatorium/rofi [stylix]: https://github.com/danth/stylix

--- Welcome to my Nix flake, powered by [flake-parts]! This is mainly for my NixOS configurations, but it also has a couple standalone Home Manager configs, packages, development shells and NixOS/Home Manager modules. ## Design goals - Simple, easy to parse and short system/home configurations - Minimal boilerplate - Largely orthogonal `profiles` instead of one-off module options, e.g. enable `my.profiles.gaming = true` instead of specifying several options per host - Good separation of concerns and modularity, I dislike how monolithic flakes tend to turn out - Huge shoutout to [flake-parts] for helping with this! - No libraries with too much magic behind how they work - As little obfuscation as possible on how things work, compose my own tools from more barebones ones as needed I use [ez-configs] to get some boilerplate out of the way when it comes to setting up systems and home configurations. I usually define home configurations directly on the system configurations themselves since they tend to have similar functionality goals and complimentary options anyway. I have plenty of custom HM and NixOS modules, so I use `profiles` to group them together and massively simplify my configs. They also have enough smarts to, for instance, enable the `gnome` Home Manager module by default if the host system has the same module enabled. As an example, this is a working NixOS configuration describing my main rig. ```nix $sampleconfig ``` ## Look and feel I daily drive Hyprland with [dms] and [rofi]. My systems wouldn't look even halfway as good without [stylix] doing all the heavy-lifting in my stead. The color scheme used in my screenshots is `stella`. ## File structure I'm hoping the file structure under `/nix` is mostly self-explanatory. That said, there are a couple that bear explaining: - `nix/flakeModules` for flake modules consumed by [flake-parts] - `nix/schemas` for my custom [flake-schemas] definitions - `nix/shared` for configuration and modules useful to both and NixOS and Home Manager