Skip to content

fix: sync vendored xf86-input-neko scroll support - #23

Draft
possibilities wants to merge 3 commits into
kernel:masterfrom
possibilities:driver-sync-wip
Draft

possibilities wants to merge 3 commits into
kernel:masterfrom
possibilities:driver-sync-wip

Conversation

@possibilities

Copy link
Copy Markdown

Related to #17 (the vendored driver part).

What changed

Sync utils/xorg-deps/xf86-input-neko/src/neko.c with the scroll-capable driver from kernel-images #196, pinned to 18e75774. The driver source is byte-for-byte identical.

This handles NEKO_SCROLL (0x80), registers relative vertical/horizontal scroll valuators with a 120-unit increment, and keeps touch events on their original three axes. The README documents the wire message.

Verification

  • Updated against current Kernel master without rewriting the existing branch
  • Autogen/configure/make passed locally against Xorg 21.1.16
  • Added CI that builds and loads the actual module in a disposable Xorg server on Debian bullseye and bookworm
  • Both build/integration jobs passed on this exact commit
  • Tests cover XI2 device metadata, signed/diagonal/fractional scrolling, legacy wheel-button counts, unchanged pointer position, and touch/scroll interleaving

Bullseye CI uses Debian's signed final-LTS snapshot because the regular security package URLs currently return 404s. The tests document inherited limitations around idle-server wakeups, fragmented socket messages, modifier ordering, and thread lifecycle. A complete application/base image and Chromium rendering test were not run.

The XTest fallback conversion discussed in #17 is a separate patch. This PR deliberately does not close the multi-part issue.

possibilities and others added 3 commits September 1, 2026 08:01
The vendored driver here has no scroll support: a NEKO_SCROLL (0x80)
message falls through to xf86PostTouchEvent. The copy that kernel-images
builds and ships registers XI2 scroll valuators for it, and
Dockerfile.tmpl builds this copy into the base image, so a standalone
base-image deployment with the driver enabled gets a driver that cannot
scroll.

Take src/neko.c verbatim from kernel-images at 18e75774 (kernel-images
PR m1k1o#196): scroll valuators 3 and 4 registered with SCROLL_INCREMENT 120,
NEKO_SCROLL posted through xf86PostMotionEventM, the touch class held at
its three axes, and the device announced as XI_MOUSE rather than
XI_TOUCHSCREEN so Chromium honours the scroll valuators. Document the
message and the unit in the README.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…Xorg

Preserve the kernel-images driver source while testing its XI2 scroll and touch protocol on Debian bullseye and bookworm.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant