¿Applescript para cambiar la imagen del escritorio en todos los monitores?

Tengo el siguiente código para cambiar la imagen del escritorio de mi Macbook

tell application "System Events"
tell current desktop
set picture to "/Library/Desktop Pictures/Beach.jpg"
end tell
end tell

¿Cómo cambio todos los escritorios? Tengo un segundo monitor.

Respuestas (4)

Las respuestas anteriores se ven muy bien, pero quería compartir una forma que encontré para hacer esto con mucho menos código.

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

Incluso podrías condensarlo en una sola línea:

tell application "System Events" to tell every desktop to set picture to "path/to/picture.png"
en lugar de cambiar a una imagen específica, también puede usar set change interval to 1800o cualquiera que sea la cantidad de segundos que debería ocurrir el cambio para que no se quede atascado con la misma imagen después de ejecutar el script.

Aquí hay un pequeño script que uso para configurar la mayoría de las propiedades de fondo de escritorio para mis monitores duales:

decirle a la aplicación "Eventos del sistema"
    decirle escritorio 1
        establecer la carpeta de imágenes en "/Library/Desktop Pictures"
        establezca la rotación de la imagen en 2, usando el intervalo
        establezca el intervalo de cambio en 1800
        establecer el orden aleatorio en verdadero
    final decir
    Dile escritorio 2
        establecer la carpeta de imágenes en "/Library/Desktop Pictures/Mine"
        establezca la rotación de la imagen en 2, usando el intervalo
        establezca el intervalo de cambio en 1800
        establecer el orden aleatorio en verdadero
    final decir
final decir

Lo uso porque MacOSX a menudo restablece mis fondos a los predeterminados.

Esto podría funcionar. Solo tengo un monitor, así que no pude probarlo correctamente.

tell application "System Events"
    set desktopCount to count of desktops
    repeat with desktopNumber from 1 to desktopCount
        tell desktop desktopNumber
            set picture to "/Library/Desktop Pictures/Beach.jpg"
        end tell
    end repeat
end tell
¿Hay alguna manera de configurar la imagen en modo "dinámico" también en cada escritorio? De hecho... ¿dónde hay una referencia para todas las configuraciones disponibles para imágenes de escritorio, protectores de pantalla, etc. en AppleScript?

Para el monitor predeterminado

osascript -e 'tell application "System Events" to set picture of current desktop to "<path-to-img>"'

Para el segundo monitor

osascript -e 'tell application "System Events" to set picture of second desktop to "<path-to-img>"'