yubikeyllä ja skriptillä kone näytönsäästäjään

Liittynyt
31.07.2017
Viestejä
1 546
Terve
Rakentelen tässä debian stretch läppärille järjestelmää jossa yubikeyn irroittamisen jälkeen masiina menisi näytönsäästäjään kun taas yubikeyn kytkisi kiinni masiina poistuisi näytönsäästäjästä. Olen toteuttanut tämän udevin säännöillä kun tietty laite irroitetaan laukaisee se skriptin joka ajetaan. Nyt kuitenkin skripti toimii osittain. Näytönsäästäjä kyllä menee päälle mutta yubikeyn kiinnittämisen jälkeen ei mene pois päältä. Mikäköhän tässä skriptissä voisi olla vikana. Ilmeisesti gnomelle pitäisi kertoa että mene pois näytönsäästäjästä mutta mikä on oikea komento. EN ole tällaisia hommia aikaisemmin tehnyt. Työpöytänä siis gnome ja loginmanagerina gnomen oletus.
Skripti alla

#!/bin/sh
# List available names
# dbus-send --session --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames
# Lock session (Gnome)
# dbus-send --session --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
# Unlock session (Gnome)
#dbus-send --session --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.SetActive boolean:false
# Lock session (freedesktop) (no effect?)
# dbus-send --session --type=method_call --dest=org.freedesktop.ScreenSaver /org/freedesktop/ScreenSaver org.freedesktop.ScreenSaver.Lock

for bus in /run/user/*/bus; do
uid=$(basename $(dirname $bus))
if [ $uid -ge 1000 ]; then
user=$(id -un $uid)
export DBUS_SESSION_BUS_ADDRESS=unix:path=$bus
if su -c 'dbus-send --session --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames' $user | grep org.gnome.ScreenSaver; then
su -c 'dbus-send --session --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock' $user
fi
fi
done
 
Toggle Sidebar

Statistiikka

Viestiketjut
241 181
Viestejä
4 214 756
Jäsenet
71 014
Uusin jäsen
Phaik

Hinta.fi

Ylös Bottom