~/work/owlryLive
Owlry
Lightweight Wayland application launcher built in Rust with GTK4 and Layer Shell — UI, daemon, and every provider in one binary. Apps, calculator, converter, clipboard, web search and more, with fuzzy tag search, frecency ranking, and Lua-first config.
What it does
A fast, configurable application launcher for Wayland compositors. UI client, a warm-keeping daemon, and every provider compile into a single binary, so the launcher appears instantly. Built-in providers cover apps, PATH commands, a calculator, a unit/currency converter, and power actions; optional providers add clipboard history, emoji, SSH hosts, systemd units, web and filesystem search, each gated behind a cargo feature. Fuzzy search with tags and filter prefixes, frecency ranking, named config profiles, ten GTK4 themes, and dmenu-compatible pipe mode. Configuration is Lua-first. The 2.x rewrite collapsed fifteen AUR packages and a dynamic plugin system into one feature-gated binary.
Problem
Wayland users need a launcher that stays fast while searching applications, commands, calculations, and optional system providers.
The previous plugin packaging split the project across fifteen AUR packages.
Constraints
- Overlay behaviour has to be Wayland-native through GTK4 and Layer Shell.
- Optional providers must not require a dynamic plugin runtime or fragment installation again.
How it's built
- You summon the launcher; the UI client talks to a warm daemon.
- The daemon runs providers for apps, PATH commands, calculator, converter, clipboard, and web search.
- Results are ranked by fuzzy match and frecency.
- IPC and a dmenu-compatible CLI mode drive the same daemon from scripts.
Engineering decisions
Warm daemon behind a small UI client
Keep provider state ready so opening the launcher does not rebuild it.
Trade-off Adds an IPC boundary and a long-running process.
Compile providers into one feature-gated binary
One artifact replaces a dynamic plugin system and fifteen packages.
Trade-off Changing the provider set requires a rebuild.
Expose dmenu-compatible pipe mode
Scripts can reuse the same ranking and provider path as the graphical client.
Trade-off The CLI and UI contracts must evolve together.
Evidence
- Distribution
- 1 binary
- AUR packages
- 15 → 1
- GTK4 themes
- 10
UI, daemon, and providers
Consolidated by the 2.x rewrite
Built-in themes with Lua-first config
Related case study
The project page describes what exists. The case study follows the decisions, constraints, and trade-offs behind it.
Case studyHighlights
- Single-binary architecture UI client, a warm-keeping daemon, and every provider compile into one binary; cargo features gate providers at build time so source installs pick a subset while the AUR build ships everything.
- Wayland-native Built on GTK4 and Layer Shell for proper overlay behaviour, with fuzzy tag search, frecency ranking, filter prefixes, and a dmenu-compatible pipe mode.