Aqui está um exemplo de código que detecta a área de trabalho do ambiente e recarrega o plano de fundo do papel de parede dinâmico explicitamente quando exigido pelo ambiente de área de trabalho detectado.
O código deve funcionar com o GNOME 3, KDE 4, Unity e XFCE. As respostas testadas com soluções para outros ambientes de desktop são bem-vindas e serão aprovadas.
if [ "$XDG_CURRENT_DESKTOP" = '' ]
then
DESKTOPENV=$(echo "$XDG_DATA_DIRS" | sed 's/.*\(xfce\|kde\|gnome\).*//')
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