• v0.1.0 6d7bdf6fbd

    crosspc 0.1.0 Stable

    sebas released this 2026-10-20 13:35:17 +00:00 | 130 commits to main since this release

    0.1.0 - 2026-10-20

    The first release. One keyboard, pointer, and clipboard across two Linux
    machines over an encrypted link. No GUI: configure crosspc.toml and run the
    crosspc commands.

    Added

    • Pointer sharing with proportional edge crossing, corner clamping, and
      multiple client screens per peer.
    • Keyboard routing with positional key mapping, so ISO and ANSI layouts on the
      two machines produce the right characters.
    • Clipboard sharing on Wayland through ext-data-control or wlr-data-control
      for text/plain, text/html, and image/png, chunked and hash-checked.
    • Pairing by fingerprint with crosspc pair, trust-on-first-use, and a
      server-side trust store reloaded for every handshake.
    • TLS 1.3 with mutual authentication; peers are pinned by SHA-256 certificate
      fingerprint, and a PairRequest cannot claim another machine's fingerprint.
    • Heartbeats, connection liveness, reconnects with backoff, and a watchdog that
      releases the input grab when the daemon stalls. A deadman option exits with
      status 3 after a stalled release.
    • crosspc setup writes the udev rule and prints the group steps; crosspc daemon, pair, status, layout, and clipboard-probe cover the rest.
    • Media keys and other unmapped key codes pass through to the local machine
      while the grab is held.
    • One clipboard write in flight per peer, bounded outbound queues, bounded
      frame sizes, and a capped set of handshake workers.

    Fixed before the first release

    • A read timeout in the middle of a frame no longer desynchronizes the stream;
      partial frames resume, with a 2 s absolute per-frame deadline.
    • A local-input send failure drops the peer that rejected the send and returns
      local control, including when the failure lands on an entering peer while
      another peer holds focus.
    • A stopped session no longer leaves a live connection heartbeating after the
      session forgot the peer.
    • The spawn-failure fingerprint rollback can no longer strand the input grab.
    • A silent LAN connection can no longer occupy the accept loop for the whole
      handshake deadline.

    Known limitations

    • Linux on both ends. macOS and Windows backends are later milestones.
    • No GUI, online pairing approval, or hotkey configuration.
    • The Linux backend is evdev/uinput; X11 sessions use the same path, including
      the pointer estimate that starts at screen centre and accumulates relative
      motion. X11 clipboard is not supported.
    • The live two-machine matrix, kill -9, and dropped-network tests have not
      run; the operator steps are in the plan's Milestone 4 results.
    Downloads