Cambiare automaticamente lo sfondo del desktop OS X per tutti i desktop + monitor?


8

Riassunto . L'automazione cambia lo sfondo del desktop per tutti i desktop (virtuali), ma non per tutti i monitor. Come farlo per tutti i monitor?

Dettagli .

Questo post di blog illustra come cambiare automaticamente lo sfondo di tutti i desktop (virtuali / Mission Control / ecc.) Con il seguente script:

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

Tuttavia, non cambia lo sfondo del desktop sul mio secondo monitor sul mio sistema basato su Lion per nessuno dei miei desktop controllati dalla missione. Come si applica sopra (o simile) a tutti i monitor fisici? (Hacks come questo poco attraente.)

Risposte:


1

Ho un Mac con doppio monitor al lavoro, quindi potrò provarlo domani (giorno libero oggi).

Penso che se dovessi confrontare l'output di:

$ defaults read com.apple.desktop

Prima e dopo aver modificato manualmente lo sfondo tramite:

Preferenze di Sistema> Desktop e Screen Saver> Desktop

Ciò, dovrebbe far apparire una finestra nel secondo display che consente di selezionare l'immagine richiesta. Una volta che questo è impostato e funzionante, confronta l'output del comando originale e vedi se ti dà qualche indizio. Farò lo stesso domani e ci giocherò intorno. Vedi se non posso darti una risposta più completa.


0

Temo che questa non sia una risposta completa, dal momento che non ho ancora trovato un modo per farlo funzionare con più desktop, ma imposterà il desktop di tutti i monitor nello spazio corrente su qualsiasi immagine specificata.

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

Aggiungilo a un'azione Esegui AppleScript in un flusso di lavoro di Automator e salvalo come applicazione. È quindi possibile trascinare e rilasciare un'immagine sull'applicazione e verrà impostata come immagine desktop.

Forse qualcuno può trovare un modo per farlo funzionare con più spazi / desktop.


0

Sul mio sistema (10.12) ha defaults read com.apple.desktopdatoDomain com.apple.desktop does not exist

Il seguente link mi dà 2 idee: https://derflounder.wordpress.com/2013/10/26/mavericks-desktop-background-picture-settings-moved-from-librarypreferencescom-apple-desktop-plist/

La prima idea: modificare il collegamento di DefaultDesktop: pertanto è necessario disabilitare temporaneamente System Integrity Protection( https://apple.stackexchange.com/a/214540/156148 ), per modificare il collegamento simbolico in/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

La seconda idea:

#! /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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.