J'aimerais que l'arrière-plan de mon bureau soit une image de webcam qui se met à jour plusieurs fois par heure, par exemple ceci vue sur Tegernsee . Je cherche un moyen de récupérer automatiquement cette image toutes les deux minutes sur Internet et de mettre à jour l'arrière-plan du bureau. Comment puis-je faire cela (je préférerais une solution bash ou applescript) ?
Réponses
Trop de publicités?J'ai trouvé un moyen de faire fonctionner cela avec launchd. Cela nécessite deux étapes : D'abord la création d'un script qui télécharge l'image de la webcam, et ensuite la création d'un fichier plist LaunchAgent qui appellera le script de temps en temps.
Cette méthode met à jour l'image d'arrière-plan d'un espace spécifique, mais uniquement lorsque vous êtes sur cet espace (ainsi que lors de la connexion et peut-être au réveil).
Première étape : Création d'un script qui télécharge l'image et modifie l'arrière-plan du bureau.
-
Créez un dossier, par exemple
~/Library/Desktop Pictures/Webcam
. -
Sélectionnez ce dossier comme dossier d'arrière-plan du bureau dans les Préférences Système Destkop & Economiseur d'écran.
-
Rédigez un fichier texte avec le contenu suivant :
#!/bin/bash shopt -s extglob # required for fancy rm # This script updates the desktop background of a specific Space to a webcam picture # while you are currently on that space. # # Choose a webcam: remotepic=http://www.foto-webcam.org/webcam/wallberg/current/full.jpg # Choose a desktop backgrounds pictures folder of the Space where you want to see the webcam # (you have to set this manually in System Preferences Destkop & Screen Saver): webcampicturefolder=~/Library/Desktop\ Pictures/Webcam # check the desktop background pictures folder of the current Space currentpicturefolder=`osascript -e "tell application \"System Events\" to get pictures folder of current desktop"` # only proceed if you are currently on the space where you want to see the webcam if [ "$currentpicturefolder" == "$webcampicturefolder" ] ; then localpic="$webcampicturefolder"/$(date +%Y%m%dT%H%M%S).jpg backup="$webcampicturefolder"/backup.jpg #remove all but the previous backup file and txt files: rm "$webcampicturefolder"/!(*txt|`basename "$backup"`) 2>>/dev/null # get the new picture unless there is a connection failure (-f flag): curl -fs -o "$localpic" "$remotepic" # make a backup of the new picture: cp "$localpic" "$backup" 2>>/dev/null # if no new picture has been downloaded, copy from backup: cp "$backup" "$localpic" # see http://www.macosxautomation.com/applescript/features/system-prefs.html osascript -e " tell application \"System Events\" tell current desktop set picture rotation to 0 set picture to POSIX file \"$localpic\" end tell end tell " fi
-
Enregistrez le fichier, par exemple sous
~/Library/Desktop Pictures/Webcam/getwebcam.sh
-
Rendez-le exécutable en lançant la commande suivante dans le terminal :
chmod u+x ~/Library/Desktop Pictures/Webcam/getwebcam.sh
Deuxième étape : Création d'une plist LaunchAgent qui appelle le script.
-
Rédigez un fichier texte avec le contenu suivant. Vous devez adapter la chaîne
/Users/myusername/Library/Desktop Pictures/Webcam/getwebcam.sh
afin qu'il pointe vers le script créé lors de la première étape. Vous ne pouvez pas utiliser un chemin relatif avec~
. Modifiez les éléments dict avec la clé "Minute" comme bon vous semble - vous pouvez en ajouter d'autres. L'entier détermine à quelle minute de chaque heure le script sera appelé (voir aussiman launchd.plist
sur votre terminal).<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>me.myname.update-desktop-from-webcam</string> <key>ProgramArguments</key> <array> <string>/Users/myusername/Library/Desktop Pictures/Webcam/getwebcam.sh</string> </array> <key>RunAtLoad</key> <true/> <key>StartCalendarInterval</key> <array> <dict> <key>Minute</key> <integer>01</integer> </dict> <dict> <key>Minute</key> <integer>16</integer> </dict> <dict> <key>Minute</key> <integer>31</integer> </dict> <dict> <key>Minute</key> <integer>46</integer> </dict> </array> </dict> </plist>
-
Enregistrer le fichier texte sur
~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist
- le nom doit correspondre à la clé "Label" du fichier. -
Chargez-la en lançant la commande suivante :
launchctl load ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist
Vous pouvez essayer Mur d'images HD disponible au prix de 1,99 USD dans l'App Store.
Je ne l'utilise pas moi-même, mais j'ai un ami à Portland qui l'apprécie. Elle n'utilise pas de webcam, mais cette capacité est vantée dans les informations de démarrage de l'App Store.