One mouse. One keyboard. Every machine.
Mousehop is an open-source software KVM — glide a single cursor, keyboard, and clipboard across your Linux, macOS, and Windows machines over the local network. No KVM hardware, no cloud.
Mousehop is a fork of lan-mouse, Ferdinand Schober's fast, encrypted, cross-platform input-sharing daemon. It keeps that Rust-native core intact and builds on top — clipboard sync, a native macOS menu-bar app, a system tray, per-peer tuning, sturdier discovery, and a refreshed interface.
The name is the whole pitch — your mouse, hopping from one screen to the next.
What this fork adds on top of lan-mouse.
Bi-directional clipboard text sync between paired machines — off by
default, gated per pair in each direction. An app-suppression list keeps
password managers and sensitive apps from ever leaving the device; on
macOS, clipboards flagged ConcealedType are blocked
automatically.
A proper menu-bar app — no Dock clutter. A native prompt when you grant Accessibility, a TCC watcher that reacts the instant permissions change, and display-wake so a hop from another machine lights the screen back up.
A real Linux StatusNotifierItem tray icon with a purpose-built glyph, plus the macOS menu-bar item. Closing the window tucks Mousehop away instead of quitting — the daemon keeps running.
Set natural-scroll direction and pointer sensitivity independently for each connected machine, right from its connection row.
Linked machines trade build versions and the UI soft-warns when they drift apart, so a mismatch is obvious before it bites.
mDNS-SD primary-IP hints, Bonjour name normalization, exponential dial backoff, and one DTLS listener per local address — connecting just works on real networks.
Your cursor keeps its cross-axis position when it crosses to another machine, with wall-press auto-release and host-cursor warp-back.
Mousehop suppresses edge crossings while the host's screen is locked, so a locked Mac or PC never swallows your cursor.
The GTK + libadwaita frontend got a roomier, scrollable layout, richer connection rows with in-place updates, tidier modals, and Esc / Cmd-W to dismiss.
The foundation Mousehop inherits — every bit of it still works.
Share one mouse and keyboard across Linux (Wayland), Windows, and macOS. A software KVM switch — no extra hardware.
All traffic runs over DTLS (via WebRTC.rs); machines authorize each other by TLS-certificate fingerprint.
A native GTK + libadwaita frontend for managing connections, plus a CLI and a headless daemon mode for systemd.
wlroots layer-shell, libei, the xdg remote-desktop portal, Windows, and macOS — chosen automatically for your compositor.
Machines find each other on the local network by hostname — no manual IP wrangling required.
A fast, memory-safe, single-binary core that stays maintainable enough to keep growing new backends.
Mousehop runs on Linux (Wayland), macOS, and Windows. Download a release build, install it with Cargo or Nix, or build from source.
Download the macOS build from the releases page and move Mousehop into your Applications folder. It's signed with a Developer ID and notarized by Apple, so it launches with no Gatekeeper detour — just grant Accessibility when prompted. Mousehop lives in the menu bar.
On Linux, one command — with a Rust toolchain and GTK4 + libadwaita headers.
cargo install mousehop
Build the flake directly — the executable lands in result/bin.
nix build
Requires a Rust toolchain and GTK4 + libadwaita development headers. See the repository README for per-distro dependency lists.
git clone https://github.com/jondkinney/mousehop
cd mousehop
cargo build --release
Migrating from lan-mouse? Mousehop reads its own config at
~/.config/mousehop/ and speaks its own wire protocol, so the two
install and run side by side without interfering.
Link two machines in about a minute.
Put it on every computer you want to share input between — Linux, macOS, or Windows.
On the controlling device, click Add and enter the other machine's hostname and which edge it sits on.
On the other machine, Authorize the incoming device by its fingerprint — shown in the General section of the sender.
Push your cursor against the screen edge toward the other machine. The keyboard — and, if you enable it, the clipboard — follow.