-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Christopher Lee Murray edited this page Jan 15, 2026
·
2 revisions
A sleek, pill-shaped application launcher for Linux, built with Rust and GTK4. Designed with strict adherence to "Tree Architecture" for stability and maintainability.

-
Sleek Design: Transparent, pill-shaped UI (
border-radius: 30px). -
Fast Search: Fuzzy search through your installed applications (
.desktopfiles). - Visual Feedback: Displays application icons.
-
Keyboard Navigation:
-
Up/Down: Navigate results. -
Enter: Launch selected application (or Enter directory). -
Right Arrow: Enter highlighted directory (File Browser). -
Left Arrow: Go up one directory level (File Browser). -
Ctrl + 1-9: Quick launch the Nth result. -
Escape: Close the launcher.
-
- Status Indicators: Highlights running applications (bold text).
Launch uses strict prefixes to route your queries to different providers:
| Prefix | Name | Description | Example |
|---|---|---|---|
x |
Execute | Run a shell command in a terminal wrapper. |
x top (runs gnome-terminal -- top) |
f |
Files | Browse the filesystem. Use Left/Right keys to navigate. |
f /home/user/ |
ss |
Shortcuts | Run a saved shortcut. | ss term |
m |
Macros | Execute a sequence of commands (Macro). | m dev-setup |
c |
Calc | Solve math expressions (supports basic LaTeX!). | c \sqrt{16} * 2 |
! |
System | Power operations (suspend, reboot, poweroff). | ! reboot |
l |
Launch | Internal commands (Settings, About, Quit). | l settings |
Launch is fully configurable via an interactive UI.
- Type
l settings(orl set) and hit Enter. - Use the Tabs to switch between Shortcuts and Macros.
- Add: Click "Add" to define a new item.
- Delete: Select an item and click "Delete" to remove it.
Changes are persisted to ~/.config/launch/settings.json.
{
"shortcuts": {
"term": "gnome-terminal",
"web": "firefox"
},
"macros": [
{
"name": "morning",
"actions": [
"notify-send 'Good Morning'",
"firefox https://news.ycombinator.com"
]
}
]
}Launch runs as a background daemon.
- Run
launch toggleto show/hide the window. - Bind
launch toggleto a global shortcut in your Desktop Environment (e.g.,Super+Space).
- Language: Rust (2024 Edition)
- GUI: GTK4
- Architecture: Tree Architecture (Domain -> Application -> Interface -> Infrastructure)
- Rust & Cargo
- GTK4 development libraries (e.g.,
libgtk-4-devon Debian/Ubuntu,gtk4-develon Fedora)
git clone https://github.com/leechristophermurray/launch.git
cd launch
cargo run --releaseThe project includes a helper script to generate Linux packages.
./build_packages.shArtifacts will be output to:
target/debian/*.debtarget/generate-rpm/*.rpm
This project follows the Tree Architecture pattern:
- 🔴 Domain: Pure business entities (
App,Shortcut). - 🟡 Application: Use cases (
SearchApps,ExecuteCommand). - 🟢 Interface: abstract Ports (
IAppRepository). - 🔵 Infrastructure: Concrete Adapters (
LinuxAppRepoAdapter,AppWindow).
MIT License. See LICENSE for details.