Add Caps+1 TV power-off shortcut

This commit is contained in:
Harley
2026-07-28 20:11:09 -04:00
parent b154722504
commit e9429b3579
2 changed files with 16 additions and 8 deletions
+2
View File
@@ -1021,6 +1021,7 @@
l = "right";
space = "capslock";
grave = "f14";
"1" = "f15";
};
};
};
@@ -1042,6 +1043,7 @@
l = "right";
space = "capslock";
grave = "f14";
"1" = "f15";
};
};
};
+14 -8
View File
@@ -1,17 +1,19 @@
#!/usr/bin/env python3
"""
TV Power Toggle - Key Listener
Listens for F14 on the keyd virtual keyboard and toggles TV power.
F14 is triggered by Caps+grave (mapped in keyd nav layer).
TV Power Key Listener
Listens for F14/F15 on the keyd virtual keyboard.
F14 is triggered by Caps+grave (power toggle).
F15 is triggered by Caps+1 (power off).
"""
import evdev
import subprocess
import time
import os
KEYBOARD_PATH = "/dev/input/event19"
SCRIPT_PATH = "/opt/roku-remote/toggle-power.sh"
KEY_ACTIONS = {
"KEY_F14": "/opt/roku-remote/toggle-power.sh",
"KEY_F15": "/opt/roku-remote/power-off.sh",
}
def find_keyd_keyboard():
"""Find the keyd virtual keyboard device."""
@@ -37,8 +39,12 @@ def main():
for event in device.read_loop():
if event.type == evdev.ecodes.EV_KEY:
key_event = evdev.categorize(event)
if key_event.keycode == "KEY_F14" and key_event.keystate == 1:
subprocess.run([SCRIPT_PATH])
if key_event.keystate != 1:
continue
script_path = KEY_ACTIONS.get(key_event.keycode)
if script_path:
subprocess.run([script_path], check=False)
except OSError as e:
print(f"Device error: {e}, retrying...", flush=True)
time.sleep(1)