diff -Nurp acpid-2.0.10.orig/debian/powerbtn.sh acpid-2.0.10/debian/powerbtn.sh --- acpid-2.0.10.orig/debian/powerbtn.sh 2011-11-28 11:24:32.465823027 -0600 +++ acpid-2.0.10/debian/powerbtn.sh 2011-11-28 11:20:41.645814830 -0600 @@ -35,10 +35,18 @@ test -f /var/lock/acpisleep && exit 0 PMS="gnome-settings-daemon kpowersave xfce4-power-manager" PMS="$PMS guidance-power-manager.py dalston-power-applet" -if pidof x $PMS > /dev/null || - ( test "$XUSER" != "" && pidof dcopserver > /dev/null && test -x /usr/bin/dcop && /usr/bin/dcop --user $XUSER kded kded loadedModules | grep -q klaptopdaemon) || - ( test "$XUSER" != "" && test -x /usr/bin/qdbus && test -r /proc/$(pidof kded4)/environ && su - $XUSER -c "eval $(echo -n 'export '; cat /proc/$(pidof kded4)/environ |tr '\0' '\n'|grep DBUS_SESSION_BUS_ADDRESS); qdbus org.kde.kded" | grep -q powerdevil) ; then - exit +if pidof x $PMS > /dev/null; then + exit +elif test "$XUSER" != "" && pidof dcopserver > /dev/null && test -x /usr/bin/dcop && /usr/bin/dcop --user $XUSER kded kded loadedModules | grep -q klaptopdaemon; then + exit +elif test "$XUSER" != "" && test -x /usr/bin/qdbus; then + kded4pid=$(pgrep -n -u $XUSER kded4) + if test "$kded4pid" != ""; then + dbusaddr=$(su - $XUSER -c "grep -z DBUS_SESSION_BUS_ADDRESS /proc/$kded4pid/environ") + if test "$dbusaddr" != "" && su - $XUSER -c "export $dbusaddr; qdbus org.kde.kded" | grep -q powerdevil; then + exit + fi + fi fi # If all else failed, just initiate a plain shutdown.