=== modified file 'lib/power-funcs' --- lib/power-funcs 2010-06-10 21:23:42 +0000 +++ lib/power-funcs 2012-02-16 17:46:33 +0000 @@ -6,12 +6,9 @@ POWERSTATE="/var/lib/acpi-support/powerstate" getXuser() { - user=$(who | awk "/:$displaynum)/ { print \$1; exit }") + user=$(ck-list-sessions | awk 'BEGIN { active = 0; unix_user = ""; } /^Session/ { active = 0; unix_user = ""; } /active = TRUE/ { active = 1; } /unix-user =/ { gsub(/'\''/,"",$3); unix_user = $3; } active && unix_user && /x11-display =/ { print unix_user; exit (0); }' ) - if [ x"$user" = x"" ]; then - user=$(who | awk "/:$displaynum/ { print \$1; exit }") - fi - if [ x"$user" != x"" ]; then + if [ "x$user" != "x" ]; then userhome=`getent passwd $user | cut -d: -f6` export XAUTHORITY=$userhome/.Xauthority else @@ -20,12 +17,12 @@ } getXconsole() { - console=`fgconsole`; - displaynum=`ps t tty$console | sed -n -re 's,.*/X .*:([0-9]+).*,\1,p'` - if [ x"$displaynum" != x"" ]; then - export DISPLAY=":$displaynum" + display=$(ck-list-sessions | awk ' BEGIN { active = 0; unix_user = ""; } /^Session/ { active = 0; unix_user = ""; } /active = TRUE/ { active = 1; } active && /x11-display =/ { gsub(/'\''/,"",$3); x11_display=$3; print x11_display; exit (0); }') + + if [ "x$display" != "x" ]; then + export DISPLAY=$display getXuser - fi + fi } getState() {