diff --git a/xdg-utils/scripts/xdg-su b/xdg-utils/scripts/xdg-su index 88cf228..efcac64 100755 --- a/xdg-utils/scripts/xdg-su +++ b/xdg-utils/scripts/xdg-su @@ -300,6 +300,7 @@ detectDE() { if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; + elif [ x"$XDG_CURRENT_DESKTOP" = x"LXDE" ]; then DE=lxde; elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce; fi } @@ -355,6 +356,29 @@ su_gnome() fi } +su_lxde() +{ + LXSU=`which beesu 2>/dev/null` + if [ $? -ne 0 ] ; then + LXSU=`which gksu 2>/dev/null` + fi + if [ $? -eq 0 ] ; then + if [ -z "$user" ] ; then + $LXSU -c "$cmd" + else + $LXSU -u "$user" -c "$cmd" + fi + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi + else + su_generic + fi +} + su_generic() { if [ -z "$user" ] ; then @@ -427,6 +451,10 @@ case "$DE" in su_gnome ;; + lxde) + su_lxde + ;; + generic) su_generic ;;