From 83d4bed8c4ddbf78495064ca0b232c8e99e42677 Mon Sep 17 00:00:00 2001 From: Damien Date: Wed, 9 Sep 2026 20:26:57 +0200 Subject: [PATCH] =?UTF-8?q?Corrige=20(vraiment)=20le=20s=C3=A9lecteur=20de?= =?UTF-8?q?=20fond=20d'=C3=A9cran=20Cinnamon=20:=20mauvais=20m=C3=A9canism?= =?UTF-8?q?e=20la=20premi=C3=A8re=20fois?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le précédent correctif visait gnome-background-properties (XDG_DATA_DIRS) -- mais Cinnamon ne suit pas ce standard. Vérifié dans le vrai source du sélecteur (linuxmint/cinnamon, cs_backgrounds.py) : properties_dir = "/usr/share/cinnamon-background-properties", un chemin ABSOLU EN DUR, jamais résolu via XDG_DATA_DIRS. Notre XML avait beau être au bon endroit dans le store, Cinnamon ne le trouvait jamais. Fix : le XML est maintenant généré sous cinnamon-background-properties (bon nom), et systemd.tmpfiles.rules force un symlink /usr/share/cinnamon-background-properties -> notre dérivation -- seul moyen d'atteindre ce chemin en dur sur NixOS (pas de /usr/share FHS classique). Réappliqué à chaque switch, pas besoin de reboot. Co-Authored-By: Claude Sonnet 5 --- hosts/common/default.nix | 41 +++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/hosts/common/default.nix b/hosts/common/default.nix index 5943752..8abce7a 100644 --- a/hosts/common/default.nix +++ b/hosts/common/default.nix @@ -5,19 +5,26 @@ { pkgs, lib, ... }: let - # Cinnamon ne découvre les fonds d'écran "par défaut" sélectionnables - # au clic droit que via un XML gnome-background-properties - # (share/gnome-background-properties/*.xml -- même mécanisme que - # nixos-artwork.wallpapers dans nixpkgs, vérifié dans son propre - # source : pkgs/data/misc/nixos-artwork/wallpapers.nix). mint-artwork - # (déjà installé par défaut avec Cinnamon, voir module - # services.xserver.desktopManager.cinnamon) ne fournit PAS ce XML : - # ses images sont bien sur le disque mais invisibles dans le - # sélecteur sans lui. On le génère nous-mêmes à partir de ce que - # mint-artwork contient réellement (pas de liste de fichiers en dur, - # on énumère au build), plus notre propre fond d'écran par défaut. + # PREMIER ESSAI FAUX (corrigé ici) : Cinnamon ne suit PAS le mécanisme + # GNOME standard (gnome-background-properties via XDG_DATA_DIRS). + # Vérifié dans le vrai source du sélecteur, cs_backgrounds.py + # (linuxmint/cinnamon, module cinnamon-settings) : + # `properties_dir = "/usr/share/cinnamon-background-properties"`, un + # chemin ABSOLU EN DUR, jamais résolu via XDG_DATA_DIRS -- même en + # mettant le bon XML au bon endroit dans le store, Cinnamon ne + # regarde jamais là. mint-artwork (déjà installé par défaut avec + # Cinnamon) ne fournit de toute façon aucun XML de ce genre -- ses + # images sont sur le disque mais invisibles dans le sélecteur. + # + # Solution : générer le XML nous-mêmes (à partir de ce que + # mint-artwork contient réellement, pas une liste en dur -- chemin + # confirmé dans nixpkgs/pkgs/by-name/mi/mint-artwork/package.nix qui + # sed-remplace littéralement usr/share/backgrounds/linuxmint/*.jpg), + # PUIS forcer /usr/share/cinnamon-background-properties à pointer + # dessus via systemd-tmpfiles (seul moyen d'atteindre un chemin en + # dur sur un système qui n'a pas de /usr/share FHS classique). cinnamonDefaultWallpapers = pkgs.runCommand "cinnamon-default-wallpapers-properties" { } '' - mkdir -p $out/share/gnome-background-properties + mkdir -p $out/share/cinnamon-background-properties { echo '' echo '' @@ -34,12 +41,20 @@ let echo " " done echo '' - } > $out/share/gnome-background-properties/nixos-fleet-defaults.xml + } > $out/share/cinnamon-background-properties/nixos-fleet-defaults.xml ''; in { imports = [ ../../modules/anssi ]; + # L+ crée aussi les dossiers parents manquants (/usr, /usr/share, + # confirmé dans la doc systemd-tmpfiles.d) -- pas besoin de les créer + # à la main. Réappliqué à chaque nixos-rebuild switch (pas seulement + # au boot), donc pas besoin de reboot pour que ça prenne effet. + systemd.tmpfiles.rules = [ + "L+ /usr/share/cinnamon-background-properties - - - - ${cinnamonDefaultWallpapers}/share/cinnamon-background-properties" + ]; + # Nom uniforme, pas d'identification individuelle pour l'instant (voir # README). À revoir via le numéro de série DMI si le besoin apparaît. networking.hostName = "Nixos_Fleet";