Hi Phil,
Phil Endecott wrote:
> I've just spotted detect_x_display() in
> /usr/share/eeepc-acpi-scripts/functions.sh from package
> eeepc-acpi-scripts which does a similar thing by parsing the output of
> "who", rather than "finger". "who" has the advantage of being provided
> by coreutils, which is a "Priority: required" package, while finger is
> "Priority: standard". There is also "w" from procps.
>
>> the format provided by finger is (:$displaynum) or
>> (:$displaynum.screennum).
>
> Err, no; mine doesn't have the ():
>
> $ finger
> Login Name Tty Idle Login Time Office Office
> Phone
> phil Phil Endecott *tty1 14:51 Sep 2 16:40
> phil Phil Endecott pts/0 Sep 4 12:09 (egypt.chezphil.org)
> phil Phil Endecott *:0 Sep 4 12:29
> root root *tty2 13:02 Sep 3 21:40
>
> Obviously yours does and I'm sure I've seem that notation somewhere or
> other; I don't know if the () mean something or whether it's a finger
> version thing, or what.
Mine actually only lists the display in the Office column:
$ finger
Login Name Tty Idle Login Time Office Office Phone
bsamwel bsamwel tty7 Sep 4 11:36 (:0)
bsamwel bsamwel pts/2 Sep 4 11:37 (:0.0)
root root *tty1 1 Sep 4 14:17
root root *tty2 1 Sep 4 14:18
root root pts/1 25 Sep 4 11:37 (:0.0)
So that's a bit strange. I like the "w" approach, I've already got a bit
of code in laptop-mode-tools that uses "w -hs". I've now got:
getXuser() {
w -hs | while read -r THIS_USER THIS_TTY THIS_DISPLAY DUMMY_REMAINDER;
do
if [ "$THIS_DISPLAY" = "$displaynum" ] ; then
user=$THIS_USER
break
fi
done
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
}
This does the trick for me. Does it work for you? If so, I'll use that.
Cheers,
Bart
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]