Corrige le sélecteur de fond d'écran Cinnamon vide (mint-artwork + notre wallpaper)

Root cause identifiée : Cinnamon découvre les fonds d'écran
sélectionnables via un XML gnome-background-properties (même
mécanisme que nixos-artwork.wallpapers dans nixpkgs, vérifié dans son
source). mint-artwork (déjà installé par défaut avec Cinnamon) ne
fournit PAS ce XML -- ses images existent bien dans le store mais sont
invisibles au clic droit > changer le fond d'écran. On génère ce XML
nous-mêmes au build, à partir des fichiers réellement présents dans
mint-artwork (pas de liste en dur) + notre propre wallpaper par défaut.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-09 19:42:34 +02:00
co-authored by Claude Sonnet 5
parent 54803f2f92
commit 9c8847f3d4
+34
View File
@@ -4,6 +4,39 @@
# n'a qu'un seul endroit où la chercher. # n'a qu'un seul endroit où la chercher.
{ pkgs, lib, ... }: { 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.
cinnamonDefaultWallpapers = pkgs.runCommand "cinnamon-default-wallpapers-properties" { } ''
mkdir -p $out/share/gnome-background-properties
{
echo '<?xml version="1.0" encoding="UTF-8"?>'
echo '<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">'
echo '<wallpapers>'
for f in ${pkgs.mint-artwork}/share/backgrounds/linuxmint/*.jpg \
${pkgs.mint-artwork}/share/backgrounds/linuxmint/*.png \
${./wallpaper/Nix/13977413.png}; do
[ -e "$f" ] || continue
name=$(basename "$f")
echo " <wallpaper deleted=\"false\">"
echo " <name>$name</name>"
echo " <filename>$f</filename>"
echo " <options>zoom</options>"
echo " </wallpaper>"
done
echo '</wallpapers>'
} > $out/share/gnome-background-properties/nixos-fleet-defaults.xml
'';
in
{ {
imports = [ ../../modules/anssi ]; imports = [ ../../modules/anssi ];
@@ -207,6 +240,7 @@
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
cinnamonDefaultWallpapers
git git
curl curl
wget wget