AppleScript - Ottieni tutti i desktop inclusi i desktop nascosti di Controllo missione

0

Sto provando a scrivere un semplice script che cambierà il mio sfondo del desktop su tutti i miei desktop / spazi di lavoro contemporaneamente. In questo momento ho questo:

tell application "System Events"
    tell every desktop
        set picture to "image.png"
    end tell
end tell

Questo cambierà lo sfondo su entrambi i miei monitor per il desktop che è visibile, ma non cambia lo sfondo su tutti i desktop "nascosti" in Mission Control (desktop 2-4 per esempio). C'è un modo per modificarlo per applicare su tutti i desktop?

    
posta Aquova 30.09.2018 - 17:38
fonte

1 risposta

0

Quello che segue è un inizio finché non capisco come leggere il conteggio del desktop in Mission Control. In questo momento, per far funzionare tutto questo devi essere nel Desktop più a sinistra.

Non sapendo dove si trova la tua immagine, ho scelto come target un'immagine in Desktop Pictures con:

set thePic to file ((path to library folder from local domain as text) & "Desktop Pictures:Blue Pond.jpg") as text

Ho impostato una variabile per il conteggio dei desktop di controllo missione:

set windowCount to 5

Costruisco un ciclo di ripetizione che inizia con il primo numero finché non raggiunge il conteggio:

repeat with X from 1 to windowCount

end repeat

Uso il codice chiave per spostarmi a destra con control solo quando il conteggio è maggiore di 1 e un ritardo:

repeat with X from 1 to windowCount
    tell application "Finder"
        tell application "System Events"
            if X > 1 then
                key code 124 using control down ## move right
                delay 1
            end if
        end tell
    end tell
end repeat

Quindi faccio riferimento a ogni desktop e aggiungo un ritardo all'immagine da impostare:

tell application "System Events"
    set deskGroup to (a reference to every desktop)
    repeat with theDesk in deskGroup
        set picture of theDesk to thePic
    end repeat
end tell
delay 1

il codice completo:

set thePic to file ((path to library folder from local domain as text) & "Desktop Pictures:Blue Pond.jpg") as text
set windowCount to 5
repeat with X from 1 to windowCount
    tell application "Finder"
        tell application "System Events"
            if X > 1 then
                key code 124 using control down ## move right
                delay 1
            end if
            set deskGroup to (a reference to every desktop)
            repeat with theDesk in deskGroup
                set picture of theDesk to thePic
            end repeat
        end tell
        delay 1
    end tell
end repeat

questo è un modo per farlo, spero che aiuti. Funziona ed è stato testato usando macOS High Sierra 10.13.6

    
risposta data 30.09.2018 - 23:02
fonte

Leggi altre domande sui tag