Ser*_*ndt 5 desktop desktop-environment
在 XFCE 4.10 中,我可以使用xfdesktop --reload.
我想知道如何为尽可能多的其他桌面环境(Unity、KDE、LXDE、Mate、Cinnamon、GNOME2、GNOME3...)做同样的事情。
下面是一个代码示例,它检测桌面环境并在检测到的桌面环境需要时显式重新加载动态壁纸背景。
该代码应适用于 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
Run Code Online (Sandbox Code Playgroud)