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 運行時支援。