-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
Welcome to the launch wiki!
Welcome to the Launch Wiki! This page serves as a comprehensive guide for new users and contributors to understand how the launcher works, how to install it, and the architecture behind it.
Launch is a sleek, pill-shaped application launcher for Linux. It is designed to be fast, extensible, and visually integrated into modern Linux environments.
Before building, ensure you have the following installed:
- Rust & Cargo (2024 Edition)
- GTK4 Development Libraries (libgtk-4-dev on Debian/Ubuntu, gtk4-devel on Fedora)
git clone [https://github.com/leechristophermurray/launch.git](https://github.com/leechristophermurray/launch.git)
cd launch
cargo run --releaseWe provide a helper script to build native packages:
./build_packages.sh
This will generate .deb and .rpm files in the target/ directory.
Or, feel free to use our built packages from our releases
Launch uses a "Provider" model based on query prefixes. Simply type the prefix followed by your query:
| Prefix | Name | Action | Example |
|---|---|---|---|
| (None) | App Search | Fuzzy search for installed apps | firefox |
| x | Execute | Run a shell command in a terminal | x top |
| f | Files | Browse and open files/folders | f /home/ |
| ss | Shortcuts | Execute a custom-defined shortcut | ss web |
| m | Macros | Run a sequence of defined actions | m dev-setup |
| c | Calc | Evaluate math (supports LaTeX!) | c \sqrt{16} |
| ! | System | Power operations (reboot, lock, etc.) | ! lock |
| l | Launch | Internal settings and about info | l settings |
Launch includes an interactive settings UI. To access it, type l settings in the search bar and press Enter. Here you can:
- Add/Remove Shortcuts (Key
$\rightarrow$ Command). - Define Macros (Name
$\rightarrow$ Series of actions). - All settings are persisted to ~/.config/launch/settings.json.
To ensure long-term stability, this project follows Tree Architecture. This is a strict, unidirectional dependency flow:
- π΄ Domain: Pure business logic (Models like App and Macro). No dependencies.
- π‘ Application: Orchestration and use cases (e.g., Omnibar logic).
- π’ Interface: Abstract ports and contracts (Traits).
- π΅ Infrastructure: Concrete implementations and adapters (GTK4 UI, Filesystem access, procfs monitor).
For the best experience, run Launch as a background process and bind the launch toggle command to a global keyboard shortcut (like Super+Space) in your Desktop Environment's settings.
For more detailed specifications, see the Tree Architecture Spec in the repository.