15 votes

Commande pour changer le fond d'écran dans XUbuntu

En faisant une recherche sur Google, on trouve la commande

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

La première fois que j'ai exécuté cette commande, j'ai reçu un message disant 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 le fond n'a toujours pas changé.

J'ai ensuite changé l'arrière-plan de space-03.jpg en space-04.jpg normalement, à partir de l'application Desktop Settings de XUbuntu. Puis j'exécute :

$ 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 voir, la propriété /backdrop/screen0/monitorLVDS1/workspace0/last-image a changé ( !).

Si je change cette propriété, cela fonctionne très bien, mais le problème est que je dois trouver une méthode générale pour l'implémenter dans mon programme (Wallch).

Même Variety (qui est un très beau programme, soit dit en passant) ne fonctionne pas correctement sur ma machine et choisit de modifier 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 en cas de besoin. Je n'aime pas cette solution pour deux raisons :

  1. Plusieurs appels système qui seront nécessaires
  2. À un moment donné, j'aurai besoin de prendre le chemin de l'image actuelle (afin d'ouvrir le dossier de celle-ci, de copier son chemin, de la supprimer et d'autres fonctions que le programme fournit). Je ne saurais pas quelle propriété contient le chemin de l'image réellement définie afin de la rendre disponible pour le programme.

Je ne comprends pas non plus pourquoi XFCE l'a fait de manière si complexe. Pourquoi une seule propriété ne suffirait-elle pas, comme dans gsettings ?

4voto

kamil Points 7025

Je pense que ça devrait faire l'affaire

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)

il faut ensuite les manipuler et choisir si l'on veut définir la valeur de 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 soit un fichier quelconque juste nécessaire pour créer la chaîne par défaut. Et 2.png est l'image désirée à définir. J'ai ajouté la première ligne juste pour m'assurer que xfce4-desktop existe.

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

J'espère que cela aidera mon ami

EDIT : Une liste de noms de port a été trouvée aquí comme ça :

Noms des ports de sortie

Pilote Intel - UMS

VGA - Sortie analogique VGA

LVDS - Panneau pour ordinateur portable

DP1 - Sortie DisplayPort

TV - Sortie TV intégrée

TMDS-1 - Première sortie DVI SDVO

TMDS-2 - Deuxième sortie DVI SDVO

Les sorties TV SDVO et DVO ne sont pas prises en charge par le pilote pour le moment. 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 analogique VGA

LVDS - Panneau pour ordinateur portable

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

DVI-0 - Sortie DVI

Pour plus d'informations, consultez aquí

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X