vic/denful
{ "defaultBranch": "main", "description": "re-usable, cherry-pickable Dendritic modules that use flake.parts to customize and extend your config easily. like a lazyvim-distribution but for dendritic nix.", "fullName": "vic/denful", "homepage": "https://vic.github.io/dendrix/Dendritic.html", "language": "Nix", "name": "denful", "pushedAt": "2025-11-21T22:45:37Z", "stargazersCount": 8, "updatedAt": "2025-11-21T22:45:41Z", "url": "https://github.com/vic/denful"}denful - Dendritic Nix modules, enough to fill a den.
Section titled “denful - Dendritic Nix modules, enough to fill a den.”Denful provides lots of flake.parts modules that you can mix in your existing Dendritic configurations.
Features
Section titled “Features”- no need for nix wizardy. designed for beginners but your magic is of great use here.
- minimalistic and inter-operable tools. incrementally enable just what you need.
- supports all nix module classes. no special cases.
- multi host definitions with high module re-use.
- multi user support.
- secrets management.
- automatic website documentation.
- experimental: flake-agnostic. can be used with or without flakes/flake.parts.
Facets
Section titled “Facets”You are free to cherry-pick any of our provided modules via flake.modules.<class>.<name>.
However, we also provide higher modules (named facets). The concept is similar to that of layers in editor-configurations like Spacemacs or plugin-bundles in other editor distributions.
facets definition.
Section titled “facets definition.”This section is mostly useful for facet authors, but surely is of value for facet users. The following example just tries to show a facet structure and what it can do.
Syntax here is that of flake.aspects.
resolved modules are be available at flake.modules.<class>.niri
but people can also use flake.aspects.niri if desired (eg, as an aspect dependency).
{ inputs, lib, ... }:{ flake.aspects.niri = { aspects, ... }: { description = '' Niri: a scrollable-tiling WM (https://github.com/YaLTeR/niri)
Configured via https://github.com/sodiboo/niri-flake. '';
# the `flake` class module contributes to your flake, # for example by adding inputs or caches via `github:vic/flake-file`. flake = { flake-file.inputs.niri-flake = { url = lib.mkDefault "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; flake-file.nixConfig = { extra-substituters = [ "https://niri.cachix.org" ]; extra-trusted-public-keys = [ "niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964=" ]; };
# it can also import aditional flake modules. # flake-file.inputs.foo-dep.url = "..."; # imports = [ inputs.foo-dep.flakeModule ];
# or define/enhance another aspect: anarchy is our omarchy like aspect. flake.aspects.anarchy = { includes = [ aspects.niri ]; }; };
# the nixos class enhances os-level stuff for the `niri` aspect. nixos = { imports = [ inputs.niri-flake.nixosModules.niri ]; }; };}facet usage
Section titled “facet usage”In some dendritic module of yours:
{ inputs, ... }:{ imports = [ inputs.denful.modules.flake.niri ];
flake.aspects.my-laptop = {aspects, ...}: { # features of all facets that contribute to the anarchy aspect includes = [ aspects.anarchy ]; };}