desktoppr
登場します。デスクトップの画像/壁紙を読み取って設定できるシンプルなコマンド ライン ツール。名前のクレジットはニール・マーティンです。
注: Apple は、macOS 13 Ventura まで macOS の背景画像を「デスクトップ ピクチャ」と呼んでいましたが、その後、iOS と同じ「壁紙」に変更されました。このドキュメントではどちらかの用語が使用される場合があります。
私は、デスクトップ画像を設定するためのさまざまな使用戦略を説明するいくつかのブログ投稿を書きました。
管理された環境でのdesktopprの使用
Desktoppr (およびその他のツール) 用の LaunchD インストーラー パッケージの構築
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
特定の画面のデスクトップを設定することもできます: (インデックスは 0 から始まります)
$ 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
背景色の 16 進文字列を渡すことができます。
$ 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 は、ログイン時および 3 時間ごと (10800 秒) に、 desktoppr manage
実行します。デプロイワークフローの非常に早い段階で、desktoppr バイナリ、LaunchAgent plist、およびイメージ ファイルをインストールする pkg を構築し、ユーザーが初めてデスクトップにアクセスしたときに、desktoppr によってデスクトップの背景が設定されます。
Ventura 以降の場合、LaunchAgents によって実行されるバイナリとアプリケーションは、Settings.app のログイン項目セクションで管理対象として表示されるように、 com.apple.servicemanagement
プロファイルで承認される必要があります。サンプル構成プロファイルには、これらの設定も含まれています。
Desktoppr は次のキーを使用します。
picture
(タイプ: string
)デスクトップの画像/壁紙の画像ファイルへのパス。すべての画面に同じ画像が設定されます。
値がhttp://
またはhttps://
で始まる場合、desktoppr はこれを URL として解釈し、ファイルをダウンロードし、そのファイルをデスクトップの画像/壁紙として設定しようとします。ダウンロードされたファイルは~/Library/Application Support/desktoppr/
に保存されます。 sha256
チェックサムを提供することで、desktoppr にダウンロードされたイメージ ファイルを検証させることができます。
sha256
(タイプ: string
)この sha256 チェックサムは、ダウンロードされたイメージ ファイルを検証するために使用されます。ダウンロードしたファイルのチェックサムがこのキーの値と一致しない場合、デスクトップの画像/壁紙は変更されません。
shasum -a 256
を使用して、イメージ ファイルの sha256 チェックサムを生成できます。
color
(型: string
)この文字列は 6 桁の 16 進コードとして解釈され、背景色として設定されます。 (注: macOS 14.x では色の設定が壊れます。)
scale
(タイプ: string
) fill
(デフォルト)、 stretch
、 center
、またはfit
のいずれか。これは、画像のスケーリング動作を制御します。
setOnlyOnce
(タイプ: ブール値、デフォルト: false
) true
に設定すると、デスクトップのdesktoppr manage
セットが最後に設定されたピクチャが同じである場合、 desktoppr manage
デスクトップのピクチャ/壁紙を再設定しません。これを使用して、構成プロファイルからデスクトップ画像/壁紙を一度設定しますが、後でユーザーが変更できるようにします。 desktoppr manage
頻繁に実行される場合でも、構成プロファイルの設定が変更された場合にのみ、デスクトップの画像/壁紙を再設定する必要があります。
false
に設定すると、 desktoppr manage
管理対象の設定を毎回再適用します。
例には、キーを含むサンプルのデフォルト plist とサンプル構成プロファイルが含まれています。
desktoppr
のコードは私の Github ページで、インストーラーはリリースで入手できます。インストーラー pkg はバイナリを/usr/local/bin
にインストールします。あるいは、brew cask が存在するため、Homebrew がインストールされている場合は、 brew install --cask desktoppr
を使用してインストールできます。
このツールを 10.14.4 より古いバージョンの macOS にインストールする場合は、コマンド ライン ツールの Swift 5 ランタイム サポートが必要です。