docs: render How-it-works diagram with Mermaid
This commit is contained in:
@@ -20,23 +20,27 @@ Plugs into your dock — external monitors turn on, built-in turns off. Unplug
|
||||
|
||||
## How it works
|
||||
|
||||
```
|
||||
┌─ Hyprland: socket2 .socket2.sock ──────┐
|
||||
compositor ───┤ ├──▶ monitor-lets-go daemon
|
||||
└─ Sway: i3 IPC $SWAYSOCK ────────────┘ │
|
||||
hotplug events │
|
||||
┌───────────────────────────────
|
||||
│ debounce 1200ms
|
||||
│ determine state (portable/docked)
|
||||
│ apply layout
|
||||
│ run hooks
|
||||
└──────────────┬───────────────
|
||||
│
|
||||
┌────────▼────────┐
|
||||
│ systemd │
|
||||
│ watchdog 30s │
|
||||
│ restart 1s │
|
||||
└──────────────────┘
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph WM["Compositor"]
|
||||
HYPR["Hyprland<br/>socket2 .socket2.sock"]
|
||||
SWAY["Sway<br/>i3 IPC $SWAYSOCK"]
|
||||
end
|
||||
|
||||
HYPR -->|hotplug events| DAEMON["monitor-lets-go daemon"]
|
||||
SWAY -->|hotplug events| DAEMON
|
||||
|
||||
subgraph LOOP["Event loop"]
|
||||
DAEMON --> DEBOUNCE["debounce 1200ms"]
|
||||
DEBOUNCE --> STATE["determine state<br/>(portable / docked)"]
|
||||
STATE --> APPLY["apply layout"]
|
||||
APPLY --> HOOKS["run hooks"]
|
||||
end
|
||||
|
||||
APPLY -->|Hyprland: monitors.lua + hyprctl reload<br/>Sway: swaymsg batch| WM
|
||||
|
||||
SYSTEMD["systemd<br/>watchdog 30s / restart 1s"] --> DAEMON
|
||||
POLL["fallback polling 5s"] --> STATE
|
||||
```
|
||||
|
||||
1. **Startup** — daemon queries connected monitors, determines portable/docked, applies layout
|
||||
|
||||
Reference in New Issue
Block a user