How kalkman-code/beamer works
Beamer shares keyboard, pointer and clipboard input between paired Macs, Windows PCs and Linux machines over a local network. The main user flow is to pair machines, configure crossing directions and edges, then cross by pushing the pointer or using a shortcut; the receiving machine injects the input. Shared modules implement pairing, wire protocol, peer state, crossing behavior and synchronized settings, while desktop apps provide platform-specific UI and input handling. The README documents the user workflow; source-index references support several internal links, but unsampled platform code limits detail on implementation relationships.
Main entry points: kvm_bridge_app.py macOS app · crossing_state.py Crossing state · kvm_bridge_win.py Windows and Linux app · receiver.py Connection responder
Components 20
Desktop apps
- macOS app
mac_app/kvm_bridge_app.py - Windows and Linux app
win_app/kvm_bridge_win.py
Crossing and input
- macOS crossing
mac_app/crossing.py - Pointer motion
mac_app/motion.py - Crossing state
core/crossing_state.py - Edge and zone rules
core/ways.py - Return-edge model
core/return_edge.py - Key mappings
core/keytable.py
Pairing and links
- LAN pairing
core/pairing.py - Paired machines
core/peerlist.py - Connection initiator
core/link.py - Connection responder
core/receiver.py - Wire protocol
core/protocol.py
Settings and design
- Machine profiles
core/profiles.py - Settings sync
core/settings_sync.py - Crossing effects
core/effects.py - Translations
core/i18n.py - macOS theme
theme.py - Design tokens
tokens.py
Other components
- User
Connections 30
- User → macOS app: configures
README.md - User → Windows and Linux app: configures
README.md - macOS app → LAN pairing: starts pairing
mac_app/kvm_bridge_app.py - Windows and Linux app → LAN pairing: starts pairing
win_app/kvm_bridge_win.py - LAN pairing → Paired machines: stores peer
core/peerlist.py - macOS app → Connection initiator: opens link
- Connection initiator → Wire protocol: uses wire format
core/link.py - Connection responder → Wire protocol: uses wire format
core/receiver.py - macOS app → Connection responder: runs responder
mac_app/kvm_bridge_app.py - Windows and Linux app → Connection responder: runs responder
win_app/kvm_bridge_win.py - macOS app → macOS crossing: handles crossing
mac_app/kvm_bridge_app.py - macOS crossing → Return-edge model: uses edge model
mac_app/crossing.py - macOS app → Crossing state: updates state
mac_app/kvm_bridge_app.py - Crossing state → Edge and zone rules: uses crossing rules
core/crossing_state.py - Crossing state → Machine profiles: loads profiles
core/crossing_state.py - Crossing state → Wire protocol: encodes state
core/crossing_state.py - Crossing state → Return-edge model: uses edge model
core/crossing_state.py - macOS app → Key mappings: uses key mappings
- macOS app → Pointer motion: handles pointer motion
mac_app/kvm_bridge_app.py - Connection responder → Paired machines: reads peer state
core/receiver.py - Machine profiles → Paired machines: reads peers
core/profiles.py - Machine profiles → Settings sync: uses sync state
core/profiles.py - Settings sync → Wire protocol: validates messages
core/settings_sync.py - Settings sync → Crossing effects: syncs design settings
core/settings_sync.py - macOS app → Crossing effects: renders effects
mac_app/kvm_bridge_app.py - macOS app → Translations: uses translations
mac_app/kvm_bridge_app.py - macOS theme → Design tokens: loads palettes
theme.py - User → macOS app: crosses or shortcuts
README.md - macOS app → Windows and Linux app: sends input and clipboard
README.md - Windows and Linux app → macOS app: sends input and clipboard
README.md