Expand description
FlowWM (flow) — a tiling window manager for Windows built
around a scrolling, infinite-horizontal-canvas layout model.
§Binaries
The project ships as two binaries inside a single Cargo package sharing this library crate:
| Binary | Role |
|---|---|
flowd | Daemon — owns all state, manages windows |
flow | CLI client — sends commands to the daemon via named-pipe IPC |
§Modules
workspace— layout orchestration (ScrollingSpace,Monitor,Workspace)layout— pure layout math: mutation + projection (zero Win32)registry— window metadata, classification, and the Win32 bridgeanimation— embedded animation crate (WindowAnimator,DwmFlushpacing)daemon—FlowWMcoordinator, hook handlers, dispatchipc— named-pipe server and message protocolconfig— TOML config (code is the single source of truth)common— shared bridge types (WindowId,Rect,Direction)
Every layout change flows through a pure three-stage pipeline —
mutate → project → animate — and all subsystems take &mut self (no
Arc<Mutex>; the borrow checker enforces exclusive access).
§Developer guide
Architecture diagrams, design rationale, the threading model, and deep
algorithm walkthroughs (classification, projection, animation) live in the
mdBook developer guide under docs/. Start with “How to Read This Book”
(docs/src/dev-guide/README.md), which explains the three-layer
documentation strategy used throughout the crate.
Modules§
- animation
- Embedded animation engine — rect-based HWND animation for Windows tiling window managers.
- autostart
- Daemon autostart and AutoHotkey lifecycle.
- borders
- Window border overlay engine — komorebi/Hyprland-style colored borders.
- common
- Common types shared across all modules.
- config
- Configuration parser, auto-creation, and JSON Schema generation.
- daemon
- FlowWM — the single top-level orchestrator for the
flowddaemon. - ipc
- IPC message types shared between
flowddaemon andflowCLI. - layout
- Layout engine — infinite horizontal canvas with camera-based viewport.
- logging
- Daemon logging initialization — date-stamped log file plus stderr tee.
- registry
- Window registry — authoritative source of truth for all tracked windows.
- workspace
- Workspace hierarchy — monitors, workspaces, and the scrolling/floating split.