Freut mich, dir auch mal einen guten Hinweis geben haben zu können.
Ich hab übrigens noch weiterrecherchiert und getestet.
Für xscreensaver ist xss-lock notwendig, damit dieser auf logind lock-session hört. Das ist aber weder in wheezy noch in dessen backports. Hab mir mal die Quellen aus Testing runtergeladen und das Paket gebaut und installiert. Ganz bugfrei dürfte es noch nicht sein, weil es manchmal mit hoher Last hängenbleibt...
Ich hab das Skript zum allgemeinen sperren von allen xscreensavern überarbeitet:
Code: Alles auswählen
#!/bin/sh
# Lock xscreensaver on resume from a suspend.
# getXuser gets the X user belonging to the display in $displaynum.
# If you want the foreground X user, use getXconsole!
getXuser() {
user="$1"
session=$2
if [ x"$user" != x"" ]; then
userhome=`getent passwd $user | cut -d: -f6`
export XAUTHORITY=$userhome/.Xauthority
else
export XAUTHORITY=""
fi
export displays=`loginctl show-session $session|awk -F "=" '$1 == "Display" {print $2}'`
## Suche nach X-Sessions mit startx für diesen User noch einbauen!
# startx=`pgrep -n startx`
# if [ x"$startx" != x"" ]; then
# user=`ps -o user --no-headers $startx`
# fi
export XUSER=$user
}
if pidof xscreensaver > /dev/null; then
loginctl list-sessions|awk '$1 ~ /^[0-9]/ {print $1,$3}'|while read session user; do
#loginctl list-users|awk '$1 ~ /[0-9]*/ {print $2}'|while read user;do
getXuser $user $session;
if [ x"$XAUTHORITY" != x"" ]; then
for display in $displays; do
export DISPLAY=$display
case "$1" in
resume|thaw)
sudo -u $XUSER xscreensaver-command -unthrottle
;;
suspend|hibernate)
#loginctl lock-session $session
sudo -u $XUSER xscreensaver-command -throttle
sudo -u $XUSER xscreensaver-command -lock
;;
esac
done
fi
done
fi
loginctl kommt aber auch schön durcheinander... ich habe testweise eine X-Session über lightdm für user1 gestartet, eine für user2 und einmal ist user1 auf tty1 eingeloggt und ich habe eine zweie X-Session für user 1 über startx von tty1 aus gestartet.
Es ist also
:0 user1
:1 user2
:2 user1
ck-list-session scheint aber das einzige Werkzeug zu sein, dass schön Auskunft über alle X11-Sessions gibt. Kann es sein, dass systemd/logind schon in Hinblick auf Wayland "optimiert" ist?
Danke übrigens auf den Hinweis mit dem acpi-Skript. ev. kann man das ja sourcen in einem eigenen Skript. Aber zuverlässig arbeitet es bei mir auch (noch) nicht...
lg scientific