Introduction
Ulauncher is a lightweight application launcher for Linux that provides quick access to apps, files, bookmarks, and custom actions through a keyboard-driven search interface. It fills the same role as Spotlight on macOS or PowerToys Run on Windows.
What Ulauncher Does
- Searches and launches installed desktop applications with fuzzy matching
- Browses files and directories with real-time path completion
- Runs custom web searches and calculator expressions
- Extends functionality through a community extension ecosystem
- Supports custom shortcut keywords for frequently used actions
Architecture Overview
Ulauncher is built with Python and GTK, running as a persistent background process that listens for a global hotkey. On activation, it presents an overlay search bar that queries an indexed list of desktop entries, files, and extension results. Extensions communicate via a WebSocket-based API, allowing both Python and script-based extensions to provide search results asynchronously.
Self-Hosting & Configuration
- Install via PPA (Ubuntu), AUR (Arch), RPM, or from the GitHub releases
- Configure hotkey, theme, and behavior from the preferences window
- Extensions are installed by pasting their GitHub URL into the extension panel
- Custom user shortcuts can map keywords to URL patterns or shell commands
- Autostart is configurable via the desktop environment autostart mechanism
Key Features
- Fuzzy search with smart ranking that learns from usage patterns
- Extension API with 300+ community extensions for various services
- Customizable themes with CSS-based styling
- Custom shortcuts for parameterized commands and URL templates
- Low memory footprint with fast startup time
Comparison with Similar Tools
- Albert — C++/Qt-based launcher with similar features but heavier resource usage
- Rofi — powerful but primarily a window switcher/dmenu replacement with steeper configuration
- dmenu — minimal and composable but requires scripting for app-launcher functionality
- GNOME Shell search — built-in but limited extension support and not available on other desktop environments
- Flow Launcher (Windows) — similar concept but Windows-only
FAQ
Q: Which Linux desktop environments does Ulauncher support? A: It works on GNOME, KDE, XFCE, i3, Sway, and most X11 or Wayland-based desktops.
Q: Can I write my own extensions? A: Yes. Extensions are Python packages that implement the Ulauncher extension API. A project template is available in the documentation.
Q: Does it support Wayland? A: Yes, with caveats. The global hotkey works on most Wayland compositors but may require compositor-specific configuration on some.
Q: How much memory does it use? A: Ulauncher typically uses 30-60 MB of RAM while running in the background.