# deskflow/deskflow

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/deskflow-deskflow).**

26,527 stars · 4,649 forks · C++ · GPL-2.0

## Links

- GitHub: https://github.com/deskflow/deskflow
- Homepage: https://deskflow.org
- awesome-repositories: https://awesome-repositories.com/repository/deskflow-deskflow.md

## Topics

`keyboard` `keyboard-emulation` `mouse` `mouse-emulation` `network`

## Description

Deskflow is a cross-platform input multiplexer that enables the use of a single mouse and keyboard to control multiple computers. By routing input signals over a local network, it functions as a software-based replacement for physical hardware switches, allowing users to manage several systems as a unified workstation environment.

The software operates using a client-server topology where a central controller manages input focus and connection state across remote nodes. It normalizes disparate operating system input APIs into a unified format, enabling consistent cursor movement and peripheral interaction across different machines. The system dynamically calculates screen geometry to map relative coordinate offsets, ensuring that input transitions between physical monitor boundaries remain accurate.

Beyond basic input routing, the tool synchronizes global settings and key-mapping definitions across all connected nodes. It utilizes asynchronous message serialization to transmit input packets over network sockets, minimizing latency during cross-machine signal transmission.

## Tags

### Networking & Communication

- [Software KVM Switches](https://awesome-repositories.com/f/networking-communication/software-kvm-switches.md) — Functions as a software-based replacement for physical hardware switches to move a cursor and keyboard between different networked computer systems.
- [Input Event Routers](https://awesome-repositories.com/f/networking-communication/input-event-routers.md) — Transmits raw mouse and keyboard event packets over TCP/IP sockets to remote machines for local input injection.

### Development Tools & Productivity

- [Cross-Platform Input Multiplexers](https://awesome-repositories.com/f/development-tools-productivity/cross-platform-input-multiplexers.md) — Synchronizes mouse and keyboard input across different operating systems to create a unified multi-monitor workstation experience.
- [Input Sharing Tools](https://awesome-repositories.com/f/development-tools-productivity/input-sharing-tools.md) — Enables the use of a single mouse and keyboard to control multiple computers by routing input signals across different operating systems. ([source](https://deskflow.org/deskflow/deskflow/wiki))
- [Desktop Workflow Orchestrators](https://awesome-repositories.com/f/development-tools-productivity/desktop-workflow-orchestrators.md) — Manages multiple displays and computers as a single cohesive environment to improve productivity and reduce physical desk clutter.

### Graphics & Multimedia

- [Coordinate Mapping](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/3d-math-and-geometry-toolkits/geometry-primitives/coordinate-mapping.md) — Calculates relative coordinate offsets between connected displays to translate cursor movement seamlessly across physical monitor boundaries.

### Software Engineering & Architecture

- [Cross-Platform Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-abstractions.md) — Normalizes disparate operating system input APIs into a unified internal format for consistent cross-platform behavior.
