Restore pynput solution. Thuis requires an x-server while running

This commit is contained in:
Leone, Mark A [LGS] 2025-07-04 22:33:48 -04:00
parent 853be109e7
commit ce88168e2e

View file

@ -15,6 +15,7 @@ from monitors import CPUMonitor, MemoryMonitor, BatteryMonitor, DiskMonitor, Net
# External Dependencies # External Dependencies
import numpy as np import numpy as np
from pynput.keyboard import Key, Listener
import evdev import evdev
from serial.tools import list_ports from serial.tools import list_ports
@ -113,6 +114,27 @@ def main(args):
"none": lambda *x: x # noop "none": lambda *x: x # noop
} }
def on_press(key):
global alt_pressed
global i_pressed
if type(key).__name__ == 'KeyCode':
if key.char == 'i':
i_pressed = True
elif key == Key.alt:
alt_pressed = True
def on_release(key):
global alt_pressed
global i_pressed
if type(key).__name__ == 'KeyCode':
if key.char == 'i':
i_pressed = False
elif key == Key.alt:
alt_pressed = False
if key == Key.esc:
# Stop listener
return False
################################################# #################################################
### Load app functions from plugins ### ### Load app functions from plugins ###
if not re.search(r"--disable-plugins|-dp", str(sys.argv)): if not re.search(r"--disable-plugins|-dp", str(sys.argv)):
@ -133,7 +155,9 @@ def main(args):
if args.snapshot_duration > args.snapshot_interval: if args.snapshot_duration > args.snapshot_interval:
print("Snapshot duration must be less than snapshot interval. Exiting...") print("Snapshot duration must be less than snapshot interval. Exiting...")
sys.exit(0) sys.exit(0)
start_time = time.time() with Listener(
on_press=on_press,
on_release=on_release):
while True: while True:
elapsed_time = time.time() elapsed_time = time.time()
show_snapshot = True if args.snapshot_interval == 0 or elapsed_time % args.snapshot_interval <= args.snapshot_duration else False show_snapshot = True if args.snapshot_interval == 0 or elapsed_time % args.snapshot_interval <= args.snapshot_duration else False
@ -142,8 +166,7 @@ def main(args):
background_value = int(screen_brightness * (max_background_brightness - min_background_brightness) + min_background_brightness) background_value = int(screen_brightness * (max_background_brightness - min_background_brightness) + min_background_brightness)
foreground_value = int(screen_brightness * (max_foreground_brightness - min_foreground_brightness) + min_foreground_brightness) foreground_value = int(screen_brightness * (max_foreground_brightness - min_foreground_brightness) + min_foreground_brightness)
grid = np.zeros((9,34), dtype = int) grid = np.zeros((9,34), dtype = int)
active_keys = device.active_keys(verbose=True) if i_pressed and alt_pressed and not args.no_key_listener:
if (MODIFIER_KEYS[0] in active_keys or MODIFIER_KEYS[1] in active_keys) and KEY_I in active_keys and not args.no_key_listener:
if args.left_snap and show_snapshot: if args.left_snap and show_snapshot:
draw_id(grid, "snap", foreground_value) draw_id(grid, "snap", foreground_value)
else: else: