libinput 1.32 Adds Circular Scrolling, Currently Used by Exactly One Laptop
libinput 1.32 is out, announced by Peter Hutterer. The headline feature serves a single known laptop, which is a good illustration of how Linux hardware support actually accumulates.
Circular scrolling
Circular touchpads are a real thing. You scroll by moving your finger in a circle rather than up and down, and libinput 1.32 now supports the gesture.
The only device currently using it is the touchpad on the Panasonic CF-SV1, a Tiger Lake era laptop.
It is easy to read that as effort spent for almost nobody, and worth reading the other way. The Linux input stack works on obscure hardware because somebody eventually writes the support for the obscure hardware, and the people who own a CF-SV1 now have a touchpad that behaves as designed rather than one that half works. Nobody else pays a cost for it.
It is also the kind of contribution that is only possible in an open stack. There is no commercial case for a proprietary vendor to support a scroll gesture on one discontinued business laptop.
The changes more people will notice
Automatic drag lock near the touchpad edge. When you are dragging and your finger approaches the edge of the touchpad, libinput now engages drag lock automatically.
This fixes a genuinely annoying problem. Dragging a window or a selection further than the touchpad is wide means you run out of surface, lift your finger to reposition, and drop whatever you were dragging. Engaging the lock when you near the edge lets you lift, reposition and continue.
Tablet eraser buttons are remappable. The physical eraser button on a drawing tablet stylus can now be mapped to any button rather than being fixed to erase. For anyone whose workflow wants undo, or a modifier, or a brush switch under that button, this removes a hardcoded assumption.
Internal versus external device detection now uses a new udev feature from systemd 260 and later. Knowing whether a device is built in or plugged in matters more than it sounds: a built-in touchpad should be disabled when an external mouse appears, and an external keyboard should not inherit the laptop’s layout quirks.
Getting it
libinput sits under both Wayland compositors and X.Org, so the improvements reach you through whichever your desktop uses rather than requiring anything from the desktop itself.
libinput --version
# what libinput thinks of your devices
sudo libinput list-devices
# watch events live, useful when something misbehaves
sudo libinput debug-events
debug-events is the tool to reach for when a touchpad or tablet is doing something inexplicable, because it shows what libinput is receiving before any desktop interpretation. Our Bluetooth troubleshooting guide covers the same investigative principle for wireless peripherals: establish what the lower layer sees before blaming the higher one.
The systemd 260 dependency means the internal versus external improvement arrives only once your distribution ships both, which for stable releases will be a while.