Автоматичне оновлення фону робочого столу з веб-камери фото


0

Я хотів би встановити фон свого робочого столу на зображення веб-камери, яке оновлюється кілька разів на годину, наприклад, на цей вид Тегернзе . Я шукаю спосіб автоматичного отримання цієї картинки кожні пару хвилин з Інтернету та оновлення фону робочого столу. Як я можу це зробити (я вважаю за краще баш або яблучне рішення)?

Відповіді:


1

Я знайшов спосіб зробити цю роботу запуск. Для цього потрібно два кроки: Перший створення сценарію, який завантажує зображення веб-камери, а другий створення файлу плістів LaunchAgent, який буде викликати сценарій так часто.

Цей метод оновить фонове зображення конкретного простору, але лише тоді, коли ви знаходитесь в цьому просторі (також під час входу в систему і, можливо, під час пробудження зі сну).

Перший крок: Створення сценарію, який завантажує зображення та змінює фон робочого столу

  1. Створіть папку, наприклад ~/Library/Desktop Pictures/Webcam.
  2. Виберіть цю папку, щоб вона була папкою фонів робочого столу в системних налаштуваннях → Destkop і заставка.
  3. Напишіть текстовий файл із таким вмістом:

    #!/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. Збережіть файл, наприклад, як ~/Library/Desktop Pictures/Webcam/getwebcam.sh

  5. Зробіть його виконаним, видавши в Терміналі таку команду:

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

Другий крок: Створення списку LaunchAgent, який викликає сценарій

  1. Напишіть текстовий файл із наступним змістом. Вам потрібно адаптувати рядок, /Users/myusername/Library/Desktop Pictures/Webcam/getwebcam.shщоб він вказував на сценарій, створений на першому кроці. Ви не можете використовувати відносний шлях за допомогою ~. Змініть елементи dict клавішею «Хвилинка», як вважаєте за потрібне - ви можете додати їх більше. Ціле число визначає, в яку хвилину кожної години буде викликаний скрипт (див. Також man launchd.plistна своєму Терміналі).

    <?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. Збережіть текстовий файл у ~/Library/LaunchAgents/me.myname.update-desktop-from-webcam.plist- ім'я має відповідати клавіші "Мітка" у файлі.

  3. Завантажте його, видавши таку команду:

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

0

Ви можете спробувати VideoWall HD , доступний за 1,99 доларів США в App Store.

Я сам цим не користуюся, але в Портленда є друг, який йому подобається. Вона не використовує веб-камеру, але ця можливість рекламується в інформації про сплеск App Store.


Велике спасибі за пораду. Я вірю, що це спрацювало, хоча я не пробував цього, оскільки мені не подобається магазин додатків.
Мак
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.