explaingit

athxrvx/spear

17RustAudience · developerComplexity · 2/5LicenseSetup · moderate

TLDR

A keyboard-driven app launcher for GNOME Linux, press Alt+Space to open apps, run calculations, search the web, or browse files from one floating window, like Raycast on macOS.

Mindmap

mindmap
  root((spear))
    What it does
      GNOME app launcher
      Keyboard-activated search
      Alt+Space to open
    Built-in Modes
      App search
      Calculations and commands
      Web search suggestions
      File and image preview
    Custom Plugins
      Keyword triggers
      Any scripting language
      JSON result output
    Setup
      Rust and GTK4 required
      Shell script install
      Deb and RPM packages
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Open installed GNOME apps instantly by typing a few letters with Alt+Space, without touching the mouse.

USE CASE 2

Run quick math calculations or terminal commands directly from the launcher without opening a terminal.

USE CASE 3

Write a custom plugin in Python, Bash, or Node.js to surface your own search results inside Spear.

USE CASE 4

Preview text files and images directly in the launcher without opening a separate application.

Tech stack

RustGTK4Libadwaita

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Rust toolchain and GTK4/Libadwaita development libraries installed before building, a shell script handles the home-directory install.

MIT license, use freely for any purpose, including commercial, as long as you keep the copyright notice.

In plain English

Spear is a keyboard-activated application launcher for the GNOME desktop on Linux. Think of it as the Linux equivalent of Raycast on macOS or Flow Launcher on Windows: press a hotkey, type a few letters, and quickly launch apps, run calculations, search the web, or browse files, all from a single floating window without touching your mouse. The project was created by someone who returned to Linux after using Windows launchers and found nothing quite like them in the GNOME ecosystem. Spear is built using Rust and Libadwaita, which is the visual design framework that GNOME itself uses, so the launcher matches the appearance of the rest of your desktop and works with popular color themes like Tokyo Night, Dracula, Catppuccin, and Gruvbox. The default hotkey to open and close the launcher is Alt+Space. Once open, you can search for installed applications, run quick math calculations, execute terminal commands directly, get web search suggestions, preview text files and images from search results without opening a separate app, and browse your file system. Each of these capabilities is a built-in mode. You can also add custom plugins by creating a small folder in your configuration directory. Each plugin needs a manifest file that defines a keyword trigger and a command to run, plus a script in any programming language (Python, Node.js, Bash, or anything else) that prints a JSON list of search results to the terminal's standard output. Spear reads that output and displays it as search results, with actions like opening a URL or running a command. Installation requires Rust and the GTK4/Libadwaita development libraries. You can either install it into your home directory using the provided shell script, or build a Debian or Red Hat package for system-wide installation. The project is licensed under MIT.

Copy-paste prompts

Prompt 1
Write a Python plugin for Spear launcher that searches my ~/notes directory and returns matching filenames as results, with the action opening each file in my editor.
Prompt 2
I want a Spear plugin that queries a local REST API and formats the response as JSON results for the launcher. Write the manifest file and the Bash script.
Prompt 3
Help me install Spear on Ubuntu from source, walk me through installing the Rust toolchain and GTK4/Libadwaita dev libraries first.
Prompt 4
Write a Spear plugin manifest that triggers on the keyword 'jira' and opens a Jira ticket URL when I type the ticket number.
Open on GitHub → Explain another repo

← athxrvx on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.