YubiKey lock screen
From D3xt3r01.tk
What
I'm trying to make my fedora desktop lock the screen and unlock when it sees my key in.
HOW
Get the serial, idVendor, idProduct of the thing.
udevadm info -a -p $(udevadm info -q path -n /dev/hidraw0)
Create a /etc/udev/rules.d/85-screen-lock-toggle.rules
ACTION=="remove", ATTRS{serial}=="1234567890", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010", RUN+="/usr/local/bin/gnome-lock-enable"
ACTION=="add", ATTRS{serial}=="1234567890", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010", RUN+="/usr/local/bin/gnome-lock-disable"
And the 2 scripts.
~# cat /usr/local/bin/gnome-lock-enable
#!/bin/bash
echo "lock enable" > /tmp/yubi_lock_log
user=`ps aux | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
if [ -n $user ]; then
GNOME_SCREENSAVER_PROC=`ps xa | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
export `grep -z DBUS_SESSION_BUS_ADDRESS /proc/$GNOME_SCREENSAVER_PROC/environ`
su $user -c "gconftool-2 --set "/apps/gnome-screensaver/lock_enabled" --type bool 1"
fi
~# cat /usr/local/bin/gnome-lock-disable
#!/bin/bash
echo "lock enable" > /tmp/yubi_lock_log
user=`ps aux | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
if [ -n $user ]; then
GNOME_SCREENSAVER_PROC=`ps xa | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
export `grep -z DBUS_SESSION_BUS_ADDRESS /proc/$GNOME_SCREENSAVER_PROC/environ`
su $user -c "gconftool-2 --set "/apps/gnome-screensaver/lock_enabled" --type bool 0"
fi