Owlry

Rust License GTK4 Wayland

A lightweight, owl-themed application launcher for Wayland, built with GTK4 and Layer Shell.

Features

  • Provider-based architecture - Search applications, PATH commands, and systemd user services
  • Fuzzy search - Fast, typo-tolerant matching across all providers
  • Filter tabs & prefixes - Scope searches with UI tabs or :app, :cmd, :uuctl prefixes
  • Systemd integration - Manage user services with submenu actions (start/stop/restart/status/journal)
  • GTK4 theming - Respects system theme by default, with optional custom themes
  • CSS variables - Full customization via config or custom stylesheets
  • Wayland native - Uses Layer Shell for proper overlay behavior

Installation

Dependencies

# Arch Linux
sudo pacman -S gtk4 gtk4-layer-shell

# Ubuntu/Debian
sudo apt install libgtk-4-dev libgtk4-layer-shell-dev

# Fedora
sudo dnf install gtk4-devel gtk4-layer-shell-devel

Build from source

Requires Rust 1.90 or later.

git clone https://somegit.dev/Owlibou/owlry.git
cd owlry
cargo build --release

The binary will be at target/release/owlry.

Usage

# Launch with default settings (GTK theme, all providers)
owlry

# Launch with only applications
owlry --mode app

# Launch with specific providers
owlry --providers app,cmd

# Show help
owlry --help

Keyboard Shortcuts

Key Action
Enter Launch selected item
Escape Close launcher / exit submenu
/ Navigate results
Tab Cycle filter modes
Shift+Tab Cycle filter modes (reverse)
Ctrl+1 Toggle Applications filter
Ctrl+2 Toggle Commands filter
Ctrl+3 Toggle systemd filter

Search Prefixes

Prefix Scope
:app Applications only
:cmd PATH commands only
:uuctl systemd user services only

Example: :cmd git searches only PATH commands for "git"

Configuration

Configuration file: ~/.config/owlry/config.toml

[general]
show_icons = true
max_results = 10
# terminal_command = "kitty"  # Auto-detected if not set

[appearance]
width = 600
height = 400
font_size = 14
border_radius = 12
# theme = "owl"  # Optional: "owl" or custom theme name

# [appearance.colors]
# Override individual colors (optional)
# accent = "#e0af68"
# background = "#1a1b26"

[providers]
applications = true
commands = true
uuctl = true

Default Values

Setting Default
show_icons true
max_results 10
terminal_command Auto-detected ($TERMINAL → xdg-terminal-exec → kitty/alacritty/etc)
width 600
height 400
font_size 14
border_radius 12
theme None (GTK default)

Theming

GTK Theme (Default)

By default, Owlry inherits colors from your system GTK4 theme (Adwaita, Breeze, etc.).

Owl Theme

Enable the built-in owl-inspired dark theme:

[appearance]
theme = "owl"

Custom Theme

Create a custom theme file at ~/.config/owlry/themes/mytheme.css:

:root {
    --owlry-bg: #1e1e2e;
    --owlry-bg-secondary: #313244;
    --owlry-border: #45475a;
    --owlry-text: #cdd6f4;
    --owlry-text-secondary: #a6adc8;
    --owlry-accent: #f38ba8;
    --owlry-accent-bright: #f5c2e7;
}

Then reference it in config:

[appearance]
theme = "mytheme"

CSS Variables Reference

Variable Description
--owlry-bg Main background
--owlry-bg-secondary Secondary surfaces
--owlry-border Border color
--owlry-text Primary text
--owlry-text-secondary Muted text
--owlry-accent Accent/highlight color
--owlry-accent-bright Bright accent
--owlry-font-size Base font size
--owlry-border-radius Border radius
--owlry-badge-app Application badge color
--owlry-badge-cmd Command badge color
--owlry-badge-dmenu Dmenu badge color
--owlry-badge-uuctl systemd badge color

Custom Stylesheet

For full control, create ~/.config/owlry/style.css with any GTK4 CSS.

Providers

Applications

Searches .desktop files from standard XDG directories.

Commands

Searches executable files in $PATH.

systemd User Services

Lists and controls user-level systemd services. Select a service to access actions:

  • Start / Stop / Restart / Reload
  • Kill (force stop)
  • Status (opens in terminal)
  • Journal (live logs in terminal)
  • Enable / Disable (autostart)

License

This project is licensed under the GNU General Public License v3.0 or later - see LICENSE for details.

Acknowledgments

Description
No description provided
Readme GPL-3.0 563 KiB
Languages
Rust 90.2%
CSS 7.4%
Just 2.3%
Shell 0.1%