Skip to content

Getting Started

Christopher Lee Murray edited this page Jan 15, 2026 · 4 revisions

Welcome to the launch wiki!

Getting Started with Launch

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.

🌟 Overview

Launch is a sleek, pill-shaped application launcher for Linux. It is designed to be fast, extensible, and visually integrated into modern Linux environments.

πŸš€ Installation

Prerequisites

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)

Building from Source

git clone [https://github.com/leechristophermurray/launch.git](https://github.com/leechristophermurray/launch.git)  
cd launch  
cargo run --release

Linux Packages

We 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

⌨️ Core Usage & Prefixes

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

βš™οΈ Configuration

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.

πŸ— Architecture: The "Tree" Pattern

To ensure long-term stability, this project follows Tree Architecture. This is a strict, unidirectional dependency flow:

  1. πŸ”΄ Domain: Pure business logic (Models like App and Macro). No dependencies.
  2. 🟑 Application: Orchestration and use cases (e.g., Omnibar logic).
  3. 🟒 Interface: Abstract ports and contracts (Traits).
  4. πŸ”΅ Infrastructure: Concrete implementations and adapters (GTK4 UI, Filesystem access, procfs monitor).

πŸ‘» Daemon Mode

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.