How maxpoww/launcher works
Waverunner is a persistent Wayland dock and launcher: a user reveals or opens the dock, searches its app grid, then launches an app or acts on an Install/Files result. The daemon owns the UI event loop and coordinates discovery, filtering, rendering, and actions; the CLI is a separate control path over a Unix socket. The graph preserves the README’s intellihide, pinning, package install, and file-search capabilities. Several daemon links are based on documented behavior because the supplied daemon excerpts are partial.
Main entry points: src/main.rs Dock daemon · src/main.rs Control CLI · install.rs Package management · renderer.rs Dock surface
Components 19
Control and UI
- Control CLI
crates/client/src/main.rs - Command protocol
crates/proto/src/lib.rs - Dock daemon
crates/daemon/src/main.rs - Dock surface
crates/daemon/src/renderer.rs - Configuration
crates/core/src/config.rs
Discovery and search
- App discovery
crates/daemon/src/apps.rs - Fuzzy search
crates/core/src/search.rs - App index
crates/core/src/index.rs - File search
crates/daemon/src/files.rs
Launch and management
- App launch
crates/daemon/src/launch.rs - Package management
crates/daemon/src/install.rs - Dock pins
crates/daemon/src/pins.rs - App groups
crates/daemon/src/groups.rs - Saved state
crates/daemon/src/persist.rs
Desktop integration
- Wayland compositor
- Hyprland
- Nix package catalog
- Nix profile
Other components
- User
Connections 22
- User → Control CLI: sends commands
- Control CLI → Command protocol: parses command
- Control CLI → Dock daemon: sends socket command
- Dock daemon → Command protocol: decodes command
- User → Dock surface: uses dock
- Dock surface → Dock daemon: sends input
- Dock daemon → Dock surface: updates display
- Dock daemon → Wayland compositor: creates surface
- Dock daemon → Configuration: loads settings
- Dock daemon → App discovery: requests rescan
- App discovery → App index: builds index
- Dock daemon → Fuzzy search: ranks query
- Dock daemon → File search: searches files
- Dock daemon → App launch: launches selection
- Dock daemon → Package management: handles package action
- Package management → Nix package catalog: searches catalog
- Package management → Nix profile: installs or removes
- Dock daemon → Dock pins: updates pins
- Dock daemon → App groups: updates groups
- Dock daemon → Saved state: saves state
- Dock daemon → Hyprland: checks window overlap
- Hyprland → Dock daemon: reports window state