Changer automatiquement l'arrière-plan du bureau OS X pour tous les ordinateurs de bureau + moniteurs?

8

Résumé . L'automatisation modifie l'arrière-plan du bureau pour tous les bureaux (virtuels), mais pas tous les moniteurs. Comment le faire pour tous les moniteurs?

Détails .

Cette entrée de blog explique comment changer automatiquement l'arrière-plan de tous les bureaux (virtuels / Mission Control / etc) avec le script suivant:

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

Cependant, cela ne change pas l'arrière-plan du bureau sur mon deuxième moniteur sur mon système Lion pour aucun de mes bureaux contrôlés par la mission. Comment s'applique-t-on ci-dessus (ou similaire) à tous les moniteurs physiques? (Hacks comme celui-ci peu attrayant.)

Johnny Utahh
la source

Réponses:

1

J'ai un Mac à double moniteur au travail, je pourrai donc l'essayer demain (jour de congé aujourd'hui).

Je pense que si vous comparez la sortie de:

$ defaults read com.apple.desktop

Avant et après avoir modifié manuellement le fond d'écran via:

Préférences Système> Bureau et économiseur d'écran> Bureau

Cela devrait faire apparaître une fenêtre dans le deuxième écran vous permettant de sélectionner l'image requise. Une fois que cela est configuré et fonctionne, comparez la sortie de la commande d'origine et voyez si cela vous donne des indices. Je ferai le même demain et jouerai avec lui. Voyez si je ne peux pas vous donner une réponse plus complète.

Danijel-James W
la source
0

Je crains que ce ne soit pas une réponse complète, car je n'ai pas encore trouvé de moyen de faire fonctionner cela avec plusieurs bureaux, mais cela définira le bureau de tous les moniteurs de l'espace actuel sur l'image que vous spécifiez.

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

Ajoutez-le à une action Exécuter AppleScript dans un workflow Automator et enregistrez-le en tant qu'application. Vous pouvez ensuite faire glisser et déposer une image sur l'application et elle sera définie comme image de bureau.

Peut-être que quelqu'un peut trouver un moyen de faire fonctionner cela avec plusieurs espaces / bureaux.

robmathers
la source
0

Sur mon système (10.12) a defaults read com.apple.desktopdonnéDomain com.apple.desktop does not exist

Le lien suivant me donne 2 idées: https://derflounder.wordpress.com/2013/10/26/mavericks-desktop-background-picture-settings-moved-from-librarypreferencescom-apple-desktop-plist/

La 1ère idée: Changer le lien de DefaultDesktop: Par conséquent, vous devez désactiver temporairement System Integrity Protection( https://apple.stackexchange.com/a/214540/156148 ), pour changer le lien symbolique sous/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 2ème idée:

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