# davatorium/rofi

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/davatorium-rofi).**

16,213 stars · 685 forks · C · NOASSERTION

## Links

- GitHub: https://github.com/davatorium/rofi
- Homepage: https://davatorium.github.io/rofi/
- awesome-repositories: https://awesome-repositories.com/repository/davatorium-rofi.md

## Topics

`application-launcher` `c` `dmenu` `dmenu-replacement` `i3` `linux` `rofi` `window-switcher` `x11`

## Description

Rofi is a keyboard-driven application launcher and window switcher for X11 desktops. It functions as a scriptable command palette and a compatible emulator for dmenu, capable of reading options from standard input and returning a user selection to standard output.

The project is distinguished by a customizable window interface using a CSS-like theming system and a flexible box-model widget hierarchy. It features a recursive theme inheritance system and responsive styling that adapts based on screen dimensions and monitor identifiers.

The tool provides advanced text filtering using fuzzy, regex, and glob matching algorithms. Its capability surface covers window focus switching, local file browsing, SSH connection management, and the execution of custom shell scripts to generate dynamic selection menus.

Users can manage settings through modular configuration files and map specific keyboard shortcuts to application actions.

## Tags

### Operating Systems & Systems Programming

- [Application Launchers](https://awesome-repositories.com/f/operating-systems-systems-programming/desktop-environment-frameworks/desktop-environment-components/desktop-applications/desktop-application-automation/application-launchers.md) — Provides a keyboard-driven interface for searching and executing installed programs via desktop entries or system paths.
- [System and Window Search Launchers](https://awesome-repositories.com/f/operating-systems-systems-programming/display-windowing/tiling-window-managers/system-and-window-search-launchers.md) — Functions as a search-driven interface for locating open windows and executing system commands.
- [Window and Process Lifecycle Management](https://awesome-repositories.com/f/operating-systems-systems-programming/display-windowing/tiling-window-managers/window-switching-and-tiling/window-and-process-lifecycle-management.md) — Lists open application windows to allow the user to quickly switch focus or close specific processes.
- [Menu Utility Emulations](https://awesome-repositories.com/f/operating-systems-systems-programming/menu-utility-emulations.md) — Functions as a compatible emulator for dmenu, reading from stdin and returning selections to stdout. ([source](https://davatorium.github.io/rofi/1.7.4/rofi-dmenu.5/))

### User Interface & Experience

- [Application Launch Interfaces](https://awesome-repositories.com/f/user-interface-experience/application-launch-interfaces.md) — Provides a unified keyboard-driven interface for discovering and launching installed software applications. ([source](https://davatorium.github.io/rofi/1.7.0/rofi.1/))
- [CSS-Like Interface Styling](https://awesome-repositories.com/f/user-interface-experience/css-like-interface-styling.md) — Defines colors, fonts, and borders for interface elements using a CSS-like syntax. ([source](https://cdn.jsdelivr.net/gh/davatorium/rofi@next/README.md))
- [Desktop Entry Execution](https://awesome-repositories.com/f/user-interface-experience/desktop-applications/desktop-entry-execution.md) — Executes applications using desktop entry specifications, ensuring proper terminal and category handling. ([source](https://davatorium.github.io/rofi/1.7.3/rofi.1/))
- [Desktop Environment Customizers](https://awesome-repositories.com/f/user-interface-experience/desktop-environment-customizers.md) — Enables personalization of the desktop interface through responsive themes, custom layouts, and keyboard shortcuts.
- [Custom Layouts](https://awesome-repositories.com/f/user-interface-experience/layout-components/custom-layouts.md) — Arranges interface components into hierarchical structures using a flexible box-model widget system. ([source](https://davatorium.github.io/rofi/1.7.1/rofi-theme.5/))
- [List Filtering Algorithms](https://awesome-repositories.com/f/user-interface-experience/list-filtering-algorithms.md) — Implements advanced filtering using fuzzy, regex, glob, and prefix matching with tokenization and negation. ([source](https://davatorium.github.io/rofi/1.7.3/rofi.1/))
- [Stdin-Driven List Generators](https://awesome-repositories.com/f/user-interface-experience/list-views/automated-list-generators/stdin-driven-list-generators.md) — Reads selectable list items from standard input and returns the selection to standard output.
- [dmenu-Style Menus](https://awesome-repositories.com/f/user-interface-experience/styled-properties/popup-styling/contextual-popups/command-menus/dmenu-style-menus.md) — Emulates the dmenu paradigm by reading options from standard input and returning the selection to standard output.
- [Theme Inheritance Systems](https://awesome-repositories.com/f/user-interface-experience/theme-inheritance-systems.md) — Organizes visual styles using a hierarchy of global properties and element-specific overrides. ([source](https://davatorium.github.io/rofi/1.7.3/rofi-theme.5/))
- [X11 Interface Frameworks](https://awesome-repositories.com/f/user-interface-experience/x11-interface-frameworks.md) — Implements a customizable X11 window interface with a CSS-like theming system and flexible layout widgets.
- [Background Visual Effects](https://awesome-repositories.com/f/user-interface-experience/background-visual-effects.md) — Sets background images or linear gradients with custom scaling and directional properties. ([source](https://davatorium.github.io/rofi/1.7.0/rofi-theme.5/))
- [Keyboard Shortcuts](https://awesome-repositories.com/f/user-interface-experience/component-utilities/keyboard-shortcuts.md) — Maps specific keyboard keys to application actions via configuration files or command-line arguments. ([source](https://davatorium.github.io/rofi/1.7.4/rofi-keys.5/))
- [Script-Driven Row Styling](https://awesome-repositories.com/f/user-interface-experience/data-display-components/data-table-customizations/custom-column-templates/dynamic-row-content-injectors/script-driven-row-styling.md) — Updates row styling and behavior by passing formatted strings from a background script. ([source](https://davatorium.github.io/rofi/1.7.2/rofi-script.5/))
- [Functional Mode Toggles](https://awesome-repositories.com/f/user-interface-experience/full-screen-viewport-layouts/responsive-layout-switches/viewport-mode-toggles/functional-mode-toggles.md) — Toggles between different functional views like application launchers and window switchers in one session. ([source](https://github.com/davatorium/rofi/wiki/Frequently-Asked-Questions))
- [List Merging and Filtering](https://awesome-repositories.com/f/user-interface-experience/list-merging-and-filtering.md) — Combines multiple lists into a single view and allows filtering them using prefix modifiers. ([source](https://cdn.jsdelivr.net/gh/davatorium/rofi@next/README.md))
- [Metadata-Driven Row Configurations](https://awesome-repositories.com/f/user-interface-experience/metadata-driven-row-configurations.md) — Uses delimited strings in list entries to define row-specific icons, searchability, and interaction states.
- [Row Item Metadata](https://awesome-repositories.com/f/user-interface-experience/row-item-metadata.md) — Assigns metadata to individual list entries to control icons, searchability, and interaction states. ([source](https://davatorium.github.io/rofi/1.7.3/rofi-script.5/))
- [Recency Prioritization](https://awesome-repositories.com/f/user-interface-experience/selectable-lists/recency-prioritization.md) — Places the most recently selected items at the top of the list for faster access. ([source](https://cdn.jsdelivr.net/gh/davatorium/rofi@next/README.md))
- [Responsive Style Mappings](https://awesome-repositories.com/f/user-interface-experience/style-props-frameworks/property-based-style-mappings/responsive-style-mappings.md) — Adapts styling properties dynamically based on screen dimensions and monitor identifiers.
- [Responsive Theme Rules](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/content-styling/css-utility-libraries/css-utilities/conditional-style-queries/responsive-theme-rules.md) — Loads theme properties based on window dimensions, aspect ratios, or monitor identifiers. ([source](https://davatorium.github.io/rofi/1.7.2/rofi-theme.5/))
- [Theme Imports](https://awesome-repositories.com/f/user-interface-experience/visual-theme-configurations/visual-themes/theme-imports.md) — Merges additional configuration files into the active theme or allows the theme to be replaced entirely. ([source](https://davatorium.github.io/rofi/1.7.3/rofi-theme.5/))

### Development Tools & Productivity

- [Command Palettes](https://awesome-repositories.com/f/development-tools-productivity/command-palettes.md) — Provides a keyboard-driven command palette for executing custom shell scripts and displaying their output.
- [Fuzzy Search Interfaces](https://awesome-repositories.com/f/development-tools-productivity/fuzzy-search-interfaces.md) — Provides a search interface using fuzzy, regex, and glob matching to filter lists of textual options.
- [Command Palette Script Launchers](https://awesome-repositories.com/f/development-tools-productivity/shell-script-execution-engines/custom-run-scripts/command-palette-script-launchers.md) — Executes custom scripts and presents their output as a searchable list for user selection. ([source](https://github.com/davatorium/rofi/wiki/User-scripts))
- [Dynamic Scripting Extensions](https://awesome-repositories.com/f/development-tools-productivity/workflow-automation-tools/system-integration-interfaces/automation-apis/scripting-apis/custom-logic-extensions/javascript-logic-extensions/dynamic-scripting-extensions.md) — Integrates custom logic by calling external scripts to extend the functionality of the command palette. ([source](https://cdn.jsdelivr.net/gh/davatorium/rofi@next/README.md))

### Software Engineering & Architecture

- [Binary Path Execution](https://awesome-repositories.com/f/software-engineering-architecture/dynamic-path-configuration/binary-path-discovery/binary-path-execution.md) — Launches binaries located in the system path as raw shell commands or within a terminal. ([source](https://davatorium.github.io/rofi/1.7.3/rofi.1/))
- [Multi-Operator String Matching](https://awesome-repositories.com/f/software-engineering-architecture/string-matching-algorithms/partial-string-matching/multi-operator-string-matching.md) — Filters lists using a combination of fuzzy, regex, glob, and prefix matching algorithms.
- [Widget Tree Hierarchies](https://awesome-repositories.com/f/software-engineering-architecture/object-oriented-models/widget-tree-hierarchies.md) — Implements a box-model widget hierarchy to organize the interface using nested containers.

### System Administration & Monitoring

- [External Script Execution](https://awesome-repositories.com/f/system-administration-monitoring/external-script-execution.md) — Runs external shell scripts to generate dynamic selection lists and handle user choices as arguments.
