Eu estou tentando obter o caminho para o papel de parede na área de trabalho ativa. No entanto, estou tendo problemas para conseguir isso.
As fontes a seguir indicam que ~/Library/Application Support/Dock/desktoppicture.db
é um banco de dados sqlite com informações sobre o plano de fundo.
- http://grahamgilbert.com/blog/2013/10/28/setting-a-desktop-picture-in-mavericks/
- gist.github.com/gregneagle/6225747 (Alguém pode prefixar isso com
http
? SE está me impedindo de postar mais de 2 links por causa da minha baixa reputação neste fórum)
No entanto, essas origens definem um novo plano de fundo e não tentam ler o conteúdo do banco de dados sqlite para a área de trabalho ativa.
Eu despejei o conteúdo deste arquivo no meu sistema e fiz o upload dele como uma essência em https://gist.github.com/bamos/6c5fb63ec1d9b8dc9205 .
Este arquivo parece conter informações sobre exibições, e a leitura do último valor data
parece ter o papel de parede ativo
algumas vezes .
- Existe uma maneira que eu possa usar
desktoppicture.db
para obter o papel de parede na área de trabalho ativa todas as vezes? - Existe outra maneira que eu possa programaticamente obter um caminho para o papel de parede ativo?
Editar: forums.macrumors.com/showthread.php?t=1525299 (alguém pode adicionar http?) É outra fonte de obter essas informações com o AppleScript, mas por algum motivo, o seguinte trecho está retornando Wave.jpg
quando Wave.jpg
não é o papel de parede ativo.
tell application "Finder"
set theDesktopPic to desktop picture
set theName to displayed name of theDesktopPic
display dialog theName
end tell
Para esclarecer, meu papel de parede está definido para percorrer aleatoriamente um diretório.
Eu tentei executar o seguinte comando, como sugerido nas respostas.
tell application "System Events" to get properties of every desktop
No entanto, no meu sistema, isso gera:
display name:Color LCD, change interval:1800.0, id:69731840, random order:true, picture rotation:1, pictures folder:/Users/bamos/Pictures/wallpaper/nature, picture:/Library/Desktop Pictures/Wave.jpg, translucent menu bar:missing value, class:desktop,
que não inclui o papel de parede da área de trabalho ativa.
Eu desativei o ciclo de imagens aleatórias e
osascript -e 'tell application "Finder" to set desktop picture to {"Macintosh HD:Library:Desktop Pictures:Beach.jpg"} as alias'
muda meu fundo para o papel de parede de praia de estoque, e
osascript -e 'tell application "System Events" to get properties of every desktop'
agora mostra picture:/Library/Desktop Pictures/Beach.jpg
. No entanto, isso não é útil porque quero obter o plano de fundo quando estou percorrendo aleatoriamente um diretório.