Linux (experimental)
Run the experimental Linux port — install it from the AUR on Arch, or build from source elsewhere. evdev/uinput mouse routing, tested on KDE Plasma 6 Wayland.
Status
The Linux port works, but is still experimental. Mouse routing uses an evdev/uinput backend — it grabs the physical mice and drives a virtual pointer, exactly like the Windows hook — with Wayland-portal and X11 fallbacks.
It is developed and tested on KDE Plasma 6 (Wayland); feedback from other desktops is very welcome on the issue tracker.
Arch Linux: install from the AUR
Arch and its derivatives have a package —
littlebigmouse:
paru -S littlebigmouse # or: yay -S littlebigmouse
It builds the hook daemon and the UI from the tagged sources, then installs the
app under /usr/lib/littlebigmouse with littlebigmouse on your PATH, plus a
desktop entry, the icon, and a udev rule granting the input group write access
to /dev/uinput. .NET comes from dotnet-runtime-10.0 rather than being
bundled, so runtime updates arrive through pacman.
You still have to join the input group yourself — a package cannot do that for
you — and log out and back in. See Prerequisites just below.
Optional dependencies worth installing: ddcutil for monitor brightness and
contrast control, kscreen for display layout detection and applying a layout on
Plasma, argyllcms for colorimeter support.
Everything below is about building from source, on Arch or anywhere else.
Prerequisites
- The .NET 10 SDK (the runtime alone is not enough to build) and the Rust toolchain (
cargo): - Access to
/dev/inputand/dev/uinputfor the evdev backend — add yourself to theinputgroup:
sudo usermod -aG input $USER
then log out and back in. Without it the daemon silently falls back to the portal/X11 backend.
Build and run
git clone --recursive https://github.com/mgth/LittleBigMouse.git
cd LittleBigMouse
./run-lbm.sh
run-lbm.sh builds the hook daemon (cargo) and the UI (dotnet), stages
everything and relaunches the app. UI and daemon logs land in /tmp/lbm-ui.log.
Cloned without
--recursive? Rungit submodule update --init --recursivefirst — the HLab projects are submodules.
Troubleshooting
- Crossings feel indirect or laggy — you’re probably on the portal/X11 fallback. Check that you’re in the
inputgroup (groups) and that you logged out and back in after adding yourself. - Something else is off — check
/tmp/lbm-ui.log, then open an issue with your desktop environment, compositor, and the log.