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
- Bir klasör oluşturun, örn
~/Library/Desktop Pictures/Webcam
.
- Sistem Tercihleri → Destkop ve Ekran Koruyucusu'ndaki masaüstü arka klasörü olarak o klasörü seçin.
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
Dosyayı kaydedin, örneğin ~/Library/Desktop Pictures/Webcam/getwebcam.sh
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ı
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.plist
Terminalinizde 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>
Metin dosyasını şu şekilde kaydedin ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist
- ad, dosyadaki "Label" tuşuyla eşleşmelidir.
Aşağıdaki komutu vererek onu yükleyin:
launchctl load ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist