Run in awe! 🚀
A fast, minimal Wayland launcher built with Qt6 and QtQuick.
A system engineer’s launcher.
- Fuzzy search: Smart scoring with precision matching (Exact/Prefix/Fuzzy)
- Pins & Aliases: Pin favorite apps or create custom aliases (e.g.
gc->git commit) - Multiple modes:
- Desktop apps (
drun) - Supports Actions, Keywords, Categories ("Game", "Settings") - Command runner (
run) - Window switcher (
window) - Wayland window management - Process Manager (
top,kill) - New in 0.4.0 - SSH Launcher (
ssh) - New in 0.4.0
- Desktop apps (
- Provider Sets: Create custom workflows (e.g.,
--set dev) combining specific providers and filters. - Visual Polish: Context icons, empty state overlays, and smart fallbacks.
- Window controls: Switch, close, fullscreen, maximize, minimize, move to monitor
- Dmenu compliance: Scriptable input/output mode (-d)
- MRU boost: Recently used apps/windows appear higher in results
- Icon caching: Async loading with disk cache for instant startup
- Theming: YAML-based themes + base16 system theme support
- Performance: 76ms cold start, < 16ms search updates
- Wayland-first: Native Wayland support with Qt6
nix develop
cd build
cmake ..
makeRequirements:
- Qt6 (Quick, Gui, WaylandClient)
- yaml-cpp
- CMake 3.16+
- C++20 compiler
mkdir build && cd build
cmake ..
makeThe project logo is available in multiple sizes in the assets/
directory, ranging from 16x16 to 512x512 pixels, for use in various system
integrations.
# From build directory
sudo make install
# Or with Nix
nix buildExample configs are in examples/config/. Copy to ~/.config/awelauncher/:
mkdir -p ~/.config/awelauncher/themes
cp examples/config/config.yaml ~/.config/awelauncher/
cp examples/config/themes/*.yaml ~/.config/awelauncher/themes/# Launch desktop app picker
awelaunch --show drun
# Launch command runner
awelaunch --show run
# Launch window switcher (Wayland)
awelaunch --show window# Top processes (snapshot)
awelaunch --show top
# Kill process (fuzzy find + kill)
awelaunch --show kill
# Connect via SSH (parses ~/.ssh/config)
awelaunch --show sshDefine sets in config.yaml to mix providers, filter results, and customize the
prompt.
# Activate 'dev' set (e.g., run + top + ssh)
awelaunch --set dev# Use custom theme
awelaunch --theme catppuccin
# Enable debug output
awelaunch -g
# Override window geometry
awelaunch --width 1000 --height 50 --anchor top
# Dmenu mode (read stdin, print stdout)
echo -e "Option A\nOption B" | awelaunch -dAll modes:
Esc- Dismiss launcherEnter- Activate selected item↑/↓- Navigate results- Type to fuzzy search
Window mode only:
Ctrl+M- Move window to another monitorCtrl+D- Close windowCtrl+F- Toggle fullscreenCtrl+X- Toggle maximizeCtrl+N- Toggle minimize
- Controllers:
LauncherController- handles app launching and window actions - Models:
LauncherModel- manages items and search filtering - Providers:
DesktopFileLoader- scans .desktop filesIconProvider- async icon loadingWindowProvider- Wayland window enumeration and control
- Utils: Config, theme, fuzzy matcher, MRU tracker
See docs/rfcs/000-design-spec.md for full design specification.
- Startup: 76ms cold (exceeds < 50ms warm target)
- Search: < 16ms for 5k items
- Icons: Async + disk cache, never blocks typing
BSD-3-Clause
Built with Qt6, inspired by wofi and walker.

