From 2ea569c7ed70a40cccaaf32b3f8ea2e7127ac062 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Fri, 27 Jan 2012 15:44:45 +0100 Subject: Initial commit --- pylock.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 pylock.py (limited to 'pylock.py') 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() -- cgit v1.2.3