Скрипт для автоматической смены загруженных обоев Mac?

4

Я хочу ежедневно менять обои Mac с изображениями Microsoft Bing. Я нашел этот скрипт, который автоматически загружает ежедневную картинку, но я все равно должен автоматически установить обои. Можно ли написать скрипт (терминал или applecript), который автоматически устанавливает загруженную картинку в качестве обоев?

Ford1892
источник

Ответы:

3

Вы можете использовать этот скрипт, взятый отсюда .

#!/usr/bin/env python
import os
import md5
import pprint
import sys
import subprocess
from time import strftime
from urllib import URLopener
from urllib2 import urlopen
from xml.dom.minidom import parseString

# Defines source and destination of image
rss_feed = 'http://feeds.feedburner.com/bingimages';
dst_dir = os.path.expanduser('~/Pictures/DeskFeed/')

SCRIPT = """/usr/bin/osascript<<END
tell application "Finder"
set desktop picture to POSIX file "%s"
end tell
END"""


def set_desktop_background(destination):
subprocess.Popen(SCRIPT%destination, shell=True)

def parseFeed(rss):
destination = "%s%s.jpg" % (dst_dir, strftime( "%y-%m-%d"))
if os.path.exists(destination):
sys.exit(0)



try:
rss_contents = urlopen( rss )
except:
print "Failed to read rss feed %s" % rss
return
rss_src = rss_contents.read()
rss_contents.close()
dom = parseString( rss_src )
firstitem = dom.getElementsByTagName('item')[0]
link = firstitem.getElementsByTagName( 'enclosure' )[0].getAttribute('url')
URLopener().retrieve(link, destination)
set_desktop_background(destination)


def main():
parseFeed(rss_feed)

if __name__ == "__main__":
main()

Единственным недостатком является то, что вам нужно будет выполнять работу cron, чтобы запускать ее каждый день.

Прожектор
источник
0

Я сделал приложение для командной строки, которое может менять обои рабочего стола из терминала:

$ npm install -g wallpaper
$ wallpaper unicorn.jpg
Синдре Сорхус
источник