libinput 1.30-rc1 (1.29.901) is now available. This release brings a new core functionality: Lua plugins.
Lua plugins sit logically between libinput and the kernel and can modify the evdev event stream from a device. A plugin may change the capabilities of a device (e.g. enabling/disabling event codes) and/or change selected events. Further more, plugins can disable certain internal libinput features. This allows for custom-tailored behavior for cases where hardware doesn't match what libinput expects (or is willing to implement), e.g. mice with very specific button debouncing behaviours. A set of example plugins are available in the plugins/ directory of the libinput source tree. For plugins to work they need to be enabled by the caller via the new libinput_plugin_system_load_plugins() call. Until further notice the meson option -Dautoload-plugins will automatically load plugins if the caller does not do so. This option may be removed in the future. The documentation for plugins is here: https://wayland.freedesktop.org/libinput/doc/latest/lua-plugins.html The custom pointer acceleration method can now accelerate high-resolution scroll wheel events. See the custom pointer accel docs for details: https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html#ptraccel-profile-custom Finally, libinput now detects virtual devices created e.g. by uinput or virtual machines. Hardware-specific workarounds (e.g. button debouncing) are no longer enabled on those virtual devices - this task is punted to the provider of the virtual device. And of course we have the usual assortment of device-specific quirks and bug fixes. Many thanks to our contributors Adam Sampson, Alexander Bruy, Cyrus Lien, Dan Forest, Daniel Brackenbury, David Santamaría Rogado, Jan Hendrik Farr, José Expósito, Marge Yang, Matt Turner, Mingcong Bai, Nat Karmios, Peter Hutterer, Sertonix, Yinon Burgansky, Zephyr Lykos, and wangyafei. As usual, the git shortlog is below. Adam Sampson (2): test: correct value type in atou64_test evdev: remove duplicate sizeof Alexander Bruy (1): add quirk for TongFang GX4 (X4SP4NAL) touchpad Cyrus Lien (1): quirks: add quirks for Dell Pro Rugged tablets for volume keys. Dan Forest (1): quirks: add quirk for Asus ROG Flow Z13 2025 (GZ302EA) keyboard Daniel Brackenbury (2): quirks: add vendor quirks for Nulea M501 thumb trackball quirks: revert Nulea USB quirk due to ID conflict David Santamaría Rogado (1): quirks: HP OmniBook Ultra Flip Laptop 14-fh0xxx Jan Hendrik Farr (1): quirks: add quirk for Google Chromebook Roric José Expósito (9): quirks: don't disable the keyboard on the Dell Latitude 7285 plugin/wheel: Use libinput_device_is_virtual() quirks: Add quirks for the GPD MicroPC 2 touchpad libinput: Add libinput_event_gesture forward declaration quirks: add Dell 16 Premium touchpad quirks quirks: add Dell 14 Premium touchpad quirks quirks: Rename QUIRK_MODEL_LOGITECH_MX_MASTER_3 doc/user: Document ModelScrollOnMiddleClick quirk quirks: Avoid accidental scroll for Logitech MX Master 2S Marge Yang (2): quirks: add Dell laptop touchpad quirks quirks: add Dell laptop touchpad quirks Matt Turner (1): test: Accept mkdir_p("/proc/foo") might return EACCES Mingcong Bai (1): quirks: lower AttrTrackpointMultiplier for Lenovo ThinkPad E16 Gen 3 Nat Karmios (1): quirks: Ignore BTN_0 for Microsoft Surface Keyboard Peter Hutterer (83): tools/replay: improve the verbose output a bit quirks: minor cleanup to use attribute(cleanup) CI: don't run the wayland-web job for marge clang-format: add litest_with_logcapture to foreach macros test: don't run the check for lowres events if we don't have hires events test: track bug messages separately in log captures test: switch another test to use logcapture test: add litest_assert_strv_no_substring test: fix the keycode obfuscation test util: add bitmask_size() to return the size of a bitmask util: add an infmask_t type for an infinitely-sized bitmask util: add a helper struct for an evdev mask plugin: add evdev usage masks for plugins plugin: register plugins for the plugin-specific usages Add a public plugin system to libinput test: allow creating a context with a custom plugindir plugins: add support for lua plugins to change evdev event streams lua: drop compatibility to 5.1 to allow for luajit Drop evdev_frame_new_on_stack() pad: don't assert when unable to find the mode group, just discard util: mark the various bitmask functions as nonnull test: fix two clang-tidy dead store complaints tools: move a clang-tidy silence back to where it needs to be touchpad: fix a clang-tidy warning util: annotate that our mask cannot be NULL util: silence two clang-tidy false positives plugins: remove two unused cleanup functions plugin: add hooks to disable internal features plugin: allow disabling the button debouncing feature plugin: allow disabling the wheel debouncing feature touchpad: allow disabling the touchpad jumping cursor detection touchpad: allow disabling the touchpad hysteresis touchpad: allow disabling palm detection altogether lua: implement support for disabling of features Correct the @since tags for the new plugin functions CI: change the wayland-web job to use rules pad: add some extra asserts to shut up clang-tidy clang-tidy: fix WarningAsErrors option to actually work quirks: add XDG_RUNTIME_DIR/libinput to the quirks directories replay: use the runtime quirks for our replay quirks doc/user: add eraser buttons to the "Configuration Options" page doc/user: fixes and a TOC for the Configuration Options page plugin: expand the plugin name prefix to 22 chars util: print nonchanged axis with a space instead of a * plugin: when disabling wheel-debouncing set to the correct enum value plugin: remove the event frame callbacks when disabling a plugin plugin: don't register the mouse-wheel plugin for passthrough devices plugin: reset the filtered frame after sending it with buttons quirks: add quirk for the RazerBlade162025 keyboard plugin: don't initialize the debounce plugin on a virtual device plugin: remove the proximity timer callback after prox out events plugin: ensure prox out for a forced proximity tool if the tool changes quirks: change VM devices to AttrIsVirtual triage-policies: add a bugbot hook for re-closing a bug lua: add missing lua_pop for the evdev frame lua: ignore unsupported event codes in modified frames tools/replay: set the multiprocessing start method to fork tools/replay: rmdir, not unlink for directories CI: drop the ci-fairy check-mr job quirks: add a quirk for the RazerBlade142025 keyboard meson.build: bump to 1.29.900 plugins: rename the flags to libinput_plugin_system_flags plugins: update plugins for the current API doc: fix wrong reference to the plugin system tablet: log the pressure offset's percentage once we detected it tablet: when configuring a user-defined pressure range, zero the offset tablet: don't consider a 0.0-1.0 pressure range as configured range tools: don't set the tool pressure range if we're using the default tools: add support for NO_COLOR/FORCE_COLOR doc: some updates to the plugin system docs doc/user: update the lua plugin documentation lua: remove the inject_frame API lua: drop the log global in favor of libinput:log_* meson.build: change set10 to set plugins: add meson option to autoload plugins plugins: add an example plugin on how to reconfigure the Copilot key doc/user: fix a few issues with the Lua API documentation plugins: fix some minor issues with the example plugins lua: fix superfluous comma lua: remove the unpack global function lua: return an empty table as device info after device removal lua: fix the event type/code loops - EV_MAX/ABS_MAX is inclusive lua: add select to the list of allowed functions Sertonix (1): Fix format strings on 32-bit with 64-bit time_t Yinon Burgansky (2): filter: support accelerating high-resolution scroll wheel events filter: avoid division-by-zero when delta_time is zero in custom filter Zephyr Lykos (2): meson.build: mark executables with install_tag meson.build: remove useless meson version checks wangyafei (1): quirks: add quirks for Dell laptop with Sensel Touchpad.
signature.asc
Description: PGP signature
