Skip to content
← projectsdev

united-stations

Three attempts at the same problem. Keyboard, mouse and clipboard between macOS and Windows.

3implementations2 OSmacOS + WindowsRust / C++languages

The problem

MacBook and Windows PC on the same desk, one keyboard and mouse. Existing solutions (Synergy, Barrier, InputLeap) share the same flaws: expensive, fragile setup, or broken by OS updates. I decided to understand the protocol and build it myself — which resulted in three implementations with three different strategies, each one documenting why the previous was not enough.

The data

No dataset: systems engineering. The real problem is local network latency, input driver behaviour on macOS (IOKit) and Windows (RAWINPUT), and clipboard semantics on each OS (MIME types, RTF format, images).

Approach

  • deskflow-plus: Deskflow fork in C++ to fix three specific bugs in my VLAN network config — the fastest path to something working
  • united-stations: full reimplementation in Rust with a custom network protocol — the goal was to understand the real problem, not patch the existing one
  • cliptomaniac: isolated subproblem of clipboard only — in use while the other two are being developed
  • All three remain alive and documented: deskflow-plus code includes comments on the original Deskflow bugs that justify each change

Tools

rust
c++

Result

cliptomaniac is in active production. united-stations in active development. The most valuable part of the project is the process documentation: why deskflow-plus was not the right solution even though it worked, and what I learned about the protocol by reimplementing it from scratch.

Next steps

united-stations is pending completion of cross-OS clipboard image handling (the format varies between raw PNG, BMP and compound MIME types). Once that blocker is resolved, the goal is to run it in production as a full replacement for deskflow-plus.