Applescript zum Ändern des Desktop-Bildes auf allen Monitoren?

Ich habe den folgenden Code, um das Desktop-Image meines Macbooks zu ändern

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

Wie ändere ich alle Desktops - ich habe einen zweiten Monitor.

Antworten (4)

Die vorherigen Antworten sehen großartig aus, aber ich wollte einen Weg teilen, den ich gefunden habe, um dies mit viel weniger Code zu tun.

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

Sie könnten es sogar auf eine Zeile verdichten:

tell application "System Events" to tell every desktop to set picture to "path/to/picture.png"
Anstatt zu einem bestimmten Bild zu wechseln, können Sie auch set change interval to 1800oder wie viele Sekunden auch immer die Änderung erfolgen soll, damit Sie nicht mit demselben Bild hängen bleiben, nachdem Sie das Skript ausgeführt haben.

Hier ist ein kleines Skript, mit dem ich die meisten Eigenschaften des Desktop-Hintergrunds für meine zwei Monitore festlege:

Sagen Sie der Anwendung "Systemereignisse"
    Sag Desktop 1
        setze Bilder Ordner auf "/Library/Desktop Pictures"
        Stellen Sie die Bildrotation auf 2 ein -- verwenden Sie das Intervall
        Änderungsintervall auf 1800 setzen
        zufällige Reihenfolge auf wahr setzen
    Ende erzählen
    Sag Desktop 2
        Setze den Bilderordner auf "/Library/Desktop Pictures/Mine"
        Stellen Sie die Bildrotation auf 2 ein -- verwenden Sie das Intervall
        Änderungsintervall auf 1800 setzen
        zufällige Reihenfolge auf wahr setzen
    Ende erzählen
Ende erzählen

Ich verwende dies, weil MacOSX meine Hintergründe oft auf die Standardeinstellungen zurücksetzt.

Das könnte funktionieren. Ich habe nur einen Monitor, also konnte ich ihn nicht richtig testen.

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
Gibt es eine Möglichkeit, das Bild auch auf jedem Desktop in den "dynamischen" Modus zu versetzen? Übrigens ... wo gibt es eine Referenz für alle verfügbaren Einstellungen für Desktop-Bilder, Bildschirmschoner usw. in AppleScript?

Für den Standardmonitor

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

Für den zweiten Monitor

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