diff --git a/overlays/kde-bigscreen/etc/skel/.config/cec-daemon.py b/overlays/kde-bigscreen/etc/skel/.config/cec-daemon.py new file mode 100644 index 0000000000000000000000000000000000000000..069fe6605f4073302555305d9f2b5deff01a4ec4 --- /dev/null +++ b/overlays/kde-bigscreen/etc/skel/.config/cec-daemon.py @@ -0,0 +1,71 @@ +#!/usr/bin/python3 + +import cec +import uinput +import time +import psutil + +u = uinput + +KEYMAP = { + 0: u.KEY_ENTER, + 1: u.KEY_UP, + 2: u.KEY_DOWN, + 3: u.KEY_LEFT, + 4: u.KEY_RIGHT, + 9: u.KEY_HOMEPAGE, + 10: u.KEY_MENU, + 13: u.KEY_BACK, + 44: u.KEY_HOMEPAGE, + 68: u.KEY_PLAY, + 69: u.KEY_STOP, + 70: u.KEY_PAUSE, + 75: u.KEY_FASTFORWARD, + 76: u.KEY_REWIND, + 103: u.KEY_HOMEPAGE, + 113: u.KEY_BLUE, + 114: u.KEY_RED, + 115: u.KEY_YELLOW, + 116: u.KEY_GREEN +} + +cec.init() +device = uinput.Device(KEYMAP.values()) + +print("Ready") +keystate = None +override = False + +def check_override(): + global override + if "kodi-x11" in (p.name() for p in psutil.process_iter()): + override = True + else: + override = False + +def onkey(event, key, state): + assert event == 2 + global keystate + global override + check_override() + if state == 0 and keystate is None: + print("Got Key", key, "state", state) + keystate = "down" + if not override: + device.emit(KEYMAP[key], 1) + + if state > 0: + if keystate is None: + print("Got key", key, "state", state) + if not override: + device.emit(KEYMAP[key], 1) + + print("Key {0} up after {1}".format(key, state)) + if not override: + device.emit(KEYMAP[key], 0) + keystate = None + +cec.add_callback(onkey, cec.EVENT_KEYPRESS) + +while True: + time.sleep(9e9)