Çevrimiçi bir fotoğraf web kamerasından masaüstü arka planını otomatik güncelle


0

Masaüstü arka planımı, örneğin Tegernsee'nin bu görüşüne göre , saatte birkaç kez güncelleyen bir web kamerası resmine ayarlamak istiyorum . İnternetten birkaç dakikada bir bu resmi otomatik olarak almanın ve masaüstü arkaplanını güncellemenin bir yolunu arıyorum. Bunu nasıl yapabilirim (bir bash veya applescript çözümünü tercih ederim)?

Yanıtlar:


1

Bu işe başlaması için bir yol buldum. Bu, iki adım gerektirir: Önce web kamerası resmini indiren bir komut dosyası oluşturma, ikincisi de komut dosyasını her zaman sık sık arayacak olan bir LaunchAgent plist dosyası oluşturma.

Bu yöntem, belirli bir Alanın arka plan resmini günceller, ancak yalnızca siz o alandayken (ayrıca, giriş yaparken ve belki de uyku modundan uyanırken).

İlk adım: Resmi indiren ve masaüstü arka planını değiştiren bir komut dosyası oluşturma

  1. Bir klasör oluşturun, örn ~/Library/Desktop Pictures/Webcam.
  2. Sistem Tercihleri ​​→ Destkop ve Ekran Koruyucusu'ndaki masaüstü arka klasörü olarak o klasörü seçin.
  3. Aşağıdaki içeriğe sahip bir metin dosyası yazın:

    #!/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. Dosyayı kaydedin, örneğin ~/Library/Desktop Pictures/Webcam/getwebcam.sh

  5. Terminalde aşağıdaki komutu vererek çalıştırılabilir hale getirin:

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

İkinci adım: Betiği çağıran bir LaunchAgent plistinin oluşturulması

  1. Aşağıdaki içeriğe sahip bir metin dosyası yazın. Dizeyi /Users/myusername/Library/Desktop Pictures/Webcam/getwebcam.sh, ilk adımda yaratılan komut dosyasına işaret edecek şekilde uyarlamanız gerekir . İle göreceli bir yol kullanamazsınız ~. Dikt öğelerini "Dakika" tuşuyla uygun gördüğünüz şekilde değiştirin - daha fazlasını ekleyebilirsiniz. Tamsayı, komut dosyasının her saatin hangi dakikasında çağrılacağını belirler (ayrıca man launchd.plistTerminalinizde de bakın ).

    <?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. Metin dosyasını şu şekilde kaydedin ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist- ad, dosyadaki "Label" tuşuyla eşleşmelidir.

  3. Aşağıdaki komutu vererek onu yükleyin:

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

0

App Store'da 1,99 ABD Doları karşılığında kullanılabilen VideoWall HD uygulamasını denemek isteyebilirsiniz .

Kendim kullanmıyorum ama Portland'da hoşlanan bir arkadaşım var. Bir web kamerası kullanmaz, ancak bu özellik App Store açılış bilgisinde bulunur.


Bahşiş için çok teşekkürler. Uygulama mağazasını sevmediğim için denememiş olmama rağmen çalışacağına inanıyorum.
mach
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.