How ramous19/omarchy-wireless-display works
Omarchy Wireless Display is a desktop Miracast source: users discover sinks, connect and negotiate a WFD session, then stream captured video; optional UIBC returns sink input to the desktop. The Quickshell panel and CLI are clients of a state-owning daemon. README documents duplicate/extend projection, manual sinks, diagnostics and input passthrough. The graph reflects documented capabilities where source excerpts were incomplete; persistence details and some internal wiring are not inferred.
Main entry points: daemon.py Cast daemon · uibc.py UIBC server · doctor.py Diagnostics · Panel.qml Bar panel
Components 19
User clients
- Bar panel
Panel.qml - Panel model
Model.js - QML service
Service.qml - CLI client
lib/omarchycast/cli.py
Daemon control
- Cast daemon
lib/omarchycast/daemon.py - Cast state
lib/omarchycast/state.py - Diagnostics
lib/omarchycast/doctor.py
Miracast session
- Sink discovery
lib/omarchycast/discovery.py - NetworkManager P2P
- P2P connection
lib/omarchycast/p2p.py - P2P helper
setup/omarchy-cast-p2p-helper - Miracast sink
- RTSP negotiation
lib/omarchycast/rtsp.py - Capture and stream
lib/omarchycast/stream.py - Capture tools
Input return
- UIBC server
lib/omarchycast/uibc.py - Virtual input
lib/omarchycast/uinput.py - Desktop input
Other components
- Desktop user
Connections 25
- Desktop user → Bar panel: controls
- Bar panel → Panel model: normalizes state
- Bar panel → QML service: requests actions
- Desktop user → CLI client: runs commands
- QML service → CLI client: invokes
- CLI client → Cast daemon: sends RPC
- Cast daemon → Cast state: updates state
- Cast daemon → Sink discovery: scans peers
- Sink discovery → NetworkManager P2P: reads peers
- Cast daemon → P2P connection: connects peer
- P2P connection → P2P helper: dispatches
- P2P helper → NetworkManager P2P: configures P2P
- Cast daemon → RTSP negotiation: negotiates session
- RTSP negotiation → Miracast sink: exchanges RTSP
- Cast daemon → Capture and stream: starts stream
- Capture and stream → Capture tools: captures encodes
- Capture and stream → Miracast sink: streams RTP
- Cast daemon → UIBC server: starts input server
- RTSP negotiation → UIBC server: advertises port
- Miracast sink → UIBC server: sends input
- UIBC server → Virtual input: injects events
- Virtual input → Desktop input: creates devices
- Diagnostics → Capture tools: checks availability
- Diagnostics → NetworkManager P2P: checks P2P
- Diagnostics → Desktop input: checks access