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, ... }:
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
# Cinnamon ne découvre les fonds d'écran "par défaut" sélectionnables
|
# PREMIER ESSAI FAUX (corrigé ici) : Cinnamon ne suit PAS le mécanisme
|
||||||
# au clic droit que via un XML gnome-background-properties
|
# GNOME standard (gnome-background-properties via XDG_DATA_DIRS).
|
||||||
# (share/gnome-background-properties/*.xml -- même mécanisme que
|
# Vérifié dans le vrai source du sélecteur, cs_backgrounds.py
|
||||||
# nixos-artwork.wallpapers dans nixpkgs, vérifié dans son propre
|
# (linuxmint/cinnamon, module cinnamon-settings) :
|
||||||
# source : pkgs/data/misc/nixos-artwork/wallpapers.nix). mint-artwork
|
# `properties_dir = "/usr/share/cinnamon-background-properties"`, un
|
||||||
# (déjà installé par défaut avec Cinnamon, voir module
|
# chemin ABSOLU EN DUR, jamais résolu via XDG_DATA_DIRS -- même en
|
||||||
# services.xserver.desktopManager.cinnamon) ne fournit PAS ce XML :
|
# mettant le bon XML au bon endroit dans le store, Cinnamon ne
|
||||||
# ses images sont bien sur le disque mais invisibles dans le
|
# regarde jamais là. mint-artwork (déjà installé par défaut avec
|
||||||
# sélecteur sans lui. On le génère nous-mêmes à partir de ce que
|
# Cinnamon) ne fournit de toute façon aucun XML de ce genre -- ses
|
||||||
# mint-artwork contient réellement (pas de liste de fichiers en dur,
|
# images sont sur le disque mais invisibles dans le sélecteur.
|
||||||
# on énumère au build), plus notre propre fond d'écran par défaut.
|
#
|
||||||
|
# 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" { } ''
|
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 '<?xml version="1.0" encoding="UTF-8"?>'
|
||||||
echo '<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">'
|
echo '<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">'
|
||||||
@@ -34,12 +41,20 @@ let
|
|||||||
echo " </wallpaper>"
|
echo " </wallpaper>"
|
||||||
done
|
done
|
||||||
echo '</wallpapers>'
|
echo '</wallpapers>'
|
||||||
} > $out/share/gnome-background-properties/nixos-fleet-defaults.xml
|
} > $out/share/cinnamon-background-properties/nixos-fleet-defaults.xml
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [ ../../modules/anssi ];
|
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
|
# 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.
|
# README). À revoir via le numéro de série DMI si le besoin apparaît.
|
||||||
networking.hostName = "Nixos_Fleet";
|
networking.hostName = "Nixos_Fleet";
|
||||||
|
|||||||
Reference in New Issue
Block a user