Inspiration

On Linux, applications arrive from many places - distribution packages, Flatpak, Snap, and user-local .desktop files - yet getting to the right app still often means clicking through menus or remembering where something lives. We wanted a fast, keyboard-first launcher that feels modern and lightweight: show it instantly, search once, launch, and get back to work without a heavy always-on UI.

What it does

Blink is a desktop overlay launcher for Linux. A global shortcut (default Ctrl+Space) opens a borderless window where you type to filter installed applications. It indexes Freedesktop entries from standard paths, Flatpak, Snap, and ~/.local/share/applications, then ranks matches so starts-with results surface before contains matches. Press Enter to launch the top result, or click a row to launch a specific app. Launches use gio launch so behavior aligns with the desktop environment. It also supports quick web search with g <query>.

How we built it

We used Tauri 2 for a small native shell and secure Rust logic on the backend, with Angular for the search UI. The Rust side builds and queries an application index from desktop entry sources, exposes commands to the frontend, and handles window show/hide plus global shortcut registration. The frontend debounces queries, renders results, and invokes Tauri commands to search and launch. We ship a Debian package (.deb) so installation and desktop integration are straightforward on common Linux distributions.

Challenges we ran into

  • Rust and Tauri were new territory: I was relatively inexperienced with Rust, and I had not used Tauri before, so early progress involved a steeper learning curve around ownership, tooling, and how the web frontend integrates with native capabilities.
  • First system-facing desktop tool: I had not built a system-level desktop utility previously, so aspects like global shortcuts, window lifecycle (show/hide/focus), and launching applications in a way that behaves well across Linux desktop environments required extra research and iteration.

Accomplishments that we're proud of

  • A unified launcher experience that brings system, Flatpak, Snap, and local applications into one searchable list.
  • A minimal overlay UX that stays out of the way—transparent, borderless, and oriented around speed.
  • A modern stack (Tauri 2 + Angular) with a real install path via .deb for practical day-to-day use, not just a demo.

What we learned

We deepened our understanding of the Freedesktop application model, how different packaging ecosystems surface metadata, and how to bridge Rust and a web UI cleanly through Tauri commands. We also learned how much polish matters for a launcher: debouncing, ranking, keyboard flow, and “feels instant” interactions are as important as the index itself.

What's next for Blink

  • Stronger quality-of-life features: recent apps, optional categories, and improved ranking/fuzzy matching where it helps without hurting speed.
  • Optional themes/accessibility improvements so the overlay stays readable on varied wallpapers and displays.
  • Changing system settings like brightness, volume from inside the launcher.

Built With

Share this project:

Updates

Submission history