How to Install Ulauncher on Ubuntu: A Fast Application Launcher for Linux
Ulauncher brings the Spotlight or Alfred experience to Linux: press a hotkey, type a few letters, hit enter. Matching is fuzzy, so frfx still finds Firefox, and results are ranked by what you actually use, so the apps you open every day rise to the top on their own.
It is more than an app menu, though. Ulauncher evaluates calculations inline, browses the filesystem, runs keyword-driven web searches, and loads community extensions that add clipboard history, emoji pickers, window switching, translation and plenty more. Under the hood it is Python and GTK 3, and it stays invisible until you call it.
Ulauncher is not in the Ubuntu archive. The usual options are the project’s PPA or a .deb grabbed from a GitHub release, and the second of those leaves you tracking updates by hand.
The unofficial deb.griffo.io repository packages Ulauncher for APT alongside a long list of other tools, so if you already use the repository, this is one more apt install rather than another third-party source.
Install the Latest Ulauncher on Ubuntu: The Short Version
If you only came for the commands, this adds the repository and installs the latest Ulauncher .deb package on Ubuntu:
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt update
sudo apt install ulauncher
The rest of this guide explains what each command does, how to verify the install, how to keep Ulauncher up to date, and what to check when something goes wrong.
What Makes Ulauncher Special?
- 🔍 Fuzzy search - Approximate names still match, and frequently chosen results climb the ranking over time.
- 🧩 Extensions - A public directory of community extensions for clipboard history, emoji, window switching, password managers and more.
- 🧮 Built-in calculator - Type an expression, read the answer, press enter to copy it.
- 📁 File browsing - Begin with
~or/to navigate the filesystem and open files or folders directly. - 🌐 Custom shortcuts - Keyword web searches (
gfor Google andsofor Stack Overflow are built in) plus any you define. - 🎨 Themes - Light, dark and custom themes, switchable from the preferences window.
- ⌨️ Global hotkey -
Ctrl+Spaceout of the box, configurable, with aulauncher-togglecommand for custom bindings. - 🚀 Runs in the background - A systemd user service keeps it resident so the window opens instantly.
Why Use the deb.griffo.io Repository?
- Easy installation and updates through APT, with no release page to monitor.
- Automatic dependency management for the GTK and GObject introspection packages Ulauncher needs.
- Always tracks upstream releases so you stay near the latest Ulauncher.
- One repository for many tools rather than a separate PPA just for the launcher.
- Works across supported Ubuntu releases, with the codename detected for you.
Prerequisites
Before starting, confirm you have:
- An Ubuntu system (Jammy 22.04 LTS, Noble 24.04 LTS, or newer)
- A graphical desktop session; Ulauncher is a desktop app, not a server tool
sudoprivilegescurlinstalled (sudo apt install curlif needed)
Step 1: Add the deb.griffo.io Repository
Register the key and repository source:
# Create the keyrings directory
sudo install -d -m 0755 /etc/apt/keyrings
# Download and install the repository GPG key
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
# Add the repository (auto-detects your distro codename)
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
# Update the package list
sudo apt update
Breaking it down:
- Create the keyrings directory - makes sure
/etc/apt/keyringsexists with the right permissions. - Install the GPG key - downloads and de-armours the repository key into its own keyring so APT can verify signatures.
- Add the repository - writes a
signed-bysource line, lettinglsb_release -scfill in your Ubuntu codename. - Update the package list - refreshes APT’s view of available packages.
Step 2: Update the Package List
If you did not run the final command above, do it now:
sudo apt update
Step 3: Install Ulauncher
Install with APT:
sudo apt install ulauncher
APT resolves the GTK 3, WebKit, keybinder and Python GObject dependencies for you, which is the main practical advantage over downloading a .deb by hand.
Step 4: Verify the Installation
Check the version:
ulauncher --version
You should see something like:
ulauncher 5.15.15
Launch it from the Activities overview, or start it hidden from a terminal:
ulauncher --hide-window
Press Ctrl+Space and the launcher should appear.
Getting Started with Ulauncher
Starting It Automatically
The package ships a systemd user service, so Ulauncher starts with your session:
# Start now and enable at login
systemctl --user enable --now ulauncher
# Check it is running
systemctl --user status ulauncher
The unit runs ulauncher --hide-window, so it waits quietly in the background instead of appearing at login. A desktop entry is installed too, if you would rather manage it through GNOME’s Startup Applications.
Everyday Use
Ctrl+Space open the launcher
firefox fuzzy-match and launch an application
2+2*10 calculate, then press enter to copy the result
~/Documents browse files from your home directory
/etc/apt browse an absolute path
g ubuntu noble release search Google (a default shortcut)
so systemd user unit search Stack Overflow (a default shortcut)
Arrow keys move between results, Alt+1 … Alt+9 jump to a numbered result, and Escape closes the window.
Preferences, Themes and Shortcuts
Type Ulauncher Preferences into the launcher, or use the tray icon. From there you can:
- Change the hotkey away from
Ctrl+Space. - Choose a colour theme, light or dark.
- Set the number of results shown and toggle the tray icon.
- Add custom shortcuts: a keyword plus a URL containing
%s, or a shell command.
Custom shortcuts pay for themselves quickly. Map jira to https://your-company.atlassian.net/browse/%s and jira PROJ-123 opens the ticket without touching the browser first.
Extensions
Browse the extension directory, copy the GitHub URL of one you like, then in Preferences go to Extensions → Add extension and paste it. Extensions are Python, run in their own process, and are updated from the same screen.
Configuration on Disk
Everything lives under your home directory:
# Settings, shortcuts and installed extensions
ls ~/.config/ulauncher
# Extension data and themes
ls ~/.local/share/ulauncher
Easy to back up, easy to carry to another machine.
Keeping Ulauncher Updated
Ulauncher upgrades with the rest of Ubuntu:
sudo apt update && sudo apt upgrade
After an upgrade, restart the service so the running instance is the new one:
systemctl --user restart ulauncher
Other Tools from deb.griffo.io
The repository has plenty more for a well-tuned desktop:
- Ghostty - a fast, GPU-accelerated terminal to launch from Ulauncher.
- fzf - the same fuzzy-finding idea, one layer down in the terminal.
- Zed - a high-performance code editor.
- fastfetch - a quick system information display.
Troubleshooting
GPG or Key Errors
If APT flags the repository as unsigned or the key as invalid, re-import it:
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update
Package Not Found
If APT cannot locate ulauncher:
- Re-run
sudo apt updateafter adding the repository. - Verify your Ubuntu release is supported (Jammy, Noble, or newer).
- Check the source list:
cat /etc/apt/sources.list.d/deb.griffo.io.list.
The Hotkey Does Nothing on Wayland
Recent Ubuntu releases default to a Wayland session, where the compositor owns global shortcuts and an application cannot grab Ctrl+Space for itself. Bind the shortcut in GNOME instead:
Settings → Keyboard → Keyboard Shortcuts → View and Customize Shortcuts → Custom Shortcuts → +
Set the command to:
ulauncher-toggle
and pick any key combination. ulauncher-toggle talks to the running instance over D-Bus, so Ulauncher must already be running, which is what the systemd user service above is for.
The Ulauncher PPA Is Also Installed
If you previously added the project’s PPA, two sources now offer the package. Check which one APT prefers:
apt policy ulauncher
Remove the PPA if you would rather use this repository:
sudo add-apt-repository --remove ppa:agornostal/ulauncher
sudo apt update
Nothing Happens When You Run It
Get the logs:
systemctl --user stop ulauncher
ulauncher -v
Running outside a graphical session, for example over plain SSH with no DISPLAY or WAYLAND_DISPLAY, is the usual explanation.
The Tray Icon Is Missing
The indicator relies on a library that is only recommended, not required:
sudo apt install gir1.2-ayatanaappindicator3-0.1
systemctl --user restart ulauncher
On stock GNOME you also need an AppIndicator shell extension before any tray icon will show.
A Black Border Around the Window
Without a compositor the window shadow can render as a black rectangle. Add --no-window-shadow:
mkdir -p ~/.config/systemd/user
cp /usr/lib/systemd/user/ulauncher.service ~/.config/systemd/user/
# append --no-window-shadow to the ExecStart line, then:
systemctl --user daemon-reload
systemctl --user restart ulauncher
Uninstalling
Stop the service, then remove the package:
systemctl --user disable --now ulauncher
sudo apt remove ulauncher
To also remove the repository and key:
sudo rm /etc/apt/sources.list.d/deb.griffo.io.list
sudo rm /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update
Settings and extensions remain in ~/.config/ulauncher and ~/.local/share/ulauncher until you remove them yourself.
Conclusion
A launcher is the sort of tool you notice for a week and then simply rely on. No digging through the applications grid, no opening a browser to run a search, no calculator app for a quick sum. One keystroke covers all of it, and extensions cover whatever else you need.
On Ubuntu, installing Ulauncher from deb.griffo.io handles the GTK dependency chain in a single command and folds future updates into your normal apt upgrade routine. Just remember the Wayland hotkey step: bind ulauncher-toggle in GNOME’s keyboard settings and it behaves exactly as it does on X11.
Frequently Asked Questions
How do I install the latest Ulauncher on Ubuntu?
Add the deb.griffo.io APT repository and its signing key, then run sudo apt install ulauncher. The repository tracks upstream Ulauncher releases, so you get the latest packaged version rather than a build frozen when your distribution was released.
Is there a .deb package for Ulauncher?
Yes. deb.griffo.io publishes Ulauncher as a signed .deb for Ubuntu. You could download that .deb and install it by hand, but adding the repository is the better option: APT then resolves dependencies and picks up new versions on its own.
How do I update Ulauncher to the latest version?
Run sudo apt update && sudo apt upgrade. Once Ulauncher is installed from APT there is no separate updater to remember, since new releases arrive with the rest of your system updates.
How do I install Ulauncher on Debian?
Exactly the same way; lsb_release -sc simply resolves to a different codename. There is a companion guide with the Debian specifics: How to install Ulauncher on Debian.
Which Ubuntu releases are supported?
Jammy 22.04 LTS, Noble 24.04 LTS and newer. Because the repository line is built from lsb_release -sc, the matching suite is selected for you.
Resources
- Ulauncher Website
- Ulauncher Extensions Directory
- Ulauncher GitHub Repository
- deb.griffo.io Repository
Disclaimer: The deb.griffo.io repository is an unofficial community project and is not affiliated with the official Debian or Ubuntu projects, or with the upstream Ulauncher project.