A deep dive into how input handling works in the wlroots Wayland compositor library. Covers the full pipeline from raw hardware events via wlr_backend and wlr_input_device, through cursor management with wlr_cursor and wlr_xcursor, to propagating events to Wayland clients via wlr_seat. Explains the 'batteries not included' philosophy that gives compositors enormous flexibility at the cost of significant complexity. Walks through a concrete example of what happens when a user moves a mouse, tracing each step from libinput detection through client-side cursor image delivery.

11m read timeFrom drewdevault.com
Post cover image

Sort: