Meta tags:
description= mouse & keyboard sharing via LAN. Contribute to feschber/lan-mouse development by creating an account on GitHub.;
Headings (most frequently used words):
uh, oh, and, support, installing, compiling, navigation, issues, saved, searches, lan, mouse, files, commit, os, footer, via, input, search, code, repositories, users, pull, requests, provide, feedback, feschber, menu, use, to, filter, your, results, more, quickly, folders, latest, history, repository, encryption, installation, development, usage, systemd, service, configuration, roadmap, detailed, about, releases, 23, sponsor, this, project, packages, contributors, languages, caveats, known, android, ios, desktop, file, app, icon, firewall, rules, optional, manually, cargo, nix, conditional, compilation, git, pre, hook, dependencies, from, source, example, config, emulation, capture, topics, resources, license, stars, watchers, forks,
Text of the page (most frequently used words):
the (85), mouse (54), lan (48), and (44), for (29), input (23), install (22), this (21), can (20), macos (18), backend (18), support (18), cargo (18), nix (17), windows (16), gtk (16), #capture (15), github (14), all (14), you (13), config (13), with (13), build (13), desktop (12), use (12), your (12), code (12), shell (11), security (10), reload (10), wlroots (10), toml (10), service (10), local (10), from (10), sudo (10), not (9), there (9), emulation (9), source (9), x11 (9), device (9), file (9), usr (9), features (9), feschber (8), libadwaita (8), wayland (8), open (8), supported (8), libei (8), using (8), release (8), when (8), are (8), app (8), commit (8), share (7), while (7), page (7), via (7), bin (7), available (7), see (7), icon (7), view (7), that (6), was (6), error (6), loading (6), please (6), client (6), keyboard (6), gnome (6), following (6), automatically (6), optional (6), hostname (6), make (6), daemon (6), cli (6), firewall (6), will (6), git (6), flake (6), search (6), enterprise (6), community (5), navigation (5), rust (5), more (5), releases (5), license (5), readme (5), kde (5), window (5), layer (5), based (5), frontend (5), left (5), port (5), list (5), sure (5), systemd (5), user (5), enable (5), dependencies (5), dev (5), bundle (5), githooks (5), installing (5), settings (5), issues (5), repository (4), resources (4), plasma (4), remote (4), events (4), detailed (4), address (4), right (4), 4242 (4), 192 (4), 168 (4), 178 (4), side (4), name (4), configuration (4), create (4), copy (4), session (4), add (4), default (4), path (4), gvsbuild (4), python (4), scripts (4), compiling (4), files (4), pre (4), only (4), lanmouse (4), menu (4), wayfire (4), platform (4), lock (4), actions (4), quality (4), information (3), about (3), com (3), project (3), stars (3), linux (3), topics (3), sharing (3), uses (3), most (3), compositors (3), backends (3), environments (3), operating (3), systems (3), environment (3), sending (3), receiving (3), keys (3), ips (3), one (3), position (3), clients (3), known (3), iridium (3), incoming (3), traffic (3), example (3), event (3), src (3), binary (3), under (3), manually (3), used (3), mode (3), command (3), commands (3), section (3), control (3), directory (3), pipx (3), instance (3), run (3), system (3), org (3), devel (3), libxtst (3), libx11 (3), derivatives (3), update (3), find (3), hook (3), executable (3), sway (3), other (3), end (3), icons (3), hicolor (3), firewalld (3), services (3), terra (3), repositories (3), android (3), ios (3), currently (3), tools (3), software (3), agents (3), insights (3), pull (3), requests (3), signed (3), another (3), tab (3), refresh (3), sign (3), saved (3), documentation (3), feedback (3), grade (3), copilot (3), solutions (3), explore (3), time (2), manage (2), footer (2), 2026 (2), sponsors (2), latest (2), forks (2), 236 (2), gpl (2), hyprland (2), gtk4 (2), kvm (2), switch (2), udp (2), single (2), cursor (2), portal (2), virtual (2), unstable (2), provided (2), their (2), active (2), order (2), usage (2), measurement (2), visualization (2), encryption (2), liveness (2), tracking (2), graphical (2), bottom (2), top (2), 189 (2), needs (2), specified (2), define (2), authorized (2), defaults (2), bind (2), change (2), xdg_config_home (2), point (2), case (2), installed (2), important (2), systemctl (2), now (2), start (2), keep (2), running (2), help (2), interface (2), devices (2), authorize (2), button (2), found (2), conditional (2), compilation (2), otherwise (2), changes (2), should (2), power (2), set (2), new (2), https (2), chocolatey (2), first (2), dnf (2), fedora (2), pacman (2), arch (2), script (2), workspace (2), clippy (2), fmt (2), hooks (2), includes (2), tests (2), before (2), development (2), compiled (2), mkdir (2), scalable (2), apps (2), cache (2), applications (2), installation (2), bar (2), quarantine (2), apple (2), version (2), main (2), application (2), any (2), must (2), work (2), results (2), implementation (2), focus (2), additional (2), like (2), synergy (2), fork (2), deny (2), doc (2), rustfmt (2), gitignore (2), envrc (2), editorconfig (2), screenshots (2), proto (2), ipc (2), dylibs (2), aux (2), 529 (2), commits (2), last (2), message (2), projects (2), discussions (2), appearance (2), cancel (2), searches (2), business (2), advanced (2), developer (2), customer (2), devops (2), merge (2), perform, action, personal, cookies, contact, docs, status, privacy, terms, inc, languages, contributors, packages, learn, sponsor, jun, report, watching, watchers, activity, gplv3, tcp, todo, yet, creates, pixel, wide, edges, displays, protocol, wip, sessions, freedesktop, xdp, makes, protocols, wlr, pointer, sections, detail, suitable, chosen, compositor, required, requires, clipboard, bandwidth, latency, keycode, translation, server, offline, ungrab, unreachable, switching, respect, xdg, home, location, roadmap, where, either, 172, ethernet, wifi, thorium, least, 156, addresses, true, activate_on_startup, activate, immediately, started, host, authorized_fingerprints, accepted, tls, certificate, fingerprints, keyf, keyd, keya, release_bind, configure, key, symbols, named, according, names, bound, scancode, l172, tip, load, startup, parsed, actual, execstart, subcommand, launched, background, how, specific, cmd, accessed, passing, commandline, argument, line, still, entered, have, selected, opened, persisted, connections, fingerprint, authorization, general, form, connect, want, simply, click, enter, avoid, building, possible, disable, fail, variable, x64, librsvg, adwaita, theme, relaunch, powershell, reflected, pip, ensurepath, regular, executionpolicy, bypass, scope, process, force, iex, choco, msys2, visualstudio2022, workload, vctools, object, net, webclient, downloadstring, admin, tldr, then, follow, instructions, develop, apt, libgtk, ubuntu, brew, pkg, imagemagick, makeicns, dylib, dynamic, libraries, into, them, runs, fails, were, modified, test, targets, warnings, core, hookspath, per, clone, chmod, enforces, formatting, lints, allowing, but, prevent, committing, failing, unit, fixes, locally, checkout, layer_shell_capture, wlroots_emulation, needed, produces, additionally, frontends, configured, platforms, omitted, toolchain, result, target, compile, instead, downloading, easily, svg, xml, etc, rule, entry, replace, correct, rules, alternatively, below, precompiled, binaries, depenedencies, included, zip, necessary, manual, grant, accessibility, permissions, preferences, item, quit, bundled, builds, dock, visible, launch, remove, xattr, unzip, download, package, mac, intel, arm, after, enabling, fyralabs, nixpkgs, nixos, paru, prerelease, aur, official, proof, concept, here, rohitsangwan01, invisible, real, connected, machine, recent, newer, than, october, 23rd, plugins, shortcuts, inhibit, without, handle, modifier, ctrl, shift, alt, super, working, has, caveats, including, current, fully, encrypts, network, dtls, mitigations, place, timing, channel, attacks, webrtc, because, written, blazingly, fast, lies, performance, ease, maintainable, expanded, future, goal, alternative, proprietary, leap, deskflow, similar, universal, allows, multiple, pcs, also, cross, items, history, date, folders, tags, branches, options, star, notification, notifications, public, dismiss, alert, switched, accounts, out, resetting, qualifiers, our, query, filter, quickly, submit, include, email, contacted, read, every, piece, take, very, seriously, provide, syntax, tips, clear, users, jump, pricing, premium, ons, powered, collections, trending, archive, program, accelerator, maintainer, lab, programs, fund, developers, partners, trust, center, forum, skills, ebooks, reports, webinars, stories, type, topic, industries, government, manufacturing, financial, healthcare, industry, cases, devsecops, modernization, nonprofits, startups, small, medium, teams, enterprises, company, size, marketplace, changelog, blog, why, stop, leaks, they, secret, protection, secure, fix, vulnerabilities, enforce, review, plan, track, instant, codespaces, automate, workflow, workflows, integrate, external, mcp, registry, direct, issue, write, better, creation, toggle, skip, content,
Text of the page (random words):
work code review manage code changes code quality enforce quality at merge application security github advanced security find and fix vulnerabilities code security secure your code as you build secret protection stop leaks before they start explore why github documentation blog changelog marketplace view all features solutions by company size enterprises small and medium teams startups nonprofits by use case app modernization devsecops devops ci cd view all use cases by industry healthcare financial services manufacturing government view all industries view all solutions resources explore by topic ai software development devops security view all topics explore by type customer stories events webinars ebooks reports business insights github skills support services documentation customer support community forum trust center partners view all resources open source community github sponsors fund open source developers programs security lab maintainer community accelerator github stars archive program repositories topics trending collections enterprise enterprise solutions enterprise platform ai powered developer platform available add ons github advanced security enterprise grade security features copilot for business enterprise grade ai features premium support enterprise grade 24 7 support pricing search or jump to search code repositories users issues pull requests search clear search syntax tips provide feedback we read every piece of feedback and take your input very seriously include my email address so i can be contacted cancel submit feedback saved searches use saved searches to filter your results more quickly name query to see all available qualifiers see our documentation cancel create saved search sign in sign up appearance settings resetting focus you signed in with another tab or window reload to refresh your session you signed out in another tab or window reload to refresh your session you switched accounts on another tab or window reload to refresh your session dismiss alert message feschber lan mouse public uh oh there was an error while loading please reload this page notifications you must be signed in to change notification settings fork 236 star 5k code issues 97 pull requests 17 discussions actions projects security and quality 0 insights additional navigation options code issues pull requests discussions actions projects security and quality insights feschber lan mouse main branches tags go to file code open more actions menu folders and files name name last commit message last commit date latest commit history 529 commits 529 commits githooks githooks github github build aux build aux dylibs dylibs firewall firewall input capture input capture input emulation input emulation input event input event lan mouse cli lan mouse cli lan mouse gtk lan mouse gtk lan mouse ipc lan mouse ipc lan mouse proto lan mouse proto nix nix screenshots screenshots scripts scripts service service src src editorconfig editorconfig envrc envrc gitignore gitignore rustfmt toml rustfmt toml agents md agents md cargo lock cargo lock cargo toml cargo toml doc md doc md license license readme md readme md build rs build rs config toml config toml de feschber lanmouse desktop de feschber lanmouse desktop default nix default nix deny toml deny toml flake lock flake lock flake nix flake nix shell nix shell nix view all files repository files navigation readme gpl 3 0 license more items lan mouse lan mouse is a cross platform mouse and keyboard sharing software similar to universal control on apple devices it allows for using multiple pcs via a single set of mouse and keyboard this is also known as a software kvm switch goal of this project is to be an open source alternative to proprietary tools like synergy 2 3 share mouse and other open source tools like deskflow or input leap synergy fork focus lies on performance ease of use and a maintainable implementation that can be expanded to support additional backends for e g android ios in the future blazingly fast because it s written in rust now with a gtk frontend encryption lan mouse encrypts all network traffic using the dtls implementation provided by webrtc rs there are currently no mitigations in place for timing side channel attacks os support most current desktop environments and operating systems are fully supported this includes gnome 45 kde plasma 6 1 most wlroots based compositors including sway 1 8 hyprland and wayfire windows macos caveats known issues important x11 currently only has support for input emulation i e can only be used on the receiving end sway wlroots wlroots based compositors without libei support on the receiving end currently do not handle modifier events on the client side this results in ctrl shift alt super keys not working with a sending device that is not using the layer shell backend wayfire if you are using wayfire make sure to use a recent version must be newer than october 23rd and add shortcuts inhibit to the list of plugins in your wayfire config otherwise input capture will not work windows the mouse cursor will be invisible when sending input to a windows system if there is no real mouse connected to the machine for more detailed information about os support see detailed os support android ios a proof of concept for an android ios application by rohitsangwan01 can be found here it can be used as a remote control for any device supported by lan mouse installation arch linux lan mouse can be installed from the official repositories pacman s lan mouse the prerelease version following main is available on the aur paru s lan mouse git nix os nixpkgs search nixos org flake readme md fedora you can install lan mouse from the terra repository https terra fyralabs com after enabling terra dnf install lan mouse macos download the package for your mac intel or arm from the releases page unzip it remove the quarantine with xattr rd com apple quarantine lan mouse app launch the app use the menu bar item to open the settings window or quit lan mouse bundled macos builds run as a menu bar app and do not keep a dock icon visible grant accessibility permissions in system preferences manual installation first make sure to install the necessary dependencies precompiled release binaries for windows macos and linux are available in the releases section for windows the depenedencies are included in the zip file for other operating systems see installing dependencies alternatively the lan mouse binary can be compiled from source see below installing desktop file app icon and firewall rules optional install lan mouse replace path to with the correct path sudo cp path to lan mouse usr local bin install app icon sudo mkdir p usr local share icons hicolor scalable apps sudo cp lan mouse gtk resources de feschber lanmouse svg usr local share icons hicolor scalable apps update icon cache gtk update icon cache usr local share icons hicolor install desktop entry sudo mkdir p usr local share applications sudo cp de feschber lanmouse desktop usr local share applications when using firewalld install firewall rule sudo cp firewall lan mouse xml etc firewalld services enable the service in firewalld settings instead of downloading from the releases the lan mouse binary can be easily compiled via cargo or nix compiling and installing manually compile in release mode cargo build release install lan mouse sudo cp target release lan mouse usr local bin compiling and installing via cargo will end up in cargo bin cargo install lan mouse compiling and installing via nix you can find the executable in result bin lan mouse nix build conditional compilation support for other platforms is omitted automatically based on the active rust toolchain additionally available backends and frontends can be configured manually via cargo features e g if only support for sway is needed the following command produces an executable with support for only the layer shell capture backend and wlroots emulation backend cargo build no default features features layer_shell_capture wlroots_emulation for a detailed list of available features checkout the cargo toml development git pre commit hook this repository includes a local git hooks directory githooks with a pre commit script that enforces formatting lints and tests before allowing a commit it is optional to enable it but it will prevent you from committing code with failing unit tests or that needs clippy fmt fixes to enable the hook locally make the hook executable chmod x githooks pre commit point git to the hooks directory one time per clone git config core hookspath githooks the pre commit script runs cargo fmt all and fails if files were modified cargo clippy workspace all targets all features d warnings and cargo test workspace all features dependencies compiling from source macos install dependencies brew install libadwaita pkg config imagemagick cargo install cargo bundle create the macos icon file scripts makeicns sh create the app bundle cargo bundle copy all dynamic libraries into the bundle and update the bundle to find them there scripts copy macos dylib sh ubuntu and derivatives sudo apt install libadwaita 1 dev libgtk 4 dev libx11 dev libxtst dev arch and derivatives sudo pacman s libadwaita gtk libx11 libxtst fedora and derivatives sudo dnf install libadwaita devel libxtst devel libx11 devel nix nix shell nix flake nix develop windows first install rust then follow the instructions at gtk rs org tldr build gtk from source the following commands should be run in an admin power shell instance install chocolatey set executionpolicy bypass scope process force iex new object system net webclient downloadstring https community chocolatey org install ps 1 install gvsbuild dependencies choco install python git msys2 visualstudio2022 workload vctools the following commands should be run in a regular power shell instance install gvsbuild with python python m pip install user pipx python m pipx ensurepath relaunch your powershell instance so the changes in the environment are reflected pipx install gvsbuild build gtk libadwaita gvsbuild build gtk4 libadwaita librsvg adwaita icon theme make sure to add the directory c gtk build gtk x64 release bin to the path environment variable otherwise the project will fail to build to avoid building gtk from source it is possible to disable the gtk frontend see conditional compilation usage gtk frontend by default the gtk frontend will open when running lan mouse to connect a device you want to control simply click the add button and enter the hostname of the device on the remote device authorize your local device for incoming traffic using the authorize button under the incoming connections section the fingerprint for authorization can be found under the general section of your local device it is of the form aa bb cc authorized devices can be persisted using the configuration file see configuration if the device still can not be entered make sure you have udp port 4242 or the one selected opened up in your firewall command line interface the cli interface can be accessed by passing cli as a commandline argument use lan mouse cli help to list the available commands and lan mouse cli cmd help for information on how to use a specific command daemon mode lan mouse can be launched in daemon mode to keep it running in the background e g for use in a systemd service to do so use the daemon subcommand lan mouse daemon systemd service in order to start lan mouse with a graphical session automatically the systemd service can be used copy the file to config systemd user and enable the service cp service lan mouse service config systemd user systemctl user daemon reload systemctl user enable now lan mouse service important make sure to point execstart usr bin lan mouse daemon to the actual lan mouse binary in case it is not under usr bin e g when installed manually configuration to automatically load clients on startup the file xdg_config_home lan mouse config toml is parsed xdg_config_home defaults to config to create this file you can copy the following example config example config tip key symbols in the release bind are named according to their names in input event src scancode rs l172 this is bound to change example configuration configure release bind release_bind keya keys keyd keyf optional port defaults to 4242 port 4242 list of authorized tls certificate fingerprints that are accepted for incoming traffic authorized_fingerprints bc 05 ab 7a a4 de 88 8c 2f 92 ac bc b8 49 b8 24 0d 44 b3 e6 a4 ef d7 0b 6c 69 6d 77 53 0b 14 80 iridium define a client on the right side with host name iridium clients position left right top bottom position right hostname hostname iridium activate this client immediately when lan mouse is started activate_on_startup true optional list of known ip addresses ips 192 168 178 156 define a client on the left side with ip address 192 168 178 189 clients position left the hostname is optional when no hostname is specified at least one ip address needs to be specified hostname thorium ips for ethernet and wifi ips 192 168 178 189 192 168 178 172 optional port port 4242 where left can be either left right top or bottom roadmap graphical frontend gtk libadwaita respect xdg config home for config file location ip address switching liveness tracking automatically ungrab mouse when client unreachable liveness tracking automatically release keys when server offline macos keycode translation libei input capture macos input capture windows input capture encryption x11 input capture latency measurement and visualization bandwidth usage measurement and visualization clipboard support detailed os support in order to use a device for sending events an input capture backend is required while receiving events requires a supported input emulation and input capture backend a suitable backend is chosen automatically based on the active desktop environment compositor the following sections detail the emulation and capture backends provided by lan mouse and their support in desktop environments operating systems input emulation support desktop backend wlroots libei remote desktop portal windows macos x11 wayland wlroots ️ wayland kde ️ ️ wayland gnome ️ ️ windows ️ macos ️ x11 ️ wlroots this backend makes use of the wlr virtual pointer unstable v1 and virtual keyboard unstable v1 protocols and is supported by most wlroots based compositors libei this backend uses libei and is supported by gnome 45 or kde plasma 6 1 xdp this backend uses the freedesktop remote desktop portal and is supported on gnome and plasma x11 backend for x11 sessions windows backend for windows macos backend for macos input capture support desktop backend layer shell libei windows macos x11 wayland wlroots ️ wayland kde ️ ️ wayland gnome ️ windows ️ macos ️ x11 wip layer shell this backend creates a single pixel wide window on the edges of displays to capture the cursor using the layer shell protocol libei this backend uses libei...
|