2013-10-24 12 views
5

Sto cercando di impostare l'immagine del desktop in OS X con applescript. Questo codice ha funzionato in 10.6-10.8 ma è rotto in Mavericks (10.9).imposta foto del desktop da applescript in os x mavericks (10.9)

tell application "System Events" 
    tell current desktop 
     set picture to POSIX file "/development/desk/x.jpg" 
    end tell 
end tell 

So che hanno cambiato il modo monitor multipli sono supportati, ma non sono sicuro di quello che poteva essere rotto questo.

risposta

2

Grazie a this github project questo funziona. Forse l'idea di un desktop predefinito non esiste in 10.9?

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

Un 'desktop curvo' esiste in 10.9. Vedi le risposte di seguito. –

0

I percorsi HFS ("disco: elemento: sottotitolo: subsubitem: ...: oggetto") non funzionano. Otterrete seguente errore se si apre Preferenze di Sistema -> 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 

percorso POSIX (/ voce/sottovoce/sottosottovoce /.../ voce) stanno lavorando bene

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

scusate, questo non ha funzionato per me. – jimmy

+0

stai riscontrando errori? –

0

Ho upvoted Parag ma ho ritirato il mio commento. Sembra esserci un bug/incoerenza nell'impostazione/memorizzazione di uno sfondo personalizzato in Mavericks, forse a causa del fatto che queste informazioni sono memorizzate in un file DB SQLite, in ~/Application Support/Dock/desktoppicture.db - vedere reference.

Ad esempio, nel Desktop & Screen Saver pannello di preferenze, impostare uno sfondo personalizzato da un HD esterno per cambiare in modo casuale al momento del login, viene sempre reimpostato al valore predefinito Mavericks Beach Saluto carta da parati, al riavvio. Fortunatamente, ho trovato perché questo accade e un solution.

Per quanto riguarda la risposta di Parag, prendere questo script:

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 

Beh, non funziona. Non restituisce alcun errore, ma lo sfondo semplicemente non cambia. Se lo cambio in POSIX percorso, /Volumes/MEDIA/Pictures/Wallpapers, quindi funziona correttamente.

D'altra parte, affrontare la questione originale di Jimmy e contraddicendo Parag, lo script di seguito (con percorso HFS), sembra funzionare bene in Mavericks 10.9.5, se si specifica POSIX path of file nel codice AppleScript:

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