--- ./powerbtn.sh.ori 2011-01-11 21:06:43.000000000 -0500 +++ ./powerbtn.sh 2011-01-11 21:19:24.000000000 -0500 @@ -33,13 +33,25 @@ [ -r /usr/share/acpi-support/power-funcs ] && getXconsole PMS="gnome-power-manager kpowersave xfce4-power-manager" PMS="$PMS guidance-power-manager.py dalston-power-applet" +#Check for powerdevil careful with this kded4 can have mutiple running instances +#Do NOT use $(pidof kded4) without checking for this. +KDEID="$(pidof kded4)" +POWEDEVILPRESENT=0 +for i in ${KDEID[@]}; do + if( test "$XUSER" != "" && test -x /usr/bin/qdbus && test -r /proc/$i/environ && su - $XUSER -c "eval $(echo -n 'export '; cat /proc/$i/environ |tr '\0' '\n'|grep DBUS_SESSION_BUS_ADDRESS); qdbus org.kde.kded" | grep -q powerdevil) then + $POWEDEVILPRESENT=1; + fi +done + if pidof x $PMS > /dev/null || + #check for klaptopdaemon ( 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 + #check for powerdevil careful with this kded4 can have mutiple running instances do NOT use $(pidof kded4) here + (test ${POWEDEVILPRESENT}) ; then exit fi # If all else failed, just initiate a plain shutdown. /sbin/shutdown -h now "Power button pressed"