cherry-pickable Dendritic modules to extend your config easily. like a lazyvim-distribution but for dendritic nix.
Discussions: https://oeiuwq.zulipchat.com/join/nqp26cd4kngon6mo3ncgnuap/
dendrix.oeiuwq.com/Dendritic.html
···11# denful - Dendritic Nix modules, enough to fill a den.
2233+Denful provides lots of [flake.parts](https://flake.parts/) modules that you can mix in your existing [Dendritic](https://vic.github.io/dendrix/Dendritic.html) configurations.
44+35## Features
4657* no need for nix wizardy. designed for beginners but your magic is of great use here.
···1012* secrets management.
1113* automatic website documentation.
1214* experimental: flake-agnostic. can be used with or without flakes/flake.parts.
1515+1616+## Facets
1717+1818+You are free to cherry-pick any of our provided modules via `flake.modules.<class>.<name>`.
1919+2020+However, we also provide higher modules (named **facets**). The concept is similar to that of _layers_ in
2121+editor-configurations like Spacemacs or plugin-bundles in other editor distributions.
2222+2323+### `facet`s definition.
2424+2525+This section is mostly useful for facet authors, but surely is of value for facet users.
2626+The following example just tries to show a facet structure and what it can do.
2727+2828+Syntax here is that of [`flake.aspects`](https://github.com/vic/flake-aspects).
2929+resolved modules are be available at `flake.modules.<class>.niri-desktop`
3030+but people can also use `flake.aspects.niri-desktop` if desired (eg, as an aspect dependency).
3131+3232+```nix
3333+# facets/niri.nix
3434+{ inputs, lib, ... }:
3535+{
3636+ flake.aspects.niri = { aspects, ... }: {
3737+ description = ''
3838+ Niri: a scrollable-tiling WM (https://github.com/YaLTeR/niri)
3939+4040+ Configured via https://github.com/sodiboo/niri-flake.
4141+ '';
4242+4343+ # the `flake` class module contributes to your flake,
4444+ # for example by adding inputs or caches via `github:vic/flake-file`.
4545+ flake = {
4646+ flake-file.inputs.niri-flake = {
4747+ url = lib.mkDefault "github:sodiboo/niri-flake";
4848+ inputs.nixpkgs.follows = "nixpkgs";
4949+ };
5050+ flake-file.nixConfig = {
5151+ extra-substituters = [ "https://niri.cachix.org" ];
5252+ extra-trusted-public-keys = [ "niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964=" ];
5353+ };
5454+5555+ # it can also import aditional flake modules.
5656+ # flake-file.inputs.foo-dep.url = "...";
5757+ # imports = [ inputs.foo-dep.flakeModule ];
5858+5959+ # or define/enhance another aspect: anarchy is our omarchy like aspect.
6060+ flake.aspects.anarchy = {
6161+ includes = [ aspects.niri ];
6262+ };
6363+ };
6464+6565+ # the nixos class enhances os-level stuff for the `niri` aspect.
6666+ nixos = {
6767+ imports = [ inputs.niri-flake.nixosModules.niri ];
6868+ };
6969+ };
7070+}
7171+```
7272+7373+### `facet` usage
7474+7575+In some dendritic module of yours:
7676+7777+```nix
7878+{ inputs, ... }:
7979+{
8080+ imports = [ inputs.denful.modules.flake.niri ];
8181+ flake.aspects.my-laptop = {aspects, ...}: {
8282+ includes = [ aspects.anarchy ];
8383+ };
8484+}
8585+```
8686+