Convert Figma logo to code with AI

Ulauncher logoUlauncher

Feature rich application Launcher for Linux

4,050
208
4,050
120

Top Related Projects

7,578

A fast and flexible keyboard launcher

14,720

Rofi: A window switcher, application launcher and dmenu replacement

3,626

A fast file search utility for Unix-like systems based on GTK3

8,469

🔵 Cerebro is an open-source launcher to improve your productivity and efficiency

3,195

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:

  1. Open Ulauncher preferences
  2. Go to the "Extensions" tab
  3. Click "Add extension"
  4. 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

7,578

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.

14,720

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.

3,626

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.

8,469

🔵 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.

3,195

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Made in Ukraine Code style: black Test Status

⚠️ 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 SearchFile BrowserColor Themes
screenshotscreenshotscreenshot

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.

ProjectContributor-friendly Issues
Ulauncher AppGitHub issues by-label
GitHub issues by-label
GitHub issues by-label
GitHub issues by-label
Frontend for extensions website
Uses ReactJS
GitHub issues by-label
API for extensions website
Uses Python and bottle library
GitHub issues by-label

License

See the LICENSE file for license rights and limitations (GNU GPL v3.0).