#!/usr/bin/python3
import subprocess
import evdev
import os
from evdev import ecodes

sw_device_name = "gpio-keys"
osk_dconf_path = "/com/lomiri/shell/always-show-osk"

devices = [evdev.InputDevice(path) for path in evdev.list_devices()]
for device in devices:
    if device.name == sw_device_name:
        print("Found {}:".format(sw_device_name), device)
        break
else:
    print("{} device missing".format(sw_device_name))
    exit()

backlight = os.open("/sys/class/leds/:kbd_backlight/brightness",os.O_WRONLY)

for event in device.read_loop():
    if event.type == ecodes.EV_SW and event.code == ecodes.SW_KEYPAD_SLIDE:
        value = str(bool(event.value)).lower()
        subprocess.run(["dconf", "write", osk_dconf_path, value])
        os.write(backlight, str.encode({False: "1", True: "0"} [bool(event.value)]))
