Top Related Projects
A fast and flexible keyboard launcher
Rofi: A window switcher, application launcher and dmenu replacement
A fast file search utility for Unix-like systems based on GTK3
🔵 Cerebro is an open-source launcher to improve your productivity and efficiency
An 'alt+space' launcher for Windows, built with Electron
Quick Overview
Ulauncher is an application launcher for Linux, designed to provide a fast and customizable way to search and launch applications, files, and custom actions. It offers a sleek interface, extensibility through plugins, and the ability to create custom shortcuts for frequently used commands or applications.
Pros
- Fast and responsive search functionality
- Highly customizable through themes and extensions
- Supports custom shortcuts and scripts
- Cross-platform compatibility (works on various Linux distributions)
Cons
- Limited to Linux operating systems
- Requires some initial setup and configuration for optimal use
- May conflict with system-native launchers on some distributions
- Learning curve for creating custom extensions
Getting Started
To install Ulauncher on Ubuntu or Debian-based systems:
sudo add-apt-repository ppa:agornostal/ulauncher
sudo apt update
sudo apt install ulauncher
For other Linux distributions, visit the official Ulauncher website for installation instructions.
After installation, launch Ulauncher and customize it according to your preferences. You can add extensions, change themes, and create custom shortcuts through the preferences menu.
To create a custom shortcut:
- Open Ulauncher preferences
- Go to the "Extensions" tab
- Click "Add extension"
- Choose "Custom Script" and configure your shortcut
Ulauncher will now be ready to use. Press the configured hotkey (default is Ctrl+Space) to open the launcher and start searching for applications, files, or using your custom shortcuts.
Competitor Comparisons
A fast and flexible keyboard launcher
Pros of Albert
- Written in C++ and Qt, potentially offering better performance
- More extensive built-in functionality, including calculator and system commands
- Supports themes and has a more customizable appearance
Cons of Albert
- Less cross-platform compatibility (primarily focused on Linux)
- Steeper learning curve for extension development
- Smaller community and fewer third-party extensions
Code Comparison
Albert (C++):
void MainWindow::show()
{
QWidget::show();
if (ui.inputLine->text().isEmpty())
ui.inputLine->setFocus();
else
ui.proposalList->setFocus();
}
Ulauncher (Python):
def show_window(self):
self.window.present()
self.window.get_window().focus(Gdk.CURRENT_TIME)
self.input.select_region(0, -1)
self.input.grab_focus()
Both projects aim to provide quick application launchers and search tools for desktop environments. Albert offers more built-in features and potentially better performance due to its C++ implementation. Ulauncher, written in Python, provides easier extension development and better cross-platform support. The code comparison shows similar functionality for showing the main window and focusing on the input field, with Albert using Qt and Ulauncher using GTK for the UI.
Rofi: A window switcher, application launcher and dmenu replacement
Pros of Rofi
- Lightweight and fast, with minimal resource usage
- Highly customizable appearance and behavior through themes and scripts
- Supports window switching and SSH connection management
Cons of Rofi
- Steeper learning curve, especially for advanced customization
- Limited built-in functionality compared to Ulauncher's extension system
- Primarily designed for X11, with limited Wayland support
Code Comparison
Rofi configuration (example theme):
* {
background-color: #282c34;
border-color: #2e343f;
text-color: #8ca0aa;
spacing: 0;
width: 512px;
}
Ulauncher configuration (example theme):
{
"manifest_version": "1",
"name": "Dark Theme",
"display_name": "Dark",
"extend_theme": "dark",
"css_file": "theme.css",
"css_file_gtk_3.20+": "theme-gtk-3.20.css",
"matched_text_hl_colors": {
"when_selected": "#fff",
"when_not_selected": "#fff"
}
}
Both Rofi and Ulauncher offer application launching and search capabilities, but they cater to different user preferences. Rofi excels in speed and customization for power users, while Ulauncher provides a more user-friendly interface with an extension system for added functionality.
A fast file search utility for Unix-like systems based on GTK3
Pros of FSearch
- Specialized file search functionality, optimized for speed
- Lightweight and efficient, with minimal system resource usage
- Supports advanced search options like regex and file type filtering
Cons of FSearch
- Limited to file search only, lacks extensibility for other types of searches
- Less customizable user interface compared to Ulauncher
- Primarily focused on desktop environments, may not be as versatile across different platforms
Code Comparison
FSearch (C):
static void fsearch_application_startup(GApplication *application)
{
FsearchApplication *self = FSEARCH_APPLICATION(application);
fsearch_application_init_resources(self);
fsearch_application_load_config(self);
fsearch_application_create_actions(self);
}
Ulauncher (Python):
def on_start(self):
self.init_ui()
self.load_preferences()
self.create_extensions()
self.bind_hotkey()
self.show_notification()
Both projects handle application startup, but FSearch focuses on resource initialization and configuration loading, while Ulauncher emphasizes UI setup, preferences, extensions, and user interaction features.
🔵 Cerebro is an open-source launcher to improve your productivity and efficiency
Pros of Cerebro
- Cross-platform support (Windows, macOS, Linux)
- Extensible plugin system with a wide range of available plugins
- Modern and sleek user interface
Cons of Cerebro
- Less active development and maintenance compared to Ulauncher
- Potentially higher resource usage due to Electron framework
- Smaller community and fewer contributors
Code Comparison
Cerebro (JavaScript):
const plugin = ({term, display}) => {
if (term.startsWith('hello')) {
display({
title: 'Hello, World!',
subtitle: 'Greeting from Cerebro'
})
}
}
Ulauncher (Python):
class HelloWorldExtension(Extension):
def on_query_change(self, query):
if query.get_argument(0).startswith('hello'):
return RenderResultListAction([
ExtensionResultItem(name='Hello, World!',
description='Greeting from Ulauncher')
])
Both projects offer extensible launcher applications, but they differ in their implementation languages and target platforms. Cerebro uses JavaScript and Electron for cross-platform support, while Ulauncher is Python-based and primarily focused on Linux. Ulauncher has a more active development community and potentially lower resource usage, but Cerebro offers broader platform compatibility and a modern interface.
An 'alt+space' launcher for Windows, built with Electron
Pros of Hain
- Cross-platform support (Windows, macOS, Linux)
- Extensible plugin system with a large community-contributed plugin ecosystem
- Built with web technologies, making it easier for web developers to contribute
Cons of Hain
- Less actively maintained (last commit over 3 years ago)
- Slower startup time and performance compared to Ulauncher
- Limited customization options for appearance and themes
Code Comparison
Hain (JavaScript):
const hain = require('hain-plugin-api');
module.exports = (context) => {
const shell = context.shell;
function search(query, res) {
// Search implementation
}
};
Ulauncher (Python):
from ulauncher.api.client.Extension import Extension
from ulauncher.api.client.EventListener import EventListener
from ulauncher.api.shared.event import KeywordQueryEvent
class DemoExtension(Extension):
def __init__(self):
super().__init__()
self.subscribe(KeywordQueryEvent, KeywordQueryEventListener())
Both projects aim to provide quick application launchers with extensibility. Ulauncher, written in Python, offers better performance and is more actively maintained. Hain, built with web technologies, provides cross-platform support but lacks recent updates. Ulauncher's extension system is more straightforward, while Hain's plugin ecosystem is larger due to its use of JavaScript.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
â ï¸ This is the branch for the unreleased v6 release. If you want the v5 branch version, go here.
We are currently working on Ulauncher v6, which is a huge rewrite. Until then we're only supporting the existing functionality in v5. No new features or improvements.
We are making pre-releases for Ulauncher 6, but the new extension API is not yet 100% set and further major changes may come.
Application Launcher for Linux ð§
Ulauncher is a fast application launcher for Linux. It's written in Python using GTK+, and features: App Search (fuzzy matching), Calculator, Extensions, Shortcuts, File browser mode and Custom Color Themes
App Search | File Browser | Color Themes |
---|---|---|
![]() | ![]() | ![]() |
For more info or download links see ulauncher.io
Run Ulauncher on startup
If your distribution uses Systemd and the packages includes ulauncher.service, then you can run ulauncher
on startup by running:
systemctl --user enable --now ulauncher
If not, then you can open Ulauncher and enable "Launch at Login" in the preferences.
Troubleshooting
Please read our Troubleshooting discussion category if you run into issues, and also check our other discussions and issues if you still need help after this.
Code Contributions And Development Environment
Please see our Code Contributions documentation.
Project | Contributor-friendly Issues |
---|---|
Ulauncher App | |
Frontend for extensions website Uses ReactJS | |
API for extensions website Uses Python and bottle library |
License
See the LICENSE file for license rights and limitations (GNU GPL v3.0).
Top Related Projects
A fast and flexible keyboard launcher
Rofi: A window switcher, application launcher and dmenu replacement
A fast file search utility for Unix-like systems based on GTK3
🔵 Cerebro is an open-source launcher to improve your productivity and efficiency
An 'alt+space' launcher for Windows, built with Electron
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot