Docs

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):
    • Arch / CachyOS: sudo pacman -S dotnet-sdk rust
    • other distros: .NET SDK and rustup
  • Access to /dev/input and /dev/uinput for the evdev backend — add yourself to the input group:
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? Run git submodule update --init --recursive first — 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 input group (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.