How maxpoww/waveview works
This is a Hyprland plugin whose C++ runtime combines a multi-workspace overview, a per-workspace window spread, stage/zoom transitions, and floating-window titlebars with window actions. The main workflow is compositor window/workspace state → capture and layout → interactive overview or spread → workspace/window changes and recapture. Rust supplies pure layout logic through a C ABI; the titlebar subsystem draws through Hyprland’s render pass. The README is empty, and the sampled main.cpp is partial, so uncertain event wiring and unsampled capability links are omitted.
Main entry points: main.cpp Plugin Runtime · golemBar.cpp Titlebar Decoration · bars.cpp Bar Lifecycle · BarPassElement.cpp Render Pass Element
Components 14
Overview and Capture
- Plugin Runtime
src/main.cpp - Workspace Capture
src/main.cpp - Overview Interaction
src/main.cpp - Workspace Spread
src/main.cpp - Stage and Zoom
src/main.cpp - Minimize Dock
src/main.cpp
Layout Logic
- Layout and Hit Testing
rust/src/lib.rs
Window Bars
- Bar Lifecycle
src/hyprbars/bars.cpp - Titlebar Decoration
src/hyprbars/golemBar.cpp - Bar Actions and State
src/hyprbars/barsGlobals.hpp - Render Pass Element
src/hyprbars/BarPassElement.cpp
Compositor and Daemon
- Hyprland Compositor
- Waverunner Daemon
Other components
- Desktop User
Connections 20
- Desktop User → Hyprland Compositor: uses desktop
- Hyprland Compositor → Plugin Runtime: provides runtime state
- Plugin Runtime → Workspace Capture: captures workspaces
- Workspace Capture → Hyprland Compositor: reads windows and renders
- Plugin Runtime → Layout and Hit Testing: calls layout logic
- Plugin Runtime → Overview Interaction: handles overview input
- Plugin Runtime → Workspace Spread: handles spread input
- Plugin Runtime → Stage and Zoom: controls transitions
- Plugin Runtime → Minimize Dock: handles minimize and restore
- Overview Interaction → Hyprland Compositor: changes focus and workspace
- Workspace Spread → Hyprland Compositor: moves windows
- Minimize Dock → Hyprland Compositor: parks minimized windows
- Plugin Runtime → Bar Lifecycle: initializes bars
- Bar Lifecycle → Titlebar Decoration: attaches decorations
- Titlebar Decoration → Render Pass Element: queues drawing
- Render Pass Element → Titlebar Decoration: renders decoration
- Titlebar Decoration → Bar Actions and State: reads button state
- Titlebar Decoration → Plugin Runtime: sends action messages
- Plugin Runtime → Waverunner Daemon: sends socket messages
- Waverunner Daemon → Plugin Runtime: supplies daemon commands