1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
#!/usr/bin/env python3
import signal
import sys
import os
import pwd
import locale
from gi.repository import Gtk, Gdk, Gio
from DBus import DBus
from Locker import Locker
from LockWindow import LockWindow
import pam
def get_username():
return pwd.getpwuid(os.getuid())[0]
theme = 'UzL-login'
timeout = 500
logoutTimeout = 15
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)
locale.setlocale(locale.LC_ALL, '')
locale.bindtextdomain('pylock', '/home/neoraider/Devel/Python/pylock/locale')
locale.textdomain('pylock')
Gtk.Settings.get_default().set_property('gtk-theme-name', theme)
window = LockWindow()
def lock(timeLeft):
window.updateLockMessage(username, timeLeft)
window.lock()
def logout():
exit()
def updateTimeout(timeLeft):
window.updateLockMessage(username, timeLeft)
locker = Locker(timeout, lock, window.unlock, logoutTimeout, logout, updateTimeout)
dbus = DBus(locker)
pamAuth = pam.pam()
def tryUnlock(w, password):
if pamAuth.authenticate(username, password):
locker.unlock()
else:
window.reset()
window.setAuthMessage(pamAuth.reason)
return True
window.connect('logout', lambda w: locker.logout())
window.connect('tryUnlock', tryUnlock)
Gtk.main()
|