You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.1 KiB
47 lines
1.1 KiB
8 years ago
|
#!/usr/bin/env python3
|
||
|
# (c) 2017 Taeyeon Mori
|
||
|
|
||
|
import sys
|
||
|
from PyQt5 import QtGui, QtWidgets
|
||
|
import dbus
|
||
|
|
||
|
|
||
|
def main(argv):
|
||
|
# Initialize DBus
|
||
|
bus = dbus.SessionBus()
|
||
|
sso = bus.get_object('org.freedesktop.ScreenSaver', '/org/freedesktop/ScreenSaver')
|
||
|
inhibit = sso.get_dbus_method("Inhibit", "org.freedesktop.ScreenSaver")
|
||
|
uninhibit = sso.get_dbus_method("UnInhibit", "org.freedesktop.ScreenSaver")
|
||
|
|
||
|
# Initialize Tray Icon
|
||
|
app = QtWidgets.QApplication(argv)
|
||
|
app.setApplicationName("ScreenSaver Inhibit")
|
||
|
|
||
|
menu = QtWidgets.QMenu()
|
||
|
ctext = menu.addAction("Cookie")
|
||
|
ctext.setEnabled(False)
|
||
|
exit = menu.addAction("Quit")
|
||
|
exit.triggered.connect(app.exit)
|
||
|
|
||
|
tray = QtWidgets.QSystemTrayIcon()
|
||
|
tray.setIcon(QtGui.QIcon.fromTheme("screensaver"))
|
||
|
tray.setContextMenu(menu)
|
||
|
tray.show()
|
||
|
|
||
|
# Run
|
||
|
cookie = inhibit("ScreenSaver Inhibit Tray Application", "User Inhibit")
|
||
|
print("Inhibited: ", cookie)
|
||
|
ctext.setText("Cookie: %s" % cookie)
|
||
|
|
||
|
try:
|
||
|
app.exec()
|
||
|
|
||
|
finally:
|
||
|
uninhibit(cookie)
|
||
|
print("UnInhibited")
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main(sys.argv)
|
||
|
|