8 votes

Changer automatiquement l'arrière-plan du bureau OS X pour tous les bureaux et moniteurs ?

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

Détails .

Cet article 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, il ne modifie pas l'arrière-plan du bureau sur mon deuxième moniteur de mon système basé sur Lion pour aucun de mes bureaux contrôlés par la mission. Comment appliquer ce qui précède (ou quelque chose de similaire) à tous des moniteurs physiques ? (Hacks comme ceci (et donc peu attrayante).

1voto

Danijel-James W Points 5718

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

Je pense que si l'on compare les résultats de :

$ defaults read com.apple.desktop

Avant et après avoir changé manuellement le papier peint via :

Préférences système > Bureau et écran de veille > 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 originale et voyez si elle vous donne des indices. Je ferai la même chose demain et je jouerai avec. Je verrai si je peux vous donner une réponse plus complète.

1voto

Sameer Points 1434

Soupir. Il est vraiment ennuyeux que 4 ans plus tard, nous n'ayons toujours pas de réponse appropriée à cette question. J'ai un automate script qui définit un bureau avec l'image astronomique du jour et j'ai remarqué qu'il avait changé l'image pour un bureau différent de ce qu'il faisait habituellement. Je viens d'essayer certaines des idées de ce fil de discussion pour changer tous les bureaux et au lieu de cela, il a changé l'image sur un seul bureau qui n'était même pas visible. Si j'écris un script pour afficher l'image actuelle de chaque bureau, il me dit que deux bureaux ont été réglés sur l'image choisie - même si aucun bureau visible n'a changé.

Il est intéressant de noter que si je demande les noms des bureaux, j'obtiens des noms de moniteurs et non pas "Bureau 1", "Bureau 2", etc...

tell application "System Events"
    repeat with aDesktop in every desktop
        display dialog the name of aDesktop & ": " & the picture of aDesktop as string
    end repeat
end tell

0voto

Ged Byrne Points 481

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

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 cela à une Exécuter AppleScript dans un flux de travail Automator et l'enregistrer en tant qu'application. Vous pouvez ensuite glisser-déposer une image sur l'application et elle sera définie comme image de bureau.

Peut-être quelqu'un pourra-t-il trouver un moyen de faire fonctionner ce système avec plusieurs espaces/bureaux.

0voto

velop Points 101

Sur mon système (10.12) defaults read com.apple.desktop a donné 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 : Il faut donc désactiver temporairement System Integrity Protection ( https://apple.stackexchange.com/a/214540/156148 ), pour modifier 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 deuxiè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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X