Dotfiles
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

#!/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)