home-manager : remplace la base dconf système + activation script par du per-user
- flake.nix : ajoute l'input home-manager (release-26.05, même branche que nixpkgs, confirmé qu'elle existe), importe home-manager.nixosModules.home-manager sur le profil usagers - hosts/common/default.nix : le fond d'écran par défaut passe par home-manager.users.usagers.dconf.settings au lieu de environment.etc."dconf/db/local.d/..." + system.activationScripts dconfUpdate -- home-manager gère lui-même le contexte utilisateur et le rechargement dconf - useGlobalPkgs = true : partage le pkgs du système, pas de deuxième évaluation nixpkgs (RAM, PC à 4 Go) - backupFileExtension : évite un échec d'activation si un fichier existant est dans le chemin (migration sur machine déjà installée) ATTENTION : flake.lock est maintenant périmé (nouvel input non verrouillé) -- nix flake lock à relancer avant déploiement. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,16 +7,25 @@
|
|||||||
url = "github:nix-community/disko";
|
url = "github:nix-community/disko";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
# Même branche release-26.05 que nixpkgs (confirmé : la branche existe
|
||||||
|
# bien sur nix-community/home-manager). Gère les réglages Cinnamon par
|
||||||
|
# utilisateur (dconf, fichiers dans $HOME) à la place des scripts
|
||||||
|
# d'activation système à la main qu'on avait avant.
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/release-26.05";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
{ self, nixpkgs, disko, ... }:
|
{ self, nixpkgs, disko, home-manager, ... }:
|
||||||
{
|
{
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
usagers = nixpkgs.lib.nixosSystem {
|
usagers = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
disko.nixosModules.disko
|
disko.nixosModules.disko
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
./hosts/usagers/configuration.nix
|
./hosts/usagers/configuration.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -201,12 +201,20 @@ in
|
|||||||
|
|
||||||
# Fond d'écran par défaut (logo NixOS, pas la galerie perso de
|
# Fond d'écran par défaut (logo NixOS, pas la galerie perso de
|
||||||
# nixos_cinnamon). Suppose la config installée sur /etc/nixos (voir
|
# nixos_cinnamon). Suppose la config installée sur /etc/nixos (voir
|
||||||
# installer/install.sh).
|
# installer/install.sh). Réglé par utilisateur via home-manager
|
||||||
environment.etc."dconf/db/local.d/00-background".text = ''
|
# (dconf.settings) plutôt que la base dconf système + activation
|
||||||
[org/cinnamon/desktop/background]
|
# script à la main qu'on avait avant -- home-manager génère le bon
|
||||||
picture-uri='file:///etc/nixos/hosts/common/wallpaper/Nix/13977413.png'
|
# fichier et lance `dconf load` lui-même dans le bon contexte
|
||||||
'';
|
# utilisateur, plus besoin de gérer ça nous-mêmes.
|
||||||
system.activationScripts.dconfUpdate.text = "${pkgs.dconf}/bin/dconf update";
|
home-manager.useGlobalPkgs = true; # partage le pkgs du système, pas de deuxième évaluation (RAM)
|
||||||
|
home-manager.backupFileExtension = "hm-backup"; # évite un échec si un fichier existe déjà (migration)
|
||||||
|
home-manager.users.usagers =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
home.stateVersion = "26.05";
|
||||||
|
dconf.settings."org/cinnamon/desktop/background".picture-uri =
|
||||||
|
"file:///etc/nixos/hosts/common/wallpaper/Nix/13977413.png";
|
||||||
|
};
|
||||||
|
|
||||||
# Reprend la config Firefox d'oreo (nixos_users/hosts/oreo/configuration.nix)
|
# Reprend la config Firefox d'oreo (nixos_users/hosts/oreo/configuration.nix)
|
||||||
# -- c'est elle qui tue la page d'accueil/configuration au premier
|
# -- c'est elle qui tue la page d'accueil/configuration au premier
|
||||||
|
|||||||
Reference in New Issue
Block a user