OS X Desktop-Hintergrund für alle Desktops + Monitore automatisch ändern?

8

Zusammenfassung . Die Automatisierung ändert den Desktop-Hintergrund für alle (virtuellen) Desktops, jedoch nicht für alle Monitore. Wie geht das für alle Monitore?

Details .

In diesem Blogeintrag wird erläutert, wie der Hintergrund für alle Desktops (virtuell / Mission Control / usw.) automatisch mit folgendem Skript geändert wird:

#! /bin/bash
#script to change all desktop backgrounds
echo -n “Drag and drop an image file here then press ‘return’ or press ‘control-c’ to cancel…”
read -e WLPR;
function change_wallpaper
{
defaults write com.apple.desktop Background "{default = {ImageFilePath='$WLPR'; };}"; killall Dock
}
change_wallpaper

Der Desktop-Hintergrund auf meinem zweiten Monitor auf meinem Lion-basierten System für einen meiner missionsgesteuerten Desktops wird jedoch nicht geändert. Wie gilt man oben (oder ähnlich) für alle physischen Monitore? (Hacks wie diese unattraktiv.)

Johnny Utahh
quelle

Antworten:

1

Ich habe einen Mac mit zwei Monitoren bei der Arbeit, damit ich ihn morgen (heute frei) ausprobieren kann.

Ich denke, wenn Sie die Ausgabe von vergleichen würden:

$ defaults read com.apple.desktop

Vor und nach dem manuellen Ändern des Hintergrundbilds über:

Systemeinstellungen> Desktop & Bildschirmschoner> Desktop

Daraufhin sollte in der zweiten Anzeige ein Fenster geöffnet werden, in dem Sie das gewünschte Bild auswählen können. Sobald dies eingerichtet ist und funktioniert, vergleichen Sie die Ausgabe des ursprünglichen Befehls und prüfen Sie, ob Sie Hinweise erhalten. Ich werde morgen dasselbe tun und damit herumspielen. Sehen Sie, ob ich Ihnen keine vollständigere Antwort geben kann.

Danijel-James W.
quelle
0

Ich fürchte, dies ist keine vollständige Antwort, da ich noch keine Möglichkeit gefunden habe, diese Funktion mit mehreren Desktops auszuführen, aber der Desktop aller Monitore im aktuellen Bereich wird auf das von Ihnen angegebene Bild eingestellt.

on run {input, parameters}
    set theFile to first item of input
    tell application "System Events"
        set theDesktops to a reference to every desktop
        repeat with aDesktop in theDesktops
            set the picture of aDesktop to theFile
        end repeat
    end tell
    return theFile
end run

Fügen Sie dies einer Aktion " AppleScript ausführen" in einem Automator-Workflow hinzu und speichern Sie es als Anwendung. Sie können dann ein Bild per Drag & Drop auf die Anwendung ziehen und es wird als Desktop-Bild festgelegt.

Vielleicht kann jemand einen Weg finden, dies mit mehreren Räumen / Desktops zum Laufen zu bringen.

Robmathers
quelle
0

Auf meinem System (10.12) defaults read com.apple.desktopgabDomain com.apple.desktop does not exist

Der folgende Link gibt mir 2 Ideen: https://derflounder.wordpress.com/2013/10/26/mavericks-desktop-background-picture-settings-moved-from-librarypreferencescom-apple-desktop-plist/

Die erste Idee: Ändern Sie den Link von DefaultDesktop: Daher müssen Sie vorübergehend deaktivieren System Integrity Protection( https://apple.stackexchange.com/a/214540/156148 ), um den Symlink unter zu ändern/System/Library/CoreServices/DefaultDesktop.jpg

#! /bin/bash
if [ -z "$1" ]; then
    echo "Please specify an absolute path to an image as first parameter"
    exit -1
fi
mv /System/Library/CoreServices/DefaultDesktop.jpg /System/Library/CoreServices/DefaultDesktop.jpg.backup
ln -s $1 /System/Library/CoreServices/DefaultDesktop.jpg

Die 2. Idee:

#! /bin/bash
#script to change all desktop backgrounds
if [ -z "$1" ]; then
    echo "Please specify an absolute path to an image as first parameter"
    exit -1
fi

osascript -e "tell application \"System Events\" to set picture of every desktop to \"$1\""
killall Dock
velop
quelle