Выполнение поиска в Google показывает команду
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s <image-path>
При первом запуске этой команды я получил сообщение о том, что свойство / background / screen0 / monitor0 / image-path не существует в канале xfce4-desktop.
Итак, я создал это свойство:
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s <image-path>
Но все же фон не изменился.
Затем я изменил фон с space-03.jpg на space-04.jpg в обычном режиме из приложения «Настройки рабочего стола» XUbuntu. Тогда я бегу:
$ 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
Как видите, свойство /backdrop/screen0/monitorLVDS1/workspace0/last-image
изменилось (!).
Если я изменяю это свойство, то оно работает просто отлично, но дело в том, что мне нужно найти общий путь для его реализации в моей программе (Wallch).
Даже Variety
(это очень хорошая программа, между прочим) не работает должным образом на моей машине и выбирает изменить свойство, /backdrop/screen0/monitor0/image-path
которое ничего не делает.
Одним из способов будет создание всех возможных свойств и изменение всех их при необходимости одновременно. Мне не нравится это решение по двум причинам:
- Несколько системных вызовов, которые понадобятся
- В какой-то момент мне нужно будет взять путь к текущему изображению (чтобы открыть его папку, скопировать путь к нему, удалить его и некоторые другие функции, которые предоставляет программа). Я не знаю, какое свойство содержит путь к действительно установленному изображению, чтобы сделать его доступным для программы.
Я также не понимаю, почему XFCE сделал это так сложно. Почему одного свойства недостаточно, как в gsettings?