windowmaker-wl/src/backend
Levi Neely b576025f9b wayland: Phase 78 — keyboard event dispatch and WM shortcut handler
Add wWaylandKeyPress(keycode, modifiers) to event.c/h: scans
wKeyBindings and dispatches a subset of WM shortcuts (miniaturize,
hide, maximize, raise/lower, close, focus-next/prev, workspace switch)
using raw XKB keycode + modifier values instead of an XEvent.

In wl_backend.c, wire handle_keyboard_key and handle_keyboard_modifiers
listeners on the headless keyboard device so that:
- key events are checked against WM shortcuts first
- non-shortcut keys are forwarded to the focused client via
  wlr_seat_keyboard_notify_key
- modifier changes are always notified via wlr_seat_keyboard_notify_modifiers

The headless backend doesn't generate real key events so the listener
is a no-op in the smoke test, but the infrastructure is ready for a
real DRM+libinput backend.

Smoke test: check for "keyboard key+modifiers listeners wired" log.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 20:36:32 +01:00
..
wayland wayland: Phase 78 — keyboard event dispatch and WM shortcut handler 2026-03-28 20:36:32 +01:00
x11 wayland: Phase 46 — client_close vtable; title updates; protocol guards 2026-03-28 06:46:46 +01:00
backend.h wayland: Phase 46 — client_close vtable; title updates; protocol guards 2026-03-28 06:46:46 +01:00
backend_types.h Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00