
On Wed, Aug 12, 2015 at 03:21:41AM -0400, Randy Jonasz wrote:
I recently installed kde5 on debian stretch. I have a yubikey which I use to log in with. I'd like to lock the screen when I remove the yubikey. I have it working with cinnamon and lxde but I can't quite get it with kde. I can lock the screen if I run the shell script from a terminal as root but when I remove the yubikey the shell script returns error code 1.
Here's my shell scripts:
ykgone.sh
Konsole output #! /bin/sh if [ -z "$(lsusb | grep Yubikey)" ] ; then if [ ! -z "$(ps aux | grep cinnamon-session | grep -v grep)" ] ; then /bin/su rjonasz -c "DISPLAY=:0 cinnamon-screensaver-command -l" elif [ ! -z "$(ps aux | grep startkde | grep -v grep)" ] ; then /usr/bin/sudo -u rjonasz -H -i /usr/local/bin/lockkde.sh else /bin/su rjonasz -c "DISPLAY=:0 xscreensaver-command --lock" fi fi
lockkde.sh
Konsole output #! /bin/sh
kde_pid=`pidof kdeinit5` export `cat /proc/$kde_pid/environ|grep -ao 'DBUS_SESSION_BUS_ADDRESS=[[:graph:]]*'` /usr/bin/qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
I can't seem to figure this one out.
Are you sure the PATH is set the same when run from a terminal versus when run by your key being removed? Try for debugging to do at the start of the script: echo $PATH > /tmp/$$.path.env Then after running it both ways you should have a file for each PID that did it that you can compare. -- Len Sorensen