Version License Platform Qt C++ Nix
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 .. make
The 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 build
Example 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 ssh
Define 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 -d
All 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.