| 30 Dec 2025 |
Lucio | È stato scelto dentritico come nome per la somiglianza tra la struttura finale della configurazione e quella delle regioni periferiche dei neuroni. | 08:58:23 |
Lucio |  Download image.jpeg | 08:58:23 |
Lucio | Le configurazioni le puoi tenere separate, vai solo ad importare uno o più moduli già definiti a seconda delle necessità. Inoltre le classi con cui raggruppi i moduli le scegli tu, sopra ho fatto solo un esempio. | 09:20:37 |
Alessandro Candido | Da una parte mi torna, e non trovo sbagliato separare per "tema" le configurazioni.
Dall'altra pero' mi viene anche abbastanza naturale separare per livello, e tenere le configurazioni di sistema (che sono potenzialmente condivise da tutti gli utenti della macchina) separate da quelle di home manager (che sono potenzialmente diverse per ogni utente).
Pero' e' vero che uno potrebbe ragionare per temi, e dividere internamente ai module per user "tier", spezzando il livello "utente" per tipologia di utente (ammesso che ce ne siano piu' d'uno) | 09:11:41 |
Andrea Ciceri | In reply to Lucio Nel caso di Nix e NixOS, serve in buona sostanza ad avere una configurazione più ordinata e flessibile. In particolare invece di definire, ad esempio, dall'alto del flake gli output e gli argomenti di questi output è possibile decentralizzarli in altri file raggruppandoli per una qualche affinità. Solitamente ognuno di questi file definisce uno o più moduli flake-parts. È possibile avere infatti la configurazione NixOS e home manager nello stesso file ma con due moduli diversi.
Se avessi una configurazione modulare NON dentritica avresti ad esempio: Flake.nix Flake.lock homeModules nixosModules
Dove tutti gli output (nixosConfiguration, homeConfiguration,...) gli argomenti (user, hostname, ...) sono definiti nel flake.nix. Potresti avere poi un modulo multimedia.nix sia in nixosModules che in homeManager: #es. del solo modulo homeManager { config, lib, pkgs, ... }: { options.hm_multimedia.enable = lib.mkEnableOption "enables multimedia homeManager module"; config = lib.mkIf config.hm_multimedia.enable { home.packages = with pkgs; [ stable.davinci-resolve audacity yt-dlp ffmpeg imagemagick ghostscriptX # required by imagemagick loupe # image viewer ]; }; } Questo modulo va importato in home.nix dello specifico host e ne va abilitata l'opzione.
Se avessi invece una configurazione modulare DENDRITICA la struttura sarebbe: Flake.nix Flake.lock modules Il flake.nix importa ricorsivamente tutti i file nix in modules senza dover specificare quali, incluso multimedia.nix: {...}:{ flake.modules.homeManager.multimedia ={ home.packages = with pkgs; [ stable.davinci-resolve audacity yt-dlp ffmpeg imagemagick ghostscriptX # required by imagemagick loupe # image viewer ]; }; flake.modules.nixos.multimedia={ #contenuto per sistemi NixOS }; }
Questo modulo può essere attivato semplicemente importandolo dove ti serve, per esempio dove definisci hosts o utenti con: imports = [ inputs.self.modules.nixos.multimedia inputs.self.modules.homeManager.multimedia ] La spiegazione ci sta, l'unica puntualizzazione e' che in realta' non e' una prerogativa del dendritic pattern non avere tutti gli output esplicitati nel flake.nix, quello si puo' ottenere tranquillamente con flake.parts senza per forza questo pattern.
L'idea alla base del dendritic pattern e' che ogni file e' un modulo flake.parts, il che ti spinge a scrivere le tue opzioni come opzioni a livello di flake.parts anche se poi queste vanno ad impostare opzioni a livello di nixos, home-manager o qualsiasi altra cosa.
Questo ha come corollario che viene comodo lavorare per "aspetti" e quindi mettere nello stesso file tutto cio' che riguarda ssh per esempio, sia a livello di home-manager che di nixos. Quindi per esempio tu crei le tue opzioni relative ad ssh come opzioni flake-parts e poi usi i valori di queste opzioni per settare sia le opzioni di home-manager che di nixos, e magari le usi anche per settare delle variabile proprio della devShell del flake.
(non ho letto quel link eh) | 09:27:06 |
Andrea Ciceri | In reply to Tonio Immagino che un setup sensato possa essere avere un demone che tiene la folder in sync con una repo e importare manualmente la chiave su tutte le macchine su cui voglio usarlo? Io uso [git-sync](https://github.com/simonthum/git-sync) (c'e' il modulo home-manager) | 09:32:55 |
Andrea Ciceri | In reply to Alberto Quasi tutte le integrazioni bitwarden sono fatte malino, anche la cli ufficiale è terribile Io non mi trovo male con l'estensione ufficiale per firefox (la uso su zen). La cli non l'ho mai provata. | 09:34:41 |
Andrea Ciceri | In reply to Nonno Felice Intendi tipo "latestZfsKernel"? Non l'avevano tolto quello? | 09:29:28 |
Tonio | Domanda, i dendriti sono un pattern applicabile solo con i flakes? | 10:35:02 |
Tonio | Per come li hai descritti sembrano simili ai moduli, cosa di home-manager non fa esattamente enforcing ma consiglia caldamente | 10:36:10 |
Lucio | Tecnicamente no, avevo dato un'occhiata veloce a questo repo: https://github.com/vic/dendritic-unflake | 10:39:22 |
Tonio | In reply to Andrea Ciceri Io uso [git-sync](https://github.com/simonthum/git-sync) (c'e' il modulo home-manager) Curiosamente ho una cosa pressoché identica scritta da me in Scala Native | 10:37:34 |
Tonio | Interessante, c'è un esempio con npins che è quello che uso, grazie! | 10:53:34 |
Andrea Ciceri | Esatto, c'e unflake ma ce ne e' anche un altro che non ricordo (comunque mi sembrava meglio unflake ad occhio) Comunque vi consiglio di entrare nel canale matrix se non ci siete gia': #dendritic:matrix.org | 10:57:27 |
Nonno Felice | In reply to Lucio Nel caso di Nix e NixOS, serve in buona sostanza ad avere una configurazione più ordinata e flessibile. In particolare invece di definire, ad esempio, dall'alto del flake gli output e gli argomenti di questi output è possibile decentralizzarli in altri file raggruppandoli per una qualche affinità. Solitamente ognuno di questi file definisce uno o più moduli flake-parts. È possibile avere infatti la configurazione NixOS e home manager nello stesso file ma con due moduli diversi.
Se avessi una configurazione modulare NON dentritica avresti ad esempio: Flake.nix Flake.lock homeModules nixosModules
Dove tutti gli output (nixosConfiguration, homeConfiguration,...) gli argomenti (user, hostname, ...) sono definiti nel flake.nix. Potresti avere poi un modulo multimedia.nix sia in nixosModules che in homeManager: #es. del solo modulo homeManager { config, lib, pkgs, ... }: { options.hm_multimedia.enable = lib.mkEnableOption "enables multimedia homeManager module"; config = lib.mkIf config.hm_multimedia.enable { home.packages = with pkgs; [ stable.davinci-resolve audacity yt-dlp ffmpeg imagemagick ghostscriptX # required by imagemagick loupe # image viewer ]; }; } Questo modulo va importato in home.nix dello specifico host e ne va abilitata l'opzione.
Se avessi invece una configurazione modulare DENDRITICA la struttura sarebbe: Flake.nix Flake.lock modules Il flake.nix importa ricorsivamente tutti i file nix in modules senza dover specificare quali, incluso multimedia.nix: {...}:{ flake.modules.homeManager.multimedia ={ home.packages = with pkgs; [ stable.davinci-resolve audacity yt-dlp ffmpeg imagemagick ghostscriptX # required by imagemagick loupe # image viewer ]; }; flake.modules.nixos.multimedia={ #contenuto per sistemi NixOS }; }
Questo modulo può essere attivato semplicemente importandolo dove ti serve, per esempio dove definisci hosts o utenti con: imports = [ inputs.self.modules.nixos.multimedia inputs.self.modules.homeManager.multimedia ] Sembra interessante, dovrò investigare meglio | 11:04:32 |
David | In reply to Lucio Tecnicamente no, avevo dato un'occhiata veloce a questo repo: https://github.com/vic/dendritic-unflake C'è una dipendenza che simula quello che fa un flake, però 😛 | 12:08:22 |
Lucio | In reply to David C'è una dipendenza che simula quello che fa un flake, però 😛 Come ho detto ho dato un'occhiata veloce, usando i flake non ho approfondito sorry 😅 | 12:11:57 |
Nonno Felice | In reply to Andrea Ciceri Quando stavo sul pacchetto "unstable" (non ricordo se era questo il nome) di linux (sempre NixOS unstable) ricordo che mi succedeva spesso che zfs fosse broken, risolvevo semplicemente aspettando ad aggiornare nixpkgs. Ora che uso l'opzione di default per il kernel e' anni che non ho piu' questo problema. Ora ho capito cosa intendi, però io uso Linux Zen | 20:00:18 |
| 31 Dec 2025 |
Lucio | Buon anno a tutti 🍾🎆
Speriamo in un 2026 più riproducibile 😄 | 23:05:09 |
| 1 Jan 2026 |
Alessandro 🤔➖☀️🖌 | Buon anno!! 🎉 | 00:03:01 |
| 31 Dec 2025 |
Andrea Ciceri | In reply to Lucio Buon anno a tutti 🍾🎆 Speriamo in un 2026 più riproducibile 😄 Auguri a tutti! | 23:59:54 |
| 1 Jan 2026 |
Tia | Auguri! 🎉 | 00:03:42 |
Alessandro Candido | Buon anno! 🎉 | 00:33:06 |
Luca | Buon anno!!! 🎉 | 00:48:14 |
| Luca set a profile picture. | 01:15:24 |
Alberto | Buon anno!! | 18:10:58 |
| 29 Feb 2024 |
| @admin:nixos.org changed the history visibility to "world_readable" from "shared". | 12:19:16 |
| NixOS Moderation Bot joined the room. | 12:19:31 |
| @admin:nixos.orgchanged room power levels. | 12:20:33 |
| @admin:nixos.org left the room. | 12:20:52 |