Как обновить фон рабочего стола в различных средах рабочего стола?

В XFCE 4.10 я могу обновить фон рабочего стола с помощью xfdesktop --reload .

Я хотел бы знать, как я могу сделать то же самое для других настольных сред (Unity, KDE, LXDE, Mate, Cinnamon, GNOME2, GNOME3, …).

2 Solutions collect form web for “Как обновить фон рабочего стола в различных средах рабочего стола?”

Вот пример кода, который обнаруживает рабочий стол в среде и перезагружает фоновый фон динамически, когда это требуется обнаруженной среде рабочего стола.

Код должен работать с GNOME 3, KDE 4, Unity и XFCE. Протестированные ответы с решениями для других настольных сред приветствуются и будут проголосованы.

 if [ "$XDG_CURRENT_DESKTOP" = '' ] then DESKTOPENV=$(echo "$XDG_DATA_DIRS" | sed 's/.*\(xfce\|kde\|gnome\).*/\1/') else DESKTOPENV=$XDG_CURRENT_DESKTOP fi DESKTOPENV=${DESKTOPENV,,} # convert to lower case case $DESKTOPENV in 'gnome') { gsettings set org.gnome.desktop.background picture-uri file:///tmp/wallpaper.png' # GNOME 3 only };; 'kde') { : };; 'unity') { : };; 'xfce') { xfdesktop --reload };; esac 

Вы можете установить содержимое корневого окна (то есть фон) независимо от оконного менеджера или среды рабочего стола. Традиционная утилита xsetroot поддерживает только сплошной цвет или черно-белое изображение. Многие программы просмотра изображений могут загружать цветное изображение в популярные форматы растровых изображений в корневое окно, например, утилиту xsetbg из Xloadimage или утилиту display из ImageMagick или GraphicsMagick .

 xsetbg /path/to/image.png display -window root /path/to/image.png gm display -window root /path/to/image.png 

Это не влияет на представление обоев рабочего стола, поэтому оно может время от времени отображать собственное содержимое вместо вашего.

Linux и Unix - лучшая ОС в мире.