Modular, context-aware and aspect-oriented dendritic Nix configurations. Discussions: https://oeiuwq.zulipchat.com/join/nqp26cd4kngon6mo3ncgnuap/ den.oeiuwq.com
configurations den dendritic nix aspect oriented

Fix typos and change `.provides.` -> `._.` in readme (#43)

authored by

Peter Esselius and committed by
GitHub
dd929700 6006fa07

+10 -14
+10 -14
README.md
··· 36 36 37 37 - Use your `stable`/`unstable` input channels. 38 38 39 - - _Freeform_ `host`/`user`/`host` [schemas](modules/_types.nix).<br> 39 + - _Freeform_ `host`/`user`/`home` [schemas](modules/_types.nix).<br> 40 40 Avoid the need for using `specialArgs`. 41 41 42 42 - Multi-platform, Multi-tenant hosts. ··· 90 90 # my parametric { host } => aspect 91 91 den.aspects.vpn # setups firewall/daemons 92 92 # opt-in, replaceable batteries included 93 - den.provides.home-manager 93 + den._.home-manager 94 94 ]; 95 95 # provide same features at any OS/platform 96 96 nixos = ...; # (see nixos options) ··· 110 110 includes = [ 111 111 den.aspects.tiling-wm 112 112 # parametric { user, host } => aspect 113 - den.provides.primary-user # vic is admin 113 + den._.primary-user # vic is admin 114 114 ]; 115 115 }; 116 116 } ··· 168 168 nixos = { }; 169 169 darwin = { }; 170 170 homeManager = { }; 171 - nixVim = { }; 172 - nixDroid = { }; 173 171 174 - # aspects can be nested via `provides` 172 + # aspects can be nested via `_` (`provides`) 175 173 # forming a tree structure. 176 - provides.gaming = { 174 + _.gaming = { 177 175 nixos = { }; 178 - nixDroid = { }; 179 176 180 177 # aspects can also `include` others 181 178 # forming a graph of dependencies ··· 306 303 den.aspects.gaming.__functor = den.lib.parametric true; 307 304 308 305 # any other file can register gaming aspects 309 - den.aspects.gaming.include = [ 306 + den.aspects.gaming.includes = [ 310 307 ({ emulation }: { 311 308 nixos = ...; 312 309 includes = [ den.aspects.steam ]; ··· 338 335 by including the aspect's own class module and the same-class module 339 336 of all its transitive includes. 340 337 341 - Aditional to this, `den` registers some special [dependencies](modules/aspects/dependencies.nix) 338 + Additional to this, `den` registers some special [dependencies](modules/aspects/dependencies.nix) 342 339 designed to aid on Den particular use case: Host/Users, Homes. 343 340 344 341 ###### Host dependencies ··· 404 401 > This pattern is also shown in the default template, under [`_profile`](templates/default/modules/_profile/). 405 402 406 403 > **NOTE**: 407 - > `den` provides an [__angle brackets__](https://fzakaria.com/2025/08/10/angle-brackets-in-a-nix-flake-world) **experimental feature** that allows even shorter syntax for deep `.provide.` access. 404 + > `den` provides an [__angle brackets__](https://fzakaria.com/2025/08/10/angle-brackets-in-a-nix-flake-world) **experimental feature** that allows even shorter syntax for deep `.provides.` access. 408 405 > See [import-non-dendritic.nix](templates/default/modules/_example/import-non-dendritic.nix) for an example usage. 409 406 410 407 <table> ··· 415 412 # modules/namespace.nix 416 413 { config, ... }: 417 414 { 418 - den.aspects.vix.provides = { }; 419 - _module.args.vix = # up to provides 420 - config.den.aspects.vix.provides; 415 + den.aspects.vix = { }; 416 + _module.args.vix = config.den.aspects.vix._; 421 417 } 422 418 ``` 423 419