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