···11-<!-- NOTICE: edit this file at dev/readme_template.md and then run the `files` devshell command. -->
11+> Documentation has moved to our site: https://vic.github.io/dendrix
2233# Dendrix - community-driven distribution of Dendritic Nix configurations.
4455-Editor-distributions like those for nvim/emacs provide community-driven,
66-opinionated configurations that can be easily reused and enabled by newcomers.
77-88-The `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).
99-1010-Read more on [Motivation](#motivation) and [How it works](#how-it-works).
1111-1212-## Available dendritic repos.
1313-1414-The following is a list of known dendritic repositories from the nix community.
1515-If you want to add/remove one of them, send a pull-request that edits `dev/npins/sources.json`.
1616-Also if you want to provide custom trees, send a pull-request editing `dev/modules/community/your_repo.nix`.
1717-1818-<details>
1919-<summary>
2020-2121-Dendrix knows of <b>8</b> [dendritic repositories](https://github.com/vic/dendrix/blob/main/dev/npins/sources.json).
2222-203 [import-trees](https://github.com/vic/dendrix/tree/main/dev/modules/community).
2323-9 flags.
2424-162 aspects accross 9 different nix configuration classes.
2525-612 nix configuration files.
2626-2727-</summary>
2828-2929-### [Maka-77x-nixconf7](https://github.com/Maka-77x/nixconf7/tree/e3fd4cacd66d708911109b3a0f43f7b65d8be7bd
3030-3131-<details>
3232-<summary>
3333-3434-Maka-77x-nixconf7 at rev e3fd4ca.
3535-22 dendritic trees.
3636-<b>22</b> aspects across 2 nix classes.
3737-97 nix configuration files.
3838-3939-</summary>
4040-4141-[README](https://github.com/Maka-77x/nixconf7/tree/e3fd4cacd66d708911109b3a0f43f7b65d8be7bd/README.md)
4242-4343-<details>
4444-<summary>
4545-4646-##### Maka-77x-nixconf7 defines <b>22</b> aspects across 2 nix classes.
4747-4848-</summary>
4949-5050-- <code>ai</code>: <code>nixos</code>
5151-5252-- <code>base</code>: <code>homeManager</code>/<code>nixos</code>
5353-5454-- <code>bluetooth</code>: <code>nixos</code>
5555-5656-- <code>desktop</code>: <code>homeManager</code>/<code>nixos</code>
5757-5858-- <code>dev</code>: <code>homeManager</code>/<code>nixos</code>
5959-6060-- <code>displaylink</code>: <code>nixos</code>
6161-6262-- <code>email</code>: <code>homeManager</code>
6363-6464-- <code>facter</code>: <code>homeManager</code>/<code>nixos</code>
6565-6666-- <code>fwupd</code>: <code>nixos</code>
6767-6868-- <code>games</code>: <code>homeManager</code>
6969-7070-- <code>guacamole</code>: <code>nixos</code>
7171-7272-- <code>hosts/gouda</code>: <code>nixos</code>
7373-7474-- <code>hosts/nixos</code>: <code>nixos</code>
7575-7676-- <code>messaging</code>: <code>homeManager</code>
7777-7878-- <code>mimi</code>: <code>nixos</code>
7979-8080-- <code>openssh</code>: <code>nixos</code>
8181-8282-- <code>root</code>: <code>nixos</code>
8383-8484-- <code>shell</code>: <code>homeManager</code>/<code>nixos</code>
8585-8686-- <code>sound</code>: <code>nixos</code>
8787-8888-- <code>virtualisation</code>: <code>nixos</code>
8989-9090-- <code>vpn</code>: <code>homeManager</code>/<code>nixos</code>
9191-9292-- <code>work</code>: <code>homeManager</code>
9393-9494-</details>
9595-9696-No community notes on Maka-77x-nixconf7. Use the source, Luke.
9797-9898-- ai:
9999-100100-Maka-77x-nixconf7's ai tree
101101-102102-```nix
103103-# usage on your layers.nix
104104-{inputs, ...}: {
105105- imports = [
106106- inputs.dendrix.community.Maka-77x-nixconf7.ai
107107- ];
108108-}
109109-```
110110-111111-- base:
112112-113113-Maka-77x-nixconf7's base tree
114114-115115-```nix
116116-# usage on your layers.nix
117117-{inputs, ...}: {
118118- imports = [
119119- inputs.dendrix.community.Maka-77x-nixconf7.base
120120- ];
121121-}
122122-```
123123-124124-- bluetooth:
125125-126126-Maka-77x-nixconf7's bluetooth tree
127127-128128-```nix
129129-# usage on your layers.nix
130130-{inputs, ...}: {
131131- imports = [
132132- inputs.dendrix.community.Maka-77x-nixconf7.bluetooth
133133- ];
134134-}
135135-```
136136-137137-- desktop:
138138-139139-Maka-77x-nixconf7's desktop tree
140140-141141-```nix
142142-# usage on your layers.nix
143143-{inputs, ...}: {
144144- imports = [
145145- inputs.dendrix.community.Maka-77x-nixconf7.desktop
146146- ];
147147-}
148148-```
149149-150150-- dev:
151151-152152-Maka-77x-nixconf7's dev tree
153153-154154-```nix
155155-# usage on your layers.nix
156156-{inputs, ...}: {
157157- imports = [
158158- inputs.dendrix.community.Maka-77x-nixconf7.dev
159159- ];
160160-}
161161-```
162162-163163-- displaylink:
164164-165165-Maka-77x-nixconf7's displaylink tree
166166-167167-```nix
168168-# usage on your layers.nix
169169-{inputs, ...}: {
170170- imports = [
171171- inputs.dendrix.community.Maka-77x-nixconf7.displaylink
172172- ];
173173-}
174174-```
175175-176176-- email:
177177-178178-Maka-77x-nixconf7's email tree
179179-180180-```nix
181181-# usage on your layers.nix
182182-{inputs, ...}: {
183183- imports = [
184184- inputs.dendrix.community.Maka-77x-nixconf7.email
185185- ];
186186-}
187187-```
188188-189189-- facter:
190190-191191-Maka-77x-nixconf7's facter tree
192192-193193-```nix
194194-# usage on your layers.nix
195195-{inputs, ...}: {
196196- imports = [
197197- inputs.dendrix.community.Maka-77x-nixconf7.facter
198198- ];
199199-}
200200-```
201201-202202-- fwupd:
203203-204204-Maka-77x-nixconf7's fwupd tree
205205-206206-```nix
207207-# usage on your layers.nix
208208-{inputs, ...}: {
209209- imports = [
210210- inputs.dendrix.community.Maka-77x-nixconf7.fwupd
211211- ];
212212-}
213213-```
214214-215215-- games:
216216-217217-Maka-77x-nixconf7's games tree
218218-219219-```nix
220220-# usage on your layers.nix
221221-{inputs, ...}: {
222222- imports = [
223223- inputs.dendrix.community.Maka-77x-nixconf7.games
224224- ];
225225-}
226226-```
227227-228228-- guacamole:
229229-230230-Maka-77x-nixconf7's guacamole tree
231231-232232-```nix
233233-# usage on your layers.nix
234234-{inputs, ...}: {
235235- imports = [
236236- inputs.dendrix.community.Maka-77x-nixconf7.guacamole
237237- ];
238238-}
239239-```
240240-241241-- hosts/gouda:
242242-243243-Maka-77x-nixconf7's hosts/gouda tree
244244-245245-```nix
246246-# usage on your layers.nix
247247-{inputs, ...}: {
248248- imports = [
249249- inputs.dendrix.community.Maka-77x-nixconf7.hosts/gouda
250250- ];
251251-}
252252-```
253253-254254-- hosts/nixos:
255255-256256-Maka-77x-nixconf7's hosts/nixos tree
257257-258258-```nix
259259-# usage on your layers.nix
260260-{inputs, ...}: {
261261- imports = [
262262- inputs.dendrix.community.Maka-77x-nixconf7.hosts/nixos
263263- ];
264264-}
265265-```
266266-267267-- messaging:
268268-269269-Maka-77x-nixconf7's messaging tree
270270-271271-```nix
272272-# usage on your layers.nix
273273-{inputs, ...}: {
274274- imports = [
275275- inputs.dendrix.community.Maka-77x-nixconf7.messaging
276276- ];
277277-}
278278-```
279279-280280-- mimi:
281281-282282-Maka-77x-nixconf7's mimi tree
283283-284284-```nix
285285-# usage on your layers.nix
286286-{inputs, ...}: {
287287- imports = [
288288- inputs.dendrix.community.Maka-77x-nixconf7.mimi
289289- ];
290290-}
291291-```
292292-293293-- openssh:
294294-295295-Maka-77x-nixconf7's openssh tree
296296-297297-```nix
298298-# usage on your layers.nix
299299-{inputs, ...}: {
300300- imports = [
301301- inputs.dendrix.community.Maka-77x-nixconf7.openssh
302302- ];
303303-}
304304-```
305305-306306-- root:
307307-308308-Maka-77x-nixconf7's root tree
309309-310310-```nix
311311-# usage on your layers.nix
312312-{inputs, ...}: {
313313- imports = [
314314- inputs.dendrix.community.Maka-77x-nixconf7.root
315315- ];
316316-}
317317-```
318318-319319-- shell:
320320-321321-Maka-77x-nixconf7's shell tree
322322-323323-```nix
324324-# usage on your layers.nix
325325-{inputs, ...}: {
326326- imports = [
327327- inputs.dendrix.community.Maka-77x-nixconf7.shell
328328- ];
329329-}
330330-```
331331-332332-- sound:
333333-334334-Maka-77x-nixconf7's sound tree
335335-336336-```nix
337337-# usage on your layers.nix
338338-{inputs, ...}: {
339339- imports = [
340340- inputs.dendrix.community.Maka-77x-nixconf7.sound
341341- ];
342342-}
343343-```
344344-345345-- virtualisation:
346346-347347-Maka-77x-nixconf7's virtualisation tree
348348-349349-```nix
350350-# usage on your layers.nix
351351-{inputs, ...}: {
352352- imports = [
353353- inputs.dendrix.community.Maka-77x-nixconf7.virtualisation
354354- ];
355355-}
356356-```
357357-358358-- vpn:
359359-360360-Maka-77x-nixconf7's vpn tree
361361-362362-```nix
363363-# usage on your layers.nix
364364-{inputs, ...}: {
365365- imports = [
366366- inputs.dendrix.community.Maka-77x-nixconf7.vpn
367367- ];
368368-}
369369-```
370370-371371-- work:
372372-373373-Maka-77x-nixconf7's work tree
374374-375375-```nix
376376-# usage on your layers.nix
377377-{inputs, ...}: {
378378- imports = [
379379- inputs.dendrix.community.Maka-77x-nixconf7.work
380380- ];
381381-}
382382-```
383383-384384-</details>
385385-386386-### [dliberalesso-nix-config](https://github.com/dliberalesso/nix-config/tree/c2906862413dccd1745ce26e0172cac4381c34bd
387387-388388-<details>
389389-<summary>
390390-391391-dliberalesso-nix-config at rev c290686.
392392-8 dendritic trees.
393393-<b>8</b> aspects across 2 nix classes.
394394-85 nix configuration files.
395395-396396-</summary>
397397-398398-[README](https://github.com/dliberalesso/nix-config/tree/c2906862413dccd1745ce26e0172cac4381c34bd/README.md)
399399-400400-<details>
401401-<summary>
402402-403403-##### dliberalesso-nix-config defines <b>8</b> aspects across 2 nix classes.
404404-405405-</summary>
406406-407407-- <code>default</code>: <code>home</code>/<code>nixos</code>
408408-409409-- <code>facter</code>: <code>home</code>/<code>nixos</code>
410410-411411-- <code>gui</code>: <code>home</code>/<code>nixos</code>
412412-413413-- <code>hyprde</code>: <code>home</code>/<code>nixos</code>
414414-415415-- <code>irpf</code>: <code>home</code>/<code>nixos</code>
416416-417417-- <code>laptop</code>: <code>home</code>/<code>nixos</code>
418418-419419-- <code>work</code>: <code>home</code>/<code>nixos</code>
420420-421421-- <code>wsl</code>: <code>home</code>/<code>nixos</code>
422422-423423-</details>
424424-425425-No community notes on dliberalesso-nix-config. Use the source, Luke.
426426-427427-- default:
428428-429429-dliberalesso-nix-config's default tree
430430-431431-```nix
432432-# usage on your layers.nix
433433-{inputs, ...}: {
434434- imports = [
435435- inputs.dendrix.community.dliberalesso-nix-config.default
436436- ];
437437-}
438438-```
439439-440440-- facter:
441441-442442-dliberalesso-nix-config's facter tree
443443-444444-```nix
445445-# usage on your layers.nix
446446-{inputs, ...}: {
447447- imports = [
448448- inputs.dendrix.community.dliberalesso-nix-config.facter
449449- ];
450450-}
451451-```
452452-453453-- gui:
454454-455455-dliberalesso-nix-config's gui tree
456456-457457-```nix
458458-# usage on your layers.nix
459459-{inputs, ...}: {
460460- imports = [
461461- inputs.dendrix.community.dliberalesso-nix-config.gui
462462- ];
463463-}
464464-```
465465-466466-- hyprde:
467467-468468-dliberalesso-nix-config's hyprde tree
469469-470470-```nix
471471-# usage on your layers.nix
472472-{inputs, ...}: {
473473- imports = [
474474- inputs.dendrix.community.dliberalesso-nix-config.hyprde
475475- ];
476476-}
477477-```
478478-479479-- irpf:
480480-481481-dliberalesso-nix-config's irpf tree
482482-483483-```nix
484484-# usage on your layers.nix
485485-{inputs, ...}: {
486486- imports = [
487487- inputs.dendrix.community.dliberalesso-nix-config.irpf
488488- ];
489489-}
490490-```
491491-492492-- laptop:
493493-494494-dliberalesso-nix-config's laptop tree
495495-496496-```nix
497497-# usage on your layers.nix
498498-{inputs, ...}: {
499499- imports = [
500500- inputs.dendrix.community.dliberalesso-nix-config.laptop
501501- ];
502502-}
503503-```
504504-505505-- work:
506506-507507-dliberalesso-nix-config's work tree
508508-509509-```nix
510510-# usage on your layers.nix
511511-{inputs, ...}: {
512512- imports = [
513513- inputs.dendrix.community.dliberalesso-nix-config.work
514514- ];
515515-}
516516-```
517517-518518-- wsl:
519519-520520-dliberalesso-nix-config's wsl tree
521521-522522-```nix
523523-# usage on your layers.nix
524524-{inputs, ...}: {
525525- imports = [
526526- inputs.dendrix.community.dliberalesso-nix-config.wsl
527527- ];
528528-}
529529-```
530530-531531-</details>
532532-533533-### [drupol-infra](https://github.com/drupol/infra/tree/a10da3a0e88d17566918fa8db69fa0faa9e1d0c8
534534-535535-<details>
536536-<summary>
537537-538538-drupol-infra at rev a10da3a.
539539-24 dendritic trees.
540540-<b>24</b> aspects across 2 nix classes.
541541-107 nix configuration files.
542542-543543-</summary>
544544-545545-[README](https://github.com/drupol/infra/tree/a10da3a0e88d17566918fa8db69fa0faa9e1d0c8/README.md)
546546-547547-<details>
548548-<summary>
549549-550550-##### drupol-infra defines <b>24</b> aspects across 2 nix classes.
551551-552552-</summary>
553553-554554-- <code>ai</code>: <code>nixos</code>
555555-556556-- <code>base</code>: <code>homeManager</code>/<code>nixos</code>
557557-558558-- <code>bluetooth</code>: <code>nixos</code>
559559-560560-- <code>desktop</code>: <code>homeManager</code>/<code>nixos</code>
561561-562562-- <code>dev</code>: <code>homeManager</code>/<code>nixos</code>
563563-564564-- <code>displaylink</code>: <code>nixos</code>
565565-566566-- <code>email</code>: <code>homeManager</code>
567567-568568-- <code>facter</code>: <code>homeManager</code>/<code>nixos</code>
569569-570570-- <code>fwupd</code>: <code>nixos</code>
571571-572572-- <code>games</code>: <code>homeManager</code>
573573-574574-- <code>guacamole</code>: <code>nixos</code>
575575-576576-- <code>hosts/nixos</code>: <code>nixos</code>
577577-578578-- <code>hosts/x13</code>: <code>nixos</code>
579579-580580-- <code>hosts/x260</code>: <code>nixos</code>
581581-582582-- <code>hosts/x280</code>: <code>nixos</code>
583583-584584-- <code>hosts/xeonixos</code>: <code>nixos</code>
585585-586586-- <code>messaging</code>: <code>homeManager</code>
587587-588588-- <code>openssh</code>: <code>nixos</code>
589589-590590-- <code>pol</code>: <code>nixos</code>
591591-592592-- <code>root</code>: <code>nixos</code>
593593-594594-- <code>shell</code>: <code>homeManager</code>/<code>nixos</code>
595595-596596-- <code>sound</code>: <code>nixos</code>
597597-598598-- <code>vpn</code>: <code>homeManager</code>/<code>nixos</code>
599599-600600-- <code>work</code>: <code>homeManager</code>
601601-602602-</details>
603603-604604-No community notes on drupol-infra. Use the source, Luke.
605605-606606-- ai:
607607-608608-drupol-infra's ai tree
609609-610610-```nix
611611-# usage on your layers.nix
612612-{inputs, ...}: {
613613- imports = [
614614- inputs.dendrix.community.drupol-infra.ai
615615- ];
616616-}
617617-```
618618-619619-- base:
620620-621621-drupol-infra's base tree
622622-623623-```nix
624624-# usage on your layers.nix
625625-{inputs, ...}: {
626626- imports = [
627627- inputs.dendrix.community.drupol-infra.base
628628- ];
629629-}
630630-```
631631-632632-- bluetooth:
633633-634634-drupol-infra's bluetooth tree
635635-636636-```nix
637637-# usage on your layers.nix
638638-{inputs, ...}: {
639639- imports = [
640640- inputs.dendrix.community.drupol-infra.bluetooth
641641- ];
642642-}
643643-```
644644-645645-- desktop:
646646-647647-drupol-infra's desktop tree
648648-649649-```nix
650650-# usage on your layers.nix
651651-{inputs, ...}: {
652652- imports = [
653653- inputs.dendrix.community.drupol-infra.desktop
654654- ];
655655-}
656656-```
657657-658658-- dev:
659659-660660-drupol-infra's dev tree
661661-662662-```nix
663663-# usage on your layers.nix
664664-{inputs, ...}: {
665665- imports = [
666666- inputs.dendrix.community.drupol-infra.dev
667667- ];
668668-}
669669-```
670670-671671-- displaylink:
672672-673673-drupol-infra's displaylink tree
674674-675675-```nix
676676-# usage on your layers.nix
677677-{inputs, ...}: {
678678- imports = [
679679- inputs.dendrix.community.drupol-infra.displaylink
680680- ];
681681-}
682682-```
683683-684684-- email:
685685-686686-drupol-infra's email tree
687687-688688-```nix
689689-# usage on your layers.nix
690690-{inputs, ...}: {
691691- imports = [
692692- inputs.dendrix.community.drupol-infra.email
693693- ];
694694-}
695695-```
696696-697697-- facter:
698698-699699-drupol-infra's facter tree
700700-701701-```nix
702702-# usage on your layers.nix
703703-{inputs, ...}: {
704704- imports = [
705705- inputs.dendrix.community.drupol-infra.facter
706706- ];
707707-}
708708-```
709709-710710-- fwupd:
711711-712712-drupol-infra's fwupd tree
713713-714714-```nix
715715-# usage on your layers.nix
716716-{inputs, ...}: {
717717- imports = [
718718- inputs.dendrix.community.drupol-infra.fwupd
719719- ];
720720-}
721721-```
722722-723723-- games:
724724-725725-drupol-infra's games tree
726726-727727-```nix
728728-# usage on your layers.nix
729729-{inputs, ...}: {
730730- imports = [
731731- inputs.dendrix.community.drupol-infra.games
732732- ];
733733-}
734734-```
735735-736736-- guacamole:
737737-738738-drupol-infra's guacamole tree
739739-740740-```nix
741741-# usage on your layers.nix
742742-{inputs, ...}: {
743743- imports = [
744744- inputs.dendrix.community.drupol-infra.guacamole
745745- ];
746746-}
747747-```
748748-749749-- hosts/nixos:
750750-751751-drupol-infra's hosts/nixos tree
752752-753753-```nix
754754-# usage on your layers.nix
755755-{inputs, ...}: {
756756- imports = [
757757- inputs.dendrix.community.drupol-infra.hosts/nixos
758758- ];
759759-}
760760-```
761761-762762-- hosts/x13:
763763-764764-drupol-infra's hosts/x13 tree
765765-766766-```nix
767767-# usage on your layers.nix
768768-{inputs, ...}: {
769769- imports = [
770770- inputs.dendrix.community.drupol-infra.hosts/x13
771771- ];
772772-}
773773-```
774774-775775-- hosts/x260:
776776-777777-drupol-infra's hosts/x260 tree
778778-779779-```nix
780780-# usage on your layers.nix
781781-{inputs, ...}: {
782782- imports = [
783783- inputs.dendrix.community.drupol-infra.hosts/x260
784784- ];
785785-}
786786-```
787787-788788-- hosts/x280:
789789-790790-drupol-infra's hosts/x280 tree
791791-792792-```nix
793793-# usage on your layers.nix
794794-{inputs, ...}: {
795795- imports = [
796796- inputs.dendrix.community.drupol-infra.hosts/x280
797797- ];
798798-}
799799-```
800800-801801-- hosts/xeonixos:
802802-803803-drupol-infra's hosts/xeonixos tree
804804-805805-```nix
806806-# usage on your layers.nix
807807-{inputs, ...}: {
808808- imports = [
809809- inputs.dendrix.community.drupol-infra.hosts/xeonixos
810810- ];
811811-}
812812-```
813813-814814-- messaging:
815815-816816-drupol-infra's messaging tree
817817-818818-```nix
819819-# usage on your layers.nix
820820-{inputs, ...}: {
821821- imports = [
822822- inputs.dendrix.community.drupol-infra.messaging
823823- ];
824824-}
825825-```
826826-827827-- openssh:
828828-829829-drupol-infra's openssh tree
830830-831831-```nix
832832-# usage on your layers.nix
833833-{inputs, ...}: {
834834- imports = [
835835- inputs.dendrix.community.drupol-infra.openssh
836836- ];
837837-}
838838-```
839839-840840-- pol:
841841-842842-drupol-infra's pol tree
843843-844844-```nix
845845-# usage on your layers.nix
846846-{inputs, ...}: {
847847- imports = [
848848- inputs.dendrix.community.drupol-infra.pol
849849- ];
850850-}
851851-```
852852-853853-- root:
854854-855855-drupol-infra's root tree
856856-857857-```nix
858858-# usage on your layers.nix
859859-{inputs, ...}: {
860860- imports = [
861861- inputs.dendrix.community.drupol-infra.root
862862- ];
863863-}
864864-```
865865-866866-- shell:
867867-868868-drupol-infra's shell tree
869869-870870-```nix
871871-# usage on your layers.nix
872872-{inputs, ...}: {
873873- imports = [
874874- inputs.dendrix.community.drupol-infra.shell
875875- ];
876876-}
877877-```
878878-879879-- sound:
880880-881881-drupol-infra's sound tree
882882-883883-```nix
884884-# usage on your layers.nix
885885-{inputs, ...}: {
886886- imports = [
887887- inputs.dendrix.community.drupol-infra.sound
888888- ];
889889-}
890890-```
891891-892892-- vpn:
893893-894894-drupol-infra's vpn tree
895895-896896-```nix
897897-# usage on your layers.nix
898898-{inputs, ...}: {
899899- imports = [
900900- inputs.dendrix.community.drupol-infra.vpn
901901- ];
902902-}
903903-```
904904-905905-- work:
906906-907907-drupol-infra's work tree
908908-909909-```nix
910910-# usage on your layers.nix
911911-{inputs, ...}: {
912912- imports = [
913913- inputs.dendrix.community.drupol-infra.work
914914- ];
915915-}
916916-```
917917-918918-</details>
919919-920920-### [gaetanlepage-nix-config](https://github.com/gaetanlepage/nix-config/tree/1d2b2faa7dc402b64e4fad02dd8ce85bce5c15cd
921921-922922-<details>
923923-<summary>
924924-925925-gaetanlepage-nix-config at rev 1d2b2fa.
926926-55 dendritic trees.
927927-<b>55</b> aspects across 2 nix classes.
928928-131 nix configuration files.
929929-930930-</summary>
931931-932932-[README](https://github.com/gaetanlepage/nix-config/tree/1d2b2faa7dc402b64e4fad02dd8ce85bce5c15cd/README.md)
933933-934934-<details>
935935-<summary>
936936-937937-##### gaetanlepage-nix-config defines <b>55</b> aspects across 2 nix classes.
938938-939939-</summary>
940940-941941-- <code>agenix</code>: <code>nixos</code>
942942-943943-- <code>android</code>: <code>nixos</code>
944944-945945-- <code>bg-stream</code>: <code>homeManager</code>
946946-947947-- <code>bluetooth</code>: <code>nixos</code>
948948-949949-- <code>bootloader</code>: <code>nixos</code>
950950-951951-- <code>caddy-reverse-proxies</code>: <code>nixos</code>
952952-953953-- <code>cloud-backup</code>: <code>nixos</code>
954954-955955-- <code>core</code>: <code>homeManager</code>/<code>nixos</code>
956956-957957-- <code>csConfig</code>: <code>homeManager</code>
958958-959959-- <code>desktop</code>: <code>homeManager</code>/<code>nixos</code>
960960-961961-- <code>desktop-programs</code>: <code>homeManager</code>
962962-963963-- <code>dev</code>: <code>nixos</code>
964964-965965-- <code>display-manager</code>: <code>nixos</code>
966966-967967-- <code>dunst</code>: <code>homeManager</code>
968968-969969-- <code>email</code>: <code>homeManager</code>
970970-971971-- <code>firefox</code>: <code>homeManager</code>
972972-973973-- <code>flameshot</code>: <code>homeManager</code>
974974-975975-- <code>foot</code>: <code>homeManager</code>
976976-977977-- <code>gammastep</code>: <code>homeManager</code>
978978-979979-- <code>gtk</code>: <code>homeManager</code>
980980-981981-- <code>home-manager</code>: <code>homeManager</code>/<code>nixos</code>
982982-983983-- <code>host_cuda</code>: <code>homeManager</code>/<code>nixos</code>
984984-985985-- <code>host_feroe</code>: <code>nixos</code>
986986-987987-- <code>host_framework</code>: <code>homeManager</code>/<code>nixos</code>
988988-989989-- <code>host_inria</code>: <code>homeManager</code>
990990-991991-- <code>host_jrs</code>: <code>homeManager</code>
992992-993993-- <code>host_tank</code>: <code>nixos</code>
994994-995995-- <code>host_vps</code>: <code>nixos</code>
996996-997997-- <code>kanshi</code>: <code>homeManager</code>
998998-999999-- <code>keyring</code>: <code>homeManager</code>
10001000-10011001-- <code>nh</code>: <code>homeManager</code>
10021002-10031003-- <code>nix</code>: <code>homeManager</code>/<code>nixos</code>
10041004-10051005-- <code>nix-index-database</code>: <code>homeManager</code>
10061006-10071007-- <code>nvidia</code>: <code>nixos</code>
10081008-10091009-- <code>obs</code>: <code>nixos</code>
10101010-10111011-- <code>printing</code>: <code>nixos</code>
10121012-10131013-- <code>remote-builders</code>: <code>nixos</code>
10141014-10151015-- <code>rofi</code>: <code>homeManager</code>
10161016-10171017-- <code>security</code>: <code>nixos</code>
10181018-10191019-- <code>server</code>: <code>nixos</code>
10201020-10211021-- <code>sound</code>: <code>nixos</code>
10221022-10231023-- <code>ssh-client</code>: <code>nixos</code>
10241024-10251025-- <code>ssh-server</code>: <code>nixos</code>
10261026-10271027-- <code>streaming</code>: <code>homeManager</code>
10281028-10291029-- <code>substituters</code>: <code>homeManager</code>/<code>nixos</code>
10301030-10311031-- <code>sway</code>: <code>homeManager</code>
10321032-10331033-- <code>swaylock</code>: <code>homeManager</code>
10341034-10351035-- <code>thunar</code>: <code>nixos</code>
10361036-10371037-- <code>udiskie</code>: <code>homeManager</code>
10381038-10391039-- <code>users</code>: <code>nixos</code>
10401040-10411041-- <code>waybar</code>: <code>homeManager</code>
10421042-10431043-- <code>wayland</code>: <code>homeManager</code>
10441044-10451045-- <code>wireguard-client</code>: <code>nixos</code>
10461046-10471047-- <code>xdg</code>: <code>homeManager</code>
10481048-10491049-- <code>zathura</code>: <code>homeManager</code>
10501050-10511051-</details>
10521052-10531053-No community notes on gaetanlepage-nix-config. Use the source, Luke.
10541054-10551055-- agenix:
10561056-10571057-gaetanlepage-nix-config's agenix tree
10581058-10591059-```nix
10601060-# usage on your layers.nix
10611061-{inputs, ...}: {
10621062- imports = [
10631063- inputs.dendrix.community.gaetanlepage-nix-config.agenix
10641064- ];
10651065-}
10661066-```
10671067-10681068-- android:
10691069-10701070-gaetanlepage-nix-config's android tree
10711071-10721072-```nix
10731073-# usage on your layers.nix
10741074-{inputs, ...}: {
10751075- imports = [
10761076- inputs.dendrix.community.gaetanlepage-nix-config.android
10771077- ];
10781078-}
10791079-```
10801080-10811081-- bg-stream:
10821082-10831083-gaetanlepage-nix-config's bg-stream tree
10841084-10851085-```nix
10861086-# usage on your layers.nix
10871087-{inputs, ...}: {
10881088- imports = [
10891089- inputs.dendrix.community.gaetanlepage-nix-config.bg-stream
10901090- ];
10911091-}
10921092-```
10931093-10941094-- bluetooth:
10951095-10961096-gaetanlepage-nix-config's bluetooth tree
10971097-10981098-```nix
10991099-# usage on your layers.nix
11001100-{inputs, ...}: {
11011101- imports = [
11021102- inputs.dendrix.community.gaetanlepage-nix-config.bluetooth
11031103- ];
11041104-}
11051105-```
11061106-11071107-- bootloader:
11081108-11091109-gaetanlepage-nix-config's bootloader tree
11101110-11111111-```nix
11121112-# usage on your layers.nix
11131113-{inputs, ...}: {
11141114- imports = [
11151115- inputs.dendrix.community.gaetanlepage-nix-config.bootloader
11161116- ];
11171117-}
11181118-```
11191119-11201120-- caddy-reverse-proxies:
11211121-11221122-gaetanlepage-nix-config's caddy-reverse-proxies tree
11231123-11241124-```nix
11251125-# usage on your layers.nix
11261126-{inputs, ...}: {
11271127- imports = [
11281128- inputs.dendrix.community.gaetanlepage-nix-config.caddy-reverse-proxies
11291129- ];
11301130-}
11311131-```
11321132-11331133-- cloud-backup:
11341134-11351135-gaetanlepage-nix-config's cloud-backup tree
11361136-11371137-```nix
11381138-# usage on your layers.nix
11391139-{inputs, ...}: {
11401140- imports = [
11411141- inputs.dendrix.community.gaetanlepage-nix-config.cloud-backup
11421142- ];
11431143-}
11441144-```
11451145-11461146-- core:
11471147-11481148-gaetanlepage-nix-config's core tree
11491149-11501150-```nix
11511151-# usage on your layers.nix
11521152-{inputs, ...}: {
11531153- imports = [
11541154- inputs.dendrix.community.gaetanlepage-nix-config.core
11551155- ];
11561156-}
11571157-```
11581158-11591159-- csConfig:
11601160-11611161-gaetanlepage-nix-config's csConfig tree
11621162-11631163-```nix
11641164-# usage on your layers.nix
11651165-{inputs, ...}: {
11661166- imports = [
11671167- inputs.dendrix.community.gaetanlepage-nix-config.csConfig
11681168- ];
11691169-}
11701170-```
11711171-11721172-- desktop:
11731173-11741174-gaetanlepage-nix-config's desktop tree
11751175-11761176-```nix
11771177-# usage on your layers.nix
11781178-{inputs, ...}: {
11791179- imports = [
11801180- inputs.dendrix.community.gaetanlepage-nix-config.desktop
11811181- ];
11821182-}
11831183-```
11841184-11851185-- desktop-programs:
11861186-11871187-gaetanlepage-nix-config's desktop-programs tree
11881188-11891189-```nix
11901190-# usage on your layers.nix
11911191-{inputs, ...}: {
11921192- imports = [
11931193- inputs.dendrix.community.gaetanlepage-nix-config.desktop-programs
11941194- ];
11951195-}
11961196-```
11971197-11981198-- dev:
11991199-12001200-gaetanlepage-nix-config's dev tree
12011201-12021202-```nix
12031203-# usage on your layers.nix
12041204-{inputs, ...}: {
12051205- imports = [
12061206- inputs.dendrix.community.gaetanlepage-nix-config.dev
12071207- ];
12081208-}
12091209-```
12101210-12111211-- display-manager:
12121212-12131213-gaetanlepage-nix-config's display-manager tree
12141214-12151215-```nix
12161216-# usage on your layers.nix
12171217-{inputs, ...}: {
12181218- imports = [
12191219- inputs.dendrix.community.gaetanlepage-nix-config.display-manager
12201220- ];
12211221-}
12221222-```
12231223-12241224-- dunst:
12251225-12261226-gaetanlepage-nix-config's dunst tree
12271227-12281228-```nix
12291229-# usage on your layers.nix
12301230-{inputs, ...}: {
12311231- imports = [
12321232- inputs.dendrix.community.gaetanlepage-nix-config.dunst
12331233- ];
12341234-}
12351235-```
12361236-12371237-- email:
12381238-12391239-gaetanlepage-nix-config's email tree
12401240-12411241-```nix
12421242-# usage on your layers.nix
12431243-{inputs, ...}: {
12441244- imports = [
12451245- inputs.dendrix.community.gaetanlepage-nix-config.email
12461246- ];
12471247-}
12481248-```
12491249-12501250-- firefox:
12511251-12521252-gaetanlepage-nix-config's firefox tree
12531253-12541254-```nix
12551255-# usage on your layers.nix
12561256-{inputs, ...}: {
12571257- imports = [
12581258- inputs.dendrix.community.gaetanlepage-nix-config.firefox
12591259- ];
12601260-}
12611261-```
12621262-12631263-- flameshot:
12641264-12651265-gaetanlepage-nix-config's flameshot tree
12661266-12671267-```nix
12681268-# usage on your layers.nix
12691269-{inputs, ...}: {
12701270- imports = [
12711271- inputs.dendrix.community.gaetanlepage-nix-config.flameshot
12721272- ];
12731273-}
12741274-```
12751275-12761276-- foot:
12771277-12781278-gaetanlepage-nix-config's foot tree
12791279-12801280-```nix
12811281-# usage on your layers.nix
12821282-{inputs, ...}: {
12831283- imports = [
12841284- inputs.dendrix.community.gaetanlepage-nix-config.foot
12851285- ];
12861286-}
12871287-```
12881288-12891289-- gammastep:
12901290-12911291-gaetanlepage-nix-config's gammastep tree
12921292-12931293-```nix
12941294-# usage on your layers.nix
12951295-{inputs, ...}: {
12961296- imports = [
12971297- inputs.dendrix.community.gaetanlepage-nix-config.gammastep
12981298- ];
12991299-}
13001300-```
13011301-13021302-- gtk:
13031303-13041304-gaetanlepage-nix-config's gtk tree
13051305-13061306-```nix
13071307-# usage on your layers.nix
13081308-{inputs, ...}: {
13091309- imports = [
13101310- inputs.dendrix.community.gaetanlepage-nix-config.gtk
13111311- ];
13121312-}
13131313-```
13141314-13151315-- home-manager:
13161316-13171317-gaetanlepage-nix-config's home-manager tree
13181318-13191319-```nix
13201320-# usage on your layers.nix
13211321-{inputs, ...}: {
13221322- imports = [
13231323- inputs.dendrix.community.gaetanlepage-nix-config.home-manager
13241324- ];
13251325-}
13261326-```
13271327-13281328-- host_cuda:
13291329-13301330-gaetanlepage-nix-config's host_cuda tree
13311331-13321332-```nix
13331333-# usage on your layers.nix
13341334-{inputs, ...}: {
13351335- imports = [
13361336- inputs.dendrix.community.gaetanlepage-nix-config.host_cuda
13371337- ];
13381338-}
13391339-```
13401340-13411341-- host_feroe:
13421342-13431343-gaetanlepage-nix-config's host_feroe tree
13441344-13451345-```nix
13461346-# usage on your layers.nix
13471347-{inputs, ...}: {
13481348- imports = [
13491349- inputs.dendrix.community.gaetanlepage-nix-config.host_feroe
13501350- ];
13511351-}
13521352-```
13531353-13541354-- host_framework:
13551355-13561356-gaetanlepage-nix-config's host_framework tree
13571357-13581358-```nix
13591359-# usage on your layers.nix
13601360-{inputs, ...}: {
13611361- imports = [
13621362- inputs.dendrix.community.gaetanlepage-nix-config.host_framework
13631363- ];
13641364-}
13651365-```
13661366-13671367-- host_inria:
13681368-13691369-gaetanlepage-nix-config's host_inria tree
13701370-13711371-```nix
13721372-# usage on your layers.nix
13731373-{inputs, ...}: {
13741374- imports = [
13751375- inputs.dendrix.community.gaetanlepage-nix-config.host_inria
13761376- ];
13771377-}
13781378-```
13791379-13801380-- host_jrs:
13811381-13821382-gaetanlepage-nix-config's host_jrs tree
13831383-13841384-```nix
13851385-# usage on your layers.nix
13861386-{inputs, ...}: {
13871387- imports = [
13881388- inputs.dendrix.community.gaetanlepage-nix-config.host_jrs
13891389- ];
13901390-}
13911391-```
13921392-13931393-- host_tank:
13941394-13951395-gaetanlepage-nix-config's host_tank tree
13961396-13971397-```nix
13981398-# usage on your layers.nix
13991399-{inputs, ...}: {
14001400- imports = [
14011401- inputs.dendrix.community.gaetanlepage-nix-config.host_tank
14021402- ];
14031403-}
14041404-```
14051405-14061406-- host_vps:
14071407-14081408-gaetanlepage-nix-config's host_vps tree
14091409-14101410-```nix
14111411-# usage on your layers.nix
14121412-{inputs, ...}: {
14131413- imports = [
14141414- inputs.dendrix.community.gaetanlepage-nix-config.host_vps
14151415- ];
14161416-}
14171417-```
14181418-14191419-- kanshi:
14201420-14211421-gaetanlepage-nix-config's kanshi tree
14221422-14231423-```nix
14241424-# usage on your layers.nix
14251425-{inputs, ...}: {
14261426- imports = [
14271427- inputs.dendrix.community.gaetanlepage-nix-config.kanshi
14281428- ];
14291429-}
14301430-```
14311431-14321432-- keyring:
14331433-14341434-gaetanlepage-nix-config's keyring tree
14351435-14361436-```nix
14371437-# usage on your layers.nix
14381438-{inputs, ...}: {
14391439- imports = [
14401440- inputs.dendrix.community.gaetanlepage-nix-config.keyring
14411441- ];
14421442-}
14431443-```
14441444-14451445-- nh:
14461446-14471447-gaetanlepage-nix-config's nh tree
14481448-14491449-```nix
14501450-# usage on your layers.nix
14511451-{inputs, ...}: {
14521452- imports = [
14531453- inputs.dendrix.community.gaetanlepage-nix-config.nh
14541454- ];
14551455-}
14561456-```
14571457-14581458-- nix:
14591459-14601460-gaetanlepage-nix-config's nix tree
14611461-14621462-```nix
14631463-# usage on your layers.nix
14641464-{inputs, ...}: {
14651465- imports = [
14661466- inputs.dendrix.community.gaetanlepage-nix-config.nix
14671467- ];
14681468-}
14691469-```
14701470-14711471-- nix-index-database:
14721472-14731473-gaetanlepage-nix-config's nix-index-database tree
14741474-14751475-```nix
14761476-# usage on your layers.nix
14771477-{inputs, ...}: {
14781478- imports = [
14791479- inputs.dendrix.community.gaetanlepage-nix-config.nix-index-database
14801480- ];
14811481-}
14821482-```
14831483-14841484-- nvidia:
14851485-14861486-gaetanlepage-nix-config's nvidia tree
14871487-14881488-```nix
14891489-# usage on your layers.nix
14901490-{inputs, ...}: {
14911491- imports = [
14921492- inputs.dendrix.community.gaetanlepage-nix-config.nvidia
14931493- ];
14941494-}
14951495-```
14961496-14971497-- obs:
14981498-14991499-gaetanlepage-nix-config's obs tree
15001500-15011501-```nix
15021502-# usage on your layers.nix
15031503-{inputs, ...}: {
15041504- imports = [
15051505- inputs.dendrix.community.gaetanlepage-nix-config.obs
15061506- ];
15071507-}
15081508-```
15091509-15101510-- printing:
15111511-15121512-gaetanlepage-nix-config's printing tree
15131513-15141514-```nix
15151515-# usage on your layers.nix
15161516-{inputs, ...}: {
15171517- imports = [
15181518- inputs.dendrix.community.gaetanlepage-nix-config.printing
15191519- ];
15201520-}
15211521-```
15221522-15231523-- remote-builders:
15241524-15251525-gaetanlepage-nix-config's remote-builders tree
15261526-15271527-```nix
15281528-# usage on your layers.nix
15291529-{inputs, ...}: {
15301530- imports = [
15311531- inputs.dendrix.community.gaetanlepage-nix-config.remote-builders
15321532- ];
15331533-}
15341534-```
15351535-15361536-- rofi:
15371537-15381538-gaetanlepage-nix-config's rofi tree
15391539-15401540-```nix
15411541-# usage on your layers.nix
15421542-{inputs, ...}: {
15431543- imports = [
15441544- inputs.dendrix.community.gaetanlepage-nix-config.rofi
15451545- ];
15461546-}
15471547-```
15481548-15491549-- security:
15501550-15511551-gaetanlepage-nix-config's security tree
15521552-15531553-```nix
15541554-# usage on your layers.nix
15551555-{inputs, ...}: {
15561556- imports = [
15571557- inputs.dendrix.community.gaetanlepage-nix-config.security
15581558- ];
15591559-}
15601560-```
15611561-15621562-- server:
15631563-15641564-gaetanlepage-nix-config's server tree
15651565-15661566-```nix
15671567-# usage on your layers.nix
15681568-{inputs, ...}: {
15691569- imports = [
15701570- inputs.dendrix.community.gaetanlepage-nix-config.server
15711571- ];
15721572-}
15731573-```
15741574-15751575-- sound:
15761576-15771577-gaetanlepage-nix-config's sound tree
15781578-15791579-```nix
15801580-# usage on your layers.nix
15811581-{inputs, ...}: {
15821582- imports = [
15831583- inputs.dendrix.community.gaetanlepage-nix-config.sound
15841584- ];
15851585-}
15861586-```
15871587-15881588-- ssh-client:
15891589-15901590-gaetanlepage-nix-config's ssh-client tree
15911591-15921592-```nix
15931593-# usage on your layers.nix
15941594-{inputs, ...}: {
15951595- imports = [
15961596- inputs.dendrix.community.gaetanlepage-nix-config.ssh-client
15971597- ];
15981598-}
15991599-```
16001600-16011601-- ssh-server:
16021602-16031603-gaetanlepage-nix-config's ssh-server tree
16041604-16051605-```nix
16061606-# usage on your layers.nix
16071607-{inputs, ...}: {
16081608- imports = [
16091609- inputs.dendrix.community.gaetanlepage-nix-config.ssh-server
16101610- ];
16111611-}
16121612-```
16131613-16141614-- streaming:
16151615-16161616-gaetanlepage-nix-config's streaming tree
16171617-16181618-```nix
16191619-# usage on your layers.nix
16201620-{inputs, ...}: {
16211621- imports = [
16221622- inputs.dendrix.community.gaetanlepage-nix-config.streaming
16231623- ];
16241624-}
16251625-```
16261626-16271627-- substituters:
16281628-16291629-gaetanlepage-nix-config's substituters tree
16301630-16311631-```nix
16321632-# usage on your layers.nix
16331633-{inputs, ...}: {
16341634- imports = [
16351635- inputs.dendrix.community.gaetanlepage-nix-config.substituters
16361636- ];
16371637-}
16381638-```
16391639-16401640-- sway:
16411641-16421642-gaetanlepage-nix-config's sway tree
16431643-16441644-```nix
16451645-# usage on your layers.nix
16461646-{inputs, ...}: {
16471647- imports = [
16481648- inputs.dendrix.community.gaetanlepage-nix-config.sway
16491649- ];
16501650-}
16511651-```
16521652-16531653-- swaylock:
16541654-16551655-gaetanlepage-nix-config's swaylock tree
16561656-16571657-```nix
16581658-# usage on your layers.nix
16591659-{inputs, ...}: {
16601660- imports = [
16611661- inputs.dendrix.community.gaetanlepage-nix-config.swaylock
16621662- ];
16631663-}
16641664-```
16651665-16661666-- thunar:
16671667-16681668-gaetanlepage-nix-config's thunar tree
16691669-16701670-```nix
16711671-# usage on your layers.nix
16721672-{inputs, ...}: {
16731673- imports = [
16741674- inputs.dendrix.community.gaetanlepage-nix-config.thunar
16751675- ];
16761676-}
16771677-```
16781678-16791679-- udiskie:
16801680-16811681-gaetanlepage-nix-config's udiskie tree
16821682-16831683-```nix
16841684-# usage on your layers.nix
16851685-{inputs, ...}: {
16861686- imports = [
16871687- inputs.dendrix.community.gaetanlepage-nix-config.udiskie
16881688- ];
16891689-}
16901690-```
16911691-16921692-- users:
16931693-16941694-gaetanlepage-nix-config's users tree
16951695-16961696-```nix
16971697-# usage on your layers.nix
16981698-{inputs, ...}: {
16991699- imports = [
17001700- inputs.dendrix.community.gaetanlepage-nix-config.users
17011701- ];
17021702-}
17031703-```
17041704-17051705-- waybar:
17061706-17071707-gaetanlepage-nix-config's waybar tree
17081708-17091709-```nix
17101710-# usage on your layers.nix
17111711-{inputs, ...}: {
17121712- imports = [
17131713- inputs.dendrix.community.gaetanlepage-nix-config.waybar
17141714- ];
17151715-}
17161716-```
17171717-17181718-- wayland:
17191719-17201720-gaetanlepage-nix-config's wayland tree
17211721-17221722-```nix
17231723-# usage on your layers.nix
17241724-{inputs, ...}: {
17251725- imports = [
17261726- inputs.dendrix.community.gaetanlepage-nix-config.wayland
17271727- ];
17281728-}
17291729-```
17301730-17311731-- wireguard-client:
17321732-17331733-gaetanlepage-nix-config's wireguard-client tree
17341734-17351735-```nix
17361736-# usage on your layers.nix
17371737-{inputs, ...}: {
17381738- imports = [
17391739- inputs.dendrix.community.gaetanlepage-nix-config.wireguard-client
17401740- ];
17411741-}
17421742-```
17431743-17441744-- xdg:
17451745-17461746-gaetanlepage-nix-config's xdg tree
17471747-17481748-```nix
17491749-# usage on your layers.nix
17501750-{inputs, ...}: {
17511751- imports = [
17521752- inputs.dendrix.community.gaetanlepage-nix-config.xdg
17531753- ];
17541754-}
17551755-```
17561756-17571757-- zathura:
17581758-17591759-gaetanlepage-nix-config's zathura tree
17601760-17611761-```nix
17621762-# usage on your layers.nix
17631763-{inputs, ...}: {
17641764- imports = [
17651765- inputs.dendrix.community.gaetanlepage-nix-config.zathura
17661766- ];
17671767-}
17681768-```
17691769-17701770-</details>
17711771-17721772-### [henrysipp-nix-setup](https://github.com/henrysipp/nix-setup/tree/5fbfdf52685dd13ecf96e418a9a83af95787e787
17731773-17741774-<details>
17751775-<summary>
17761776-17771777-henrysipp-nix-setup at rev 5fbfdf5.
17781778-21 dendritic trees.
17791779-<b>21</b> aspects across 6 nix classes.
17801780-48 nix configuration files.
17811781-17821782-</summary>
17831783-17841784-[README](https://github.com/henrysipp/nix-setup/tree/5fbfdf52685dd13ecf96e418a9a83af95787e787/README.md)
17851785-17861786-<details>
17871787-<summary>
17881788-17891789-##### henrysipp-nix-setup defines <b>21</b> aspects across 6 nix classes.
17901790-17911791-</summary>
17921792-17931793-- <code>albion</code>: <code>hosts</code>
17941794-17951795-- <code>allowedUnfreePackages</code>: <code>nixpkgs</code>
17961796-17971797-- <code>base</code>: <code>homeManager</code>/<code>nixos</code>
17981798-17991799-- <code>containers</code>: <code>nixos</code>
18001800-18011801-- <code>darwin-desktop</code>: <code>homeManager</code>
18021802-18031803-- <code>desktop</code>: <code>darwin</code>/<code>homeManager</code>/<code>nixos</code>
18041804-18051805-- <code>dev</code>: <code>homeManager</code>/<code>nixos</code>
18061806-18071807-- <code>fonts</code>: <code>homeManager</code>/<code>nixos</code>
18081808-18091809-- <code>games</code>: <code>homeManager</code>/<code>nixos</code>
18101810-18111811-- <code>gawain</code>: <code>hosts</code>
18121812-18131813-- <code>gnome</code>: <code>homeManager</code>/<code>nixos</code>
18141814-18151815-- <code>guren</code>: <code>hosts</code>
18161816-18171817-- <code>henry</code>: <code>nixosUsers</code>
18181818-18191819-- <code>nixvim</code>: <code>homeManager</code>
18201820-18211821-- <code>packages</code>: <code>nixos</code>
18221822-18231823-- <code>plasma</code>: <code>homeManager</code>/<code>nixos</code>
18241824-18251825-- <code>root</code>: <code>nixosUsers</code>
18261826-18271827-- <code>shell</code>: <code>darwin</code>/<code>homeManager</code>/<code>nixos</code>
18281828-18291829-- <code>sound</code>: <code>nixos</code>
18301830-18311831-- <code>system</code>: <code>darwin</code>
18321832-18331833-- <code>work</code>: <code>darwin</code>
18341834-18351835-</details>
18361836-18371837-No community notes on henrysipp-nix-setup. Use the source, Luke.
18381838-18391839-- albion:
18401840-18411841-henrysipp-nix-setup's albion tree
18421842-18431843-```nix
18441844-# usage on your layers.nix
18451845-{inputs, ...}: {
18461846- imports = [
18471847- inputs.dendrix.community.henrysipp-nix-setup.albion
18481848- ];
18491849-}
18501850-```
18511851-18521852-- allowedUnfreePackages:
18531853-18541854-henrysipp-nix-setup's allowedUnfreePackages tree
18551855-18561856-```nix
18571857-# usage on your layers.nix
18581858-{inputs, ...}: {
18591859- imports = [
18601860- inputs.dendrix.community.henrysipp-nix-setup.allowedUnfreePackages
18611861- ];
18621862-}
18631863-```
18641864-18651865-- base:
18661866-18671867-henrysipp-nix-setup's base tree
18681868-18691869-```nix
18701870-# usage on your layers.nix
18711871-{inputs, ...}: {
18721872- imports = [
18731873- inputs.dendrix.community.henrysipp-nix-setup.base
18741874- ];
18751875-}
18761876-```
18771877-18781878-- containers:
18791879-18801880-henrysipp-nix-setup's containers tree
18811881-18821882-```nix
18831883-# usage on your layers.nix
18841884-{inputs, ...}: {
18851885- imports = [
18861886- inputs.dendrix.community.henrysipp-nix-setup.containers
18871887- ];
18881888-}
18891889-```
18901890-18911891-- darwin-desktop:
18921892-18931893-henrysipp-nix-setup's darwin-desktop tree
18941894-18951895-```nix
18961896-# usage on your layers.nix
18971897-{inputs, ...}: {
18981898- imports = [
18991899- inputs.dendrix.community.henrysipp-nix-setup.darwin-desktop
19001900- ];
19011901-}
19021902-```
19031903-19041904-- desktop:
19051905-19061906-henrysipp-nix-setup's desktop tree
19071907-19081908-```nix
19091909-# usage on your layers.nix
19101910-{inputs, ...}: {
19111911- imports = [
19121912- inputs.dendrix.community.henrysipp-nix-setup.desktop
19131913- ];
19141914-}
19151915-```
19161916-19171917-- dev:
19181918-19191919-henrysipp-nix-setup's dev tree
19201920-19211921-```nix
19221922-# usage on your layers.nix
19231923-{inputs, ...}: {
19241924- imports = [
19251925- inputs.dendrix.community.henrysipp-nix-setup.dev
19261926- ];
19271927-}
19281928-```
19291929-19301930-- fonts:
19311931-19321932-henrysipp-nix-setup's fonts tree
19331933-19341934-```nix
19351935-# usage on your layers.nix
19361936-{inputs, ...}: {
19371937- imports = [
19381938- inputs.dendrix.community.henrysipp-nix-setup.fonts
19391939- ];
19401940-}
19411941-```
19421942-19431943-- games:
19441944-19451945-henrysipp-nix-setup's games tree
19461946-19471947-```nix
19481948-# usage on your layers.nix
19491949-{inputs, ...}: {
19501950- imports = [
19511951- inputs.dendrix.community.henrysipp-nix-setup.games
19521952- ];
19531953-}
19541954-```
19551955-19561956-- gawain:
19571957-19581958-henrysipp-nix-setup's gawain tree
19591959-19601960-```nix
19611961-# usage on your layers.nix
19621962-{inputs, ...}: {
19631963- imports = [
19641964- inputs.dendrix.community.henrysipp-nix-setup.gawain
19651965- ];
19661966-}
19671967-```
19681968-19691969-- gnome:
19701970-19711971-henrysipp-nix-setup's gnome tree
19721972-19731973-```nix
19741974-# usage on your layers.nix
19751975-{inputs, ...}: {
19761976- imports = [
19771977- inputs.dendrix.community.henrysipp-nix-setup.gnome
19781978- ];
19791979-}
19801980-```
19811981-19821982-- guren:
19831983-19841984-henrysipp-nix-setup's guren tree
19851985-19861986-```nix
19871987-# usage on your layers.nix
19881988-{inputs, ...}: {
19891989- imports = [
19901990- inputs.dendrix.community.henrysipp-nix-setup.guren
19911991- ];
19921992-}
19931993-```
19941994-19951995-- henry:
19961996-19971997-henrysipp-nix-setup's henry tree
19981998-19991999-```nix
20002000-# usage on your layers.nix
20012001-{inputs, ...}: {
20022002- imports = [
20032003- inputs.dendrix.community.henrysipp-nix-setup.henry
20042004- ];
20052005-}
20062006-```
20072007-20082008-- nixvim:
20092009-20102010-henrysipp-nix-setup's nixvim tree
20112011-20122012-```nix
20132013-# usage on your layers.nix
20142014-{inputs, ...}: {
20152015- imports = [
20162016- inputs.dendrix.community.henrysipp-nix-setup.nixvim
20172017- ];
20182018-}
20192019-```
20202020-20212021-- packages:
20222022-20232023-henrysipp-nix-setup's packages tree
20242024-20252025-```nix
20262026-# usage on your layers.nix
20272027-{inputs, ...}: {
20282028- imports = [
20292029- inputs.dendrix.community.henrysipp-nix-setup.packages
20302030- ];
20312031-}
20322032-```
20332033-20342034-- plasma:
20352035-20362036-henrysipp-nix-setup's plasma tree
20372037-20382038-```nix
20392039-# usage on your layers.nix
20402040-{inputs, ...}: {
20412041- imports = [
20422042- inputs.dendrix.community.henrysipp-nix-setup.plasma
20432043- ];
20442044-}
20452045-```
20462046-20472047-- root:
20482048-20492049-henrysipp-nix-setup's root tree
20502050-20512051-```nix
20522052-# usage on your layers.nix
20532053-{inputs, ...}: {
20542054- imports = [
20552055- inputs.dendrix.community.henrysipp-nix-setup.root
20562056- ];
20572057-}
20582058-```
20592059-20602060-- shell:
20612061-20622062-henrysipp-nix-setup's shell tree
20632063-20642064-```nix
20652065-# usage on your layers.nix
20662066-{inputs, ...}: {
20672067- imports = [
20682068- inputs.dendrix.community.henrysipp-nix-setup.shell
20692069- ];
20702070-}
20712071-```
20722072-20732073-- sound:
20742074-20752075-henrysipp-nix-setup's sound tree
20762076-20772077-```nix
20782078-# usage on your layers.nix
20792079-{inputs, ...}: {
20802080- imports = [
20812081- inputs.dendrix.community.henrysipp-nix-setup.sound
20822082- ];
20832083-}
20842084-```
20852085-20862086-- system:
20872087-20882088-henrysipp-nix-setup's system tree
20892089-20902090-```nix
20912091-# usage on your layers.nix
20922092-{inputs, ...}: {
20932093- imports = [
20942094- inputs.dendrix.community.henrysipp-nix-setup.system
20952095- ];
20962096-}
20972097-```
20982098-20992099-- work:
21002100-21012101-henrysipp-nix-setup's work tree
21022102-21032103-```nix
21042104-# usage on your layers.nix
21052105-{inputs, ...}: {
21062106- imports = [
21072107- inputs.dendrix.community.henrysipp-nix-setup.work
21082108- ];
21092109-}
21102110-```
21112111-21122112-</details>
21132113-21142114-### [icyd-nixvim](https://github.com/icyd/nixvim/tree/6bf416ad3ba76a24afb287fa989561f5bcde1bd2
21152115-21162116-<details>
21172117-<summary>
21182118-21192119-icyd-nixvim at rev 6bf416a.
21202120-30 dendritic trees.
21212121-<b>30</b> aspects across 2 nix classes.
21222122-41 nix configuration files.
21232123-21242124-</summary>
21252125-21262126-[README](https://github.com/icyd/nixvim/tree/6bf416ad3ba76a24afb287fa989561f5bcde1bd2/README.md)
21272127-21282128-<details>
21292129-<summary>
21302130-21312131-##### icyd-nixvim defines <b>30</b> aspects across 2 nix classes.
21322132-21332133-</summary>
21342134-21352135-- <code>additional-plugins</code>: <code>nixvim</code>
21362136-21372137-- <code>auto-session</code>: <code>nixvim</code>
21382138-21392139-- <code>colorizer</code>: <code>nixvim</code>
21402140-21412141-- <code>compiler</code>: <code>nixvim</code>
21422142-21432143-- <code>completion</code>: <code>nixvim</code>
21442144-21452145-- <code>core</code>: <code>config</code>/<code>nixvim</code>
21462146-21472147-- <code>debug</code>: <code>nixvim</code>
21482148-21492149-- <code>dial</code>: <code>nixvim</code>
21502150-21512151-- <code>firenvim</code>: <code>nixvim</code>
21522152-21532153-- <code>full</code>: <code>config</code>
21542154-21552155-- <code>git</code>: <code>nixvim</code>
21562156-21572157-- <code>harpoon</code>: <code>nixvim</code>
21582158-21592159-- <code>lsp</code>: <code>nixvim</code>
21602160-21612161-- <code>markdown</code>: <code>nixvim</code>
21622162-21632163-- <code>maximize</code>: <code>nixvim</code>
21642164-21652165-- <code>navigator</code>: <code>nixvim</code>
21662166-21672167-- <code>neorg</code>: <code>nixvim</code>
21682168-21692169-- <code>oil</code>: <code>nixvim</code>
21702170-21712171-- <code>optimizations</code>: <code>nixvim</code>
21722172-21732173-- <code>overseer</code>: <code>nixvim</code>
21742174-21752175-- <code>project-nvim</code>: <code>nixvim</code>
21762176-21772177-- <code>telescope</code>: <code>nixvim</code>
21782178-21792179-- <code>tests</code>: <code>nixvim</code>
21802180-21812181-- <code>todo-comments</code>: <code>nixvim</code>
21822182-21832183-- <code>treesitter</code>: <code>nixvim</code>
21842184-21852185-- <code>trouble</code>: <code>nixvim</code>
21862186-21872187-- <code>ufo</code>: <code>nixvim</code>
21882188-21892189-- <code>ui</code>: <code>nixvim</code>
21902190-21912191-- <code>utils</code>: <code>nixvim</code>
21922192-21932193-- <code>yanky</code>: <code>nixvim</code>
21942194-21952195-</details>
21962196-21972197-No community notes on icyd-nixvim. Use the source, Luke.
21982198-21992199-- additional-plugins:
22002200-22012201-icyd-nixvim's additional-plugins tree
22022202-22032203-```nix
22042204-# usage on your layers.nix
22052205-{inputs, ...}: {
22062206- imports = [
22072207- inputs.dendrix.community.icyd-nixvim.additional-plugins
22082208- ];
22092209-}
22102210-```
22112211-22122212-- auto-session:
22132213-22142214-icyd-nixvim's auto-session tree
22152215-22162216-```nix
22172217-# usage on your layers.nix
22182218-{inputs, ...}: {
22192219- imports = [
22202220- inputs.dendrix.community.icyd-nixvim.auto-session
22212221- ];
22222222-}
22232223-```
22242224-22252225-- colorizer:
22262226-22272227-icyd-nixvim's colorizer tree
22282228-22292229-```nix
22302230-# usage on your layers.nix
22312231-{inputs, ...}: {
22322232- imports = [
22332233- inputs.dendrix.community.icyd-nixvim.colorizer
22342234- ];
22352235-}
22362236-```
22372237-22382238-- compiler:
22392239-22402240-icyd-nixvim's compiler tree
22412241-22422242-```nix
22432243-# usage on your layers.nix
22442244-{inputs, ...}: {
22452245- imports = [
22462246- inputs.dendrix.community.icyd-nixvim.compiler
22472247- ];
22482248-}
22492249-```
22502250-22512251-- completion:
22522252-22532253-icyd-nixvim's completion tree
22542254-22552255-```nix
22562256-# usage on your layers.nix
22572257-{inputs, ...}: {
22582258- imports = [
22592259- inputs.dendrix.community.icyd-nixvim.completion
22602260- ];
22612261-}
22622262-```
22632263-22642264-- core:
22652265-22662266-icyd-nixvim's core tree
22672267-22682268-```nix
22692269-# usage on your layers.nix
22702270-{inputs, ...}: {
22712271- imports = [
22722272- inputs.dendrix.community.icyd-nixvim.core
22732273- ];
22742274-}
22752275-```
22762276-22772277-- debug:
22782278-22792279-icyd-nixvim's debug tree
22802280-22812281-```nix
22822282-# usage on your layers.nix
22832283-{inputs, ...}: {
22842284- imports = [
22852285- inputs.dendrix.community.icyd-nixvim.debug
22862286- ];
22872287-}
22882288-```
22892289-22902290-- dial:
22912291-22922292-icyd-nixvim's dial tree
22932293-22942294-```nix
22952295-# usage on your layers.nix
22962296-{inputs, ...}: {
22972297- imports = [
22982298- inputs.dendrix.community.icyd-nixvim.dial
22992299- ];
23002300-}
23012301-```
23022302-23032303-- firenvim:
23042304-23052305-icyd-nixvim's firenvim tree
23062306-23072307-```nix
23082308-# usage on your layers.nix
23092309-{inputs, ...}: {
23102310- imports = [
23112311- inputs.dendrix.community.icyd-nixvim.firenvim
23122312- ];
23132313-}
23142314-```
23152315-23162316-- full:
23172317-23182318-icyd-nixvim's full tree
23192319-23202320-```nix
23212321-# usage on your layers.nix
23222322-{inputs, ...}: {
23232323- imports = [
23242324- inputs.dendrix.community.icyd-nixvim.full
23252325- ];
23262326-}
23272327-```
23282328-23292329-- git:
23302330-23312331-icyd-nixvim's git tree
23322332-23332333-```nix
23342334-# usage on your layers.nix
23352335-{inputs, ...}: {
23362336- imports = [
23372337- inputs.dendrix.community.icyd-nixvim.git
23382338- ];
23392339-}
23402340-```
23412341-23422342-- harpoon:
23432343-23442344-icyd-nixvim's harpoon tree
23452345-23462346-```nix
23472347-# usage on your layers.nix
23482348-{inputs, ...}: {
23492349- imports = [
23502350- inputs.dendrix.community.icyd-nixvim.harpoon
23512351- ];
23522352-}
23532353-```
23542354-23552355-- lsp:
23562356-23572357-icyd-nixvim's lsp tree
23582358-23592359-```nix
23602360-# usage on your layers.nix
23612361-{inputs, ...}: {
23622362- imports = [
23632363- inputs.dendrix.community.icyd-nixvim.lsp
23642364- ];
23652365-}
23662366-```
23672367-23682368-- markdown:
23692369-23702370-icyd-nixvim's markdown tree
23712371-23722372-```nix
23732373-# usage on your layers.nix
23742374-{inputs, ...}: {
23752375- imports = [
23762376- inputs.dendrix.community.icyd-nixvim.markdown
23772377- ];
23782378-}
23792379-```
23802380-23812381-- maximize:
23822382-23832383-icyd-nixvim's maximize tree
23842384-23852385-```nix
23862386-# usage on your layers.nix
23872387-{inputs, ...}: {
23882388- imports = [
23892389- inputs.dendrix.community.icyd-nixvim.maximize
23902390- ];
23912391-}
23922392-```
23932393-23942394-- navigator:
23952395-23962396-icyd-nixvim's navigator tree
23972397-23982398-```nix
23992399-# usage on your layers.nix
24002400-{inputs, ...}: {
24012401- imports = [
24022402- inputs.dendrix.community.icyd-nixvim.navigator
24032403- ];
24042404-}
24052405-```
24062406-24072407-- neorg:
24082408-24092409-icyd-nixvim's neorg tree
24102410-24112411-```nix
24122412-# usage on your layers.nix
24132413-{inputs, ...}: {
24142414- imports = [
24152415- inputs.dendrix.community.icyd-nixvim.neorg
24162416- ];
24172417-}
24182418-```
24192419-24202420-- oil:
24212421-24222422-icyd-nixvim's oil tree
24232423-24242424-```nix
24252425-# usage on your layers.nix
24262426-{inputs, ...}: {
24272427- imports = [
24282428- inputs.dendrix.community.icyd-nixvim.oil
24292429- ];
24302430-}
24312431-```
24322432-24332433-- optimizations:
24342434-24352435-icyd-nixvim's optimizations tree
24362436-24372437-```nix
24382438-# usage on your layers.nix
24392439-{inputs, ...}: {
24402440- imports = [
24412441- inputs.dendrix.community.icyd-nixvim.optimizations
24422442- ];
24432443-}
24442444-```
24452445-24462446-- overseer:
24472447-24482448-icyd-nixvim's overseer tree
24492449-24502450-```nix
24512451-# usage on your layers.nix
24522452-{inputs, ...}: {
24532453- imports = [
24542454- inputs.dendrix.community.icyd-nixvim.overseer
24552455- ];
24562456-}
24572457-```
24582458-24592459-- project-nvim:
24602460-24612461-icyd-nixvim's project-nvim tree
24622462-24632463-```nix
24642464-# usage on your layers.nix
24652465-{inputs, ...}: {
24662466- imports = [
24672467- inputs.dendrix.community.icyd-nixvim.project-nvim
24682468- ];
24692469-}
24702470-```
24712471-24722472-- telescope:
24732473-24742474-icyd-nixvim's telescope tree
24752475-24762476-```nix
24772477-# usage on your layers.nix
24782478-{inputs, ...}: {
24792479- imports = [
24802480- inputs.dendrix.community.icyd-nixvim.telescope
24812481- ];
24822482-}
24832483-```
24842484-24852485-- tests:
24862486-24872487-icyd-nixvim's tests tree
24882488-24892489-```nix
24902490-# usage on your layers.nix
24912491-{inputs, ...}: {
24922492- imports = [
24932493- inputs.dendrix.community.icyd-nixvim.tests
24942494- ];
24952495-}
24962496-```
24972497-24982498-- todo-comments:
24992499-25002500-icyd-nixvim's todo-comments tree
25012501-25022502-```nix
25032503-# usage on your layers.nix
25042504-{inputs, ...}: {
25052505- imports = [
25062506- inputs.dendrix.community.icyd-nixvim.todo-comments
25072507- ];
25082508-}
25092509-```
25102510-25112511-- treesitter:
25122512-25132513-icyd-nixvim's treesitter tree
25142514-25152515-```nix
25162516-# usage on your layers.nix
25172517-{inputs, ...}: {
25182518- imports = [
25192519- inputs.dendrix.community.icyd-nixvim.treesitter
25202520- ];
25212521-}
25222522-```
25232523-25242524-- trouble:
25252525-25262526-icyd-nixvim's trouble tree
25272527-25282528-```nix
25292529-# usage on your layers.nix
25302530-{inputs, ...}: {
25312531- imports = [
25322532- inputs.dendrix.community.icyd-nixvim.trouble
25332533- ];
25342534-}
25352535-```
25362536-25372537-- ufo:
25382538-25392539-icyd-nixvim's ufo tree
25402540-25412541-```nix
25422542-# usage on your layers.nix
25432543-{inputs, ...}: {
25442544- imports = [
25452545- inputs.dendrix.community.icyd-nixvim.ufo
25462546- ];
25472547-}
25482548-```
25492549-25502550-- ui:
25512551-25522552-icyd-nixvim's ui tree
25532553-25542554-```nix
25552555-# usage on your layers.nix
25562556-{inputs, ...}: {
25572557- imports = [
25582558- inputs.dendrix.community.icyd-nixvim.ui
25592559- ];
25602560-}
25612561-```
25622562-25632563-- utils:
25642564-25652565-icyd-nixvim's utils tree
25662566-25672567-```nix
25682568-# usage on your layers.nix
25692569-{inputs, ...}: {
25702570- imports = [
25712571- inputs.dendrix.community.icyd-nixvim.utils
25722572- ];
25732573-}
25742574-```
25752575-25762576-- yanky:
25772577-25782578-icyd-nixvim's yanky tree
25792579-25802580-```nix
25812581-# usage on your layers.nix
25822582-{inputs, ...}: {
25832583- imports = [
25842584- inputs.dendrix.community.icyd-nixvim.yanky
25852585- ];
25862586-}
25872587-```
25882588-25892589-</details>
25902590-25912591-### [quasigod-nixconfig](https://codeberg.org/vic/quasigod-nixconfig/src/commit/4326b7976ff363f83a461700a4567859830906bf
25922592-25932593-<details>
25942594-<summary>
25952595-25962596-quasigod-nixconfig at rev 4326b79.
25972597-19 dendritic trees.
25982598-<b>19</b> aspects across 2 nix classes.
25992599-59 nix configuration files.
26002600-26012601-</summary>
26022602-26032603-[README](https://codeberg.org/vic/quasigod-nixconfig/src/commit/4326b7976ff363f83a461700a4567859830906bf/README.md)
26042604-26052605-<details>
26062606-<summary>
26072607-26082608-##### quasigod-nixconfig defines <b>19</b> aspects across 2 nix classes.
26092609-26102610-</summary>
26112611-26122612-- <code>cachix</code>: <code>home</code>/<code>nixos</code>
26132613-26142614-- <code>default</code>: <code>home</code>/<code>nixos</code>
26152615-26162616-- <code>gaming</code>: <code>home</code>/<code>nixos</code>
26172617-26182618-- <code>hacking</code>: <code>home</code>/<code>nixos</code>
26192619-26202620-- <code>laptop</code>: <code>home</code>/<code>nixos</code>
26212621-26222622-- <code>localai</code>: <code>home</code>/<code>nixos</code>
26232623-26242624-- <code>plymouth</code>: <code>home</code>/<code>nixos</code>
26252625-26262626-- <code>remote</code>: <code>home</code>/<code>nixos</code>
26272627-26282628-- <code>replays</code>: <code>home</code>/<code>nixos</code>
26292629-26302630-- <code>secure-boot</code>: <code>home</code>/<code>nixos</code>
26312631-26322632-- <code>server</code>: <code>home</code>/<code>nixos</code>
26332633-26342634-- <code>ssh</code>: <code>home</code>/<code>nixos</code>
26352635-26362636-- <code>syncthing-client</code>: <code>home</code>/<code>nixos</code>
26372637-26382638-- <code>syncthing-server</code>: <code>home</code>/<code>nixos</code>
26392639-26402640-- <code>virtualisation</code>: <code>home</code>/<code>nixos</code>
26412641-26422642-- <code>waydroid</code>: <code>home</code>/<code>nixos</code>
26432643-26442644-- <code>workstation</code>: <code>home</code>/<code>nixos</code>
26452645-26462646-- <code>zfs</code>: <code>home</code>/<code>nixos</code>
26472647-26482648-- <code>zsa-kb</code>: <code>home</code>/<code>nixos</code>
26492649-26502650-</details>
26512651-26522652-No community notes on quasigod-nixconfig. Use the source, Luke.
26532653-26542654-- cachix:
26552655-26562656-quasigod-nixconfig's cachix tree
26572657-26582658-```nix
26592659-# usage on your layers.nix
26602660-{inputs, ...}: {
26612661- imports = [
26622662- inputs.dendrix.community.quasigod-nixconfig.cachix
26632663- ];
26642664-}
26652665-```
26662666-26672667-- default:
26682668-26692669-quasigod-nixconfig's default tree
26702670-26712671-```nix
26722672-# usage on your layers.nix
26732673-{inputs, ...}: {
26742674- imports = [
26752675- inputs.dendrix.community.quasigod-nixconfig.default
26762676- ];
26772677-}
26782678-```
26792679-26802680-- gaming:
26812681-26822682-quasigod-nixconfig's gaming tree
26832683-26842684-```nix
26852685-# usage on your layers.nix
26862686-{inputs, ...}: {
26872687- imports = [
26882688- inputs.dendrix.community.quasigod-nixconfig.gaming
26892689- ];
26902690-}
26912691-```
26922692-26932693-- hacking:
26942694-26952695-quasigod-nixconfig's hacking tree
26962696-26972697-```nix
26982698-# usage on your layers.nix
26992699-{inputs, ...}: {
27002700- imports = [
27012701- inputs.dendrix.community.quasigod-nixconfig.hacking
27022702- ];
27032703-}
27042704-```
27052705-27062706-- laptop:
27072707-27082708-quasigod-nixconfig's laptop tree
27092709-27102710-```nix
27112711-# usage on your layers.nix
27122712-{inputs, ...}: {
27132713- imports = [
27142714- inputs.dendrix.community.quasigod-nixconfig.laptop
27152715- ];
27162716-}
27172717-```
27182718-27192719-- localai:
27202720-27212721-quasigod-nixconfig's localai tree
27222722-27232723-```nix
27242724-# usage on your layers.nix
27252725-{inputs, ...}: {
27262726- imports = [
27272727- inputs.dendrix.community.quasigod-nixconfig.localai
27282728- ];
27292729-}
27302730-```
27312731-27322732-- plymouth:
27332733-27342734-quasigod-nixconfig's plymouth tree
27352735-27362736-```nix
27372737-# usage on your layers.nix
27382738-{inputs, ...}: {
27392739- imports = [
27402740- inputs.dendrix.community.quasigod-nixconfig.plymouth
27412741- ];
27422742-}
27432743-```
27442744-27452745-- remote:
27462746-27472747-quasigod-nixconfig's remote tree
27482748-27492749-```nix
27502750-# usage on your layers.nix
27512751-{inputs, ...}: {
27522752- imports = [
27532753- inputs.dendrix.community.quasigod-nixconfig.remote
27542754- ];
27552755-}
27562756-```
27572757-27582758-- replays:
27592759-27602760-quasigod-nixconfig's replays tree
27612761-27622762-```nix
27632763-# usage on your layers.nix
27642764-{inputs, ...}: {
27652765- imports = [
27662766- inputs.dendrix.community.quasigod-nixconfig.replays
27672767- ];
27682768-}
27692769-```
27702770-27712771-- secure-boot:
27722772-27732773-quasigod-nixconfig's secure-boot tree
27742774-27752775-```nix
27762776-# usage on your layers.nix
27772777-{inputs, ...}: {
27782778- imports = [
27792779- inputs.dendrix.community.quasigod-nixconfig.secure-boot
27802780- ];
27812781-}
27822782-```
27832783-27842784-- server:
27852785-27862786-quasigod-nixconfig's server tree
27872787-27882788-```nix
27892789-# usage on your layers.nix
27902790-{inputs, ...}: {
27912791- imports = [
27922792- inputs.dendrix.community.quasigod-nixconfig.server
27932793- ];
27942794-}
27952795-```
27962796-27972797-- ssh:
27982798-27992799-quasigod-nixconfig's ssh tree
28002800-28012801-```nix
28022802-# usage on your layers.nix
28032803-{inputs, ...}: {
28042804- imports = [
28052805- inputs.dendrix.community.quasigod-nixconfig.ssh
28062806- ];
28072807-}
28082808-```
28092809-28102810-- syncthing-client:
28112811-28122812-quasigod-nixconfig's syncthing-client tree
28132813-28142814-```nix
28152815-# usage on your layers.nix
28162816-{inputs, ...}: {
28172817- imports = [
28182818- inputs.dendrix.community.quasigod-nixconfig.syncthing-client
28192819- ];
28202820-}
28212821-```
28222822-28232823-- syncthing-server:
28242824-28252825-quasigod-nixconfig's syncthing-server tree
28262826-28272827-```nix
28282828-# usage on your layers.nix
28292829-{inputs, ...}: {
28302830- imports = [
28312831- inputs.dendrix.community.quasigod-nixconfig.syncthing-server
28322832- ];
28332833-}
28342834-```
28352835-28362836-- virtualisation:
28372837-28382838-quasigod-nixconfig's virtualisation tree
28392839-28402840-```nix
28412841-# usage on your layers.nix
28422842-{inputs, ...}: {
28432843- imports = [
28442844- inputs.dendrix.community.quasigod-nixconfig.virtualisation
28452845- ];
28462846-}
28472847-```
28482848-28492849-- waydroid:
28502850-28512851-quasigod-nixconfig's waydroid tree
28522852-28532853-```nix
28542854-# usage on your layers.nix
28552855-{inputs, ...}: {
28562856- imports = [
28572857- inputs.dendrix.community.quasigod-nixconfig.waydroid
28582858- ];
28592859-}
28602860-```
28612861-28622862-- workstation:
28632863-28642864-quasigod-nixconfig's workstation tree
28652865-28662866-```nix
28672867-# usage on your layers.nix
28682868-{inputs, ...}: {
28692869- imports = [
28702870- inputs.dendrix.community.quasigod-nixconfig.workstation
28712871- ];
28722872-}
28732873-```
28742874-28752875-- zfs:
28762876-28772877-quasigod-nixconfig's zfs tree
28782878-28792879-```nix
28802880-# usage on your layers.nix
28812881-{inputs, ...}: {
28822882- imports = [
28832883- inputs.dendrix.community.quasigod-nixconfig.zfs
28842884- ];
28852885-}
28862886-```
28872887-28882888-- zsa-kb:
28892889-28902890-quasigod-nixconfig's zsa-kb tree
28912891-28922892-```nix
28932893-# usage on your layers.nix
28942894-{inputs, ...}: {
28952895- imports = [
28962896- inputs.dendrix.community.quasigod-nixconfig.zsa-kb
28972897- ];
28982898-}
28992899-```
29002900-29012901-</details>
29022902-29032903-### [vic-vix](https://github.com/vic/vix/tree/f31e8a10fd4dc69980d661bbd610f4aa551fbbb0
29042904-29052905-<details>
29062906-<summary>
29072907-29082908-vic-vix at rev f31e8a1.
29092909-24 dendritic trees.
29102910-<b>24</b> aspects across 3 nix classes.
29112911-44 nix configuration files.
29122912-29132913-</summary>
29142914-29152915-[README](https://github.com/vic/vix/tree/f31e8a10fd4dc69980d661bbd610f4aa551fbbb0/README.md)
29162916-29172917-<details>
29182918-<summary>
29192919-29202920-##### vic-vix defines <b>24</b> aspects across 3 nix classes.
29212921-29222922-</summary>
29232923-29242924-- <code>aarch64-darwin</code>: <code>darwin</code>
29252925-29262926-- <code>aarch64-linux</code>: <code>nixos</code>
29272927-29282928-- <code>all-firmware</code>: <code>nixos</code>
29292929-29302930-- <code>bootable</code>: <code>nixos</code>
29312931-29322932-- <code>darwin</code>: <code>darwin</code>
29332933-29342934-- <code>gnome-desktop</code>: <code>nixos</code>
29352935-29362936-- <code>kde-desktop</code>: <code>nixos</code>
29372937-29382938-- <code>kvm-amd</code>: <code>nixos</code>
29392939-29402940-- <code>kvm-intel</code>: <code>nixos</code>
29412941-29422942-- <code>macos-keys</code>: <code>nixos</code>
29432943-29442944-- <code>nix-index</code>: <code>homeManager</code>
29452945-29462946-- <code>nix-registry</code>: <code>homeManager</code>
29472947-29482948-- <code>nix-settings</code>: <code>nixos</code>
29492949-29502950-- <code>nixos</code>: <code>nixos</code>
29512951-29522952-- <code>nvidia</code>: <code>nixos</code>
29532953-29542954-- <code>rdesk</code>: <code>homeManager</code>/<code>nixos</code>
29552955-29562956-- <code>unfree</code>: <code>nixos</code>
29572957-29582958-- <code>vic</code>: <code>darwin</code>/<code>homeManager</code>/<code>nixos</code>
29592959-29602960-- <code>vscode-server</code>: <code>homeManager</code>
29612961-29622962-- <code>wl-broadcom</code>: <code>nixos</code>
29632963-29642964-- <code>wsl</code>: <code>nixos</code>
29652965-29662966-- <code>x86_64-darwin</code>: <code>darwin</code>
29672967-29682968-- <code>x86_64-linux</code>: <code>nixos</code>
29692969-29702970-- <code>xfce-desktop</code>: <code>nixos</code>
29712971-29722972-</details>
29732973-29742974-No community notes on vic-vix. Use the source, Luke.
29752975-29762976-- aarch64-darwin:
29772977-29782978-vic-vix's aarch64-darwin tree
29792979-29802980-```nix
29812981-# usage on your layers.nix
29822982-{inputs, ...}: {
29832983- imports = [
29842984- inputs.dendrix.community.vic-vix.aarch64-darwin
29852985- ];
29862986-}
29872987-```
29882988-29892989-- aarch64-linux:
29902990-29912991-vic-vix's aarch64-linux tree
29922992-29932993-```nix
29942994-# usage on your layers.nix
29952995-{inputs, ...}: {
29962996- imports = [
29972997- inputs.dendrix.community.vic-vix.aarch64-linux
29982998- ];
29992999-}
30003000-```
30013001-30023002-- all-firmware:
30033003-30043004-vic-vix's all-firmware tree
30053005-30063006-```nix
30073007-# usage on your layers.nix
30083008-{inputs, ...}: {
30093009- imports = [
30103010- inputs.dendrix.community.vic-vix.all-firmware
30113011- ];
30123012-}
30133013-```
30143014-30153015-- bootable:
30163016-30173017-vic-vix's bootable tree
30183018-30193019-```nix
30203020-# usage on your layers.nix
30213021-{inputs, ...}: {
30223022- imports = [
30233023- inputs.dendrix.community.vic-vix.bootable
30243024- ];
30253025-}
30263026-```
30273027-30283028-- darwin:
30293029-30303030-vic-vix's darwin tree
30313031-30323032-```nix
30333033-# usage on your layers.nix
30343034-{inputs, ...}: {
30353035- imports = [
30363036- inputs.dendrix.community.vic-vix.darwin
30373037- ];
30383038-}
30393039-```
30403040-30413041-- gnome-desktop:
30423042-30433043-vic-vix's gnome-desktop tree
30443044-30453045-```nix
30463046-# usage on your layers.nix
30473047-{inputs, ...}: {
30483048- imports = [
30493049- inputs.dendrix.community.vic-vix.gnome-desktop
30503050- ];
30513051-}
30523052-```
30533053-30543054-- kde-desktop:
30553055-30563056-vic-vix's kde-desktop tree
30573057-30583058-```nix
30593059-# usage on your layers.nix
30603060-{inputs, ...}: {
30613061- imports = [
30623062- inputs.dendrix.community.vic-vix.kde-desktop
30633063- ];
30643064-}
30653065-```
30663066-30673067-- kvm-amd:
30683068-30693069-vic-vix's kvm-amd tree
30703070-30713071-```nix
30723072-# usage on your layers.nix
30733073-{inputs, ...}: {
30743074- imports = [
30753075- inputs.dendrix.community.vic-vix.kvm-amd
30763076- ];
30773077-}
30783078-```
30793079-30803080-- kvm-intel:
30813081-30823082-vic-vix's kvm-intel tree
30833083-30843084-```nix
30853085-# usage on your layers.nix
30863086-{inputs, ...}: {
30873087- imports = [
30883088- inputs.dendrix.community.vic-vix.kvm-intel
30893089- ];
30903090-}
30913091-```
30923092-30933093-- macos-keys:
30943094-30953095-vic-vix's macos-keys tree
30963096-30973097-```nix
30983098-# usage on your layers.nix
30993099-{inputs, ...}: {
31003100- imports = [
31013101- inputs.dendrix.community.vic-vix.macos-keys
31023102- ];
31033103-}
31043104-```
31053105-31063106-- nix-index:
31073107-31083108-vic-vix's nix-index tree
31093109-31103110-```nix
31113111-# usage on your layers.nix
31123112-{inputs, ...}: {
31133113- imports = [
31143114- inputs.dendrix.community.vic-vix.nix-index
31153115- ];
31163116-}
31173117-```
31183118-31193119-- nix-registry:
31203120-31213121-vic-vix's nix-registry tree
31223122-31233123-```nix
31243124-# usage on your layers.nix
31253125-{inputs, ...}: {
31263126- imports = [
31273127- inputs.dendrix.community.vic-vix.nix-registry
31283128- ];
31293129-}
31303130-```
31313131-31323132-- nix-settings:
31333133-31343134-vic-vix's nix-settings tree
31353135-31363136-```nix
31373137-# usage on your layers.nix
31383138-{inputs, ...}: {
31393139- imports = [
31403140- inputs.dendrix.community.vic-vix.nix-settings
31413141- ];
31423142-}
31433143-```
31443144-31453145-- nixos:
31463146-31473147-vic-vix's nixos tree
31483148-31493149-```nix
31503150-# usage on your layers.nix
31513151-{inputs, ...}: {
31523152- imports = [
31533153- inputs.dendrix.community.vic-vix.nixos
31543154- ];
31553155-}
31563156-```
31573157-31583158-- nvidia:
31593159-31603160-vic-vix's nvidia tree
31613161-31623162-```nix
31633163-# usage on your layers.nix
31643164-{inputs, ...}: {
31653165- imports = [
31663166- inputs.dendrix.community.vic-vix.nvidia
31673167- ];
31683168-}
31693169-```
31703170-31713171-- rdesk:
31723172-31733173-vic-vix's rdesk tree
31743174-31753175-```nix
31763176-# usage on your layers.nix
31773177-{inputs, ...}: {
31783178- imports = [
31793179- inputs.dendrix.community.vic-vix.rdesk
31803180- ];
31813181-}
31823182-```
31833183-31843184-- unfree:
31853185-31863186-vic-vix's unfree tree
31873187-31883188-```nix
31893189-# usage on your layers.nix
31903190-{inputs, ...}: {
31913191- imports = [
31923192- inputs.dendrix.community.vic-vix.unfree
31933193- ];
31943194-}
31953195-```
31963196-31973197-- vic:
31983198-31993199-vic-vix's vic tree
32003200-32013201-```nix
32023202-# usage on your layers.nix
32033203-{inputs, ...}: {
32043204- imports = [
32053205- inputs.dendrix.community.vic-vix.vic
32063206- ];
32073207-}
32083208-```
32093209-32103210-- vscode-server:
32113211-32123212-vic-vix's vscode-server tree
32133213-32143214-```nix
32153215-# usage on your layers.nix
32163216-{inputs, ...}: {
32173217- imports = [
32183218- inputs.dendrix.community.vic-vix.vscode-server
32193219- ];
32203220-}
32213221-```
32223222-32233223-- wl-broadcom:
32243224-32253225-vic-vix's wl-broadcom tree
32263226-32273227-```nix
32283228-# usage on your layers.nix
32293229-{inputs, ...}: {
32303230- imports = [
32313231- inputs.dendrix.community.vic-vix.wl-broadcom
32323232- ];
32333233-}
32343234-```
32353235-32363236-- wsl:
32373237-32383238-vic-vix's wsl tree
32393239-32403240-```nix
32413241-# usage on your layers.nix
32423242-{inputs, ...}: {
32433243- imports = [
32443244- inputs.dendrix.community.vic-vix.wsl
32453245- ];
32463246-}
32473247-```
32483248-32493249-- x86_64-darwin:
32503250-32513251-vic-vix's x86_64-darwin tree
32523252-32533253-```nix
32543254-# usage on your layers.nix
32553255-{inputs, ...}: {
32563256- imports = [
32573257- inputs.dendrix.community.vic-vix.x86_64-darwin
32583258- ];
32593259-}
32603260-```
32613261-32623262-- x86_64-linux:
32633263-32643264-vic-vix's x86_64-linux tree
32653265-32663266-```nix
32673267-# usage on your layers.nix
32683268-{inputs, ...}: {
32693269- imports = [
32703270- inputs.dendrix.community.vic-vix.x86_64-linux
32713271- ];
32723272-}
32733273-```
32743274-32753275-- xfce-desktop:
32763276-32773277-vic-vix's xfce-desktop tree
32783278-32793279-```nix
32803280-# usage on your layers.nix
32813281-{inputs, ...}: {
32823282- imports = [
32833283- inputs.dendrix.community.vic-vix.xfce-desktop
32843284- ];
32853285-}
32863286-```
32873287-32883288-</details>
32893289-32903290-</details>
32913291-32923292-## Cross-repository Dendritic Aspects.
32933293-32943294-A primary advantage of the nix dendritic pattern are aspects (aka. cross-cutting concerns).
32953295-If 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.
32963296-32973297-<details>
32983298-<summary>
32993299-33003300-> Aspects are just the flake outputs: `flake.modules.<class>.<name>`.
33013301-33023302-</summary>
33033303-33043304-For example, some people have `flake.modules.nixos.virtualization` and `flake.modules.darwin.virtualization` and `flake.modules.homeManager.virtualization`.
33053305-33063306-Here, `virtualization` is the aspect name, and `nixos`/`darwin`/`homeManager` are the nix configuration classes across which the `virtualization` aspect is configured.
33073307-33083308-```nix
33093309-# virtualization.nix
33103310-{
33113311- flake.modules.nixos.virtualization = { ... };
33123312- flake.modules.darwin.virtualization = { ... };
33133313- flake.modules.homeManager.virtualization = { ... };
33143314-}
33153315-```
33163316-33173317-This is the reason we say that Dendritic setups are aspect-oriented: they configure cross-cutting concerns across different module types.
33183318-33193319-</details>
33203320-33213321-The following is a list of aspects that are common in more than a single repository.
33223322-Our hope is that people can collaborate to find naming conventions for common aspects.
33233323-Having that we could mix configurations from different sources to enhance the same aspect.
33243324-33253325-<details>
33263326-<summary>
33273327-TODO
33283328-</summary>
33293329-33303330-TODO
33313331-33323332-</details>
33333333-33343334-## Flags
33353335-33363336-> Flags are a [dendrix convention](https://github.com/vic/dendrix/blob/main/dev/modules/community/_pipeline.nix)
33373337-> used as part of a file or directory name as named signals.
33383338-> Flags only exist in positive form: `+flag`. A negative `-flag` means: ignore positive `+flag` files.
33393339-33403340-For example, if you have `ai+local.nix` and `ai+cloud.nix` files.
33413341-The aspect configured by these files is most likely `ai` but the `local` and `cloud` flags signal the vendor.
33423342-33433343-Flags are inspired by editor configurations, like doomemacs: `(scala +lsp)`.
33443344-And are used in Dendrix only as a way to filter files on community import-trees.
33453345-For example, one could exclude all `+emacs` paths like `tree.flagged "-emacs +vim"`.
33463346-33473347-## Quick Start
33483348-33493349-We provide some [templates](https://github.com/vic/dendrix/tree/main/templates) you can
33503350-use to start a new flake.
33513351-33523352-```
33533353-nix flake init github:vic/dendrix#template
33543354-```
33553355-33563356-Then edit your [`layers.nix`](https://github.com/vic/dendrix/tree/main/templates/default/layers.nix) file.
33573357-33583358-### Try it Online!
33593359-33603360-If you are not currently a NixOS user, you can try
33613361-running an ephemereal NixOS on the web.
33623362-33633363-- Go to [Distrosea nixos-unstable-minimal](https://distrosea.com/start/nixos-unstable-minimal/)
33643364-33653365-Start a machine and run the following:
33663366-33673367-```shell
33683368-nix run .#os-switch template
33693369-33703370-```
33713371-33723372-## Customization
33733373-33743374-Once you have a `./modules/` directory on your flake, just add flake-parts modules following the dendritic pattern.
33753375-All files will be loaded automatically. Edit your `layers.nix` to include dendrix provided aspects you choose.
33763376-33773377-## Motivation
33783378-33793379-<details>
33803380-33813381-<summary>
33823382-33833383-_:: long but worth read on config organization and sharing ::_
33843384-33853385-> tl;dr. Because even if we already have our nix infra configs accessible to the public,
33863386-> sometimes it's not that easy for newcomers to know what to pick from them.
33873387-> Small steps of courtesy can have a big and positive impact in our community.
33883388-> 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.
33893389-33903390-</summary>
33913391-33923392-One 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).
33933393-33943394-> 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.
33953395-33963396-Imagine 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.
33973397-33983398-> 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.
33993399-34003400-Now 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.
34013401-34023402-Using the import-tree API one could select only minimal
34033403-capabilities.
34043404-34053405-```nix
34063406-shared-tree = import-tree.filter (lib.hasInfix "minimal");
34073407-```
34083408-34093409-We could also have `A_aspect/private.nix` making it contribute capabilities to our personal infra but not visible for community members.
34103410-34113411-```nix
34123412-shared-tree = import-tree.filterNot (lib.hasInfix "private");
34133413-```
34143414-34153415-We can also have a convention of anything inside `community` be shareable.
34163416-34173417-```nix
34183418-shared-tree = import-tree.filter (lib.hasInfix "community");
34193419-```
34203420-34213421-> And even provide a richer [import-tree API](https://github.com/vic/import-tree) for people
34223422-> willing to consume our shared configuration tree:
34233423-34243424-```nix
34253425-# provider's flake
34263426-flake.lib.shared-tree = lib.pipe inputs.import-tree [
34273427- (self: self.addPath ./modules)
34283428- (self: self.filterNot lib.hasInfix("private"))
34293429- (self: self.filter lib.hasInfix("community"))
34303430- (self: self.addAPI {
34313431- aspect-a = self: self.filter lib.hasInfix("A_aspect");
34323432- aspect-b = self: self.filter lib.hasInfix("B_aspect");
34333433- minimal = self: self.filter lib.hasInfix("minimal");
34343434- maximal = self: self.filter lib.hasInfix("maximal");
34353435- })
34363436-];
34373437-```
34383438-34393439-This way people consuming our shared import-tree will not
34403440-have access to anything including `private` and only things under `community` and a couple of `minimal`, and `maximal` capability selectors.
34413441-34423442-```nix
34433443-# consumer's flake
34443444-imports = [
34453445- inputs.providers-flake.lib.shared-tree.minimal.aspect-a
34463446- inputs.providers-flake.lib.shared-tree.maximal.aspect-b
34473447-];
34483448-```
34493449-34503450-Of 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.
34513451-34523452-</details>
34533453-34543454-## How it works
34553455-34563456-<details>
34573457-34583458-<summary>
34593459-34603460-> tl;dr. By sharing subsets of community's flake-modules on this repo.
34613461-34623462-`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.
34633463-34643464-This 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.
34653465-34663466-</summary>
34673467-34683468-In a sense, this repository is akin to [nix-community/NUR](https://github.com/nix-community/NUR)
34693469-but for flake-parts modules that can provide packages and aspects to many different nix configuration classes.
34703470-34713471-Many 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)).
34723472-34733473-You can also use the [`import-tree API`](https://github.com/vic/import-tree) to provide refined subtrees or file filters for specific collections.
34743474-34753475-A 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.
34763476-34773477-We (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.
34783478-34793479-Based 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.
34803480-34813481-</details>
34823482-34833483-## FAQ
34843484-34853485-- Are these configurations restriced to dendritic setups?
34863486-34873487- Yes. The reason is that using dendritic patterns allows
34883488- us to easily combine configs from many different community sources
34893489- knowing that each and every .nix file will be a flake-parts module.
34903490-34913491- Layers (blessed presets) are always loaded by import-tree,
34923492- but _only enabled_ when you include them as part of a top-level module of yours.
55+Editor-distributions like those for nvim/emacs provide community-driven, opinionated configurations that can be easily reused and enabled by newcomers.
3493634943494-- Is dendrix a NixOS based distribution ?
77+The `dendrix` project aims to provide the same experience: having community-managed, author-maintained and no-barrier-of-entry [setups](https://vic.github.io/dendrix/Dendrix-Layers.html) for everything that can be configured using [flake-parts modules](https://flake.parts/options/flake-parts-modules.html).
3495834963496- In a way, but we still don't provide customized bootable installers.
99+In a sense, this repository is akin to [nix-community/NUR](https://github.com/nix-community/NUR) but for flake-parts [dendritic](https://vic.github.io/dendrix/Dendritic.html) modules that can provide packages and aspects to many different nix configuration classes.
34971034983498- It is more a flake-parts configurations collection that can be included
34993499- on any dendritic setup.
35003500-35013501-- Can I contribute my _awesome Desktop_ rice?
35023502-35033503- Sure! the best way to do that is to keep your desktop rice on your own repository.
35043504- And use this repo to add an import-tree object pointing to it. See the notes above
35053505- about contributing on `dev/npins/sources.json` and `dev/modules/community/*.nix`.
35063506-35073507-- How are layers made?
35083508-35093509- A layer is a _blessed_ dendritic setup, aimed to reuse aspects from the community
35103510- provided dendritic repositories. However these blessed configs might have conventions
35113511- that community repositories not necessarily follow (since our repos are mainly used
35123512- for our own infra). So it is part of this community to create discussions about how
35133513- to name things so that best practices and conventions arise around sharing and
35143514- extending known aspects.
35153515-35163516- For example, if we had a `gaming` aspect. We would need conventions on how to name
35173517- aspect modules for gaming. And people would likely provide such dendritic configurations
35183518- on their setups.
35193519-35203520- So, long story short, layers are community owned setups. And repos are owned by
35213521- a respective community member.
35223522-35233523-- How about Games/AI/Devops/Security layers?
35243524-35253525- You are right on point!, that's precisely why this project started. We also
35263526- want to provide specialized versions of NixOS focused on pre-configured security, gaming,
35273527- development setups.
35283528-35293529-## Contributing
35303530-35313531-Since we all now have agreed to follow the Dendritic
35323532-pattern to organize our files, lets take a few more guidelines to make eveybody's life easier:
35333533-35343534-- Always be nice, and have respect for others.
35353535-- Be professional and considerate we are giving our time and energy on this project as an invaluable good for others.
35363536-- 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.)
35373537-- This is a community project, so as soon as your PR is merged you'll also get commit bit, however we restrict
35383538- changes to be only via PRs and require code-owners review before merge.
35393539-- Prefer linear git history, squash PRs and no merge-commit. Vic recommends working with jujutsu.
35403540-35413541-### Development
35423542-35433543-We recommend to use `direnv` or anything that can load our `nix develop path:dev` environment. If you are
35443544-using direnv, we provide an `.envrc` for it.
35453545-35463546-Upon entering the shell, you will see a menu of useful commands during development.
35473547-35483548-```shell
35493549-nix develop ./dev -c files # generate nix-controlled files (like this README) and format them.
35503550-nix flake check ./dev # checks all is up-to-date, community checks, and formatting
35513551-35523552-# when adding a new repo, run npins inside of ./dev
35533553-```
1111+Made with <3 by [@vic](https://github.com/vic)
+11
dev/book/src/Contributing.md
···11+# Contributing
22+33+Since we all now have agreed to follow the Dendritic
44+pattern to organize our files, lets take a few more guidelines to make eveybody's life easier:
55+66+- Always be nice, and have respect for others.
77+- Be professional and considerate we are giving our time and energy on this project as an invaluable good for others.
88+- 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.)
99+- This is a community project, so as soon as your PR is merged you'll also get commit bit, however we restrict
1010+ changes to be only via PRs and require code-owners review before merge.
1111+- Prefer linear git history, squash PRs and no merge-commit. Vic recommends working with jujutsu.
+182
dev/book/src/Dendritic.md
···11+# Dendritic Nix
22+33+[Dendritic](https://github.com/mightyiam/dendritic) is a [pattern](https://discourse.nixos.org/t/pattern-every-file-is-a-flake-parts-module/61271) for writing nix configurations based on [flake-parts](https://flake.parts)'s [`modules` option](https://flake.parts/options/flake-parts-modules.html).
44+55+We say that Dendritic nix configurations are _aspect-oriented_ meaning that each nix file
66+provides config-values for the same _aspect_ across different nix configuration classes.
77+88+This is done via flake-parts' `flake.modules.<class>.<aspect>` options.
99+1010+Where `<class>` is a type of configuration, like [`nixos`](https://nixos.org/manual/nixos/stable/options), [`darwin`](https://nix-darwin.github.io/nix-darwin/manual/), [`homeManager`](https://home-manager.dev/manual/23.11/options.xhtml), [`nixvim`](https://nix-community.github.io/nixvim/search/), etc.
1111+1212+And `<aspect>` is the _cross-cutting concern_ or _feature_ that is being configured across
1313+one or more of these classes.
1414+1515+### Example of a dendritic configuration.
1616+1717+As an example of what a dendritic nix config looks like, suppose we want to configure ssh facilities
1818+(the `ssh` aspect) across our NixOS, Nix-darwin hosts and user homes.
1919+2020+```nix
2121+# modules/ssh.nix -- like every other file inside modules, this is a flake-parts module.
2222+{ config, ... }: {
2323+ flake.modules.nixos.ssh = {
2424+ # Linux config: server, firewall-ports, etc.
2525+ };
2626+2727+ flake.modules.darwin.ssh = {
2828+ # MacOS config: enable builtin ssh server, etc.
2929+ };
3030+3131+ flake.modules.homeManager.ssh = {
3232+ # setup ~/.ssh/config or keys.
3333+ };
3434+3535+ perSystem = {pkgs, ...}: {
3636+ # expose custom package/checks/devshells by this aspect.
3737+ };
3838+}
3939+```
4040+4141+That's it. This is what Dendritic is all about. By following this configuration pattern you
4242+will notice the following advantages for your configurations.
4343+4444+## Denritic Advantages
4545+4646+### No need to use specialArgs for communicating values.
4747+4848+A common pattern for passing values between different nix configurations types (eg between a `nixos` config and a `homeManager` one),
4949+is to use the [`specialArgs`](https://nixos.org/manual/nixos/stable/options#opt-_module.args) module argument or [`home-manager.extraSpecialArgs`](https://home-manager.dev/manual/23.11/nixos-options.xhtml#nixos-opt-home-manager.extraSpecialArgs).
5050+5151+This is considered an _anti-pattern in dendritic setups_, since there's no need to use `specialArgs` at all. Because you can
5252+always use let bindings (or even define your own _options_ at the flake-parts level) to share values across different configuration classes.
5353+5454+```nix
5555+# modules/vic.nix -- a flake-parts module that configures the "vic" user aspect.
5656+let
5757+ userName = "vic"; # a shared value between classes
5858+in
5959+{
6060+ flake.modules.nixos.${userName} = {
6161+ users.users.${userName} = { isNormalUser = true; extraGroups = [ "wheel" ]; };
6262+ };
6363+6464+ flake.modules.darwin.${userName} = {
6565+ system.primaryUser = userName; # configuring a user is different on MacOS than on NixOS.
6666+ };
6767+6868+ flake.modules.homeManager.${userName} =
6969+ { pkgs, lib, ... }:
7070+ {
7171+ home.username = lib.mkDefault userName;
7272+ home.homeDirectory = lib.mkDefault (if pkgs.stdenvNoCC.isDarwin then "/Users/${userName}" else "/home/${userName}");
7373+ home.stateVersion = lib.mkDefault "25.05";
7474+ };
7575+}
7676+```
7777+7878+### No file organization restrictions.
7979+8080+The dendritic pattern imposes no restrictions on how you organize or name your nix files.
8181+8282+Unlike other nix-configuration libs/frameworks that mandate a predefined structure. In Dendritic,
8383+you are free to move or rename each file as it better suits your mental model.
8484+8585+This is possible because:
8686+8787+### All nix files have the same semantic meaning.
8888+8989+In a Dendritic setup, each `.nix` file has only one interpretation: A flake-parts module.
9090+9191+Unlike other kinds of setup where each nix file can be a `nixos` configuration, or a `home-manager` configuration, or
9292+a package, or something entrely different, where loading a file needs you need to be sure of what kind of meaning
9393+it has.
9494+9595+### No manual file imports.
9696+9797+All files being flake-parts modules, means we have no need for manually importing nix files. They can all be
9898+loaded at once into a single import.
9999+100100+The Dendritic community commonly uses [`vic/import-tree`](https://github.com/vic/import-tree) for this.
101101+Note: import-tree ignores any file that has an `_` anywhere as part of its path.
102102+103103+```nix
104104+# flake.nix
105105+{
106106+ inputs = {
107107+ flake-parts.url = "github:hercules-ci/flake-parts";
108108+ import-tree.url = "github:vic/import-tree";
109109+ # all other inputs your flake needs, like nixpkgs.
110110+ };
111111+ outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules);
112112+}
113113+```
114114+115115+This is the only place you will call `import-tree` and it will load all files under `./modules` recursively.
116116+117117+This means we can have:
118118+119119+### Minimal and focused flake.nix
120120+121121+Instead of having huge `flake.nix` files with lots of nix logic inside the flake itself.
122122+It is now possible move to all nix logic into `./modules`.
123123+124124+Your flake becomes minimal, focused on defining inputs and possibly cache, experimental-features config.
125125+126126+And any file inside modules can contribute to flake outputs (packages/checks/osConfigurations) as needed.
127127+128128+```nix
129129+# modules/flake/formatter.nix
130130+{
131131+ petSystem = {pkgs, ...}: {
132132+ formatter = pkgs.alejandra;
133133+ };
134134+}
135135+```
136136+137137+### Feature Centric instead of Host Centric.
138138+139139+As noted by Pol Dellaiera in [Flipping the Configuration Matrix](https://not-a-number.io/2025/refactoring-my-infrastructure-as-code-configurations/#flipping-the-configuration-matrix):
140140+141141+> the configuration is now structured around features, not hostnames. It is a shift in the axis of composition, essentially an inversion of configuration control. What may seem like a subtle change at first has profound implications for flexibility, reuse, and maintainability.
142142+143143+You will notice that you start naming your files around the `aspect`s (features) they define
144144+instead of where they are applied.
145145+146146+### Feature _Closures_
147147+148148+By closure we mean that if you need to look where some `feature` is provided, you only have
149149+to look at a single place: The file or directory likely named after that feature.
150150+151151+Because a single `feature.nix` contributes to different configuration classes, it has all
152152+the information on how feature works, instead of having to look at different files for
153153+package definitions, nixos or home-manager configurations dispersed over all over the tree.
154154+155155+### _Incremental_ Features
156156+157157+Since all nix files are loaded automatically. You can increment the capabilities that an
158158+existing `feature-x.nix` file has by just creating another `feature-x/advanced.nix` file.
159159+Both of them should contribute to the same aspect: `flake.modules.<class>.feature-x`, but
160160+each file focuses on the different capabilities they provide.
161161+162162+This way, you can split `feature-x/advanced.nix` into more files. And adding or removing
163163+files from your modules (or adding an `_` for them to be ignored) has no
164164+other impact than the overall capabilities provided into your systems.
165165+166166+This is an easy way to disable loading files while on a huge refactor. Or when some hosts
167167+or features should be decomissioned immediatly/temporarily.
168168+169169+### No dependencies other than flake-parts
170170+171171+Since the dendritic pattern builds around flake-parts modules, the only dependency is
172172+`flake-parts`. You can load files using import-tree or any other means. You can also use
173173+any flake-parts based library to define your configurations, like [Unify](https://codeberg.org/quasigod/unify),
174174+as long as it exposes `flake.modules.<class>.<aspect>` attribute sets.
175175+176176+### Dendritic community.
177177+178178+Last but not least. By using the dendritic pattern you open the door to defining or re-using
179179+existing non-hardware/non-user generic configurations from the community.
180180+181181+This is the goal of the Dendrix project: To allow people share dendritic configurations and
182182+socially enhance their capabilities.
+49
dev/book/src/Dendrix-Conventions.md
···11+# Dendrix conventions
22+33+There are some non-mandatory conventions on Dendrix. However using them can ease integration of your repo.
44+55+Some of these conventions translate as code in the [default pipe-line](https://github.com/vic/dendrix/blob/main/dev/modules/community/_pipeline.nix) used to configure each import-tree.
66+77+88+## Having a `modules/community` directory.
99+1010+By default, dendrix detects if the community repo has a `modules/community` directory. If so, _only_ that directory is scanned for aspects. So we recommend having such a directory.
1111+1212+Otherwise the `modules/` directory will be scanned and shared.
1313+1414+If you, however, prefer to have another structure, it is possible to define a `community-paths` [option](https://github.com/vic/dendrix/blob/main/dev/modules/community/options.nix).
1515+1616+## Anything `private` is not shared.
1717+1818+Any file (even inside `modules/community`) having a `private` infix anywhere in their path is not visible to the community.
1919+2020+This is akin to import-tree's `_` convention used for ignoring files. However `private` paths can be loaded by your flake but
2121+not on Dendrix import-trees.
2222+2323+## Flags
2424+2525+Flags are a convention for allowing consumers of your repo
2626+to easily select or skip collections of files.
2727+2828+A flag has the following form: `+flag`. A plus-sign and a name consisting of alphanumeric characters and `-` hypen.
2929+3030+Some examples of flags are: `+lsp`, `+local-ai`, `+rust`.
3131+3232+Flags can be present anywhere on a path: directory or file names.
3333+3434+By using flags in your paths, it can be posible for people do
3535+things like including/excluding some capabilities:
3636+3737+```nix
3838+# Include anything with +vim on their path.
3939+# Exclude anything with +emacs on their path.
4040+import-tree [
4141+ dendrix.community.your-repo.flagged "-emacs +vim"
4242+]
4343+```
4444+4545+## A clean `flake.nix` that just `import-tree ./modules`
4646+4747+As noted in the [focused flake.nix](Dendritic.html#minimal-and-focused-flakenix), a best practice is to move all your nix logic into a nix file inside `./modules`.
4848+4949+People usually have a `./modules/flake` for this purpose.
+32
dev/book/src/Dendrix-Layers.md
···11+# Dendrix layers
22+33+> Layers are an upcoming feature of the Dendrix project.
44+55+Dendrix Layers are cross-repository import-trees that provide community-managed configurations.
66+77+For example, if the community comes up with an `ai` aspect shared across different repos, we
88+could have a _blessed_ layer providing both:
99+1010+```nix
1111+dendrix.layers.ai = import-tree.addPath [
1212+ dendrix.community.repo-one.ai
1313+ dendrix.community.repo-two.ai
1414+];
1515+```
1616+1717+For this to be possible we first need to collaborate around configuring the `ai` feature
1818+in `repo-one` and `repo-two` so that their configurations do not depend on host/user specifics.
1919+2020+This is quite possible, since repo-one can do the following:
2121+2222+```shell
2323+# only this is shared to the community
2424+./modules/community/ai.nix
2525+2626+# these two are not community shared.
2727+./modules/hosts/myhost/ai.nix # augmented for host specific gpu.
2828+./modules/users/vic/ai.nix # with user specific credentials.
2929+```
3030+3131+Having Dendrix Layers will allow us to provide _opinionated_ or _batteries-included_ NixOS
3232+specific distributions. Like NixOS for AI development, NixOS for Gaming, etc.
+33
dev/book/src/Dendrix-Trees.md
···11+# Dendrix import-trees
22+33+Our last section ended with the following mission statement:
44+55+> This is the goal of the Dendrix project: To allow people share dendritic configurations and
66+> socially enhance their capabilities.
77+88+As a first step into this goal, Dendrix [discovers](https://github.com/vic/dendrix/blob/main/dev/modules/community/discovered.nix) what `aspect`s and which nix configuration `class`es are provided by the dendritic [community repository sources](https://github.com/vic/dennix/blob/main/dev/npins/sources.json).
99+1010+The sidebar on the left shows a filtering UI that serves three purposes:
1111+1212+- Document which aspects/classes are found on each repo and their locations.
1313+- Visibility on what names are used by the community for defining aspects/classes.
1414+- Allow people to re-use existing aspects by providing import-trees [to them](https://github.com/vic/dendrix/tree/main/dev/modules/community/discovered).
1515+1616+## Community Participation.
1717+1818+### Sharing re-usable parts of your Dendritic configs.
1919+2020+You are free to send a PR adding/removing your dendritic repo into `dev/npins/sources.json`.
2121+2222+And even if you have an uncommon directory layout, you can share [specific `community-paths`](https://github.com/vic/dendrix/blob/main/dev/modules/community/vic-vix.nix).
2323+2424+As an example in the previous link, vic has a `modules/community` subdir, indicating that
2525+everything outside of it might not be ready for re-use by other people. perhaps because it depends on some hardware or
2626+host-specifc or user-specific settings.
2727+2828+### Organizing with other people around aspects.
2929+3030+The better we organize and name our files around aspects, the better it will be to discover their intent and re-usability.
3131+3232+It is our hope that using the UI at the left, we can discover how are community members naming our aspects
3333+or organizing our files, and we can participate in community discussions around aspect's naming conventions.
···11+# Development
22+33+We recommend to use `direnv` or anything that can load our `nix develop path:dev` environment. If you are
44+using direnv, we provide an `.envrc` for it.
55+66+Upon entering the shell, you will see a menu of useful commands during development.
77+88+```shell
99+nix develop ./dev -c files # generate nix-controlled files (like this README) and format them.
1010+nix flake check ./dev # checks all is up-to-date, community checks, and formatting
1111+1212+# when adding a new repo, run npins inside of ./dev
1313+```
+45
dev/book/src/FAQ.md
···11+# Frequently Asked Questions
22+33+- Are these configurations restriced to dendritic setups?
44+55+ Yes. The reason is that using dendritic patterns allows
66+ us to easily combine configs from many different community sources
77+ knowing that each and every .nix file will be a flake-parts module.
88+99+ Layers (blessed presets) are always loaded by import-tree,
1010+ but _only enabled_ when you include them as part of a top-level module of yours.
1111+1212+- Is dendrix a NixOS based distribution ?
1313+1414+ In a way, but we still don't provide customized bootable installers.
1515+1616+ It is more a flake-parts configurations collection that can be included
1717+ on any dendritic setup.
1818+1919+- Can I contribute my _awesome Desktop_ rice?
2020+2121+ Sure! the best way to do that is to keep your desktop rice on your own repository.
2222+ And use this repo to add an import-tree object pointing to it. See the notes above
2323+ about contributing on `dev/npins/sources.json` and `dev/modules/community/*.nix`.
2424+2525+- How are layers made?
2626+2727+ A layer is a _blessed_ dendritic setup, aimed to reuse aspects from the community
2828+ provided dendritic repositories. However these blessed configs might have conventions
2929+ that community repositories not necessarily follow (since our repos are mainly used
3030+ for our own infra). So it is part of this community to create discussions about how
3131+ to name things so that best practices and conventions arise around sharing and
3232+ extending known aspects.
3333+3434+ For example, if we had a `gaming` aspect. We would need conventions on how to name
3535+ aspect modules for gaming. And people would likely provide such dendritic configurations
3636+ on their setups.
3737+3838+ So, long story short, layers are community owned setups. And repos are owned by
3939+ a respective community member.
4040+4141+- How about Games/AI/Devops/Security layers?
4242+4343+ You are right on point!, that's precisely why this project started. We also
4444+ want to provide specialized versions of NixOS focused on pre-configured security, gaming,
4545+ development setups.
+33
dev/book/src/Getting-Started.md
···11+# Getting Started
22+33+> Dendrix is an on-going effort. While we aim at providing blessed [Layers](Dendrix-Layers.html) to ease the life of NixOS newcomers, we are not still there.
44+55+## Quick Start
66+77+We provide some [templates](https://github.com/vic/dendrix/tree/main/templates) you can
88+use to start a new flake.
99+1010+```
1111+nix flake init github:vic/dendrix#template
1212+```
1313+1414+Then edit your [`layers.nix`](https://github.com/vic/dendrix/tree/main/templates/default/layers.nix) file.
1515+1616+### Try it Online!
1717+1818+If you are not currently a NixOS user, you can try
1919+running an ephemereal NixOS on the web.
2020+2121+- Go to [Distrosea nixos-unstable-minimal](https://distrosea.com/start/nixos-unstable-minimal/)
2222+2323+Start a machine and run the following:
2424+2525+```shell
2626+nix run .#os-switch template
2727+2828+```
2929+3030+## Customization
3131+3232+Once you have a `./modules/` directory on your flake, just add flake-parts modules following the dendritic pattern.
3333+All files will be loaded automatically. Edit your `layers.nix` to include dendrix provided aspects you choose.
+8-2
dev/book/src/README.md
···11-<!-- NOTE: EDIT THESE FILES IN dev/book. -->
11+# Dendrix - community-driven distribution of Dendritic Nix configurations.
22+33+Editor-distributions like those for nvim/emacs provide community-driven, opinionated configurations that can be easily reused and enabled by newcomers.
2433-HELLO
55+The `dendrix` project aims to provide the same experience: having community-managed, author-maintained and no-barrier-of-entry [setups](Dendrix-Layers.html) for everything that can be configured using [flake-parts modules](https://flake.parts/options/flake-parts-modules.html).
66+77+In a sense, this repository is akin to [nix-community/NUR](https://github.com/nix-community/NUR) but for flake-parts [dendritic](Dendritic.html) modules that can provide packages and aspects to many different nix configuration classes.
88+99+Made with <3 by [@vic](https://github.com/vic)
···11-<!-- NOTICE: edit this file at dev/readme_template.md and then run the `files` devshell command. -->
22-33-# Dendrix - community-driven distribution of Dendritic Nix configurations.
44-55-Editor-distributions like those for nvim/emacs provide community-driven,
66-opinionated configurations that can be easily reused and enabled by newcomers.
77-88-The `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).
99-1010-Read more on [Motivation](#motivation) and [How it works](#how-it-works).
1111-1212-## Available dendritic repos.
1313-1414-The following is a list of known dendritic repositories from the nix community.
1515-If you want to add/remove one of them, send a pull-request that edits `dev/npins/sources.json`.
1616-Also if you want to provide custom trees, send a pull-request editing `dev/modules/community/your_repo.nix`.
1717-1818-<details>
1919-<summary>
2020-<!--:repos-summary:-->
2121-</summary>
2222-2323-<!--:repos:-->
2424-</details>
2525-2626-## Cross-repository Dendritic Aspects.
2727-2828-A primary advantage of the nix dendritic pattern are aspects (aka. cross-cutting concerns).
2929-If 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.
3030-3131-<details>
3232-<summary>
3333-3434-> Aspects are just the flake outputs: `flake.modules.<class>.<name>`.
3535-3636-</summary>
3737-3838-For example, some people have `flake.modules.nixos.virtualization` and `flake.modules.darwin.virtualization` and `flake.modules.homeManager.virtualization`.
3939-4040-Here, `virtualization` is the aspect name, and `nixos`/`darwin`/`homeManager` are the nix configuration classes across which the `virtualization` aspect is configured.
4141-4242-```nix
4343-# virtualization.nix
4444-{
4545- flake.modules.nixos.virtualization = { ... };
4646- flake.modules.darwin.virtualization = { ... };
4747- flake.modules.homeManager.virtualization = { ... };
4848-}
4949-```
5050-5151-This is the reason we say that Dendritic setups are aspect-oriented: they configure cross-cutting concerns across different module types.
5252-5353-</details>
5454-5555-The following is a list of aspects that are common in more than a single repository.
5656-Our hope is that people can collaborate to find naming conventions for common aspects.
5757-Having that we could mix configurations from different sources to enhance the same aspect.
5858-5959-<details>
6060-<summary>
6161-<!--:cross-repos-aspects-summary:-->
6262-</summary>
6363-6464-<!--:cross-repos-aspects:-->
6565-6666-</details>
6767-6868-## Flags
6969-7070-> Flags are a [dendrix convention](https://github.com/vic/dendrix/blob/main/dev/modules/community/_pipeline.nix)
7171-> used as part of a file or directory name as named signals.
7272-> Flags only exist in positive form: `+flag`. A negative `-flag` means: ignore positive `+flag` files.
7373-7474-For example, if you have `ai+local.nix` and `ai+cloud.nix` files.
7575-The aspect configured by these files is most likely `ai` but the `local` and `cloud` flags signal the vendor.
7676-7777-Flags are inspired by editor configurations, like doomemacs: `(scala +lsp)`.
7878-And are used in Dendrix only as a way to filter files on community import-trees.
7979-For example, one could exclude all `+emacs` paths like `tree.flagged "-emacs +vim"`.
8080-8181-## Quick Start
8282-8383-We provide some [templates](https://github.com/vic/dendrix/tree/main/templates) you can
8484-use to start a new flake.
8585-8686-```
8787-nix flake init github:vic/dendrix#template
8888-```
8989-9090-Then edit your [`layers.nix`](https://github.com/vic/dendrix/tree/main/templates/default/layers.nix) file.
9191-9292-### Try it Online!
9393-9494-If you are not currently a NixOS user, you can try
9595-running an ephemereal NixOS on the web.
9696-9797-- Go to [Distrosea nixos-unstable-minimal](https://distrosea.com/start/nixos-unstable-minimal/)
9898-9999-Start a machine and run the following:
100100-101101-```shell
102102-nix run .#os-switch template
103103-104104-```
105105-106106-## Customization
107107-108108-Once you have a `./modules/` directory on your flake, just add flake-parts modules following the dendritic pattern.
109109-All files will be loaded automatically. Edit your `layers.nix` to include dendrix provided aspects you choose.
110110-111111-## Motivation
112112-113113-<details>
114114-115115-<summary>
116116-117117-_:: long but worth read on config organization and sharing ::_
118118-119119-> tl;dr. Because even if we already have our nix infra configs accessible to the public,
120120-> sometimes it's not that easy for newcomers to know what to pick from them.
121121-> Small steps of courtesy can have a big and positive impact in our community.
122122-> 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.
123123-124124-</summary>
125125-126126-One 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).
127127-128128-> 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.
129129-130130-Imagine 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.
131131-132132-> 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.
133133-134134-Now 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.
135135-136136-Using the import-tree API one could select only minimal
137137-capabilities.
138138-139139-```nix
140140-shared-tree = import-tree.filter (lib.hasInfix "minimal");
141141-```
142142-143143-We could also have `A_aspect/private.nix` making it contribute capabilities to our personal infra but not visible for community members.
144144-145145-```nix
146146-shared-tree = import-tree.filterNot (lib.hasInfix "private");
147147-```
148148-149149-We can also have a convention of anything inside `community` be shareable.
150150-151151-```nix
152152-shared-tree = import-tree.filter (lib.hasInfix "community");
153153-```
154154-155155-> And even provide a richer [import-tree API](https://github.com/vic/import-tree) for people
156156-> willing to consume our shared configuration tree:
157157-158158-```nix
159159-# provider's flake
160160-flake.lib.shared-tree = lib.pipe inputs.import-tree [
161161- (self: self.addPath ./modules)
162162- (self: self.filterNot lib.hasInfix("private"))
163163- (self: self.filter lib.hasInfix("community"))
164164- (self: self.addAPI {
165165- aspect-a = self: self.filter lib.hasInfix("A_aspect");
166166- aspect-b = self: self.filter lib.hasInfix("B_aspect");
167167- minimal = self: self.filter lib.hasInfix("minimal");
168168- maximal = self: self.filter lib.hasInfix("maximal");
169169- })
170170-];
171171-```
172172-173173-This way people consuming our shared import-tree will not
174174-have access to anything including `private` and only things under `community` and a couple of `minimal`, and `maximal` capability selectors.
175175-176176-```nix
177177-# consumer's flake
178178-imports = [
179179- inputs.providers-flake.lib.shared-tree.minimal.aspect-a
180180- inputs.providers-flake.lib.shared-tree.maximal.aspect-b
181181-];
182182-```
183183-184184-Of 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.
185185-186186-</details>
187187-188188-## How it works
189189-190190-<details>
191191-192192-<summary>
193193-194194-> tl;dr. By sharing subsets of community's flake-modules on this repo.
195195-196196-`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.
197197-198198-This 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.
199199-200200-</summary>
201201-202202-In a sense, this repository is akin to [nix-community/NUR](https://github.com/nix-community/NUR)
203203-but for flake-parts modules that can provide packages and aspects to many different nix configuration classes.
204204-205205-Many 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)).
206206-207207-You can also use the [`import-tree API`](https://github.com/vic/import-tree) to provide refined subtrees or file filters for specific collections.
208208-209209-A 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.
210210-211211-We (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.
212212-213213-Based 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.
214214-215215-</details>
216216-217217-## FAQ
218218-219219-- Are these configurations restriced to dendritic setups?
220220-221221- Yes. The reason is that using dendritic patterns allows
222222- us to easily combine configs from many different community sources
223223- knowing that each and every .nix file will be a flake-parts module.
224224-225225- Layers (blessed presets) are always loaded by import-tree,
226226- but _only enabled_ when you include them as part of a top-level module of yours.
227227-228228-- Is dendrix a NixOS based distribution ?
229229-230230- In a way, but we still don't provide customized bootable installers.
231231-232232- It is more a flake-parts configurations collection that can be included
233233- on any dendritic setup.
234234-235235-- Can I contribute my _awesome Desktop_ rice?
236236-237237- Sure! the best way to do that is to keep your desktop rice on your own repository.
238238- And use this repo to add an import-tree object pointing to it. See the notes above
239239- about contributing on `dev/npins/sources.json` and `dev/modules/community/*.nix`.
240240-241241-- How are layers made?
242242-243243- A layer is a _blessed_ dendritic setup, aimed to reuse aspects from the community
244244- provided dendritic repositories. However these blessed configs might have conventions
245245- that community repositories not necessarily follow (since our repos are mainly used
246246- for our own infra). So it is part of this community to create discussions about how
247247- to name things so that best practices and conventions arise around sharing and
248248- extending known aspects.
249249-250250- For example, if we had a `gaming` aspect. We would need conventions on how to name
251251- aspect modules for gaming. And people would likely provide such dendritic configurations
252252- on their setups.
253253-254254- So, long story short, layers are community owned setups. And repos are owned by
255255- a respective community member.
256256-257257-- How about Games/AI/Devops/Security layers?
258258-259259- You are right on point!, that's precisely why this project started. We also
260260- want to provide specialized versions of NixOS focused on pre-configured security, gaming,
261261- development setups.
262262-263263-## Contributing
264264-265265-Since we all now have agreed to follow the Dendritic
266266-pattern to organize our files, lets take a few more guidelines to make eveybody's life easier:
267267-268268-- Always be nice, and have respect for others.
269269-- Be professional and considerate we are giving our time and energy on this project as an invaluable good for others.
270270-- 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.)
271271-- This is a community project, so as soon as your PR is merged you'll also get commit bit, however we restrict
272272- changes to be only via PRs and require code-owners review before merge.
273273-- Prefer linear git history, squash PRs and no merge-commit. Vic recommends working with jujutsu.
274274-275275-### Development
276276-277277-We recommend to use `direnv` or anything that can load our `nix develop path:dev` environment. If you are
278278-using direnv, we provide an `.envrc` for it.
279279-280280-Upon entering the shell, you will see a menu of useful commands during development.
281281-282282-```shell
283283-nix develop ./dev -c files # generate nix-controlled files (like this README) and format them.
284284-nix flake check ./dev # checks all is up-to-date, community checks, and formatting
285285-286286-# when adding a new repo, run npins inside of ./dev
287287-```