libinput 1.30 Released With Support For Writing Plug-Ins In Lua

Easily most significant in libinput 1.30 and of any libinput release in recent times is introducing a Lua-based plug-in system. Lua plug-ins for libinput make it easy to modify device and input events in a secure/sandboxed manner. Here's an example of a Lua libinput plug-in to swap left and right mouse buttons:
Peter Hutterer explained of the new plug-in system:
"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."
The libinput 1.30 release also adds a custom pointer acceleration method for high resolution scroll wheel events, various virtual device handling additions, and new device-specific quirks.
More details on libinput 1.30 via the release announcement.
