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.
46 lines
1.1 KiB
46 lines
1.1 KiB
#!/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) |
|
|
|
|