How anyrun-org/anyrun works
Anyrun is a Wayland-native, GTK-based launcher whose results are supplied by a separate anyrun-provider process. The main workflow is: a user starts or shows the launcher, enters a query, the UI sends it over provider IPC, and plugin-produced matches are displayed and selected for handling. Configuration controls launcher behavior and enabled plugins. The README also documents a broad set of distinct search and action plugins. Plugin-to-provider dispatch is shown as unverified because the sampled sources do not expose that wiring.
Main entry points: app.rs GTK launcher UI · main.rs CLI and daemon · mod.rs Randr backends · provider.rs Provider IPC worker
Components 25
Launcher runtime
- CLI and daemon
anyrun/src/main.rs - Launcher config
anyrun/src/config.rs - GTK launcher UI
anyrun/src/app.rs - Plugin match views
anyrun/src/plugin_box.rs - Provider IPC worker
anyrun/src/provider.rs
Plugin interface
- Plugin API
anyrun-plugin/src/lib.rs
Search plugins
- Applications search
plugins/applications/src/lib.rs - Desktop entry parsing
plugins/applications/src/scrubber.rs - Unicode symbols
plugins/symbols/src/lib.rs - Word definitions
plugins/dictionary/src/lib.rs - File search
plugins/kidex/src/lib.rs - Web search
plugins/websearch/src/lib.rs - Translation
plugins/translate/src/lib.rs - Calculator and units
plugins/rink/src/lib.rs - Nix app launch
plugins/nix-run/src/lib.rs - Stdin selector
plugins/stdin/src/lib.rs
Action plugins
- Shell commands
plugins/shell/src/lib.rs - Power and commands
plugins/actions/src/lib.rs - Niri window focus
plugins/niri-focus/src/lib.rs - Monitor configuration
plugins/randr/src/lib.rs - Randr backends
plugins/randr/src/randr/mod.rs - Hyprland backend
plugins/randr/src/randr/hyprland.rs - Dummy backend
plugins/randr/src/randr/dummy.rs
Other components
- User
- anyrun-provider
Connections 25
- User → CLI and daemon: starts or shows
anyrun/src/main.rs - CLI and daemon → Launcher config: loads settings
anyrun/src/main.rs - CLI and daemon → GTK launcher UI: launches
anyrun/src/main.rs - GTK launcher UI → Provider IPC worker: starts worker
anyrun/src/app.rs - Provider IPC worker → anyrun-provider: spawns and exchanges IPC
anyrun/src/provider.rs - GTK launcher UI → Provider IPC worker: sends queries
anyrun/src/app.rs - GTK launcher UI → Plugin match views: updates match views
anyrun/src/app.rs - Applications search → Desktop entry parsing: uses parsed entries
plugins/applications/src/lib.rs - Monitor configuration → Randr backends: uses backend API
plugins/randr/src/lib.rs - Randr backends → Hyprland backend: selects by compositor
plugins/randr/src/randr/mod.rs - Randr backends → Dummy backend: selects fallback
plugins/randr/src/randr/mod.rs - anyrun-provider → Plugin API: uses plugin API
- anyrun-provider → Applications search: dispatches plugin work
- anyrun-provider → Unicode symbols: dispatches plugin work
- anyrun-provider → Word definitions: dispatches plugin work
- anyrun-provider → File search: dispatches plugin work
- anyrun-provider → Web search: dispatches plugin work
- anyrun-provider → Translation: dispatches plugin work
- anyrun-provider → Calculator and units: dispatches plugin work
- anyrun-provider → Nix app launch: dispatches plugin work
- anyrun-provider → Stdin selector: dispatches plugin work
- anyrun-provider → Shell commands: dispatches plugin work
- anyrun-provider → Power and commands: dispatches plugin work
- anyrun-provider → Niri window focus: dispatches plugin work
- anyrun-provider → Monitor configuration: dispatches plugin work