Corrige (vraiment) le sélecteur de fond d'écran Cinnamon : mauvais mécanisme la première fois
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 <noreply@anthropic.com>
This commit is contained in:
+28
-13
@@ -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 '<?xml version="1.0" encoding="UTF-8"?>'
|
||||
echo '<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">'
|
||||
@@ -34,12 +41,20 @@ let
|
||||
echo " </wallpaper>"
|
||||
done
|
||||
echo '</wallpapers>'
|
||||
} > $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";
|
||||
|
||||
Reference in New Issue
Block a user