Skip to content

MegalithOfficial/Rift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rift

Rift is an early Rust/GTK launcher for Linux. The goal is a small, keyboard-first command palette in the same category as Ulauncher, but built around native GTK, desktop portals, and fast local providers.

It is usable for basic testing today, but it is not packaged or stable yet.

Current State

Rift currently has:

  • a resident GTK launcher window
  • GNOME/Wayland global shortcut support through the XDG GlobalShortcuts portal
  • app search backed by gio::AppInfo
  • weighted fuzzy ranking with acronym, word-boundary, subsequence, typo-tolerant, and usage-history scoring
  • app launching with Enter
  • calculator results for expressions such as 12 / 3 + 7
  • terminal command results for queries prefixed with >, such as > flatpak update
  • persistent usage history stored under ~/.local/state/rift/history.tsv
  • dismiss on Esc and focus loss
  • simple fade in/out animation

The UI is still in flux. The current work is focused on behavior and launcher ergonomics before final styling.

Requirements

  • Rust toolchain
  • GTK4 development files
  • Libadwaita development files
  • a desktop portal backend with org.freedesktop.portal.GlobalShortcuts for the global shortcut

The shortcut flow has been tested against GNOME's portal path. Other desktops may behave differently or not support the portal yet.

Run

For normal development:

cargo run

For resident/background testing:

cargo build
setsid nohup ./target/debug/rift >/tmp/rift.log 2>&1 < /dev/null &

Rift also exposes command targets for desktop-specific custom shortcut systems:

./target/debug/rift --show
./target/debug/rift --hide
./target/debug/rift --toggle
./target/debug/rift --quit

Those commands target the resident instance, so they can be used as a fallback on desktops where the GlobalShortcuts portal is missing or incomplete.

Global Shortcut Setup

In development, the portal needs a desktop entry for dev.rift.launcher. Build once, then install the local desktop entry:

cargo build
./scripts/install-dev-desktop-entry.sh

This writes:

~/.local/share/applications/dev.rift.launcher.desktop

The entry points at the local debug binary in target/debug/rift.

Rift currently requests Ctrl+Space as the preferred summon shortcut. GNOME may show a portal dialog the first time and can accept, reject, or change the binding.

Query Syntax

  • Type an app name to search installed applications.
  • Type a calculator expression to copy the result, for example 2 + 2.
  • Prefix a command with > to run it in a terminal, for example > htop.

Known Limitations

  • No file or folder provider yet.
  • No packaged install target yet.
  • The calculator uses meval, which currently pulls an old nom version that emits a future-compat warning.
  • Global shortcuts depend on the desktop portal implementation.

About

A modern Linux command palette and app launcher focused on speed, privacy, and keyboard workflows.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors