libinput-rs 0.2.2

Fail-open Rust touchpad companion and drop-in libinput ABI replacement
Documentation
.TH LIBINPUT-RS 8 "July 2026" "libinput-rs 0.2.1" "System Administration"
.SH NAME
libinput-rs \- libinput ABI replacement and touchpad companion
.SH SYNOPSIS
.B libinput-rs
.SH DESCRIPTION
The
.B libinput-rs
runtime package installs a drop-in implementation of
.IR libinput.so.10
in the system library directory. Display managers, compositors, and other
libinput clients use it after the dynamic linker cache is refreshed and the
clients are restarted.
.PP
The
.B libinput-rs-devel
package installs the public header, unversioned linker name, and pkg-config
metadata that replace the distribution's libinput development package.
.PP
The
.B libinput-rs
service creates a uinput pointer before exclusively grabbing supported physical
touchpads. Keyboards are observed without an exclusive grab for
disable-while-typing behavior. If the output device cannot be created or event
forwarding fails, the process exits and the kernel releases all grabs.
.PP
A vendor preset enables the service on first installation so it starts on the
next boot. An administrator's explicit enable or disable choice is preserved
on package upgrades. The ABI replacement remains installed when the service is
disabled.
.SH CONFIGURATION
Companion-daemon configuration is read from
.IR /etc/libinput-rs/config.json .
Touchpad pointer and two-finger scroll motion are normalized with the kernel-reported
axis resolution. Devices without usable resolution metadata use a calibrated
fallback. The
.B pointer_acceleration
field keeps the existing user-facing scale. Its live-tested neutral value is
2.2; larger values are faster and smaller positive values are slower. The
daemon divides the configured value by the 2.5 normalization reference so an
existing 2.2 configuration preserves the same effective pointer travel after
upgrade.
.SH FILES
.TP
.I /usr/lib64/libinput.so.10.13.0
Replacement shared library on 64-bit Fedora systems.
.TP
.I /usr/lib64/libinput.so.10
Runtime SONAME link.
.TP
.I /usr/lib64/libinput.so
Development linker name supplied by libinput-rs-devel.
.TP
.I /usr/include/libinput.h
C development header supplied by libinput-rs-devel.
.TP
.I /usr/lib64/pkgconfig/libinput.pc
pkg-config metadata supplied by libinput-rs-devel on 64-bit Fedora systems.
.TP
.I /etc/libinput-rs/config.json
Companion-daemon configuration.
.TP
.I /usr/lib/systemd/system/libinput-rs.service
Companion service unit.
.TP
.I /usr/lib/systemd/system-preset/90-libinput-rs.preset
Vendor preset enabling the companion service on first installation.
.SH INSTALLATION
Perform replacement testing from a text console or SSH session. Install both
replacement packages in one DNF transaction:
.PP
.nf
sudo dnf install libinput-rs libinput-rs-devel --allowerasing
sudo ldconfig
sudo systemctl reboot
.fi
.PP
To disable only the companion daemon while retaining the ABI replacement:
.PP
.nf
sudo systemctl disable --now libinput-rs.service
.fi
.SH ROLLBACK
Restore Fedora's runtime and development packages in one transaction:
.PP
.nf
sudo systemctl disable --now libinput-rs.service 2>/dev/null || true
sudo dnf install libinput libinput-devel --allowerasing
sudo ldconfig
sudo systemctl reboot
.fi
.SH SEE ALSO
.BR libinput (1),
.BR ldconfig (8),
.BR systemctl (1)