Автоматично змінювати фон робочого столу OS X для всіх настільних комп’ютерів + моніторів?


8

Резюме . Автоматизація змінює фон робочого столу для всіх (віртуальних) настільних ПК, але не для всіх моніторів. Як це зробити для всіх моніторів?

Деталі .

У цьому записі в блозі йдеться про те, як автоматично змінити фон для всіх (віртуальний / контроль місії / тощо) з наступним сценарієм:

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

Однак це не змінює фон робочого столу на моєму другому моніторі в моїй системі на основі Лева для жодного з моїх настільних комп'ютерів, що контролюються місією. Як застосовується вище (або подібне) до всіх фізичних моніторів? (Хакі на кшталт цього непривабливі.)

Відповіді:


1

У мене є подвійний монітор Mac на роботі, тому я зможу спробувати його завтра (вихідний день сьогодні).

Я думаю, якби ви порівняли вихід:

$ defaults read com.apple.desktop

До і після ручної зміни шпалер за допомогою:

Налаштування системи> Заставка для робочого столу та заставки> Робочий стіл

Це повинно викликати вікно на другому екрані, що дозволяє вибрати потрібне зображення. Після того, як це налаштовується і працює, порівняйте вихідну інформацію з оригінальної команди і подивіться, чи дає вона вам підказки. Я зроблю той самий завтра і пограю з ним. Подивіться, чи не можу я дати вам більш повну відповідь.


0

Боюся, це не є повною відповіддю, оскільки я ще не знайшов способу зробити цю роботу на кількох робочих столах, але він встановить робочий стіл усіх моніторів у поточному просторі на будь-яку картинку, яку ви вказали.

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

Додайте це до дії запуску AppleScript у робочому процесі автоматизатора та збережіть його як додаток. Потім ви можете перетягнути зображення на додаток, і воно буде встановлено як зображення на робочому столі.

Можливо, хтось може знайти спосіб зробити цю роботу за допомогою декількох просторів / робочих столів.


0

По моїй системі (10.12) defaults read com.apple.desktopдавDomain com.apple.desktop does not exist

Наступне посилання дає мені 2 ідеї: https://derflounder.wordpress.com/2013/10/26/mavericks-desktop-background-picture-settings-moved-from-librarypreferencescom-apple-desktop-plist/

Перша ідея: Змініть посилання DefaultDesktop: Тому вам потрібно тимчасово відключити System Integrity Protection( https://apple.stackexchange.com/a/214540/156148 ), щоб змінити символьне посилання під/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

2-я ідея:

#! /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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.