summaryrefslogtreecommitdiffstats
path: root/pylock.py
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2012-01-27 15:44:45 +0100
committerMatthias Schiffer <mschiffer@universe-factory.net>2012-01-27 15:44:45 +0100
commit2ea569c7ed70a40cccaaf32b3f8ea2e7127ac062 (patch)
tree239898333a7523d19e2f47cb9688e6948249983b /pylock.py
downloadpylock-2ea569c7ed70a40cccaaf32b3f8ea2e7127ac062.tar
pylock-2ea569c7ed70a40cccaaf32b3f8ea2e7127ac062.zip
Initial commit
Diffstat (limited to 'pylock.py')
-rw-r--r--pylock.py51
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()