Introduction à NixOS et home-manager (Partie 2)
Home-manager est un outil qui étend Nix pour gérer non seulement les paquets système, mais aussi leurs configurations de manière déclarative. Plutôt que de modifier manuellement des fichiers éparpillés dans $HOME, tout est déclaré au même endroit et reproductible sur n'importe quelle machine.
Emacs
Nix peut gérer non seulement le binaire d'Emacs, mais aussi ses plugins. Plus besoin de M-x package-install ou de straight.el.
programs.emacs = {
enable = true;
package = pkgs.emacs-pgtk;
extraPackages = epkgs: [
epkgs.treesit-grammars.with-all-grammars
epkgs.vertico
epkgs.orderless
epkgs.marginalia
epkgs.consult
epkgs.embark
epkgs.embark-consult
];
};
Firefox
Même chose pour Firefox : profils, paramètres about:config et userChrome.css sont tous déclarés dans le même fichier.
programs.firefox = {
enable = true;
profiles.default = {
isDefault = true;
settings = {
"signon.rememberSignons" = false;
"signon.autofillForms" = false;
"signon.generation.enabled" = false;
};
};
};
Inconvénients
Chaque modification nécessite une recompilation avec home-manager switch. Je recommande de n'adopter home-manager que lorsque la configuration est relativement stable.
Conclusion
Home-manager pousse la philosophie Nix jusqu'à l'environnement utilisateur : une seule source de vérité, versionnée avec Git. La liste complète des paquets disponibles est consultable sur GitHub.