Mac OS X Mavericks masaüstü arka planını bir komut dosyasından güncelleme


Yanıtlar:


6

Jan-Yves'in başvurduğu belge şimdi tost görünüyor.

Mavericks'te SQLite Database Browser 2.0 b1.app kullanıyorum. Biraz eski ama hala çalışıyor.

~ / Library / Application Support / Dock / desktoppictures.db dosyasını açarsanız, önemli "veri" tablosunu görüntüleyebilirsiniz. Temelde sadece mevcut masaüstü fotoğrafının ne olması gerektiğine dair bir yol. Ancak, kaç monitör çalıştırdığınıza bağlı olarak birden fazla satır olabilir. Anlaşılan monitör başına farklı masaüstü resimleri ayarlayabiliyorsunuz ve bu gelişme Mavericks’in bir parçası olduğuna inanıyorum.

Sqlite editörünüzdeki satırları manuel olarak değiştirebilir ve ardından değişikliklerinizi editöre kaydetmeyi hatırladığınız sürece bir 'killall Dock' yapabilirsiniz. Bu Açık Sistem Tercihlerini açmaktan daha kolay değil, ancak sistemin nasıl çalıştığından emin olmak için denedim. Muhtemelen elle düzenlemeden önce .db dosyanızın yedeğini almanız mantıklıdır.

Her neyse, masaüstümü hosts dosyasını değiştirdiğimde uyarmak için birkaç küçük kabuk komut dosyası kullanıyorum.

Tam komut dosyası şuna benziyor:

#!/bin/sh
sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '/Users/user/Documents/My Pictures/dlanham_Phobos.sitechange.jpg'";
killall Dock;

Resim üzerinde daha fazla kontrol sahibi olmak için kolayca bir argüman ekleyebilirsiniz, ancak bu temel mantıktır.

Bazı yayınların "fazla rowid = 1" ekini önerdiğini göreceksiniz. Amaçlarım için, masaüstünün tüm monitörler için değiştirilmesine izin veriyorum, böylece kabadayı bırakıyorum. Birden fazla satır güncelleyecektir.

Bu yardımcı olur umarım.


3

Mavericks, masaüstü arka plan bilgilerini depoladığı yerde değişti. Eskiden ~/Library/Preferences/com.apple.desktop.plist(bir ikili plist dosyası olarak) kullanılmış ve şimdi ~/Library/Application Support/Dock/desktoppictures.db(bir SQLite dosyası olarak). Açtıysanız (sqlite3'ün OS X ile standart olarak geldiğini düşünüyorum? Aksi takdirde bir SQLite DB uygulaması bulabilmelisiniz - Base kullanın, ancak daha güzel olabilir) masaüstü arka plan dosya adlarına sahip olduğunuzu fark edeceksiniz içinde datamasaya. Diğer tablolar ilginç, ama biraz daha şifreli. Temelde belirli bir alanın masaüstü arka planını değiştirmek için masadaki bir UPDATE sorgusunu çalıştırabilirsiniz, örneğin:

UPDATE data SET value=~/Pictures/foo.png WHERE ROWID=1

Bunu sadece kendim çözdüm: burada biraz daha fazla ayrıntı var .

[ETA: Sabit bağlantı]


0

Artık işe yaramayan bir uygulama yazısı alamadım, bu yüzden PyObjc'ye geçtim.

Macports'dan python 2.7'yi py27-pyobjc-kakao paketi kurulu olarak kullanmak:

#!/opt/local/bin/python2.7

from AppKit import NSWorkspace, NSScreen
from Foundation import NSURL

def change_desktop_background(file, desk_id):
    file_url = NSURL.fileURLWithPath_(file)
    ws = NSWorkspace.sharedWorkspace()
    screen = NSScreen.screens()[desk_id]
    ws.setDesktopImageURL_forScreen_options_error_(file_url, screen, {}, None)

# Change my second screen desktop
change_desktop_background("myfile.jpg", 1)

0

Osx Yosemite üzerinde çalışıp kendimi almaya çalışıyorum ve @yelling_monster yanıtı ve dağ aslanı üzerinde çalışan eski bash betiği kombinasyonu ile şunu yaptım:

#! /bin/bash

echo -n "Drag and drop an image file here and hit 'return' (or ctrl-c to cancel)
"
 read -e WLPR;
function change_wallpaper
 {
#!/bin/sh
sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '$WLPR'";
killall Dock;
 }
 change_wallpaper

desktoppicture.dbBasit bir şekilde yedekleyin

cp ~/Library/Application\ Support/Dock/desktoppicture.db{,-bkp}

Senaryoyu çalıştırılabilir hale getirmek için link verdiğim sitedeki talimatları izleyin (buna daha hoş bir şey diyorsunuz wpset) ve gitmeniz iyi olur.

Çalıştırıldıktan sonra, Desktop & screensaversistem tercihlerinde monitörün arka planını tek tek değiştirmeye devam edebilirsiniz , bu ikinci bir monitör için kullanışlıdır (bulucu -> hizmetler bağlam menüsündeki eski sağ tıklama resmi bir şey yapmaz)

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.