2013-10-24 7 views
5

Ich versuche, das Desktop-Bild in OS X mit AppleScript zu setzen. Dieser Code arbeitete in 10.6-10.8, ist aber in Mavericks (10.9) gebrochen.Set Desktop-Foto von AppleScript in OS X Mavericks (10.9)

Ich weiß, dass sie geändert haben, wie mehrere Monitore unterstützt werden, aber ich bin mir nicht sicher, was dies hätte brechen können.

Antwort

2

Dank this github project funktioniert das. Vielleicht ist die Idee eines Standard-Desktop in 10.9 nicht vorhanden?

tell application "System Events" 
     set theDesktops to a reference to every desktop 
     repeat with x from 1 to (count theDesktops) 
      set picture of item x of the theDesktops to "/development/desk/x.jpg" 
     end repeat 
    end tell 
+0

Ein "aktueller Desktop" existiert in 10.9. Siehe Antworten unten. –

0

HFS-Pfade ("disk: item: subitem: subsubitem: ...: item") funktionieren nicht. Sie erhalten folgende Fehlermeldung, wenn Sie offene Systemeinstellungen -> Desktop & Screen Saver

24/10/13 6:31:47.340 pm System Preferences[3085]: DesktopPref error: loading of kDesktopPictureValueImagePath was not successful

tell application "System Events" 
    tell current desktop 
--not working 
     set picture to "mavricks:Library:Desktop Pictures:Abstract.jpg" 
     get properties 
--{display name:"iMac", change interval:1.0, id:69671552, random order:false, picture rotation:0, pictures folder:"/Library/Desktop Pictures/", picture:"mavericks:Library:Desktop Pictures:Abstract.jpg", translucent menu bar:true, class:desktop} 
    end tell 
end tell 

POSIX-Pfad (/ item/subitem/subsubitem /.../ Artikel) arbeiten gut

tell application "System Events" 
    tell current desktop 
     set picture to "/Library/Desktop Pictures/Abstract.jpg" 
     get properties 
--{display name:"iMac", change interval:1.0, id:69671552, random order:false, picture rotation:0, pictures folder:"/Library/Desktop Pictures/", picture:"/Library/Desktop Pictures/Abstract.jpg", translucent menu bar:true, class:desktop} 
    end tell 
end tell 
+0

Entschuldigung, das hat nicht für mich funktioniert. – jimmy

+0

erhalten Sie einen Fehler? –

0

Ich uppartierte Parag, aber ich zog meinen Kommentar zurück. Es scheint einen Bug/eine Inkonsistenz beim Setzen/Merken eines benutzerdefinierten Hintergrundbildes in Mavericks zu geben, möglicherweise aufgrund der Tatsache, dass diese Information in einer SQLite DB-Datei gespeichert ist, in ~/Application Support/Dock/desktoppicture.db - siehe reference.

Zum Beispiel in der Desktop-& Screen Saver Einstellungsfenster, einen benutzerdefinierten Hintergrund von einer externen HD Einstellung zufällig bei der Anmeldung zu ändern, setzen Sie sich immer auf den Standard Mavericks Strand-Welle Tapete, auf Neustart. Zum Glück habe ich herausgefunden, warum das passiert und ein solution.

Antwort Parag des anbetrifft, nehmen Sie dieses Skript:

tell application "System Events" 
    tell current desktop 
     if picture rotation ≠ 2 then -- same value as line below 
      set picture rotation to 2 -- 0=off | 1=interval | 2=login | 3=sleep 
     end if 
     if random order = false then 
      set random order to true 
     end if 
     -- set pictures folder to "Volumes:MEDIA:Pictures:Wallpapers" -- doesn't work 
     set pictures folder to "/Volumes/MEDIA/Pictures/Wallpapers" -- works 
     -- set change interval to 86400 -- value in seconds | uncomment line if picture rotation is set to interval 
    end tell 
end tell 

Nun, es funktioniert nicht. Es gibt keinen Fehler zurück, aber das Hintergrundbild ändert sich einfach nicht. Wenn ich es in POSIX-Pfad ändern, /Volumes/MEDIA/Pictures/Wallpapers, dann funktioniert es richtig.

Auf der anderen Seite, die ursprüngliche Frage von jimmy Adressierung und im Widerspruch zu Parag, das Skripts unten (mit HFS-Pfad), scheint in Maverick 10.9.5, gut zu funktionieren, wenn Sie POSIX path of file im Code Apple angeben:

tell application "System Events" 
    set picture of current desktop to POSIX path of file "development:desk:x.jpg" 
end tell 
Verwandte Themen