summaryrefslogtreecommitdiffstats
path: root/pylock.py
diff options
context:
space:
mode:
Diffstat (limited to 'pylock.py')
-rw-r--r--pylock.py129
1 files changed, 0 insertions, 129 deletions
diff --git a/pylock.py b/pylock.py
deleted file mode 100644
index 32e9149..0000000
--- a/pylock.py
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/usr/bin/env python3
-
-
-# Copyright (c) 2012, Matthias Schiffer <mschiffer@universe-factory.net>
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-import signal
-import sys
-import os
-import pwd
-import locale
-import configparser
-
-from gi.repository import Gtk, GLib
-
-from Locker import Locker
-from LockWindow import LockWindow
-import Selection
-import pam
-
-
-CONFIG_FILE = '/etc/pylock.conf'
-
-
-_ = locale.gettext
-
-
-configParser = configparser.ConfigParser()
-configParser.read_file(open(CONFIG_FILE))
-
-config = configParser['pylock']
-username = pwd.getpwuid(os.getuid())[0]
-
-
-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.textdomain('pylock')
-
-Gtk.Settings.get_default().set_property('gtk-theme-name', config['theme'])
-
-
-def waitForSelection():
- if Selection.get() != 0:
- return True
-
- Gtk.main_quit()
- return False
-
-if Selection.get() != 0:
- GLib.timeout_add_seconds(1, waitForSelection)
- Gtk.main()
- exit(0)
-
-
-window = LockWindow()
-
-if not Selection.acquire(window):
- print('Unable to register pylock at X server', file=sys.stderr)
- exit(1)
-
-
-def lock(timeLeft):
- window.updateLockMessage(username, timeLeft)
- return window.lock()
-
-def logout():
- try:
- os.system(config['logout_command'])
- except:
- pass
-
- window.reset(False)
-
-def updateTimeout(timeLeft):
- window.updateLockMessage(username, timeLeft)
-
-if not ('logout_timeout' in config and 'logout_command' in config):
- locker = Locker(lock, window.unlock)
-else:
- locker = Locker(lock, window.unlock, int(config['logout_timeout']), logout, updateTimeout)
-
-pamAuth = pam.pam()
-
-def tryUnlock(w, password):
- if pamAuth.authenticate(username, password):
- locker.unlock()
- Gtk.main_quit()
- else:
- window.reset()
- window.setAuthMessage(pamAuth.reason)
-
- return True
-
-
-window.connect('logout', lambda w: locker.logout())
-window.connect('tryUnlock', tryUnlock)
-
-GLib.idle_add(lambda: locker.lock())
-
-Gtk.main()