!OHimLTKAXNbFrEoogf:matrix.org

Nix Milan

116 Members
https://milano.nix.pizza/8 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
30 Dec 2025
@telegram_165995843:t2bot.ioNonno 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
@telegram_32436951:t2bot.ioDavid
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
@telegram_28186152:t2bot.ioLucio
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

Show newer messages


Back to Room ListRoom Version: 10