x11: add ui-events-x11 adapter and shared ui-events-xkb crate - #125
Merged
Merged
Conversation
xorgy
force-pushed
the
x11-adapter
branch
2 times, most recently
from
July 20, 2026 23:20
f831baf to
3a3730a
Compare
waywardmonkeys
left a comment
Collaborator
There was a problem hiding this comment.
Some comments, mostly from Codex but they seem mostly right.
Should add tests for some of these things:
- Two simultaneous nearby touches both start with count 1 and retain correct Up counts.
- Left-click followed by right-click does not become a double-click.
- Primary lifts, secondary remains, third touch remains non-primary.
- Shift/Ctrl modifiers propagate into mouse and touch states.
- FocusOut releases held keys and clears modifiers.
- Two sourceids maintain independent scroll configurations and baselines.
- Non-emulated wheel buttons, dead keys, compose sequences, and XIM commit/preedit.
- A Linux/Xvfb smoke test covering real XI2 event selection and device discovery.
Collaborator
Author
|
Thanks, I'll address all of these tomorrow. I think some of them are red herrings, but I'll see when I look. :+ ) |
xorgy
force-pushed
the
x11-adapter
branch
4 times, most recently
from
July 22, 2026 17:25
e00c573 to
a8f559a
Compare
Collaborator
Author
|
Alright, I've addressed your review, and plan to follow up with an XIM related PR separate from this. XIM and complex compose require a bit of care to get right. As for adding an actual X harness, I can look into it, but if possible I'd like to defer that work a bit (and there's something to be said also for sharing some of that with a Wayland integration harness, since Wayland's input model is largely based on XI 2.4). |
xorgy
force-pushed
the
x11-adapter
branch
3 times, most recently
from
July 30, 2026 03:07
bcfa9f6 to
8d7c342
Compare
waywardmonkeys
approved these changes
Aug 21, 2026
Add `ui-events-x11`, an adapter bridging X11 input into the `ui-events` model with host-clocked keyboard, pointer, and touch reducers. It assumes XInput 2 and XKB, with no legacy core fallbacks. Factor the XKB keysym and keymap code out of `ui-events-wayland` into a shared `ui-events-xkb` crate, used by both adapters. Since the `xkb` feature links `libxkbcommon`, restrict all-features CI for these crates to the Linux runners that install it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add
ui-events-x11, an adapter bridging X11 input into theui-eventsmodel with host-clocked keyboard, pointer, and touch reducers.It assumes XInput 2 and XKB, with no legacy core fallbacks.
Factor the XKB keysym and keymap code out of
ui-events-waylandinto a sharedui-events-xkbcrate, used by both adapters.Since the
xkbfeature linkslibxkbcommon, restrict all-features CI for these crates to the Linux runners that install it.