desktoppr
PR来了!一个简单的命令行工具,可以读取和设置桌面图片/壁纸。这个名字归功于尼尔·马丁。
注意:Apple 曾经将 macOS 背景图像称为“桌面图片”,直到 macOS 13 Ventura,之后更改为与 iOS 中的相同:“壁纸”。本文档可能使用任一术语。
我写了几篇博客文章,描述了设置桌面图片的不同使用策略:
在托管环境中使用desktoppr
为desktoppr(和其他工具)构建LaunchD Installer pkg
使用桌面PR的策略
随机桌面背景与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
方案是管理此问题的不错选择。或者,您可以以当前用户身份从 root 脚本运行该命令。
当您使用manage
动词运行desktoppr
时,它将从com.scriptingosx.desktoppr
首选项域中读取设置。您可以使用defaults
命令来设置这些设置,或者最好通过从 MDM 服务器推送配置文件来设置。
我们的想法是在登录时和/或定期使用 LaunchAgent plist 运行desktoppr manage
。您可以在此处找到 LaunchAgent plist 示例。示例LaunchAgent 将在登录时每三个小时(10800 秒)运行一次desktoppr manage
。您可以构建一个 pkg,在部署工作流程的早期阶段安装desktoppr二进制文件、LaunchAgent plist和图像文件,然后desktoppr在用户第一次到达桌面时设置桌面背景。
对于 Ventura 及更高版本,LaunchAgents 运行的二进制文件和应用程序需要使用com.apple.servicemanagement
配置文件进行批准,以便它们在 Settings.app 的登录项部分中显示为受管理。示例配置文件也包含这些设置。
Desktoppr 使用以下键:
picture
(类型: string
)桌面图片/壁纸的图像文件的路径。将为所有屏幕设置相同的图像。
当该值以http://
或https://
开头时,desktoppr 会将其解释为 URL 并尝试下载文件并将该文件设置为桌面图片/壁纸。下载的文件将存储在~/Library/Application Support/desktoppr/
中。您可以让desktoppr 通过提供sha256
校验和来验证下载的映像文件。
sha256
(类型: string
)此 sha256 校验和将用于验证下载的映像文件。如果下载文件的校验和与该键的值不匹配,则桌面图片/壁纸将不会更改。
您可以使用shasum -a 256
生成图像文件的 sha256 校验和
color
(类型: string
)该字符串将被解释为六位十六进制代码并设置为背景颜色。 (注意:在 macOS 14.x 上设置颜色被破坏。)
scale
(类型: string
) fill
(默认)、 stretch
、 center
或fit
之一。这控制图像的缩放行为。
setOnlyOnce
(类型:布尔值,默认值: false
)当设置为true
时,如果最后一张桌面图片/壁纸desktoppr manage
相同,那么desktoppr manage
图片/壁纸将不会重新设置。使用它可以从配置文件中设置一次桌面图像/壁纸,但允许用户随后更改它。即使desktoppr manage
频繁运行,它也应该只在配置文件中的设置发生变化时重新设置桌面图片/壁纸。
当设置为false
时, desktoppr manage
每次都会重新应用托管设置。
这些示例有一个带有密钥的示例默认 plist 和一个示例配置文件。
您可以在我的 Github 页面上获取desktoppr
的代码,并在发行版中获取安装程序。安装程序 pkg 将在/usr/local/bin
中安装二进制文件。或者,存在一个brew cask,因此如果您安装了Homebrew,则可以使用brew install --cask desktoppr
来安装它。
当您在早于 10.14.4 的 macOS 版本上安装该工具时,该工具需要命令行工具的 Swift 5 运行时支持。