Automatycznie zmienić tło pulpitu OS X dla wszystkich komputerów stacjonarnych + monitorów?

8

Podsumowanie . Automatyzacja zmienia tło pulpitu dla wszystkich (wirtualnych) komputerów stacjonarnych, ale nie dla wszystkich monitorów. Jak to zrobić dla wszystkich monitorów?

Szczegóły .

W tym wpisie na blogu omówiono automatyczną zmianę tła dla wszystkich komputerów (wirtualny / Mission Control / itp.) Za pomocą następującego skryptu:

#! /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

Nie zmienia to jednak tła pulpitu na drugim monitorze w systemie opartym na Lionie na żadnym z komputerów kontrolowanych przez misję. Jak stosuje się powyższe (lub podobne) do wszystkich monitorów fizycznych? (Hacki takie jak to nieatrakcyjne.)

Johnny Utahh
źródło

Odpowiedzi:

1

Mam Mac z podwójnym monitorem w pracy, więc jutro będę mógł spróbować (dziś dzień wolny).

Myślę, że jeśli porównać wyniki:

$ defaults read com.apple.desktop

Przed i po ręcznej zmianie tapety za pomocą:

Preferencje systemowe> Desktop i wygaszacz ekranu> Desktop

To powinno wywołać okno na drugim ekranie, pozwalające wybrać wymagany obraz. Kiedy to zostanie skonfigurowane i działa, porównaj dane wyjściowe z oryginalnego polecenia i sprawdź, czy daje to jakieś wskazówki. Zrobię to samo jutro i będę się tym bawić. Sprawdź, czy nie dam ci pełniejszej odpowiedzi.

Danijel-James W.
źródło
0

Obawiam się, że nie jest to kompletna odpowiedź, ponieważ nie znalazłem jeszcze sposobu na to, aby działał z wieloma komputerami, ale ustawi pulpit wszystkich monitorów w bieżącej przestrzeni na dowolny obraz, który określisz.

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

Dodaj to do działania Uruchom AppleScript w przepływie pracy Automatora i zapisz jako aplikację. Następnie możesz przeciągnąć i upuścić obraz do aplikacji, a zostanie on ustawiony jako obraz pulpitu.

Być może ktoś może znaleźć sposób, aby to działało z wieloma spacjami / pulpitami.

robmathers
źródło
0

W moim systemie (10.12) defaults read com.apple.desktopdałDomain com.apple.desktop does not exist

Poniższy link daje mi 2 pomysły: https://derflounder.wordpress.com/2013/10/26/mavericks-desktop-background-picture-settings-moved-from-librarypreferencescom-apple-desktop-plist/

Pierwszy pomysł: Zmień link DefaultDesktop: Dlatego musisz tymczasowo wyłączyć System Integrity Protection( https://apple.stackexchange.com/a/214540/156148 ), aby zmienić dowiązanie symboliczne w/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

Drugi pomysł:

#! /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
źródło