J'essaie de faire fonctionner un script personnalisé, il fait un travail basique de commutation aléatoire de mes fonds d'écran selon l'heure de la journée à partir de deux dossiers, un dossier a des fonds d'écran "jour" et l'autre a des fonds d'écran "nuit". Le script est déjà un exécutable et il fonctionne lorsque je tape la commande directement dans le terminal comme ceci :
$ /path/to/my/scripts/twofoldersolution.py
J'ai donc créé un cron-job pour l'invoquer toutes les 5 minutes (sur ma crontab utilisateur, pas avec sudo, ça n'a pas marché comme ça non plus), comme ceci :
*/5 * * * * /path/to/my/scripts/twofoldersolution.py
Jusqu'à présent, pour autant que je sache, il devrait fonctionner, et les journaux le reflètent avec ce qui suit :
Aug 30 12:20:01 WarMachine CRON[2877]: (fawtytwo) CMD (/path/to/my/scripts/twofoldersolution.py)
Aug 30 12:25:01 WarMachine CRON[2937]: (fawtytwo) CMD (/path/to/my/scripts/twofoldersolution.py)
Aug 30 12:30:01 WarMachine CRON[3004]: (fawtytwo) CMD (/path/to/my/scripts/twofoldersolution.py)
Mon fond d'écran aurait dû changer 3 fois déjà, mais il reste le même, mais je peux toujours le changer manuellement sur le terminal.
Juste pour être sûr, voici mon arrière-plan changeant script, c'est un tout petit peu bricolé, mais cela fonctionne bien à la fois sur le terminal et en l'exécutant avec l'IDE :
#!/usr/bin/env python3
import subprocess
import os
import sys
import time
from os import listdir
from random import choice
global path
path = {
"day": "/path/to/my/Wallpapers/Day",
"night": "/path/to/my/Wallpapers/Night"
}
def setwall(wall):
#set the wallpaper
command ="gsettings set org.gnome.desktop.background picture-uri "+\
"'" + wall + "'"
subprocess.Popen(["/bin/bash", "-c", command])
def convert_tosecs(t):
# convert time of the day (hrs/mins) to seconds
t = [int(n) for n in t.split(":")]
return (3600*t[0])+(60*t[1])
def timeofday():
#tells you if it's day or night
t = convert_tosecs(time.strftime("%H:%M"))
if t > 21600 and t < 75600: #6:00 - 21:00
return ("day")
else:
return ("night")
def newwall():
#chooses a new wallpaper depending on time of day
wallpath = path[timeofday()]
wallset = listdir(wallpath)
return (wallpath + "/" + choice(wallset))
if __name__ == "__main__":
wallpaper = newwall()
setwall(wallpaper)
Vous avez une idée de ce qui pourrait clocher ?