web-dev-qa-db-fra.com

Commande pour changer le papier peint dans XUbuntu

Faire une recherche google révèle la commande

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

La première fois que j'exécute cette commande, un message m'informant que la propriété/backdrop/screen0/monitor0/image-path n'existe pas dans le canal xfce4-desktop.

J'ai donc créé cette propriété:

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

Mais toujours le fond n'a pas changé.

J'ai ensuite modifié l'arrière-plan de space-03.jpg en space-04.jpg normalement, à partir de l'application Paramètres de bureau de XUbuntu. Puis je cours:

$ 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

Comme vous pouvez le constater, la propriété /backdrop/screen0/monitorLVDS1/workspace0/last-image a changé (!).

Si je change cette propriété, alors cela fonctionne très bien, mais le problème est que je dois trouver un moyen général de la mettre en œuvre dans mon programme (Wallch).

Même Variety (qui est un programme très agréable, soit dit en passant) ne fonctionne pas correctement sur ma machine et décide de changer la propriété /backdrop/screen0/monitor0/image-path qui ne fait rien.

Une solution consisterait à créer toutes les propriétés possibles et à les modifier simultanément, le cas échéant. Je n'aime pas cette solution pour deux raisons:

  1. Plusieurs appels système qui seront nécessaires
  2. À un moment, je devrai prendre le chemin de l'image actuelle (pour en ouvrir le dossier, copier le chemin, le supprimer et quelques autres fonctions fournies par le programme). Je ne saurais pas quelle propriété contient le chemin de l'image véritablement définie afin de la rendre disponible au programme.

Je ne comprends pas non plus pourquoi XFCE l’a fait si complexe. Pourquoi une seule propriété ne serait-elle pas suffisante, comme dans gsettings?

13
hytromo

Je pense que cela devrait faire le travail

Utilisez le code suivant pour obtenir les appareils connectés et les compter:

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

alors vous devez manipuler dessus et choisir de définir la valeur pour image-path ou last-image

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

Supposons que 1.jpeg est un fichier nécessaire à la création de la chaîne par défaut. Et 2.png est l'image recherchée à définir. J'ai ajouté la première ligne juste pour m'assurer que xfce4-desktop existe.

Ce script a été testé sur ma machine et il fonctionne bien.

J'espère que ça aide mon ami

EDIT: Une liste de noms de ports a été trouvée ici comme ceci:

Noms de port de sortie

Pilote Intel - UMS

VGA - Sortie analogique VGA

LVDS - Panneau de l'ordinateur portable

DP1 - sortie DisplayPort

TV - Sortie TV intégrée

TMDS-1 - Première sortie DVI SDVO

TMDS-2 - Seconde sortie DVI SDVO

Les sorties SDVO et DVO TV ne sont pas prises en charge par le pilote pour le moment.

Pilote Intel - KMS

LVDS1 - Panneau de l'ordinateur portable

VGA1 - Sortie analogique VGA

DVI1 - sortie vidéo numérique

pilote radeon

VGA-0 - Sortie VGA analogique

LVDS - Panneau de l'ordinateur portable

S-vidéo - Sortie TV intégrée

DVI-0 - sortie DVI

Pour plus d'informations, consultez ici

3
kamil