diff options
-rwxr-xr-x | tp-key-handler | 66 |
1 files changed, 34 insertions, 32 deletions
diff --git a/tp-key-handler b/tp-key-handler index 3c3856e..a47f8f8 100755 --- a/tp-key-handler +++ b/tp-key-handler @@ -1,20 +1,22 @@ -#!/usr/bin/python -import gtk +#!/usr/bin/python3 +import gi +gi.require_version('Gtk', '3.0') +from gi.repository import Gtk import dbus import dbus.service import subprocess import time from dbus.mainloop.glib import DBusGMainLoop -import pynotify +import notify2 class KeyhandlerDBUSService(dbus.service.Object): def __init__(self): bus_name = dbus.service.BusName('org.elektranox.keyhandler', bus=dbus.SessionBus()) dbus.service.Object.__init__(self, bus_name, '/org/elektranox/keyhandler') - self.bnotice = pynotify.Notification("Backlight", "", "display-brightness-symbolic") - self.vnotice = pynotify.Notification("Volume", "", "") - self.wnotice = pynotify.Notification("WLAN", "", "") - self.mnotice = pynotify.Notification("Mouse", "", "") + self.bnotice = notify2.Notification("Backlight", "", "display-brightness-symbolic") + self.vnotice = notify2.Notification("Volume", "", "") + self.wnotice = notify2.Notification("WLAN", "", "") + self.mnotice = notify2.Notification("Mouse", "", "") def _lid_status_open(self): lidstatus = "state: unknown" @@ -62,17 +64,17 @@ class KeyhandlerDBUSService(dbus.service.Object): popen = subprocess.Popen(['/usr/bin/amixer', '-c', 'PCH', 'get', 'Master'], stdout = subprocess.PIPE) popen.wait() (stdout,stderr) = popen.communicate(None) - lines = stdout.split("\n") + lines = stdout.decode("utf-8").split("\n") state = int(lines[-2].split()[3][1:-2]) muted = lines[-2].split()[5][1:-1] == "off" if muted: - self.vnotice.set_property("icon-name", "audio-volume-muted") + self.vnotice.icon = "audio-volume-muted" elif state < 20: - self.vnotice.set_property("icon-name", "audio-volume-low") + self.vnotice.icon = "audio-volume-low" elif state < 60: - self.vnotice.set_property("icon-name", "audio-volume-medium") + self.vnotice.icon = "audio-volume-medium" else: - self.vnotice.set_property("icon-name", "audio-volume-high") + self.vnotice.icon = "audio-volume-high" self.vnotice.set_hint_int32("value", state) self.vnotice.set_hint_string("synchronous", "volume") self.vnotice.show() @@ -81,23 +83,23 @@ class KeyhandlerDBUSService(dbus.service.Object): popen = subprocess.Popen(['/usr/sbin/rfkill', 'list', rfid], stdout = subprocess.PIPE) popen.wait() (stdout,stderr) = popen.communicate() - return stdout.split("\n")[1].split(" ")[2] == "no" + return stdout.decode("utf-8").split("\n")[1].split(" ")[2] == "no" def _showMicState(self): popen = subprocess.Popen(['/usr/bin/amixer', '-c', 'PCH', 'get', 'Capture'], stdout = subprocess.PIPE) popen.wait() (stdout,stderr) = popen.communicate(None) - lines = stdout.split("\n") + lines = stdout.decode("utf-8").split("\n") state = int(lines[-2].split()[4][1:-2]) muted = lines[-2].split()[6][1:-1] == "off" if muted: - self.vnotice.set_property("icon-name", "microphone-sensitivity-muted") + self.vnotice.icon = "microphone-sensitivity-muted" elif state < 20: - self.vnotice.set_property("icon-name", "microphone-sensitivity-low") + self.vnotice.icon = "microphone-sensitivity-low" elif state < 60: - self.vnotice.set_property("icon-name", "microphone-sensitivity-medium") + self.vnotice.icon = "microphone-sensitivity-medium" else: - self.vnotice.set_property("icon-name", "microphone-sensitivity-high") + self.vnotice.icon = "microphone-sensitivity-high" self.vnotice.set_hint_int32("value", state) self.vnotice.set_hint_string("synchronous", "volume") self.vnotice.show() @@ -175,11 +177,11 @@ class KeyhandlerDBUSService(dbus.service.Object): # button itself is handled by systemd state = self._rfkill_get("wlan") if state: - self.wnotice.set_property("icon-name", "network-wireless-symbolic") - self.wnotice.set_property("summary", "enabled") + self.wnotice.icon = "network-wireless-symbolic" + self.wnotice.summary = "enabled" else: - self.wnotice.set_property("icon-name", "network-wireless-offline-symbolic") - self.wnotice.set_property("summary", "disabled") + self.wnotice.icon = "network-wireless-offline-symbolic" + self.wnotice.summary = "disabled" self.wnotice.show() @dbus.service.method('org.elektranox.keyhandler') @@ -187,12 +189,12 @@ class KeyhandlerDBUSService(dbus.service.Object): popen = subprocess.Popen(['/usr/local/bin/toggle-mouse-wheel-emulation'], stdout = subprocess.PIPE) popen.wait() (stdout,stderr) = popen.communicate(None) - enabled = (stdout.find("enabled") != -1) - self.mnotice.set_property("icon-name", "/usr/share/icons/mate/48x48/devices/input-mouse.png") + enabled = (stdout.decode("utf-8").find("enabled") != -1) + self.mnotice.icon = "/usr/share/icons/mate/48x48/devices/input-mouse.png" if enabled: - self.mnotice.set_property("summary", "Mouse Wheel Emulation enabled") + self.mnotice.summary = "Mouse Wheel Emulation enabled" else: - self.mnotice.set_property("summary", "Mouse Wheel Emulation disabled") + self.mnotice.summary = "Mouse Wheel Emulation disabled" self.mnotice.show() @dbus.service.method('org.elektranox.keyhandler') @@ -214,12 +216,12 @@ class KeyhandlerDBUSService(dbus.service.Object): state = self._rfkill_get("bluetooth") if state: subprocess.call(['/usr/sbin/rfkill','block', 'bluetooth']) - self.wnotice.set_property("icon-name", "/usr/share/icons/gnome/scalable/status/bluetooth-disabled-symbolic.svg") - self.wnotice.set_property("summary", "RF blocked") + self.wnotice.icon = "/usr/share/icons/gnome/scalable/status/bluetooth-disabled-symbolic.svg" + self.wnotice.summary = "Bluetooth blocked" else: subprocess.call(['/usr/sbin/rfkill','unblock', 'bluetooth']) - self.wnotice.set_property("icon-name", "/usr/share/icons/gnome/scalable/status/bluetooth-active-symbolic.svg") - self.wnotice.set_property("summary", "RF unblocked") + self.wnotice.icon = "/usr/share/icons/gnome/scalable/status/bluetooth-active-symbolic.svg" + self.wnotice.summary = "Bluetooth unblocked" self.wnotice.show() if not state: time.sleep(1) @@ -227,5 +229,5 @@ class KeyhandlerDBUSService(dbus.service.Object): DBusGMainLoop(set_as_default=True) service = KeyhandlerDBUSService() -pynotify.init("TP Keyhandler") -gtk.main() +notify2.init("TP Keyhandler") +Gtk.main() |