-# Extracted from /etc/acpi/powerbtn.sh
+# Extracted from /etc/acpi/powerbtn.sh and modified
+# shuber@sthu.org
# Taken from Debian's 2.0.4-1 diff file. This version handles KDE4.
# XUSER - the name of the user
# XAUTHORITY - full pathname of the user's .Xauthority file
getXuser() {
- user=`pinky -fw | awk '{ if ($2 == ":'$displaynum'" || $(NF) == ":'$displaynum'" ) { print $1; exit; } }'`
- if [ x"$user" = x"" ]; then
- startx=`pgrep -n startx`
- if [ x"$startx" != x"" ]; then
- user=`ps -o user --no-headers $startx`
- fi
- fi
- if [ x"$user" != x"" ]; then
- userhome=`getent passwd $user | cut -d: -f6`
- export XAUTHORITY=$userhome/.Xauthority
- else
- export XAUTHORITY=""
- fi
- export XUSER=$user
+ user=`pinky -fw | awk '{ if ($2 == ":'$displaynum'" || $(NF) == ":'$displaynum'" ) { print $1; exit; } }'`
+ if [ x"$user" = x"" ]; then
+ startx=`pgrep -n startx`
+ if [ x"$startx" != x"" ]; then
+ user=`ps -o user --no-headers $startx`
+ fi
+ fi
+ if [ x"$user" != x"" ]; then
+ userhome=`getent passwd $user | cut -d: -f6`
+ export XAUTHORITY=$userhome/.Xauthority
+ else
+ export XAUTHORITY=""
+ fi
+ export XUSER=$user
}
# Gets the X display number for the active virtual terminal.
# DISPLAY - the X display number
# See getXuser()'s output.
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"
- getXuser
- fi
+ pid=$(pgrep -x X | head -n 1)
+ if [ x"$pid" != x"" ]; then
+ displaynum=`ps -p "$pid" -o args | sed -n -re 's,.*/X .*:([0-9]+).*,\1,p'`
+ if [ x"$displaynum" != x"" ]; then
+ export DISPLAY=":$displaynum"
+ getXuser
+ fi
+ fi
}