Skip to content

Repository files navigation

Input Leaf 🍃

Use your PC's mouse and keyboard to control your Android phone or tablet over Wi-Fi/LAN. Input Leaf is a free, open-source Android client for Input Leap and compatible Deskflow setups — no USB cables and no root required.

Latest Release GitHub Stars CI Status Platform Root Status License

Download APK · Website · Quick Start · Input Leap Guide · Deskflow Guide · Troubleshooting · Issues

PC mouse + keyboard -> Local Network (Wi-Fi/LAN) -> Android phone / tablet
Move your desktop cursor off the edge of your monitor to smoothly glide onto your Android screen.


Overview

Input Leaf is an open-source Android client designed for software KVM switches. It connects seamlessly to Input Leap and compatible Deskflow servers running on your desktop or laptop (Windows, macOS, or Linux).

Instead of switching hands between your physical keyboard and phone touch screen, or constantly pairing Bluetooth devices, Input Leaf turns your phone or tablet into an additional screen in your desktop setup.

Why Input Leaf?

  • No root required — Works out-of-the-box using Shizuku or Android Accessibility APIs. Rooted devices can skip Shizuku and grant su for the same native HID path.
  • Ultra-low latency — Shizuku engine injects native system-level input events directly for zero perceptible lag.
  • Full mouse and keyboard sharing — Smooth cursor control, left/right/middle click, wheel scrolling, and hardware modifier keys (Ctrl, Alt, Shift, Meta).
  • Compatible with Input Leap & Deskflow — Speaks the standard open-source KVM protocol over TCP.
  • 100% local and private — All communication stays on your local area network (LAN); no cloud relays or external servers.
  • mDNS server auto-discovery — Finds compatible servers on your local Wi-Fi automatically.
  • Encrypted TLS connections — Supports TLS encryption with Trust-On-First-Use (TOFU) certificate pinning.
  • Battery efficient and resilient — Automatic exponential-backoff reconnects when network interruptions occur.
  • Material 3 Expressive design — Dynamic color on Android 12+, light and dark themes, and edge-to-edge screens.

Official Software & Lineage

Input Leaf acts as the client on your Android device. You will need a compatible server application running on your PC:

Software Role Official Links Description
Input Leap Desktop Server • Official GitHub Repository
• Download Releases
• Input Leap Wiki
Free, open-source software KVM sharing mouse and keyboard between computers. Successor to Barrier.
Deskflow Desktop Server • Official Website
• Official GitHub Repository
• Download Releases
Modern cross-platform keyboard and mouse sharing software.
Barrier Predecessor • Official GitHub Repository The upstream predecessor of Input Leap. Compatible with legacy setups.
Shizuku Android Tool • Official Website
• GitHub Repository
Grants system-level API access to Input Leaf without root permissions.

How It Works

┌──────────────────────────────────────────┐
│             Desktop / Laptop             │
│       (Windows / macOS / Linux)          │
│                                          │
│   Input Leap Server  /  Deskflow Server  │
└────────────────────┬─────────────────────┘
                     │
                     │  TCP Port 24800 (Wi-Fi / Ethernet LAN)
                     │  Optional TLS / mTLS Encryption
                     ▼
┌──────────────────────────────────────────┐
│          Android Phone / Tablet          │
│                                          │
│             Input Leaf App               │
│                    │                     │
│         ┌──────────┴──────────┐          │
│         ▼                     ▼          │
│   Shizuku or root       Accessibility    │
│  (System Injection)     (Stock Fallback) │
│  • Lowest latency     • Zero extra apps  │
│  • Full shortcuts     • Touch/node input │
└──────────────────────────────────────────┘

When your mouse crosses the configured border of your desktop monitor, the server sends coordinates and keystrokes over your local network to Input Leaf, which translates and injects them into Android in real time.


Quick Start

Synergy 3 (experimental)

For a Mac running Synergy 3.7.2, use the Synergy 3 setup guide. It covers screen registration, TLS fingerprints, and Shizuku setup. Compatibility has been tested on a Pixel 10 with a macOS server; other Synergy versions and platforms remain unverified.

1. Install Server on your PC

Download and install either:

2. Configure the Server Grid

  1. In the server application, choose Server (share this computer's mouse and keyboard).
  2. Click Configure Server... to open the screen grid layout.
  3. Drag a new screen from the top right into the grid and place it adjacent to your desktop screen (for example, to the right or below).
  4. Double-click the new screen and set the Screen name to match your Android device's Screen Name (view or customize it in Input Leaf under Settings -> Screen name; it defaults to your sanitized device model, such as pixel-8 or android-phone).
  5. Click OK and press Start.

Detailed Guides:

3. Install Input Leaf on Android

  1. Download the latest input-leaf_<version>_universal.apk from GitHub Releases.
  2. Open the APK on your Android device and tap Install.

4. Choose an Input Injection Engine

Open Input Leaf and complete the quick onboarding wizard:

  • Shizuku (Recommended on unrooted devices): Open the Shizuku app, start it via Wireless Debugging, and allow Input Leaf when prompted.
  • Root (rooted devices): Grant the Magisk/KernelSU su prompt. You do not need Shizuku if root is granted.
  • Accessibility Service (Fallback): Enable the Input Leaf Accessibility Service and Keyboard in Android Settings -> Accessibility. Native HID still needs Shizuku or root.

5. Connect

  1. Input Leaf will automatically discover the server on your local Wi-Fi. You can also tap + to enter the PC's IP address manually.
  2. Tap Connect.
  3. Push your PC mouse cursor across the configured monitor edge — your cursor will appear on your Android screen.

Shizuku vs. Accessibility Mode

Input Leaf offers two distinct input engines to match your device and preferences:

Feature / Capability Shizuku (Recommended) Accessibility (No Extra App)
Root Required No No
External Setup One-time Shizuku setup (Wireless Debugging) None (Enable in Android Settings)
Input Latency Ultra-Low (< 5ms) Low (~15–25ms)
Mouse Precision Native Absolute Cursor Mapping Gesture / Pointer Emulation
Mouse Buttons Left, Right, Middle Click Left Click; Right Click = Back on non-touch devices
Scroll Wheel Smooth, continuous scrolling Step scrolling
Modifier Keys Ctrl, Alt, Shift, Meta (Super/Win) Standard typing + Basic Modifiers
System Shortcuts Full (Alt+Tab, Meta+Enter, Home, Back) Limited by Android Accessibility APIs
Best For Power users, daily workstation setups Quick setups, restricted devices

Supported Android Shortcuts & Hotkeys

When using Shizuku Mode, Input Leaf passes through hardware-level keyboard shortcuts directly to Android:

Desktop Key / Shortcut Android Action
Super / Windows / Cmd Home Screen
Esc or Alt + ← Back Button
Alt + Tab Recent Apps / App Switcher
Ctrl + C / Ctrl + V Copy & Paste
Ctrl + A Select All
Ctrl + Z Undo
Print Screen Take Screenshot
Volume Up / Down / Mute Media Volume Controls
Media Play / Pause / Next Media Playback Controls

Screenshots

Material 3 Expressive UI with dynamic color (Android 12+) and a leaf-green fallback theme.

Onboarding

Onboarding: Welcome
Welcome
Onboarding: Choose an Input Method
Choose an Input Method
Onboarding: Accessibility Fallback
Accessibility Fallback

Home

Home: Disconnected
Disconnected
Home: Connecting
Connecting
Home: Connected & Ready
Connected & Ready

Servers

Servers: Discovered Servers
Discovered Servers
Servers: Favorites
Favorites
Servers: Connected Server
Connected Server
Servers: Add Manually
Add Manually
Servers: Trust on First Use
Trust on First Use

Permissions

Permissions: Shizuku Ready
Shizuku Ready
Permissions: Root Access
Root Access

Settings

Settings: Connection & Display
Connection & Display
Settings: Security
Security
Settings: About & Community
About & Community
Settings: Connection Security
Connection Security
Settings: Input Method
Input Method
Settings: Cursor Style
Cursor Style
Settings: Screen Name
Screen Name
Settings: Author Info
Author Info

Light Theme

Light Theme: Home
Home
Light Theme: Servers
Servers
Light Theme: Permissions
Permissions
Light Theme: Settings
Settings

Troubleshooting

1. Input Leaf cannot find or connect to my PC server
  • Network Isolation: Verify that both devices are on the same Wi-Fi network and that your router does not have "AP Isolation" or "Client Isolation" enabled.
  • Firewall Rules: Ensure that the desktop server application has permission to accept inbound connections on TCP Port 24800 in Windows Defender Firewall or ufw/iptables on Linux.
  • Screen Name Mismatch: Double check that the Screen Name configured in your desktop server's grid matches the client name set in Input Leaf Settings (case-sensitive).
  • Direct IP Entry: If mDNS auto-discovery fails, find your PC's local IP address (ipconfig on Windows or ip a on Linux) and add it manually in Input Leaf.
2. Keyboard works, but system shortcuts (Alt+Tab, Home) do nothing
  • Android Accessibility Service mode does not have system-level permissions to trigger navigation hotkeys.
  • Switch to Shizuku Mode for full hardware keyboard emulation and system shortcut support.
3. Cursor does not appear over notifications or Quick Settings panel
  • Android's security architecture restricts standard overlay windows (TYPE_APPLICATION_OVERLAY) from rendering over system panels like Quick Settings, the notification shade, and the lockscreen.
  • If you need pointer interactions in the notification shade, enable Input Leaf's Accessibility Service, which provides accessibility-level overlay coverage.
4. Connection drops when the screen locks or app is in the background
  • Android OEMs often enforce aggressive battery-saving policies.
  • In Android Settings -> Apps -> Input Leaf -> Battery, set battery usage to Unrestricted and allow background activity.
5. Shizuku says "Not Running" after restarting the phone
  • On non-rooted devices, Android disables the Shizuku wireless debugging process upon reboot.
  • Open the Shizuku app, tap Pairing or Start under Wireless Debugging to re-enable it.

Frequently Asked Questions (FAQ)

Is Input Leaf completely free and open source? Yes. Input Leaf is 100% free, ad-free, and licensed under the permissive Apache License 2.0.
Does Input Leaf send any data to external servers? No. All mouse, keyboard, and handshake packets travel strictly between your PC and Android device across your local Wi-Fi or Ethernet network.
Can I connect multiple Android devices to the same PC? Yes. You can add multiple screens in the Input Leap / Deskflow server grid (for example, one phone on the left, one tablet on the right) and connect each device running Input Leaf.
Which Android architectures are supported? Releases provide universal APKs as well as targeted builds for `arm64-v8a`, `armeabi-v7a`, and `x86_64`. Universal works on all supported Android 8.0+ devices.

Contributing

Contributions, feature suggestions, and bug reports are welcome:

  1. Fork the repository on GitHub.
  2. Create a feature branch (git checkout -b feat/my-new-feature).
  3. Commit your changes with descriptive messages (git commit -m "feat: add support for custom hotkey mapping").
  4. Push to your branch (git push origin feat/my-new-feature).
  5. Open a Pull Request.

Check out our Issue Tracker or start a discussion on the Community Forum.


Contributors

Input Leaf is better because of these people. Thank you!

@guaje (Javier Guaje)

  • Test suite and CI: proposed and built the project's testing plan (#8):
    • Fast JVM test foundation and CI pipeline (#14)
    • Protocol and UHID behaviour tests (#15)
    • Connection, transport and TLS tests (#21)
    • Coverage reporting with Kover and Codecov (#33)
    • Android coverage smoke tests (#38)
    • On-device ConnectionService lifecycle tests (#32, shipped in 1.4.3 via #57)
  • Build: upgraded to AGP 9.4, Kotlin 2.4.10 and compileSdk 37, and introduced the Gradle version catalog (#40).
  • License: added the Apache-2.0 license (#7).
  • Reviews: reviewed the 1.4.2 release (#44) and reported the UHID issues fixed in 1.4.3 (#48–#52).
  • Synergy 3 support (experimental): made Input Leaf work with Synergy 3.7.2 on macOS: the handshake fix, Mac keycode mapping, signed mouse deltas, and the synergy3_setup.py script with its setup guide (#53, #58; requested in #47). Shipped in 1.4.3.
  • Android 10 and older: fixed the crash on devices below Android 11 and made unreachable servers retry instead of crashing the app (#4).
  • Shizuku on Onyx Boox: found and fixed Shizuku never connecting on Onyx Boox tablets, where the vendor's Android build crashes Shizuku's service starter. Input Leaf now falls back to starting the injector itself (#63, reported in #62). Shipped in 1.4.5.

Want to see your name here? Check out Contributing.


Author & Acknowledgments


License

Input Leaf is licensed under the Apache License 2.0. See the LICENSE file for details.