# Ulauncher: the hotkey launcher for Linux, between a v5 freeze and a v6 rewrite

> Ulauncher is a GPL-3.0 fast application launcher for Linux written in Python with GTK+, featuring fuzzy app search, a calculator, extensions, shortcuts, a file browser mode and custom color themes. The project sits mid-transition, maintaining the stable 5.16 series with no new features while pre-releasing the v6 rewrite, whose extension API is not yet fully set.

**Ulauncher/Ulauncher** — Feature rich application Launcher for Linux

- Repository: https://github.com/Ulauncher/Ulauncher
- Website: https://ulauncher.io
- Stars: 4,519 · Forks: 241
- Language: Python
- License: NOASSERTION
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/ulauncher-ulauncher

## The v6 rewrite, stated up front

The README opens with a warning that frames the whole project, this is the branch for the unreleased v6 release, and the v5 branch version lives elsewhere. The team is working on Ulauncher v6, which is a huge rewrite, and until then only existing v5 functionality is supported, no new features or improvements. Pre-releases for v6 are being made, but the new extension API is not yet 100 percent set and further major changes may come. This is unusual candor for a README, the project tells every visitor which of its two realities they are looking at, and the practical guidance follows, v5 for stability, v6 betas for the future, with the issue tracker carrying the rewrite's roadmap discussion.

## The feature set, from fuzzy to themes

The launcher's features are enumerated in one sentence, fast application launcher for Linux written in Python using GTK+, with app search using fuzzy matching, a calculator, extensions, shortcuts, file browser mode and custom color themes. The table of screenshots demonstrates the three visible ones, app search, file browser and color themes, and each feature corresponds to a launcher expectation, fuzzy matching so partial app names find their targets, shortcuts mapping keywords to URLs or commands, and the file browser mode turning the launcher into a filesystem navigator. The extension system is the differentiator, connecting the launcher to a community catalog, and the themes support keeps the appearance native to whatever desktop it runs on.

## systemd, and the two startup paths

Running Ulauncher on startup has a documented preferred path, if the distribution uses systemd and the package includes ulauncher.service, run:

```
systemctl --user enable --now ulauncher
```

and if not, open Ulauncher and enable Launch at Login in the preferences. The service file exists in the repository alongside a dbus service definition, io.ulauncher.Ulauncher.service, and the setup.py installs both into their system locations, share/dbus-1/services and lib/systemd/user, plus the desktop file and a gzipped man page. The dbus service entry is what lets the desktop environment activate the launcher on demand, the plumbing a hotkey application needs that most users never see.

## Three authors, three dependencies, one GTK binding

The package metadata names three authors, Aleksandr Gornostal, Albin Larsson and Troy Curtis, and the runtime dependencies are three, PyGObject, pycairo and python-xlib, the minimal set for a GTK3 application that manages windows on X11. The pyproject configuration reveals the code quality machinery, pyrefly with a strict preset for type checking, a pylint configuration with everything disabled except a hand-picked list of checks that other linters cannot yet detect, each with a comment explaining the real runtime error it catches, ruff for linting, and lefthook for git hooks. The requirements file pins the development environment, git-cliff for changelogs, rumdl and typos for prose, and pygobject-stubs with a config noting the Gtk3, Gdk3, Soup2 stack.

## A development Docker image that mirrors the support floor

The Dockerfile builds an Ubuntu 22.04 image for development, and its comments explain a subtle constraint, Python 3.8, the oldest version Ulauncher supports, is installed from the deadsnakes PPA for the test venv while the system python stays at 3.10 for apt and the deb build tooling. The comment continues, the system python3-gi is built for 3.10, so the 3.8 venv needs its own PyGObject built from source. The image also carries the deb packaging chain, debhelper, dh-python, devscripts and git-buildpackage, plus dput and paramiko for Ubuntu Launchpad uploads, showing the distribution surfaces the project maintains, Debian packages and PPAs, from one build environment. The makefile's docker target builds it.

## An extension ecosystem with three repositories

The contribution table maps the project's three surfaces, the Ulauncher app itself with contributor-friendly, Python, VueJS and Linux labels, the frontend for the extensions website built with ReactJS, and the API for the extensions website built with Python and the bottle library. The extension catalog at ext.ulauncher.io is thus its own full stack, a React frontend and a Python API, maintained beside the launcher, and each surface has its own contributor-friendly issue filter. TheVueJS label on the main app indicates the preferences UI, the web-technology panel inside the GTK shell, the same architecture v6 inherits. Troubleshooting lives in a dedicated GitHub discussions category, with issues reserved for the tracker.

## Two release trains in September 2026

The release history shows both tracks active in the same month, v6.0.0-beta35 on 2026-09-21 and the stable line's 5.16.1 on 2026-09-01 followed by 5.16.2 on 2026-09-17, with the repository pushed 2026-09-26. The 5.16 series receiving point releases while the team calls it feature-frozen means maintenance continues, bugs fixed, packaging updated, while the rewrite proceeds in parallel, and the beta counter at 35 tells how long the v6 road has been. For users deciding, the September 2026 picture is concrete, the stable launcher receives fixes, the beta advances weekly-ish, and the extension API change warning still stands on the beta side.

## Conclusion

Use Ulauncher when a keyboard-driven launcher should open apps, calculate, browse files and extend through a community ecosystem on Linux, and pick your track deliberately, the stable 5.16 series for reliability or the v6 betas for the rewrite with a changing extension API. Check the extension ecosystem at ext.ulauncher.io before adopting, since launcher value is mostly its extensions. Before installing, note the GPLv3 license, prefer the systemd user service with systemctl --user enable --now ulauncher when the package ships it, and fall back to the Launch at Login preference otherwise, and read the troubleshooting discussions before filing issues.

## FAQ

### What is Ulauncher for?

Ulauncher is a fast application launcher for Linux, opened by hotkey, with fuzzy app search, a calculator, shortcuts, file browser mode, custom color themes and an extension ecosystem. It is written in Python using GTK+ and licensed under GNU GPL v3.0.

### how to install ulauncher on ubuntu?

Download links and installation instructions are on ulauncher.io, and after installing, enable the launcher at startup with systemctl --user enable --now ulauncher if the package includes ulauncher.service, or by enabling Launch at Login in the preferences. The project provides deb packaging, and the v5 series is the stable track while v6 is in beta.

### Is Ulauncher open source?

Yes, Ulauncher is open source under the GNU GPL v3.0, with the source in the Ulauncher GitHub organization alongside the extension website's React frontend and Python bottle API, both also open for contribution.

### what does ulauncher do?

It provides a keyboard-driven launcher surface on Linux, searching applications with fuzzy matching, running calculations, browsing files, expanding through community extensions and mapping custom shortcuts, appearing on hotkey and staying out of the way otherwise, with pre-releases of a v6 rewrite currently shipping.

## Sources

- [Issues](https://github.com/Ulauncher/Ulauncher/issues)
- [Project website](https://ulauncher.io)
- [README](https://github.com/Ulauncher/Ulauncher/blob/main/README.md)
- [Releases](https://github.com/Ulauncher/Ulauncher/releases)
- [Ulauncher/Ulauncher on GitHub](https://github.com/Ulauncher/Ulauncher)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/ulauncher-ulauncher
