AppleScript: consiga todos los escritorios, incluidos los escritorios ocultos de control de la misión

0

Estoy intentando escribir un script simple que cambiará el fondo de mi escritorio en todos mis escritorios / áreas de trabajo a la vez. Ahora mismo tengo esto:

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

Esto cambiará el fondo de pantalla en mis dos monitores para el escritorio que está visible, pero no cambia el fondo de pantalla en todos los escritorios "ocultos" en el Control de la Misión (escritorios 2-4, por ejemplo). ¿Hay alguna manera de modificar esto para promulgar todos escritorios?

Aquova
fuente

Respuestas:

0

Lo siguiente es un comienzo hasta que averigüe cómo leer el recuento de escritorio en el Control de Misión. Ahora mismo para que esto funcione, debes estar en el Escritorio más a la izquierda.

Sin saber dónde se encuentra tu foto, estoy apuntando a una imagen en Desktop Pictures con:

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

Establecí una variable para el conteo de los escritorios de control de la misión:

set windowCount to 5

Construyo un ciclo de repetición comenzando con el primer número hasta que alcanza el conteo:

repeat with X from 1 to windowCount

end repeat

Yo uso el código clave para moverme a la derecha con control solo cuando la cuenta es mayor que 1 y un retraso:

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

Luego hago referencia a cada escritorio y agrego un retraso en la imagen que se va a configurar:

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

el código 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

Esta es una forma de hacer esto, espero que ayude. Esto funciona y fue probado usando macOS High Sierra 10.13.6

ʀ2ᴅ2
fuente