How the CLI backend and GTK frontend work together
masterShow Me The Key is split into two components to handle Wayland security requirements:
- CLI Backend: A custom re-write of
libinput-debug-events.cbased onlibinput,libudev, andlibevdev. It runs with superuser permissions to read keyboard events directly from/dev/input/(evdev interface). It outputs key events as JSON lines. - GTK Frontend: A GUI based on GTK that runs the CLI backend as root via
pkexec. It displays the key events in a transparent floating window.
Note on Permissions: Because the program reads directly from the evdev interface to support Wayland, it requires root/superuser permissions. Users in the wheel group may skip password authentication via polkit.