diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2012-01-27 15:44:45 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2012-01-27 15:44:45 +0100 |
commit | 2ea569c7ed70a40cccaaf32b3f8ea2e7127ac062 (patch) | |
tree | 239898333a7523d19e2f47cb9688e6948249983b /pylock.py | |
download | pylock-2ea569c7ed70a40cccaaf32b3f8ea2e7127ac062.tar pylock-2ea569c7ed70a40cccaaf32b3f8ea2e7127ac062.zip |
Initial commit
Diffstat (limited to 'pylock.py')
-rw-r--r-- | pylock.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/pylock.py b/pylock.py new file mode 100644 index 0000000..d42aa46 --- /dev/null +++ b/pylock.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 + +import signal +import sys +import os +import pwd + +from gi.repository import Gtk, Gdk + +from Locker import Locker +from LockWindow import LockWindow +import pam + + +def get_username(): + return pwd.getpwuid(os.getuid())[0] + + +theme = 'UzL-login' +timeout = 5 +username = get_username() + + +def handler(signum, frame): + Gtk.main_quit() + + +signal.signal(signal.SIGINT, handler) +signal.signal(signal.SIGTERM, handler) +signal.signal(signal.SIGQUIT, handler) + + +Gtk.Settings.get_default().set_property('gtk-theme-name', theme) + +window = LockWindow() +locker = Locker(timeout, lambda: window.lock(), lambda: window.unlock()) +pamAuth = pam.pam() + + +def tryUnlock(w, password): + if pamAuth.authenticate(username, password): + locker.unlock() + else: + window.reset() + window.setMessage(pamAuth.reason) + + return True + +window.connect('tryUnlock', tryUnlock) + +Gtk.main() |