How arcsoftlabs/mouseshare works
MouseShare lets a person use one machine’s keyboard and mouse across networked computers, with automatic peer discovery, pairing, shared screen layout, clipboard sharing, and file transfer. The main path runs from the web UI through App orchestration and pairing to a host/client session; cursor and keyboard events then pass through platform capture or injection. README-described capabilities are included, but several implementation links rely on documentation because the relevant source was not sampled.
Main entry points: app.py App orchestration · app.js Web UI · session.py Host session · network.py Network transport
Components 20
User interaction
- Web UI
mouseshare/ui/web/app.js - App orchestration
mouseshare/app.py - UI state
mouseshare/state.py - Settings and peers
mouseshare/config.py
Connection and trust
- Peer discovery
mouseshare/discovery.py - Network transport
mouseshare/network.py - Pairing
mouseshare/pairing.py - Message protocol
mouseshare/protocol.py
Input sharing
- Host session
mouseshare/session.py - Client session
mouseshare/session.py - Input capture
mouseshare/capture.py - Input injection
mouseshare/inject.py - Platform input
mouseshare/linux.py
Layout and sharing
- Shared layout
mouseshare/layout.py - Monitor enumeration
mouseshare/monitors.py - Clipboard sharing
mouseshare/clipboard.py - File transfer
mouseshare/transfer.py - Transfer outbox
mouseshare/outbox.py
Other components
- User
- Other devices
Connections 28
- User → Web UI: uses
- Web UI → App orchestration: calls API
- App orchestration → Web UI: pushes snapshots
- App orchestration → UI state: updates
- App orchestration → Settings and peers: reads and saves
- App orchestration → Peer discovery: starts discovery
- Peer discovery → Other devices: finds peers
- App orchestration → Network transport: listens and connects
- Network transport → Other devices: exchanges messages
- App orchestration → Pairing: coordinates pairing
- App orchestration → Message protocol: encodes messages
- Network transport → Message protocol: decodes messages
- App orchestration → Host session: starts host session
- App orchestration → Client session: starts client session
- Input capture → Host session: reports input
- Host session → Input capture: suppresses input
- Host session → Message protocol: sends input events
- Client session → Input injection: applies events
- Input injection → Platform input: uses platform APIs
- Input capture → Platform input: uses platform APIs
- App orchestration → Shared layout: updates geometry
- App orchestration → Monitor enumeration: enumerates screens
- Web UI → App orchestration: sets layout offsets
- App orchestration → Clipboard sharing: coordinates sharing
- App orchestration → File transfer: coordinates transfers
- App orchestration → Transfer outbox: queues transfers
- File transfer → Other devices: transfers files
- Clipboard sharing → Other devices: shares text