Comando para mudar o papel de parede no XUbuntu

13

Fazer uma pesquisa no Google revela o comando

xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s <image-path>

Na primeira vez que executo este comando, recebi uma mensagem dizendo que a propriedade / backdrop / screen0 / monitor0 / image-path não existe no canal xfce4-desktop.

Então, eu criei essa propriedade:

xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s <image-path>

Mas ainda assim o cenário não mudou.

Eu então mudei o background do space-03.jpg para o space-04.jpg normalmente, a partir do 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 foi alterada (!).

Se eu alterar essa propriedade, funcionará bem, mas o problema é 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 alterar todas elas quando necessário, simultaneamente. Eu não gosto dessa solução por dois motivos:

  1. Várias chamadas de sistema que serão necessárias
  2. Em um ponto eu precisarei pegar o caminho da imagem atual (para abrir a pasta dele, copiar o caminho dele, deletá-lo e algumas outras funções que o programa fornece). Eu não saberia qual propriedade contém o caminho da imagem verdadeiramente definida para torná-la disponível para o programa.

Eu também não entendo porque o XFCE fez isso tão complexo. Por que uma propriedade não seria suficiente como em gsettings?

    
por hytromo 02.02.2014 / 12:44

1 resposta

3

Eu acho que deveria fazer o trabalho

Use o seguinte código para obter os dispositivos conectados e contá-los:

connectedOutputs=$(xrandr | grep " connected" | sed -e "s/\([A-Z0-9]\+\) connected.*//")
activeOutput=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*//") 
connected=$(echo $connectedOutputs | wc -w)

então você tem que manipulá-los e escolher se deseja definir o valor para o caminho da imagem ou a última imagem

xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s  ~/Pictures/1.jpeg
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorLVDS1/workspace0/last-image -n -t string -s  ~/Pictures/1.jpeg

for i in $(xfconf-query -c xfce4-desktop -p /backdrop -l|egrep -e "screen.*/monitor.*image-path$" -e "screen.*/monitor.*/last-image$"); do
    xfconf-query -c xfce4-desktop -p $i -n -t string -s ~/Pictures/2.png  
    xfconf-query -c xfce4-desktop -p $i -s ~/Pictures/2.png

done

Suponha que 1.jpeg seja qualquer arquivo necessário para criar a string por padrão. E 2.png é a imagem desejada a ser configurada. Eu adicionei a primeira linha apenas para ter certeza de que o xfce4-desktop existe.

Este script foi testado na minha máquina e está funcionando bem.

Espero que ajude meu amigo

EDIT: Uma lista de nomes de portas foi encontrada aqui assim:

  

Nomes de portas de saída

     

Driver Intel - UMS

     

VGA - saída VGA analógica

     

LVDS - painel para laptop

     

DP1 - saída DisplayPort

     

TV - saída de TV integrada

     

TMDS-1 - Primeira saída DVI SDVO

     

TMDS-2 - Segunda saída DVI SDVO

     

As saídas de TV SDVO e DVO não são suportadas pelo driver neste   tempo.

     

Driver Intel - KMS

     

LVDS1 - Painel de laptops

     

VGA1 - saída VGA analógica

     

DVI1 - Saída de vídeo digital

     

driver radeon

     

VGA-0 - Saída VGA analógica

     

LVDS - painel para laptop

     

S-video - Saída de TV integrada

     

DVI-0 - saída DVI

Para mais informações, consulte aqui

    
por kamil 13.02.2014 / 18:17