docs: render How-it-works diagram with Mermaid

This commit is contained in:
Maksim Totmin
2026-08-06 12:33:20 +07:00
parent ab6cad0505
commit eefe7bcaf7
+21 -17
View File
@@ -20,23 +20,27 @@ Plugs into your dock — external monitors turn on, built-in turns off. Unplug
## How it works ## How it works
``` ```mermaid
┌─ Hyprland: socket2 .socket2.sock ──────┐ flowchart LR
compositor ───┤ ├──▶ monitor-lets-go daemon subgraph WM["Compositor"]
└─ Sway: i3 IPC $SWAYSOCK ────────────┘ │ HYPR["Hyprland<br/>socket2 .socket2.sock"]
hotplug events │ SWAY["Sway<br/>i3 IPC $SWAYSOCK"]
┌─────────────────────────────── end
│ debounce 1200ms
│ determine state (portable/docked) HYPR -->|hotplug events| DAEMON["monitor-lets-go daemon"]
│ apply layout SWAY -->|hotplug events| DAEMON
│ run hooks
└──────────────┬─────────────── subgraph LOOP["Event loop"]
DAEMON --> DEBOUNCE["debounce 1200ms"]
┌────────▼────────┐ DEBOUNCE --> STATE["determine state<br/>(portable / docked)"]
│ systemd │ STATE --> APPLY["apply layout"]
│ watchdog 30s │ APPLY --> HOOKS["run hooks"]
│ restart 1s │ 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 1. **Startup** — daemon queries connected monitors, determines portable/docked, applies layout