Actualice automáticamente el fondo del escritorio desde una cámara web de fotos en línea

0

Me gustaría configurar el fondo de mi escritorio con una imagen de cámara web que se actualice varias veces por hora, por ejemplo, a esto vista de Tegernsee . Estoy buscando una manera de obtener automáticamente esa imagen cada dos minutos desde Internet y actualizar el fondo del escritorio. ¿Cómo puedo hacer eso (preferiría una solución bash o applecript)?

    
pregunta mach 08.10.2015 - 21:05

2 respuestas

1

He encontrado una manera de hacer que esto funcione con launchd. Esto requiere dos pasos: primero, crear una secuencia de comandos que descargue la imagen de la cámara web y, en segundo lugar, crear un archivo plist LaunchAgent que llame a la secuencia de comandos de vez en cuando.

Este método actualizará la imagen de fondo de un espacio específico, pero solo mientras esté en ese espacio (también, al iniciar sesión y tal vez al despertar de la suspensión).

Primer paso: crear un script que descargue la imagen y cambie el fondo del escritorio

  1. crea una carpeta, por ejemplo, ~/Library/Desktop Pictures/Webcam .
  2. Seleccione esa carpeta para que sea su carpeta de fondos de escritorio en Preferencias del sistema → Destkop & Protector de pantalla.
  3. Escriba un archivo de texto con el siguiente contenido:

    #!/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. Guarda el archivo, por ejemplo, como ~/Library/Desktop Pictures/Webcam/getwebcam.sh

  5. Hazlo ejecutable emitiendo el siguiente comando en la Terminal:

    chmod u+x ~/Library/Desktop Pictures/Webcam/getwebcam.sh
    

Segundo paso: crear una lista de LaunchAgent que llame al script

  1. Escriba un archivo de texto con el siguiente contenido. Debe adaptar la cadena /Users/myusername/Library/Desktop Pictures/Webcam/getwebcam.sh para que apunte al script creado en el primer paso. No puedes usar una ruta relativa con ~ . Cambie los elementos de dictado con la tecla "Minuto" como mejor le parezca, puede agregar más. El número entero determina a qué minuto de cada hora se llamará el script (vea también man launchd.plist en su 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. Guarde el archivo de texto en ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist ; el nombre debe coincidir con la tecla "Etiqueta" del archivo.

  3. Cárguelo emitiendo el siguiente comando:

    launchctl load ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist
    
respondido por el mach 09.10.2015 - 17:17
0

Es posible que desee probar VideoWall HD , disponible por US $ 1.99 en la tienda de aplicaciones.

Yo no lo uso, pero tengo un amigo en Portland a quien le gusta. Ella no usa una cámara web, pero esta capacidad se promociona en la información de bienvenida de la App Store.

    
respondido por el IconDaemon 08.10.2015 - 21:46

Lea otras preguntas en las etiquetas