Extest is a drop in replacement for the X11 XTEST extension. It creates a virtual device with the uinput kernel module. It's been primarily developed for allowing the desktop functionality on the Steam Controller to work while Steam is open on Wayland.
Be sure you have Rust installed. You will also need to install a 32 bit Rust toolchain.
rustup target add i686-unknown-linux-gnu
cargo build --releaseThis will create a library named libextest.so in target/i686-unknown-linux-gnu/release.
Note that this library is 32 bit by default because Steam is a 32 bit application.
You will also need to add your user to the input group if not added already, so that your user can be allowed to actually create fake devices:
sudo usermod -a -G input <your username>You can then use LD_PRELOAD to override any app that wants to use XTEST functions that have been reimplemented by Extest. Example:
LD_PRELOAD=/path/to/libextest.so steamThe repository also comes with a script to automatically override Steam's desktop file so that whenever you launch Steam from the desktop file (i.e. via desktop icon or application menu) Extest will be automatically preloaded. Just run it like so:
./override_steam_desktop_file.sh