Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spear Launcher Banner

The launcher GNOME didn't need. I did. You might as well.

Rust GTK4 / Libadwaita Linux / GNOME License


Spear Launcher Main View


After 8 years on Linux, I switched to Windows and got used to the convenience of launchers like Raycast and Flow Launcher. Returning to Linux, I deeply missed that polished workflow and the unified look of macOS. Spear is my attempt to bring that premium experience to Linux, using GNOME because of its consistent design code and unified Libadwaita theming.


✨ Features

⚡ Lightning Fast

Opens instantly with minimal latency when triggered via your hotkey, staying out of your way until you need it.

📂 File Previews

Preview text files and images directly from search results using high-quality system thumbnails.

🖼️ Image Preview

Browse and inspect images without opening a separate application.

🛠️ Built-in Plugins/Modes

Includes application search, calculator mode, web search suggestions, and terminal command execution.

🔌 Custom Plugins

Create search providers and integrations in Python, Node.js, Bash, or any language capable of writing to stdout.

🎨 Native GNOME Aesthetics

Built with Libadwaita and designed to blend seamlessly with GNOME and popular themes like Tokyo Night, Dracula, Catppuccin, and Gruvbox.

🚀 Installation

Prerequisites

Install Rust and the native GTK/Libadwaita development packages before building Spear:

sudo apt install build-essential pkg-config libgtk-4-dev libadwaita-1-dev

On Fedora:

sudo dnf install gcc pkg-config gtk4-devel libadwaita-devel

Option A: Local Installation (Recommended)

If you want to install Spear locally to your home directory:

  1. Run the installer script:
    ./install.sh
  2. Add to PATH: If ~/.local/bin is not in your PATH, add this to your ~/.bashrc or ~/.zshrc:
    export PATH="$HOME/.local/bin:$PATH"
  3. Start the launcher:
    spear
    Press Alt + Space to toggle the launcher!

Option B: Build Packages (DEB / RPM)

If you prefer to install Spear system-wide:

  • Package tool prerequisites:
    cargo install cargo-deb cargo-generate-rpm
  • Debian Package (.deb):
    cargo deb
  • Red Hat Package (.rpm):
    cargo build --release
    cargo generate-rpm

After installing the package, run spear --init-setup in your user session to configure autostart and hotkeys.


🔌 Writing Plugins

Add custom search engines by placing a folder with manifest.json and a script in ~/.config/spear/plugins/.

Manifest (manifest.json)

{
  "name": "Hello World",
  "keyword": "hello",
  "command": ["python3", "main.py"],
  "icon": "emblem-favorite-symbolic"
}

Script Output Schema

Your script should print a JSON list of items to stdout:

[
  {
    "id": "item-id",
    "title": "Item Title",
    "subtitle": "Item description",
    "icon": "mail-send-symbolic",
    "score": 100,
    "actions": [
      {
        "label": "Open Website",
        "type": "open-url",
        "value": "https://google.com"
      }
    ]
  }
]

🗺️ Roadmap

We plan to add more native features to Spear:

  • 🎵 Media Controls: Play, pause, skip, and see album art for media players.
  • 🖥️ Workspace Switcher: Quick window and workspace navigation.
  • 🧱 Window Tiling: Snapping window layouts (halves, quarters, custom grids).

📄 License

This project is licensed under the MIT License.

Releases

Packages

Contributors

Languages