Fazer uma pesquisa no google revela o comando
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s <image-path>
A primeira vez que executo esse comando, recebi uma mensagem informando que a propriedade / backdrop / screen0 / monitor0 / image-path não existe no canal xfce4-desktop.
Então, eu criei esta propriedade:
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s <image-path>
Mas ainda assim o fundo não mudou.
Alterei o plano de fundo de space-03.jpg para space-04.jpg normalmente, no aplicativo Desktop Settings do XUbuntu. Então eu corro:
$ xfconf-query -c xfce4-desktop -p /backdrop -lv
/backdrop/screen0/image-path /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor0/image-path /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor0/image-show true
/backdrop/screen0/monitor1/image-path /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor1/image-show true
/backdrop/screen0/monitorLVDS1/workspace0/color-style 0
/backdrop/screen0/monitorLVDS1/workspace0/image-style 5
/backdrop/screen0/monitorLVDS1/workspace0/last-image /usr/share/backgrounds/space-04.jpg
Como você pode ver, a propriedade /backdrop/screen0/monitorLVDS1/workspace0/last-image
mudou (!).
Se eu alterar essa propriedade, ela funcionará muito bem, mas a coisa é que preciso encontrar uma maneira geral para implementá-la no meu programa (Wallch).
Mesmo Variety
(que é um programa muito bom, por sinal) não funciona corretamente na minha máquina e escolhe alterar a propriedade /backdrop/screen0/monitor0/image-path
que não faz nada.
Uma maneira seria criar todas as propriedades possíveis e alterá-las quando necessário, simultaneamente. Não gosto desta solução por dois motivos:
- Várias chamadas de sistema que serão necessárias
- Em um ponto, precisarei seguir o caminho da imagem atual (para abrir a pasta, copiar o caminho, excluí-lo e algumas outras funções que o programa fornece). Eu não saberia qual propriedade contém o caminho da imagem realmente definida para disponibilizá-la ao programa.
Também não entendo por que o XFCE fez isso tão complexo. Por que uma propriedade não seria suficiente como em gsettings?