Definir papel de parede de cron em xfce4

0

Eu escrevi um pequeno script createCountdownWallpaper.py que deveria renderizar novamente o papel de parede /tmp/wallpaper.png a cada poucos minutos, e um script setWallpaper.sh com a seguinte aparência:

#!/bin/bash
cd /home/path/to/countdown
/usr/bin/python3.5 createCountdownWallpaper.py

xfconf-query  \
  --channel xfce4-desktop \
  --property /backdrop/screen0/monitor0/workspace0/last-image \
  --set /tmp/wallpaper.png

Os canais e property foram selecionados usando -m sinalizador de xfconf-query , conforme descrito em esta resposta . Funciona quando executado a partir do terminal. No entanto, quando executado a partir de cron , parece não ter efeito. Crontab:

SHELL=/bin/bash

*/1 * * * * /home/path/to/countdown/setWallpaper.sh 2>/tmp/cron_errors.txt

Eu também tentei pesquisar vários scripts .bashrc e .profile e definir variáveis de ambiente como

DBUS_SESSION_BUS_ADDRESS=unix:abstract=tmp/dbus-r4nd0MjunK

mas também não ajudou.

    
por Andrey Tyukin 04.06.2018 / 18:31

1 resposta

0

A seguinte combinação pareceu funcionar, re-renderiza e muda o fundo a cada minuto.

SHELL=/bin/bash

*/1 * * * * yourUsername source $HOME/.profile ; source $HOME/.bashrc; env DISPLAY=:0.0 /home/path/to/countdown/setWallpaper.sh 2>/tmp/cron_errors.txt

Dicas:

  • DBUS_SESSION_BUS_ADDRESS parece não importar
  • A configuração Folder: /tmp no menu "Área de trabalho" da GUI é importante
  • A troca automática de papéis de parede a cada N minutos deve ser desativada no XFCE-gui para configurações de papel de parede .
por 04.06.2018 / 18:31