desktoppr
!Uma ferramenta simples de linha de comando que pode ler e definir a imagem/papel de parede da área de trabalho. Crédito do nome para Neil Martin.
Nota: A Apple costumava chamar a imagem de fundo do macOS de 'imagem da área de trabalho' até o macOS 13 Ventura, quando mudaram para ser a mesma do iOS: 'papel de parede'. Esta documentação pode usar qualquer um dos termos.
Escrevi algumas postagens no blog que descrevem diferentes estratégias de uso para definir uma imagem de desktop:
Usando desktoppr em um ambiente gerenciado
Construindo um pacote LaunchD Installer para desktoppr (e outras ferramentas)
Estratégias para usar desktoppr
Fundo aleatório da área de trabalho com desktoppr
Você pode ler a imagem/papel de parede atual da área de trabalho com:
$ desktoppr /Library/Desktop Pictures/Sierra.jpg
e defina a imagem da área de trabalho com
$ desktoppr "/Library/Desktop Pictures/BoringBlueDesktop.png"
Quando você tiver vários monitores, desktoppr
listará todas as imagens da área de trabalho:
$ desktoppr /Library/Desktop Pictures/HotStepper.jpg /Library/Desktop Pictures/LyricalGangster.jpg /Library/Desktop Pictures/MrOfficer.jpg
Quando você passa um arquivo desktoppr
irá defini-lo como imagem da área de trabalho para todas as telas:
$ desktoppr /Library/Desktop Pictures/NaahNananah.jpg $ desktoppr /Library/Desktop Pictures/NaahNananah.jpg /Library/Desktop Pictures/NaahNananah.jpg /Library/Desktop Pictures/NaahNananah.jpg
Você também pode definir a área de trabalho para uma tela específica: (o índice começa em zero)
$ desktoppr 0 /Library/Desktop Pictures/HotStepper.jpg $ desktoppr 1 /Library/Desktop Pictures/LyricalGangster.jpg $ desktoppr 2 /Library/Desktop Pictures/MrOfficer.jpg
desktoppr
também pode controlar o dimensionamento da imagem e a cor de fundo da imagem da área de trabalho.
As configurações de escala e cor serão definidas para todas as telas.
Use o verbo scale
para controlar como as áreas de trabalho são dimensionadas. Pode ter os valores fill
(padrão), stretch
, center
ou fit
.
$ desktoppr scale center
Você pode passar uma string hexadecimal para a cor de fundo:
$ desktoppr color 000000 # black background $ desktoppr color FFFFFF # white background $ desktoppr color FF0000 # red background
Definir o papel de parede, escala e/ou cor são comandos separados.
Observação: definir a cor de fundo não funciona no macOS 14.x. Veja a edição nº 22.
Quando você fornece um URL para um arquivo de imagem como argumento, desktoppr
fará o download do arquivo do URL e o definirá como papel de parede.
$ desktoppr https://raw.githubusercontent.com/scriptingosx/desktoppr/profile/examples/BoringBlueDesktop.png
O arquivo baixado será armazenado em ~/Library/Application Support/desktoppr/
.
Quando o download falhar, o papel de parede não será alterado. Se o arquivo baixado não for um arquivo de imagem, o papel de parede voltará ao padrão do sistema.
Quando você quiser executá-lo a partir de um script, é mais seguro incluir o caminho completo para o binário:
/usr/local/bin/desktoppr "/Library/Desktop Pictures/BoringBlueDesktop.png"
Como a ferramenta desktoppr
define as preferências do usuário, você ainda precisa prestar atenção para que ela seja executada como usuário. Um LaunchAgent ou uma solução como outset
é uma boa escolha para gerenciar isso. Alternativamente, você pode executar o comando como o usuário atual a partir de um script root.
Quando você executa desktoppr
com o verbo manage
, ele lê as configurações do domínio de preferência com.scriptingosx.desktoppr
. Você pode definir essas configurações com o comando defaults
ou, de preferência, enviando um perfil de configuração de um servidor MDM.
A ideia é executar desktoppr manage
com um plist LaunchAgent no login e/ou em intervalos regulares. Você pode encontrar um exemplo de lista do LaunchAgent aqui. O LaunchAgent de amostra executará desktoppr manage
no login e a cada três horas (10.800 segundos). Você pode construir um pacote que instale o binário desktoppr, o plist LaunchAgent e um arquivo de imagem bem no início do fluxo de trabalho de implantação e então desktoppr define o plano de fundo da área de trabalho quando o usuário acessa a área de trabalho pela primeira vez.
Para Ventura e superior, binários e aplicativos executados por LaunchAgents precisam ser aprovados com um perfil com.apple.servicemanagement
para que apareçam como gerenciados na seção de itens de login em Settings.app. O perfil de configuração de amostra também contém essas configurações.
desktoppr usa as seguintes chaves:
picture
(tipo: string
)O caminho para o arquivo de imagem da imagem/papel de parede da área de trabalho. A mesma imagem será definida para todas as telas.
Quando o valor começa com http://
ou https://
desktoppr interpretará isso como uma URL e tentará baixar um arquivo e definir esse arquivo como imagem/papel de parede da área de trabalho. O arquivo baixado será armazenado em ~/Library/Application Support/desktoppr/
. Você pode fazer com que o desktoppr verifique o arquivo de imagem baixado fornecendo uma soma de verificação sha256
.
sha256
(tipo: string
)Esta soma de verificação sha256 será usada para verificar o arquivo de imagem baixado. Se a soma de verificação do arquivo baixado não corresponder ao valor desta chave, a imagem/papel de parede da área de trabalho não será alterada.
Você pode gerar a soma de verificação sha256 do arquivo de imagem com shasum -a 256
color
(tipo: string
)Esta string será interpretada como um código hexadecimal de seis dígitos e definida como a cor de fundo. (Observação: a configuração da cor está quebrada no macOS 14.x.)
scale
(tipo: string
) Um entre fill
(padrão), stretch
, center
ou fit
. Isso controla o comportamento de dimensionamento da imagem.
setOnlyOnce
(tipo: booleano, padrão: false
) Quando definido como true
, desktoppr manage
não redefinirá a imagem/papel de parede da área de trabalho se a última imagem desktoppr manage
definida for a mesma. Use isto para definir a imagem/papel de parede da área de trabalho uma vez a partir de um perfil de configuração, mas permitir que o usuário altere-o posteriormente. Mesmo quando desktoppr manage
é executado com frequência, ele só deve redefinir a imagem/papel de parede da área de trabalho quando a configuração no perfil de configuração for alterada.
Quando definido como false
, desktoppr manage
reaplicará sempre as configurações gerenciadas.
Os exemplos têm um exemplo de plist de padrões com chaves e um exemplo de perfil de configuração.
Você pode obter o código do desktoppr
na minha página do Github e um instalador nos Releases. O pacote de instalação instalará o binário em /usr/local/bin
. Alternativamente, existe um brew cask, então você pode instalá-lo usando brew install --cask desktoppr
se tiver o Homebrew instalado.
A ferramenta requer suporte do Swift 5 Runtime para ferramentas de linha de comando quando você a instala em versões do macOS anteriores a 10.14.4.