desktoppr
!Простой инструмент командной строки, который может читать и устанавливать изображение/обои рабочего стола. Благодарим за имя Нила Мартина.
Примечание. Apple называла фоновое изображение macOS «изображением рабочего стола» до macOS 13 Ventura, когда оно изменилось и стало таким же, как в iOS: «обои». В этой документации может использоваться любой термин.
Я написал несколько сообщений в блоге, в которых описаны различные стратегии использования изображения рабочего стола:
Использование Desktoppr в управляемой среде
Создание пакета установщика LaunchD для Desktoppr (и других инструментов)
Стратегии использования Desktoppr
Случайный фон рабочего стола с Desktoppr
Вы можете прочитать текущее изображение/обои рабочего стола с помощью:
$ desktoppr /Library/Desktop Pictures/Sierra.jpg
и установите изображение рабочего стола с помощью
$ desktoppr "/Library/Desktop Pictures/BoringBlueDesktop.png"
Если у вас несколько дисплеев, desktoppr
выведет список всех изображений рабочего стола:
$ desktoppr /Library/Desktop Pictures/HotStepper.jpg /Library/Desktop Pictures/LyricalGangster.jpg /Library/Desktop Pictures/MrOfficer.jpg
Когда вы передаете файл, desktoppr
установит его в качестве изображения рабочего стола для всех экранов:
$ desktoppr /Library/Desktop Pictures/NaahNananah.jpg $ desktoppr /Library/Desktop Pictures/NaahNananah.jpg /Library/Desktop Pictures/NaahNananah.jpg /Library/Desktop Pictures/NaahNananah.jpg
Вы также можете установить рабочий стол для определенного экрана: (индекс начинается с нуля)
$ desktoppr 0 /Library/Desktop Pictures/HotStepper.jpg $ desktoppr 1 /Library/Desktop Pictures/LyricalGangster.jpg $ desktoppr 2 /Library/Desktop Pictures/MrOfficer.jpg
desktoppr
также может управлять масштабированием изображения и цветом фона для изображения рабочего стола.
Настройки масштаба и цвета будут установлены для всех экранов.
Используйте команду scale
для управления масштабированием рабочих столов. Он может иметь значения fill
(по умолчанию), stretch
, center
или fit
.
$ desktoppr scale center
Вы можете передать шестнадцатеричную строку для цвета фона:
$ desktoppr color 000000 # black background $ desktoppr color FFFFFF # white background $ desktoppr color FF0000 # red background
Установка обоев, масштаба и/или цвета — это отдельные команды.
Примечание. Настройка цвета фона не работает в macOS 14.x. См. выпуск №22.
Когда вы указываете URL-адрес файла изображения в качестве аргумента, desktoppr
загрузит файл по URL-адресу и установит его в качестве обоев.
$ desktoppr https://raw.githubusercontent.com/scriptingosx/desktoppr/profile/examples/BoringBlueDesktop.png
Загруженный файл будет сохранен в ~/Library/Application Support/desktoppr/
.
Если загрузка не удалась, обои не будут изменены. Если загруженный файл не является файлом изображения, обои вернутся к системным значениям по умолчанию.
Если вы хотите запустить его из сценария, безопаснее всего указать полный путь к двоичному файлу:
/usr/local/bin/desktoppr "/Library/Desktop Pictures/BoringBlueDesktop.png"
Поскольку инструмент desktoppr
устанавливает пользовательские настройки, вам все равно необходимо обратить внимание на то, что он запускается от имени пользователя. LaunchAgent или такое решение, как outset
, — хороший выбор для решения этой проблемы. Альтернативно вы можете запустить команду от имени текущего пользователя из корневого сценария.
Когда вы запускаете desktoppr
с глаголом manage
, он считывает настройки из предпочтительного домена com.scriptingosx.desktoppr
. Вы можете установить эти параметры с помощью команды defaults
или, что предпочтительнее, отправив профиль конфигурации с сервера MDM.
Идея состоит в том, чтобы запускать desktoppr manage
с помощью списка LaunchAgent при входе в систему и/или через регулярные промежутки времени. Вы можете найти образец списка LaunchAgent здесь. Пример LaunchAgent будет запускать desktoppr manage
при входе в систему и каждые три часа (10 800 секунд). Вы можете создать пакет, который устанавливает двоичный файл Desktoppr, plist LaunchAgent и файл изображения на самом раннем этапе рабочего процесса развертывания, а затем Desktoppr устанавливает фон рабочего стола, когда пользователь впервые достигает рабочего стола.
Для Ventura и более поздних версий двоичные файлы и приложения, запускаемые LaunchAgents, должны быть одобрены с помощью профиля com.apple.servicemanagement
, чтобы они отображались как управляемые в разделе элементов входа в Settings.app. Пример профиля конфигурации также содержит эти параметры.
Desktoppr использует следующие ключи:
picture
(тип: string
)Путь к файлу изображения/обоев рабочего стола. Одно и то же изображение будет установлено на всех экранах.
Если значение начинается с http://
или https://
Desktoppr интерпретирует это как URL-адрес и попытается загрузить файл и установить этот файл в качестве изображения/обоев рабочего стола. Загруженный файл будет сохранен в ~/Library/Application Support/desktoppr/
. Вы можете заставить Desktoppr проверить загруженный файл изображения, предоставив контрольную сумму sha256
.
sha256
(тип: string
)Эта контрольная сумма sha256 будет использоваться для проверки загруженного файла изображения. Если контрольная сумма скачанного файла не соответствует значению этого ключа, картинка/обои рабочего стола не будут изменены.
Вы можете сгенерировать контрольную сумму sha256 файла изображения с помощью shasum -a 256
color
(тип: string
)Эта строка будет интерпретироваться как шестизначный шестнадцатеричный код и устанавливаться как цвет фона. (Примечание: настройка цвета не работает в macOS 14.x.)
scale
(тип: string
) Одно из следующих значений: fill
(по умолчанию), stretch
, center
или fit
. Это управляет поведением масштабирования изображения.
setOnlyOnce
(тип: логическое значение, по умолчанию: false
) Если установлено значение true
, desktoppr manage
не будет повторно устанавливать изображение/обои рабочего стола, если последнее изображение, установленное desktoppr manage
было таким же. Используйте это, чтобы один раз установить изображение/обои рабочего стола из профиля конфигурации, но позволить пользователю изменить их впоследствии. Даже если desktoppr manage
запускается часто, оно должно переустанавливать изображение/обои рабочего стола только при изменении настроек в профиле конфигурации.
Если установлено значение false
, desktoppr manage
будет каждый раз повторно применять управляемые настройки.
В примерах есть образец списка значений по умолчанию с ключами и образец профиля конфигурации.
Вы можете получить код для desktoppr
на моей странице Github и установщик в Releases. Установочный пакет установит двоичный файл в /usr/local/bin
. В качестве альтернативы существует Brew Cask, поэтому вы можете установить его с помощью brew install --cask desktoppr
если у вас установлен Homebrew.
Для этого инструмента требуется поддержка Swift 5 Runtime для инструментов командной строки при его установке в версиях macOS старше 10.14.4.