···234234In case an aspect needs a custom submodule, it can be added this way:
235235236236```nix
237237+# User aspect `tux`
237238den.aspects.tux =
238239 { config, ... }: # The function-args style is required for `imports` not to be interpreted as an Aspect class.
239240 {
···255256}
256257```
257258258258-And then, you can refer to this custom submodule from other aspects:
259259+And then, you can refer to `tux` aspect from other aspects:
259260260261```nix
261262{ den, ... }:
···267268 programs = {
268269 gpg = {
269270 enable = true;
270270- settings.default-key = den.aspects.${config.home.username}.default-key;
271271+ settings.default-key = den.aspects.tux.default-key; # Access the `tux` aspect statically
271272 };
272273 };
273274···276277 enable = true;
277278 enableSshSupport = true;
278279 sshKeys = [
279279- den.aspects.${config.home.username}.keygrip
280280+ den.aspects.${config.home.username}.keygrip # Access the current user aspect dynamically
280281 ];
281282 };
282283 };
···284285 };
285286}
286287```
288288+289289+## Aspect Fixed-Point
290290+291291+Aspects are fixed-point, meaning that they can reference themselves, as such:
292292+293293+```nix
294294+{
295295+ den.aspects.igloo =
296296+ {config,...}: # Here, `config` represents the aspect `igloo` itself.
297297+ {
298298+ meta = {
299299+ default-key = "Hello World!";
300300+ };
301301+302302+ homeManager = {
303303+ programs = {
304304+ gpg = {
305305+ enable = true;
306306+ settings.default-key = config.meta.default-key;
307307+ };
308308+309309+ git = {
310310+ enable = true;
311311+ settings.signing.key = config.meta.default-key;
312312+ }
313313+ };
314314+ };
315315+ };
316316+}
317317+```
+3-3
docs/src/content/docs/guides/mutual.mdx
···20202121## Default, *unidirectional* OS configuration
22222323-Den framework is built around **context pipeline** transformations.
2323+Den framework is built around **context pipeline** transformations.
2424In order to create a full OS configuration, everything starts with a host definition:
25252626```nix "igloo" "tux"
···2828```
29293030We need to build the `nixos` Nix module that will later be used by `lib.nixosSystem`.
3131-To do so, Den invokes the `den.ctx.host` pipeline like this:
3131+To do so, Den invokes the `den.ctx.host` pipeline like this:
32323333> `Tip: Zoom diagrams using your mouse wheel or drag to move.`
3434···64646565## `den.provides.mutual-provider`
66666767-The [`den.provides.mutual-provider`](https://github.com/vic/den/blob/main/modules/aspects/provides/mutual-provider.nix) battery allows you to define mutual congigurations by letting you to define named aspects under `.provides.` to create explicit relationship between users and hosts.
6767+The [`den.provides.mutual-provider`](https://github.com/vic/den/blob/main/modules/aspects/provides/mutual-provider.nix) battery allows you to define mutual configurations by letting you to define named aspects under `.provides.` to create explicit relationship between users and hosts.
68686969```nix
7070# mutual-provider is activated at a `{host,user}` context