@chibinah (alex) 🇫🇷✅ is a user on social.nah.re. You can follow them or interact with them if you have an account anywhere in the fediverse.
@chibinah (alex) 🇫🇷✅ @alex

En train de chercher une solution pour changer d'image de fond dans lightdm, à chaque démarrage.

· Web · 0 · 0

Ça fonctionne presque :
* Préparer quelques images, les convertir en jpg ou png (toutes avec la même extension, j'ai choisi .jpg), les numéroter 1 à n
* Créer un répertoire /usr/local/share/lightdm/walls/
* Y copier les images à utiliser
* Créer un lien symbolique 1.jpg -> default.jpg
* Modifier/usr/share/lightdm/lightdm-gtk-greeter.conf.d/01_debian.conf et modifier la ligne background= en background=/usr/local/share/lightdm/walls/default.jpg
* Modifier le symlink default.jpg, se déconnecter et vérifier que le fond d'écran change.
Reste à automatiser le changement d'image.

social.nah.re/media/-K0JwI0H7V social.nah.re/media/LEgr05jXtq social.nah.re/media/ub8A8KR6di

J'étais parti au début pour utiliser /etc/alternatives, mais après, je me suis demandé : mais pourquoi créer des liens symboliques à n'en plus finir alors que je peux modifier le fichier de config et y mettre directement le chemin vers default.jpg.

À noter : cette modification ne survivrait pas à une mise à jour de lightdm, il faut que je potasse la documentation pour voir s'il n'y a pas une autre solution, genre 99-custom.conf dans le conf.d ou une modif côté /etc.

@alex Comment t'as fait pour le switch d'image à chaque redémarrage ?

@devnull « Reste à automatiser le changement d'image ».
C'est pas encore fait, je pense que je vais écrire un script shell, appelé via systemd.

@alex Oups… j'ai pas les yeux en face des trous :p

Ok, si tu réussi à faire un truc fonctionnel proprement, j'aimerai bien un retour

@devnull Le script fonctionne.
J'ai 7 images, numérotées de 1 à 7.
À chaque appel, le script met à jour le lien symbolique avec le numéro de l'image suivante. Si ça dépasse 7, ça recommence à 1. social.nah.re/media/e-J9QMt6sW

@devnull
Le script change-fond-lightdm.sh est en ligne à cette adresse : static.chibi-nah.fr/scripts/

Code :
#!/bin/sh
cd /usr/local/share/lightdm/walls
MIN=1
MAX=7
CURR=$(($(ls -l default.jpg | sed 's/\(.*\)> \(.*\)\.jpg/\2/') +1))
if [ $CURR -gt $MAX ]
then CURR=$MIN
fi
ln -sf $CURR.jpg default.jpg

@devnull En attendant la publication de l'article sur le blog, la vidéo de démo est ici :
blog.chibi-nah.fr/images/light

(je redémarre lightdm pour que le script soit exécuté automatiquement).
Testé et validé sur mon pc portable.

@devnull Dans
/etc/lightdm/lightdm.conf
sous
[Seat:*]

décommenter ou ajouter la ligne
display-setup-script=/usr/local/bin/change-fond-lightdm.sh

Puis relancer lightdm 2-3 fois et vérifier que l'image de fond change.

@alex Comment tu fais les captures d'écran de lgin en fait?

@devnull Flemme d'installer une vm ou Xephyr et d'y lancer lightdm dedans.
Là, j'ai juste utilisé mon appareil photo à la rache, d'où le moirage et le cadrage.

@alex Ouais, pareil. J'espérais, sans trop compter dessus non plus, qu'il existe une bidouille pour récupérer le screenshot du login screen sans passer par une VM, tant pis

@alex J'ai trouvé un moyen sans VM, avec juste imagemagick

Script à exécuter depuis tty1 (avec sudo) et attendre le beep

chvt 7;
sleep 5s;
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 xwd -root -out ~/login.xwd;
convert ~/login.xwd ~/loginscreen.png;
rm ~/login.xwd

mv ~/loginscreen.png /home/ton_username/Images/Screenshots/loginscreen.png
chown ton_username:ton_maingroup /home/ton_username/Images/Screenshots/loginscreen.png

@devnull J'étais en train d'essayer avec Xephyr, mais une andouille a hard-codé les arguments dans le code et du coup, quand je teste lightdm dans Xephyr, je perds clavier ET souris, et impossible d'en sortir sans appuyer sur RESET. Même les magic keys ne répondent pas et j'ignore pourquoi.

@alex Les magic keys sont pas actifs par défaut sous Debian il me semble, mais je sais pas si c'est lié, j'ai jamais utilisé Xephyr

@devnull Xephyr, c'est l'outil magique qui fait tourner Xorg dans une fenêtre.
lightdm --test-mode lance lightdm dans Xephyr, donc dans une fenêtre, mais
* Avec des paramètres par défaut codés en dur dans le code source
* Avec des mauvais paramètres par défaut (genre capture du clavier/souris)
* Bloque les touches ctrl alt shift, utilisées pour récupérer les clavier/souris et sortir de Xephyr.
Et vu que alt est requis pour les magic keys…

@alex Ouais, c'est bloquant, ça craint, mais l'idée est intéressante