{"id":29087994,"url":"https://github.com/vic/dendrix","last_synced_at":"2025-06-28T03:00:23.767Z","repository":{"id":300214945,"uuid":"1005388181","full_name":"vic/dendrix","owner":"vic","description":"Dendritic Nix - Community-driven Nix distribution based on the Dendritic pattern.","archived":false,"fork":false,"pushed_at":"2025-06-26T03:11:52.000Z","size":37,"stargazers_count":5,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-26T03:21:53.210Z","etag":null,"topics":["configuration-framework","dendritic","home-manager","nix","nix-community","nix-darwin","nix-flakes","nixos","nixos-configuration","nixos-wsl"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-20T06:41:06.000Z","updated_at":"2025-06-26T03:11:56.000Z","dependencies_parsed_at":"2025-06-26T03:32:27.824Z","dependency_job_id":null,"html_url":"https://github.com/vic/dendrix","commit_stats":null,"previous_names":["vic/dennix","vic/dendrix"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vic/dendrix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vic%2Fdendrix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vic%2Fdendrix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vic%2Fdendrix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vic%2Fdendrix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vic","download_url":"https://codeload.github.com/vic/dendrix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vic%2Fdendrix/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262366573,"owners_count":23299775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["configuration-framework","dendritic","home-manager","nix","nix-community","nix-darwin","nix-flakes","nixos","nixos-configuration","nixos-wsl"],"created_at":"2025-06-28T03:00:17.658Z","updated_at":"2025-06-28T03:00:23.754Z","avatar_url":"https://github.com/vic.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- NOTICE: edit this file at dev/readme_template.md and then run the `files` devshell command. --\u003e\n\n# Dendrix - community-driven distribution of Dendritic Nix configurations.\n\nEditor-distributions like those for nvim/emacs provide community-driven,\nopinionated configurations that can be easily reused and enabled by newcomers.\n\nThe `dendrix` project aims to provide the same experience: having community-managed, high-quality and no-barrier-of-entry setups for everything that can be configured using [flake-parts modules](https://flake.parts/options/flake-parts-modules.html).\n\nRead more on [Motivation](#motivation) and [How it works](#how-it-works).\n\n## Available dendritic repos.\n\nThe following is a list of known dendritic repositories from the nix community.\nIf you want to add/remove one of them, send a pull-request that edits `dev/npins/sources.json`.\nAlso if you want to provide custom trees, send a pull-request editing `dev/modules/community/your_repo.nix`.\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\nDendrix knows of \u003cb\u003e8\u003c/b\u003e [dendritic repositories](https://github.com/vic/dendrix/blob/main/dev/npins/sources.json).\n9 [import-trees](https://github.com/vic/dendrix/tree/main/dev/modules/community).\n9 flags.\n161 aspects accross 9 different nix configuration classes.\n613 nix configuration files.\n\n\u003c/summary\u003e\n\n### [Maka-77x-nixconf7](https://github.com/Maka-77x/nixconf7/tree/e3fd4cacd66d708911109b3a0f43f7b65d8be7bd/modules)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\nMaka-77x-nixconf7 at rev e3fd4ca.\n1 dendritic trees.\n\u003cb\u003e22\u003c/b\u003e aspects across 2 nix classes.\n97 nix configuration files.\n\n\u003c/summary\u003e\n\n[README](https://github.com/Maka-77x/nixconf7/tree/e3fd4cacd66d708911109b3a0f43f7b65d8be7bd/README.md)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n##### Maka-77x-nixconf7 defines \u003cb\u003e22\u003c/b\u003e aspects across 2 nix classes.\n\n\u003c/summary\u003e\n\n- \u003ccode\u003eai\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ebase\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ebluetooth\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edesktop\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edev\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edisplaylink\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eemail\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003efacter\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003efwupd\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003egames\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003eguacamole\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehosts/gouda\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehosts/nixos\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003emessaging\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003emimi\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eopenssh\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eroot\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eshell\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003esound\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003evirtualisation\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003evpn\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ework\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n\u003c/details\u003e\n\nNo community notes on Maka-77x-nixconf7. Use the source, Luke.\n\n- default: [`modules`](https://github.com/Maka-77x/nixconf7/tree/e3fd4cacd66d708911109b3a0f43f7b65d8be7bd/modules)\n\nMaka-77x-nixconf7's ./modules tree\n\n```nix\n# usage on your layers.nix\n{inputs, ...}: {\n  imports = [\n    inputs.dendrix.community.Maka-77x-nixconf7.default\n  ];\n}\n```\n\n\u003c/details\u003e\n\n### [dliberalesso-nix-config](https://github.com/dliberalesso/nix-config/tree/499b5a0ace8323a21e2fa28f94daafd03a7958c7/modules)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\ndliberalesso-nix-config at rev 499b5a0.\n1 dendritic trees.\n\u003cb\u003e8\u003c/b\u003e aspects across 2 nix classes.\n85 nix configuration files.\n\n\u003c/summary\u003e\n\n[README](https://github.com/dliberalesso/nix-config/tree/499b5a0ace8323a21e2fa28f94daafd03a7958c7/README.md)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n##### dliberalesso-nix-config defines \u003cb\u003e8\u003c/b\u003e aspects across 2 nix classes.\n\n\u003c/summary\u003e\n\n- \u003ccode\u003edefault\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003efacter\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003egui\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehyprde\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eirpf\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003elaptop\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ework\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ewsl\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n\u003c/details\u003e\n\nNo community notes on dliberalesso-nix-config. Use the source, Luke.\n\n- default: [`modules`](https://github.com/dliberalesso/nix-config/tree/499b5a0ace8323a21e2fa28f94daafd03a7958c7/modules)\n\ndliberalesso-nix-config's ./modules tree\n\n```nix\n# usage on your layers.nix\n{inputs, ...}: {\n  imports = [\n    inputs.dendrix.community.dliberalesso-nix-config.default\n  ];\n}\n```\n\n\u003c/details\u003e\n\n### [drupol-infra](https://github.com/drupol/infra/tree/a10da3a0e88d17566918fa8db69fa0faa9e1d0c8/modules)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\ndrupol-infra at rev a10da3a.\n1 dendritic trees.\n\u003cb\u003e24\u003c/b\u003e aspects across 2 nix classes.\n107 nix configuration files.\n\n\u003c/summary\u003e\n\n[README](https://github.com/drupol/infra/tree/a10da3a0e88d17566918fa8db69fa0faa9e1d0c8/README.md)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n##### drupol-infra defines \u003cb\u003e24\u003c/b\u003e aspects across 2 nix classes.\n\n\u003c/summary\u003e\n\n- \u003ccode\u003eai\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ebase\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ebluetooth\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edesktop\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edev\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edisplaylink\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eemail\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003efacter\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003efwupd\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003egames\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003eguacamole\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehosts/nixos\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehosts/x13\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehosts/x260\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehosts/x280\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehosts/xeonixos\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003emessaging\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003eopenssh\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003epol\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eroot\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eshell\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003esound\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003evpn\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ework\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n\u003c/details\u003e\n\nNo community notes on drupol-infra. Use the source, Luke.\n\n- default: [`modules`](https://github.com/drupol/infra/tree/a10da3a0e88d17566918fa8db69fa0faa9e1d0c8/modules)\n\ndrupol-infra's ./modules tree\n\n```nix\n# usage on your layers.nix\n{inputs, ...}: {\n  imports = [\n    inputs.dendrix.community.drupol-infra.default\n  ];\n}\n```\n\n\u003c/details\u003e\n\n### [gaetanlepage-nix-config](https://github.com/gaetanlepage/nix-config/tree/a17aca5073f9bc51e3660a5015b03d6513a87573/modules)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\ngaetanlepage-nix-config at rev a17aca5.\n1 dendritic trees.\n\u003cb\u003e55\u003c/b\u003e aspects across 2 nix classes.\n131 nix configuration files.\n\n\u003c/summary\u003e\n\n[README](https://github.com/gaetanlepage/nix-config/tree/a17aca5073f9bc51e3660a5015b03d6513a87573/README.md)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n##### gaetanlepage-nix-config defines \u003cb\u003e55\u003c/b\u003e aspects across 2 nix classes.\n\n\u003c/summary\u003e\n\n- \u003ccode\u003eagenix\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eandroid\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ebg-stream\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003ebluetooth\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ebootloader\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ecaddy-reverse-proxies\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ecloud-backup\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ecore\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ecsConfig\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003edesktop\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edesktop-programs\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003edev\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edisplay-manager\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edunst\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003eemail\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003efirefox\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003eflameshot\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003efoot\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003egammastep\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003egtk\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003ehome-manager\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehost_cuda\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehost_feroe\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehost_framework\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehost_inria\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003ehost_jrs\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003ehost_tank\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehost_vps\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ekanshi\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003ekeyring\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003enh\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003enix\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003enix-index-database\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003envidia\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eobs\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eprinting\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eremote-builders\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003erofi\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003esecurity\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eserver\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003esound\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003essh-client\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003essh-server\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003estreaming\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003esubstituters\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003esway\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003eswaylock\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003ethunar\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eudiskie\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003eusers\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ewaybar\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003ewayland\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003ewireguard-client\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003exdg\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003ezathura\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n\u003c/details\u003e\n\nNo community notes on gaetanlepage-nix-config. Use the source, Luke.\n\n- default: [`modules`](https://github.com/gaetanlepage/nix-config/tree/a17aca5073f9bc51e3660a5015b03d6513a87573/modules)\n\ngaetanlepage-nix-config's ./modules tree\n\n```nix\n# usage on your layers.nix\n{inputs, ...}: {\n  imports = [\n    inputs.dendrix.community.gaetanlepage-nix-config.default\n  ];\n}\n```\n\n\u003c/details\u003e\n\n### [henrysipp-nix-setup](https://github.com/henrysipp/nix-setup/tree/0a9d314d352f934ee3c457a865f29377c51020a8/modules)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\nhenrysipp-nix-setup at rev 0a9d314.\n1 dendritic trees.\n\u003cb\u003e19\u003c/b\u003e aspects across 6 nix classes.\n49 nix configuration files.\n\n\u003c/summary\u003e\n\n[README](https://github.com/henrysipp/nix-setup/tree/0a9d314d352f934ee3c457a865f29377c51020a8/README.md)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n##### henrysipp-nix-setup defines \u003cb\u003e19\u003c/b\u003e aspects across 6 nix classes.\n\n\u003c/summary\u003e\n\n- \u003ccode\u003ealbion\u003c/code\u003e: \u003ccode\u003ehosts\u003c/code\u003e\n\n- \u003ccode\u003eallowedUnfreePackages\u003c/code\u003e: \u003ccode\u003enixpkgs\u003c/code\u003e\n\n- \u003ccode\u003ebase\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003econtainers\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edarwin-desktop\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003edesktop\u003c/code\u003e: \u003ccode\u003edarwin\u003c/code\u003e/\u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edev\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003egames\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003egawain\u003c/code\u003e: \u003ccode\u003ehosts\u003c/code\u003e\n\n- \u003ccode\u003egnome\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eguren\u003c/code\u003e: \u003ccode\u003ehosts\u003c/code\u003e\n\n- \u003ccode\u003ehenry\u003c/code\u003e: \u003ccode\u003enixosUsers\u003c/code\u003e\n\n- \u003ccode\u003ehyprland\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003enixvim\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003eplasma\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eroot\u003c/code\u003e: \u003ccode\u003enixosUsers\u003c/code\u003e\n\n- \u003ccode\u003eshell\u003c/code\u003e: \u003ccode\u003edarwin\u003c/code\u003e/\u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003esystem\u003c/code\u003e: \u003ccode\u003edarwin\u003c/code\u003e\n\n- \u003ccode\u003ework\u003c/code\u003e: \u003ccode\u003edarwin\u003c/code\u003e\n\n\u003c/details\u003e\n\nNo community notes on henrysipp-nix-setup. Use the source, Luke.\n\n- default: [`modules`](https://github.com/henrysipp/nix-setup/tree/0a9d314d352f934ee3c457a865f29377c51020a8/modules)\n\nhenrysipp-nix-setup's ./modules tree\n\n```nix\n# usage on your layers.nix\n{inputs, ...}: {\n  imports = [\n    inputs.dendrix.community.henrysipp-nix-setup.default\n  ];\n}\n```\n\n\u003c/details\u003e\n\n### [icyd-nixvim](https://github.com/icyd/nixvim/tree/6bf416ad3ba76a24afb287fa989561f5bcde1bd2/modules)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\nicyd-nixvim at rev 6bf416a.\n1 dendritic trees.\n\u003cb\u003e30\u003c/b\u003e aspects across 2 nix classes.\n41 nix configuration files.\n\n\u003c/summary\u003e\n\n[README](https://github.com/icyd/nixvim/tree/6bf416ad3ba76a24afb287fa989561f5bcde1bd2/README.md)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n##### icyd-nixvim defines \u003cb\u003e30\u003c/b\u003e aspects across 2 nix classes.\n\n\u003c/summary\u003e\n\n- \u003ccode\u003eadditional-plugins\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003eauto-session\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003ecolorizer\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003ecompiler\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003ecompletion\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003ecore\u003c/code\u003e: \u003ccode\u003econfig\u003c/code\u003e/\u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003edebug\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003edial\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003efirenvim\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003efull\u003c/code\u003e: \u003ccode\u003econfig\u003c/code\u003e\n\n- \u003ccode\u003egit\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003eharpoon\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003elsp\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003emarkdown\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003emaximize\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003enavigator\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003eneorg\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003eoil\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003eoptimizations\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003eoverseer\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003eproject-nvim\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003etelescope\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003etests\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003etodo-comments\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003etreesitter\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003etrouble\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003eufo\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003eui\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003eutils\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n- \u003ccode\u003eyanky\u003c/code\u003e: \u003ccode\u003enixvim\u003c/code\u003e\n\n\u003c/details\u003e\n\nNo community notes on icyd-nixvim. Use the source, Luke.\n\n- default: [`modules`](https://github.com/icyd/nixvim/tree/6bf416ad3ba76a24afb287fa989561f5bcde1bd2/modules)\n\nicyd-nixvim's ./modules tree\n\n```nix\n# usage on your layers.nix\n{inputs, ...}: {\n  imports = [\n    inputs.dendrix.community.icyd-nixvim.default\n  ];\n}\n```\n\n\u003c/details\u003e\n\n### [quasigod-nixconfig](https://codeberg.org/vic/quasigod-nixconfig/src/commit/4326b7976ff363f83a461700a4567859830906bf/modules)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\nquasigod-nixconfig at rev 4326b79.\n1 dendritic trees.\n\u003cb\u003e19\u003c/b\u003e aspects across 2 nix classes.\n59 nix configuration files.\n\n\u003c/summary\u003e\n\n[README](https://codeberg.org/vic/quasigod-nixconfig/src/commit/4326b7976ff363f83a461700a4567859830906bf/README.md)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n##### quasigod-nixconfig defines \u003cb\u003e19\u003c/b\u003e aspects across 2 nix classes.\n\n\u003c/summary\u003e\n\n- \u003ccode\u003ecachix\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edefault\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003egaming\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ehacking\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003elaptop\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003elocalai\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eplymouth\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eremote\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ereplays\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003esecure-boot\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eserver\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003essh\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003esyncthing-client\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003esyncthing-server\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003evirtualisation\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ewaydroid\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eworkstation\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ezfs\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ezsa-kb\u003c/code\u003e: \u003ccode\u003ehome\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n\u003c/details\u003e\n\nNo community notes on quasigod-nixconfig. Use the source, Luke.\n\n- default: [`modules`](https://codeberg.org/vic/quasigod-nixconfig/src/commit/4326b7976ff363f83a461700a4567859830906bf/modules)\n\nquasigod-nixconfig's ./modules tree\n\n```nix\n# usage on your layers.nix\n{inputs, ...}: {\n  imports = [\n    inputs.dendrix.community.quasigod-nixconfig.default\n  ];\n}\n```\n\n\u003c/details\u003e\n\n### [vic-vix](https://github.com/vic/vix/tree/f31e8a10fd4dc69980d661bbd610f4aa551fbbb0/modules/community)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\nvic-vix at rev f31e8a1.\n2 dendritic trees.\n\u003cb\u003e24\u003c/b\u003e aspects across 3 nix classes.\n44 nix configuration files.\n\n\u003c/summary\u003e\n\n[README](https://github.com/vic/vix/tree/f31e8a10fd4dc69980d661bbd610f4aa551fbbb0/README.md)\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n##### vic-vix defines \u003cb\u003e24\u003c/b\u003e aspects across 3 nix classes.\n\n\u003c/summary\u003e\n\n- \u003ccode\u003eaarch64-darwin\u003c/code\u003e: \u003ccode\u003edarwin\u003c/code\u003e\n\n- \u003ccode\u003eaarch64-linux\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eall-firmware\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ebootable\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003edarwin\u003c/code\u003e: \u003ccode\u003edarwin\u003c/code\u003e\n\n- \u003ccode\u003egnome-desktop\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ekde-desktop\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ekvm-amd\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ekvm-intel\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003emacos-keys\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003enix-index\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003enix-registry\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003enix-settings\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003enixos\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003envidia\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003erdesk\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003eunfree\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003evscode-server\u003c/code\u003e: \u003ccode\u003ehomeManager\u003c/code\u003e\n\n- \u003ccode\u003ewl-broadcom\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ewsl\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003ex86_64-darwin\u003c/code\u003e: \u003ccode\u003edarwin\u003c/code\u003e\n\n- \u003ccode\u003ex86_64-linux\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003exfce-desktop\u003c/code\u003e: \u003ccode\u003enixos\u003c/code\u003e\n\n- \u003ccode\u003evic\u003c/code\u003e: \u003ccode\u003edarwin\u003c/code\u003e/\u003ccode\u003ehomeManager\u003c/code\u003e/\u003ccode\u003enixos\u003c/code\u003e\n\n\u003c/details\u003e\n\nNo community notes on vic-vix. Use the source, Luke.\n\n- default: [`modules/community`](https://github.com/vic/vix/tree/f31e8a10fd4dc69980d661bbd610f4aa551fbbb0/modules/community)\n\nvic-vix's ./modules/community tree\n\n```nix\n# usage on your layers.nix\n{inputs, ...}: {\n  imports = [\n    inputs.dendrix.community.vic-vix.default\n  ];\n}\n```\n\n- vic: [`modules/vic`](https://github.com/vic/vix/tree/f31e8a10fd4dc69980d661bbd610f4aa551fbbb0/modules/vic)\n\nvic-vix's ./modules/vic tree\n\n```nix\n# usage on your layers.nix\n{inputs, ...}: {\n  imports = [\n    inputs.dendrix.community.vic-vix.vic\n  ];\n}\n```\n\n\u003c/details\u003e\n\n\u003c/details\u003e\n\n## Cross-repository Dendritic Aspects.\n\nA primary advantage of the nix dendritic pattern are aspects (aka. cross-cutting concerns).\nIf you browse the list of available repos above, you can see the aspects that each repo defines as [discovered](https://github.com/vic/dendrix/blob/main/dev/lib/discover-aspects.nix) by Dendrix.\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n\u003e Aspects are just the flake outputs: `flake.modules.\u003cclass\u003e.\u003cname\u003e`.\n\n\u003c/summary\u003e\n\nFor example, some people have `flake.modules.nixos.virtualization` and `flake.modules.darwin.virtualization` and `flake.modules.homeManager.virtualization`.\n\nHere, `virtualization` is the aspect name, and `nixos`/`darwin`/`homeManager` are the nix configuration classes across which the `virtualization` aspect is configured.\n\n```nix\n# virtualization.nix\n{\n  flake.modules.nixos.virtualization = { ... };\n  flake.modules.darwin.virtualization = { ... };\n  flake.modules.homeManager.virtualization = { ... };\n}\n```\n\nThis is the reason we say that Dendritic setups are aspect-oriented: they configure cross-cutting concerns across different module types.\n\n\u003c/details\u003e\n\nThe following is a list of aspects that are common in more than a single repository.\nOur hope is that people can collaborate to find naming conventions for common aspects.\nHaving that we could mix configurations from different sources to enhance the same aspect.\n\n\u003cdetails\u003e\n\u003csummary\u003e\nTODO\n\u003c/summary\u003e\n\nTODO\n\n\u003c/details\u003e\n\n## Flags\n\n\u003e Flags are a [dendrix convention](https://github.com/vic/dendrix/blob/main/dev/modules/community/_pipeline.nix)\n\u003e used as part of a file or directory name as named signals.\n\u003e Flags only exist in positive form: `+flag`. A negative `-flag` means: ignore positive `+flag` files.\n\nFor example, if you have `ai+local.nix` and `ai+cloud.nix` files.\nThe aspect configured by these files is most likely `ai` but the `local` and `cloud` flags signal the vendor.\n\nFlags are inspired by editor configurations, like doomemacs: `(scala +lsp)`.\nAnd are used in Dendrix only as a way to filter files on community import-trees.\nFor example, one could exclude all `+emacs` paths like `tree.flagged \"-emacs +vim\"`.\n\n## Quick Start\n\nWe provide some [templates](https://github.com/vic/dendrix/tree/main/templates) you can\nuse to start a new flake.\n\n```\nnix flake init github:vic/dendrix#template\n```\n\nThen edit your [`layers.nix`](https://github.com/vic/dendrix/tree/main/templates/default/layers.nix) file.\n\n### Try it Online!\n\nIf you are not currently a NixOS user, you can try\nrunning an ephemereal NixOS on the web.\n\n- Go to [Distrosea nixos-unstable-minimal](https://distrosea.com/start/nixos-unstable-minimal/)\n\nStart a machine and run the following:\n\n```shell\nnix run .#os-switch template\n\n```\n\n## Customization\n\nOnce you have a `./modules/` directory on your flake, just add flake-parts modules following the dendritic pattern.\nAll files will be loaded automatically. Edit your `layers.nix` to include dendrix provided aspects you choose.\n\n## Motivation\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\n_:: long but worth read on config organization and sharing ::_\n\n\u003e tl;dr. Because even if we already have our nix infra configs accessible to the public,\n\u003e sometimes it's not that easy for newcomers to know what to pick from them.\n\u003e Small steps of courtesy can have a big and positive impact in our community.\n\u003e Having an [import-tree](https://github.com/vic/import-tree) reference to [your repository](https://github.com/vic/dendrix/blob/main/dev/npins/sources.json) imposes no cost to you, and yet if you [help document your subtrees or refine them](https://github.com/vic/dendrix/blob/main/dev/modules/community/vic-vix.nix), that helps the community even more. Your files are always in your control and you are free to accept pull-requests for your shared aspects, staying true to the sharing-spirit of opensource.\n\n\u003c/summary\u003e\n\nOne cool advantage of the [dendritic](https://github.com/mightyiam/dendritic) pattern is that _every single file_ has the same `.nix` syntax, but also the same meaning. Unlike other configuration setups where nix files can be anything: nixos, darwin, packages or home configurations. In a dendritic setup each `.nix` file has only one interpretation: a flake-module. As such, it will internally [configure many different nix config classes](https://discourse.nixos.org/t/how-do-you-structure-your-nixos-configs/65851/8).\n\n\u003e This property enables _aspect-closures_ to be possible. Everything that is needed for a aspect to work is closely related in the same unit (file/directory), instead of being dispersed.\n\nImagine a single `A_aspect.nix` file. Being itself a flake-module, it can internally configure modules for `nixos`, `darwin`, `homeManager` or any other configuration class that needs to be affected for `aspect-a` to work seamlesly.\n\n\u003e Another unlocked property is _incremental-aspects_. Many different files can incrementally contribute to the same aspect, removing nix files or adding more do not break existing aspects, but only extend or limit its capabilites.\n\nNow imagine two files: `A_aspect/minimal.nix`, `A_aspect/maximal.nix`. In a dendritic setup, nor filename nor location is significant, and thus, both files can contribute to the same modules that constitute `aspect-a`, but each file is focused on different capabilities.\n\nUsing the import-tree API one could select only minimal\ncapabilities.\n\n```nix\nshared-tree = import-tree.filter (lib.hasInfix \"minimal\");\n```\n\nWe could also have `A_aspect/private.nix` making it contribute capabilities to our personal infra but not visible for community members.\n\n```nix\nshared-tree = import-tree.filterNot (lib.hasInfix \"private\");\n```\n\nWe can also have a convention of anything inside `community` be shareable.\n\n```nix\nshared-tree = import-tree.filter (lib.hasInfix \"community\");\n```\n\n\u003e And even provide a richer [import-tree API](https://github.com/vic/import-tree) for people\n\u003e willing to consume our shared configuration tree:\n\n```nix\n# provider's flake\nflake.lib.shared-tree = lib.pipe inputs.import-tree [\n  (self: self.addPath ./modules)\n  (self: self.filterNot lib.hasInfix(\"private\"))\n  (self: self.filter lib.hasInfix(\"community\"))\n  (self: self.addAPI {\n    aspect-a = self: self.filter lib.hasInfix(\"A_aspect\");\n    aspect-b = self: self.filter lib.hasInfix(\"B_aspect\");\n    minimal = self: self.filter lib.hasInfix(\"minimal\");\n    maximal = self: self.filter lib.hasInfix(\"maximal\");\n  })\n];\n```\n\nThis way people consuming our shared import-tree will not\nhave access to anything including `private` and only things under `community` and a couple of `minimal`, and `maximal` capability selectors.\n\n```nix\n# consumer's flake\nimports = [\n  inputs.providers-flake.lib.shared-tree.minimal.aspect-a\n  inputs.providers-flake.lib.shared-tree.maximal.aspect-b\n];\n```\n\nOf course this is only an example API. People and the community can comeup with better conventions on how to name things that better suit their design.\n\n\u003c/details\u003e\n\n## How it works\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\n\u003e tl;dr. By sharing subsets of community's flake-modules on this repo.\n\n`dendrix` provides collections of [`import-tree`](https://github.com/vic/import-tree)s from [many dendritic nix repositories](https://github.com/vic/dendrix/blob/main/dev/npins/sources.json) made available by the nix community. You can think of each import-tree like a pointer into a repository's [subdir and filters](https://github.com/vic/dendrix/tree/main/dev/modules/community) to select files within.\n\nThis section outlines [some conventions](https://github.com/vic/dendrix/tree/main/dev/modules/community/_pipeline.nix) for people willing to opt-in on sharing substrees of their dendritic configs.\n\n\u003c/summary\u003e\n\nIn a sense, this repository is akin to [nix-community/NUR](https://github.com/nix-community/NUR)\nbut for flake-parts modules that can provide packages and aspects to many different nix configuration classes.\n\nMany dendritic repositories have a `./modules` directory from where they `import-tree` all of their nix modules. However the dendritic pattern does not impose any naming convention, it just happens most of us have used `./modules`. If you have an uncommon modules path, you can set the [`trees.default.subdir`](https://github.com/vic/dendrix/blob/main/dev/modules/community/options.nix#L59) option for your-repo ([example](https://github.com/vic/dendrix/blob/main/dev/modules/community/vic-vix.nix)).\n\nYou can also use the [`import-tree API`](https://github.com/vic/import-tree) to provide refined subtrees or file filters for specific collections.\n\nA dendrix [default convention](https://github.com/vic/dendrix/blob/main/dev/modules/community/options.nix#L16) is that any path of yours having the `private` (file or directory) is not for share.\n\nWe (as a community) still have to come up with other conventions like, how we name aspect modules. But they will araise (feel free to open an issue or discussion on this repo) as we start having _incremental aspects_ across repositories.\n\nBased on these community import-trees we also provide some _blessed_, configuration [layers](https://github.com/vic/dendrix/tree/main/modules/layers) maintained by the Dendrix community that people can easily enable on their own dendritic setup.\n\n\u003c/details\u003e\n\n## FAQ\n\n- Are these configurations restriced to dendritic setups?\n\n  Yes. The reason is that using dendritic patterns allows\n  us to easily combine configs from many different community sources\n  knowing that each and every .nix file will be a flake-parts module.\n\n  Layers (blessed presets) are always loaded by import-tree,\n  but _only enabled_ when you include them as part of a top-level module of yours.\n\n- Is dendrix a NixOS based distribution ?\n\n  In a way, but we still don't provide customized bootable installers.\n\n  It is more a flake-parts configurations collection that can be included\n  on any dendritic setup.\n\n- Can I contribute my _awesome Desktop_ rice?\n\n  Sure! the best way to do that is to keep your desktop rice on your own repository.\n  And use this repo to add an import-tree object pointing to it. See the notes above\n  about contributing on `dev/npins/sources.json` and `dev/modules/community/*.nix`.\n\n- How are layers made?\n\n  A layer is a _blessed_ dendritic setup, aimed to reuse aspects from the community\n  provided dendritic repositories. However these blessed configs might have conventions\n  that community repositories not necessarily follow (since our repos are mainly used\n  for our own infra). So it is part of this community to create discussions about how\n  to name things so that best practices and conventions arise around sharing and\n  extending known aspects.\n\n  For example, if we had a `gaming` aspect. We would need conventions on how to name\n  aspect modules for gaming. And people would likely provide such dendritic configurations\n  on their setups.\n\n  So, long story short, layers are community owned setups. And repos are owned by\n  a respective community member.\n\n- How about Games/AI/Devops/Security layers?\n\n  You are right on point!, that's precisely why this project started. We also\n  want to provide specialized versions of NixOS focused on pre-configured security, gaming,\n  development setups.\n\n## Contributing\n\nSince we all now have agreed to follow the Dendritic\npattern to organize our files, lets take a few more guidelines to make eveybody's life easier:\n\n- Always be nice, and have respect for others.\n- Be professional and considerate we are giving our time and energy on this project as an invaluable good for others.\n- Contributions are welcome as long as you also make a compromise to become maintainer for your aspect don't abandon your contribution easily. (Unmaintained files will be removed.)\n- This is a community project, so as soon as your PR is merged you'll also get commit bit, however we restrict\n  changes to be only via PRs and require code-owners review before merge.\n- Prefer linear git history, squash PRs and no merge-commit. Vic recommends working with jujutsu.\n\n### Development\n\nWe recommend to use `direnv` or anything that can load our `nix develop path:dev` environment. If you are\nusing direnv, we provide an `.envrc` for it.\n\nUpon entering the shell, you will see a menu of useful commands during development.\n\n```shell\nnix develop ./dev -c files # generate nix-controlled files (like this README) and format them.\nnix flake check ./dev      # checks all is up-to-date, community checks, and formatting\n\n# when adding a new repo, run npins inside of ./dev\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvic%2Fdendrix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvic%2Fdendrix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvic%2Fdendrix/lists"}