Changement auto arrière plan avec Crontab et gsettings ne fonctionne pas

Bonjour à toutes et tous,

Petite présentation avant la question, je suis Maxime, je ne suis pas "débutant" sur Linux, c'est à dire que je script un peu en BASH, met en place des serveurs (lamp, Nextcloud, Zabbix...), etc, mais j'ai encore beaucoup à apprendre. :slightly_smiling_face:

Voici ce qui m’amène aujourd'hui, quelque chose de tout bête, mais je sèche complètement

Je souhaite faire changer automatiquement l'arrière plan du bureau avec Crontab et la commande suivante :

gsettings set org.mate.background picture-filename /home/utilisateur/Images/Wallpaper/monimage.jpg

Cette commande fonctionne très bien dans un terminal, mais avec Crontab elle ne fonctionne pas, si je demande à Crontab de rediriger les éventuelles erreurs dans un fichier de log il créé le fichier.log, mais n'inscrit rien dedans.

Voici ma tache Crontab, imaginons que je veuille un fond d'écran spécifique à 08h00 du matin :

00 08 * * * gsettings set org.mate.background picture-filename /home/utilisateur/Images/Wallpaper/monimage.jpg

version avec fichier log :

00 08 * * * gsettings set org.mate.background picture-filename /home/utilisateur/Images/Wallpaper/monimage.jpg 2>/home/utilisateur/cron.log

J'ai sûrement oublier quelque chose, mais je ne vois pas où ?

Merci beaucoup pour vôtre aide :slightly_smiling_face:

+----------------------------+
| Configuration PC : |
+----------------------------+

  • PC Portable : Sony VAIO VGN-C2S_L
  • Processeur : Dual core Intel Core2 T5500
  • Mémoire RAM : 2Go (peut monter normalement jusqu'à 4Go, mais ne veut pas, un slot mémoire semble défectueux)
  • Disque Dur : SSD 120 Go
  • Distro : Ubuntu MATE 18.04.4 LTS (MATE 1.20.1)

Bonjour et bienvenue,

Je n'ai pas la solution à ton problème de cron mais si tu veux faire un diaporama de fonds d'écran avec horaires particuliers, tu peux le faire tout simplement avec shotwell.

Il suffit de sélectionner les images que tu veux utiliser et d'aller dans fichier puis cliquer sur définir en tant que diaporama d'écran.
Ça génèrera un fichier html dans lequel tu pourras modifier les horaires comme bon te semble, à l'image de celui du diaporama présent par défaut dans la distribution que l'on trouve dans le dossier /usr/share/backgrounds/cosmos/.
Après, il te suffit d'ajouter le fichier html en tant que fond d'écran dans l'onglet fond d'écran dans les paramètres d'apparence.

Bonne chance à toi.

1 Like

Bonjour Utsuro,

Merci pour ta réponse, effectivement j'avais déjà essayé l'astuce du fichier xml, mais ça n'avais marché. Je ne savais pas que Shotwell pouvait générer ce fichier automatiquement ! J'ai essayé et cette fois-ci ça fonctionne, javais fait une erreur la première fois, j'ai trouvé où.

Merci encore :slight_smile:

1 Like

Hey :slight_smile:
Lorsque tu fait ce type d'operation via cron, il y'aura un gros souci de parametres d'environnement.
cron lance des commandes avec un environnement adapté au systeme. Il ne sais pas quel est ton ecran, comment il s'apelle ext ...
Pour que ca fonctionne il faut exporter les variables de ta session GUI dans un fichier (avec la commande env), faire du menage car pas mal des choses ne sont pas utile pour ta commande, ensuite tout rassembler dans un script que on depose a un entroit ou il pourra etre modifié que avec des privileges elevée ( /opt/ par exemple). sudo chmod +x /opt/ton-script.sh

Ca doit ressembler a ca :

#!/bin/bash
export SHELL=/bin/bash
export SESSION_MANAGER=local/apbook04u:@/tmp/.ICE-unix/1809,unix/apbook04u:/tmp/.ICE-unix/1809
export QT_ACCESSIBILITY=1
export COLORTERM=truecolor
export XDG_CONFIG_DIRS=/etc/xdg/xdg-mate:/etc/xdg
export XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
export LANGUAGE=en_US
 .....autres settings ici........
-> en suite le backgroud setting (ici je fait just overwrite le mien)
gsettings get org.mate.background picture-filename | xargs gsettings set org.mate.background picture-filename
gsettings get org.mate.background picture-options | xargs gsettings set org.mate.background picture-options

Tu as ta solution, mais d'autres tomberon sur ce toppic et il vont vouloir le faire avec cron xD :slight_smile:

Bonjour,
Autre solution, installer Variety, disponible dans les dépôts Debian-Ubuntu-Mint, qui fait défiler des images en fond d'écran, soit provenant d'un fichier local, soit en récupérant des images sur internet, à intervalles réguliers que tu définis toi-même.
Je l'utilise depuis des années sans aucun souci.

1 Like