1 votes

Mise à jour automatique de l'arrière-plan du bureau à partir d'une photo webcam en ligne

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) ?

2voto

mach Points 702

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.

  1. Créez un dossier, par exemple ~/Library/Desktop Pictures/Webcam .

  2. Sélectionnez ce dossier comme dossier d'arrière-plan du bureau dans les Préférences Système Destkop & Economiseur d'écran.

  3. 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
  4. Enregistrez le fichier, par exemple sous ~/Library/Desktop Pictures/Webcam/getwebcam.sh

  5. 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.

  1. 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 aussi man 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>
  2. Enregistrer le fichier texte sur ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist - le nom doit correspondre à la clé "Label" du fichier.

  3. Chargez-la en lançant la commande suivante :

    launchctl load ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist

0voto

IconDaemon Points 17417

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.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X