Как изменить обои рабочего стола в Linux из сценария оболочки/bash

Я хотел бы изменить обои (на определенный файл, используя его полный путь) в Linux из сценария оболочки/bash.

Я уже нашел несколько подходов (см. ниже) для этого, но они не работают во всех средах рабочего стола.

а) Используя gnome-settings-daemon/gsettings:

gsettings set org.gnome.desktop.background picture-uri   file://$fullPathToMyImage

б) с помощью gconftool-2

gconftool-2 --type=string --set /desktop/gnome/background/picture_filename $fullPathToMyImage

в) с использованием фе

feh --bg-scale $fullPathToMyImage

Сейчас я ищу дополнительные методы (в то время как Gnome кажется покрытым a, b и c) - предпочтительнее для всех сред рабочего стола (и всех дистрибутивов Linux).

Пока мне не хватает методов для KDE4/5 и XFCE.

Аналогичная запись: Сценарий оболочки, меняющий обои рабочего стола


person dufte    schedule 14.12.2015    source источник
comment
Я предполагаю, что вы понимаете это, но не будет единого метода для всех сред рабочего стола (хотя вы, безусловно, можете охватить большинство основных).   -  person forkrul    schedule 14.12.2015
comment
@forkrul: да, я уже это предполагал, но спасибо, что указали на это;). Я просто надеюсь собрать/узнать/найти все основные, чтобы обеспечить хорошее решение в каком-то операторе случая в моем сценарии.   -  person dufte    schedule 14.12.2015


Ответы (1)


Что касается xfce, вы можете использовать эту команду:

 xfconf-query -c xfce4-desktop -p $xfce_desktop_prop_prefix/workspace1/last-image -s /path/to/file

А также полезно установить изображение, например, увеличенное

xfconf-query -c xfce4-desktop -p $xfce_desktop_prop_prefix/workspace1/image-style -s 5

Вы можете увидеть, как я это сделал в моем скрипте - https://github.com/yatsenko-ihor/himawari8-wallaper/blob/master/himawari8_wallaper.sh

person Ihor Yatsenko    schedule 17.02.2016
comment
Спасибо за отзыв. Результаты для меня в следующем выводе: Свойство /workspace1/last-image не существует на канале xfce4-desktop. Если необходимо создать новое свойство, используйте параметр --create. - person dufte; 20.02.2016