desktoppr
!Un outil de ligne de commande simple qui peut lire et définir l'image/le fond d'écran du bureau. Crédit pour le nom à Neil Martin.
Remarque : Apple appelait l'image d'arrière-plan de macOS « image de bureau » jusqu'à macOS 13 Ventura, date à laquelle elle a changé pour devenir la même que dans iOS : « fond d'écran ». Cette documentation peut utiliser l'un ou l'autre terme.
J'ai écrit quelques articles de blog décrivant différentes stratégies d'utilisation pour définir une image de bureau :
Utilisation de desktoppr dans un environnement géré
Création d'un package d'installation LaunchD pour desktoppr (et d'autres outils)
Stratégies d'utilisation de Desktoppr
Fond d'écran aléatoire avec desktoppr
Vous pouvez lire l'image/le fond d'écran actuel du bureau avec :
$ desktoppr /Library/Desktop Pictures/Sierra.jpg
et définissez l'image du bureau avec
$ desktoppr "/Library/Desktop Pictures/BoringBlueDesktop.png"
Lorsque vous disposez de plusieurs écrans, desktoppr
répertorie toutes les images du bureau :
$ desktoppr /Library/Desktop Pictures/HotStepper.jpg /Library/Desktop Pictures/LyricalGangster.jpg /Library/Desktop Pictures/MrOfficer.jpg
Lorsque vous transmettez un fichier, desktoppr
le définira comme image du bureau pour tous les écrans :
$ desktoppr /Library/Desktop Pictures/NaahNananah.jpg $ desktoppr /Library/Desktop Pictures/NaahNananah.jpg /Library/Desktop Pictures/NaahNananah.jpg /Library/Desktop Pictures/NaahNananah.jpg
Vous pouvez également définir le bureau pour un écran spécifique : (l'index commence à zéro)
$ desktoppr 0 /Library/Desktop Pictures/HotStepper.jpg $ desktoppr 1 /Library/Desktop Pictures/LyricalGangster.jpg $ desktoppr 2 /Library/Desktop Pictures/MrOfficer.jpg
desktoppr
peut également contrôler la mise à l'échelle de l'image et la couleur d'arrière-plan de l'image du bureau.
Les paramètres d’échelle et de couleur seront définis pour tous les écrans.
Utilisez le verbe scale
pour contrôler la façon dont les bureaux sont mis à l’échelle. Il peut avoir les valeurs fill
(par défaut), stretch
, center
ou fit
.
$ desktoppr scale center
Vous pouvez transmettre une chaîne hexadécimale pour la couleur d'arrière-plan :
$ desktoppr color 000000 # black background $ desktoppr color FFFFFF # white background $ desktoppr color FF0000 # red background
La définition du fond d'écran, de l'échelle et/ou de la couleur sont des commandes distinctes.
Remarque : la définition de la couleur d'arrière-plan ne fonctionne pas sous macOS 14.x. Voir le numéro 22.
Lorsque vous donnez une URL à un fichier image comme argument, desktoppr
téléchargera le fichier à partir de l'URL et le définira comme fond d'écran.
$ desktoppr https://raw.githubusercontent.com/scriptingosx/desktoppr/profile/examples/BoringBlueDesktop.png
Le fichier téléchargé sera stocké dans ~/Library/Application Support/desktoppr/
.
En cas d'échec du téléchargement, le fond d'écran ne sera pas modifié. Si le fichier téléchargé n'est pas un fichier image, le fond d'écran reviendra à la valeur par défaut du système.
Lorsque vous souhaitez l'exécuter à partir d'un script, il est plus sûr d'inclure le chemin complet vers le binaire :
/usr/local/bin/desktoppr "/Library/Desktop Pictures/BoringBlueDesktop.png"
Étant donné que l'outil desktoppr
définit les préférences de l'utilisateur, vous devez toujours faire attention à ce qu'il s'exécute en tant qu'utilisateur. Un LaunchAgent ou une solution comme outset
est un bon choix pour gérer cela. Vous pouvez également exécuter la commande en tant qu'utilisateur actuel à partir d'un script racine.
Lorsque vous exécutez desktoppr
avec le verbe manage
, il lira les paramètres du domaine de préférence com.scriptingosx.desktoppr
. Vous pouvez définir ces paramètres avec la commande defaults
ou, de préférence, en poussant un profil de configuration depuis un serveur MDM.
L'idée est d'exécuter desktoppr manage
avec une liste LaunchAgent lors de la connexion et/ou à intervalles réguliers. Vous pouvez trouver un exemple de liste LaunchAgent ici. L’exemple LaunchAgent exécutera desktoppr manage
lors de la connexion et toutes les trois heures (10 800 secondes). Vous pouvez créer un paquet qui installe le binaire desktoppr, la liste LaunchAgent et un fichier image très tôt dans le flux de déploiement, puis desktoppr définit l'arrière-plan du bureau lorsque l'utilisateur atteint le bureau pour la première fois.
Pour Ventura et versions ultérieures, les binaires et les applications exécutés par LaunchAgents doivent être approuvés avec un profil com.apple.servicemanagement
afin qu'ils apparaissent comme gérés dans la section des éléments de connexion dans Settings.app. L’exemple de profil de configuration contient également ces paramètres.
desktoppr utilise les clés suivantes :
picture
(type : string
)Le chemin d'accès au fichier image pour l'image/le fond d'écran du bureau. La même image sera définie pour tous les écrans.
Lorsque la valeur commence par http://
ou https://
desktoppr l'interprétera comme une URL et tentera de télécharger un fichier et définira ce fichier comme image/fond d'écran du bureau. Le fichier téléchargé sera stocké dans ~/Library/Application Support/desktoppr/
. Vous pouvez demander à desktoppr de vérifier le fichier image téléchargé en fournissant une somme de contrôle sha256
.
sha256
(tapez : string
)Cette somme de contrôle sha256 sera utilisée pour vérifier le fichier image téléchargé. Si la somme de contrôle du fichier téléchargé ne correspond pas à la valeur de cette clé, l'image/le fond d'écran du bureau ne sera pas modifié.
Vous pouvez générer la somme de contrôle sha256 du fichier image avec shasum -a 256
color
(type : string
)Cette chaîne sera interprétée comme un code hexadécimal à six chiffres et définie comme couleur d'arrière-plan. (Remarque : le réglage de la couleur est interrompu sur macOS 14.x.)
scale
(type : string
) L'un des éléments suivants : fill
(par défaut), stretch
, center
ou fit
. Ceci contrôle le comportement de mise à l’échelle de l’image.
setOnlyOnce
(type : booléen, par défaut : false
) Lorsqu'il est défini sur true
, desktoppr manage
ne réinitialisera pas l'image/le fond d'écran du bureau si la dernière image définie desktoppr manage
était la même. Utilisez-le pour définir l'image/le fond d'écran du bureau une fois à partir d'un profil de configuration, mais autorisez l'utilisateur à le modifier par la suite. Même lorsque desktoppr manage
s'exécute fréquemment, il ne doit réinitialiser l'image/le fond d'écran du bureau que lorsque le paramètre du profil de configuration change.
Lorsqu'il est défini sur false
, desktoppr manage
réappliquera les paramètres gérés à chaque fois.
Les exemples contiennent un exemple de liste de valeurs par défaut avec des clés et un exemple de profil de configuration.
Vous pouvez obtenir le code pour desktoppr
sur ma page Github et un programme d'installation dans les versions. Le paquet d'installation installera le binaire dans /usr/local/bin
. Alternativement, un Brew Cask existe, vous pouvez donc l'installer en utilisant brew install --cask desktoppr
si Homebrew est installé.
L'outil nécessite la prise en charge de Swift 5 Runtime pour les outils de ligne de commande lorsque vous l'installez sur des versions de macOS antérieures à 10.14.4.