Bei einer Google-Suche wird der Befehl angezeigt
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s <image-path>
Beim ersten Ausführen dieses Befehls wurde die Meldung angezeigt, dass die Eigenschaft / backdrop / screen0 / monitor0 / image-path im Kanal xfce4-desktop nicht vorhanden ist.
Also habe ich diese Eigenschaft erstellt:
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s <image-path>
Der Hintergrund änderte sich jedoch nicht.
Ich habe dann den Hintergrund von space-03.jpg in space-04.jpg geändert, normalerweise in der Anwendung Desktop Settings von XUbuntu. Dann laufe ich:
$ 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
Wie Sie sehen, hat sich die Eigenschaft /backdrop/screen0/monitorLVDS1/workspace0/last-image
geändert (!).
Wenn ich diese Eigenschaft ändere, funktioniert sie einwandfrei, aber ich muss einen allgemeinen Weg finden, um sie in mein Programm (Wallch) zu implementieren.
Sogar Variety
(was übrigens ein sehr nettes Programm ist) funktioniert auf meinem Computer nicht richtig und entscheidet sich dafür, die Eigenschaft zu ändern, die /backdrop/screen0/monitor0/image-path
nichts bewirkt.
Eine Möglichkeit wäre, alle möglichen Eigenschaften zu erstellen und bei Bedarf gleichzeitig zu ändern. Diese Lösung gefällt mir aus zwei Gründen nicht:
- Es werden mehrere Systemaufrufe benötigt
- Irgendwann muss ich den Pfad des aktuellen Bildes angeben (um den Ordner zu öffnen, den Pfad des Bildes zu kopieren, es zu löschen und einige andere Funktionen, die das Programm bereitstellt). Ich würde nicht wissen, welche Eigenschaft den Pfad des wirklich festgelegten Bildes enthält, um es dem Programm zur Verfügung zu stellen.
Ich verstehe auch nicht, warum XFCE es so komplex gemacht hat. Warum würde eine Immobilie nicht ausreichen wie in gsettings?