From 127275c2615daeeb23642378565d91e433f09181 Mon Sep 17 00:00:00 2001
From: Dave Davenport
A window switcher, Application launcher and dmenu replacement.
https://user-images.githubusercontent.com/84911063/139428874-fe182dd6-82c6-49b8-8da1-920ddda3d1ed.mp4 +**Rofi** started as a clone of simpleswitcher, written by [Sean +Pringle](http://github.com/seanpringle/simpleswitcher) - a popup window +switcher roughly based on +[superswitcher](http://code.google.com/p/superswitcher/). Simpleswitcher laid +the foundations, and therefore Sean Pringle deserves most of the credit for +this tool. **Rofi** (renamed, as it lost the *simple* property) has been +extended with extra features, like an application launcher and ssh-launcher, +and can act as a drop-in dmenu replacement, making it a very versatile tool. -**Rofi** started as a clone of simpleswitcher, written by [Sean Pringle](http://github.com/seanpringle/simpleswitcher) - a -popup window switcher roughly based on [superswitcher](http://code.google.com/p/superswitcher/). -Simpleswitcher laid the foundations, and therefore Sean Pringle deserves most of the credit for this tool. **Rofi** -(renamed, as it lost the *simple* property) has been extended with extra features, like an application launcher and -ssh-launcher, and can act as a drop-in dmenu replacement, making it a very versatile tool. +**Rofi**, like dmenu, will provide the user with a textual list of options +where one or more can be selected. +This can either be running an application, selecting a window, or options +provided by an external script. -**Rofi**, like dmenu, will provide the user with a textual list of options where one or more can be selected. -This can either be running an application, selecting a window, or options provided by an external script. - - -## What is rofi not? +### What is rofi not? Rofi is not: -* A UI toolkit. -* A library to be used in other applications. -* An application that can support every possible use-case. It tries to be +- A UI toolkit. + +- A library to be used in other applications. + +- An application that can support every possible use-case. It tries to be generic enough to be usable by everybody. - * Specific functionality can be added using scripts or plugins, many exists. -* Just a dmenu replacement. The dmenu functionality is a nice 'extra' to + - Specific functionality can be added using scripts or plugins, many exists. + +- Just a dmenu replacement. The dmenu functionality is a nice 'extra' to **rofi**, not its main purpose. - -# Table of Contents +## Table of Contents - [Features](#features) - [Modes](#modes) - [Manpages](#manpage) - [Installation](#installation) - [Quickstart](#quickstart) - - [Usage](#usage) - - [Configuration](#configuration) - - [Themes](#themes) + - [Usage](#usage) + - [Configuration](#configuration) + - [Themes](#themes) - [Screenshots](#screenshots) - [Wiki](#wiki) - [Discussion places](#discussion-places) -# Features +## Features Its main features are: -* Fully configurable keyboard navigation -* Type to filter - * Tokenized: type any word in any order to filter - * Case insensitive (togglable) - * Support for fuzzy-, regex-, prefix-, and glob-matching -* UTF-8 enabled - * UTF-8-aware string collating - * International keyboard support (\`e -> è) -* RTL language support -* Cairo drawing and Pango font rendering -* Built-in modes: - * Window switcher mode - * EWMH compatible WM - * Work arounds for i3,bspwm - * Application launcher - * Desktop file application launcher - * SSH launcher mode - * File browser - * Combi mode, allowing several modes to be merged into one list -* History-based ordering — last 25 choices are ordered on top based on use (optional) -* Levenshtein distance or fzf like sorting of matches (optional) -* Drop-in dmenu replacement - * Many added improvements -* Easily extensible using scripts and plugins -* Advanced Theming +- Fully configurable keyboard navigation -# Modes +- Type to filter + - Tokenized: type any word in any order to filter + - Case insensitive (togglable) + - Support for fuzzy-, regex-, prefix-, and glob-matching -**Rofi** has several built-in modes implementing common use cases and can be extended by scripts (either called from +- UTF-8 enabled + - UTF-8-aware string collating + - International keyboard support (\`e -> è) + +- RTL language support + +- Cairo drawing and Pango font rendering + +- Built-in modes: + - Window switcher mode + - EWMH compatible WM + - Work arounds for i3,bspwm + + - Application launcher + + - Desktop file application launcher + + - SSH launcher mode + + - File browser + + - Combi mode, allowing several modes to be merged into one list + +- History-based ordering — last 25 choices are ordered on top based on use + (optional) + +- Levenshtein distance or fzf like sorting of matches (optional) + +- Drop-in dmenu replacement + - Many added improvements + +- Easily extensible using scripts and plugins + +- Advanced Theming + +## Modes + +**Rofi** has several built-in modes implementing common use cases and can be +extended by scripts (either called from **Rofi** or calling **Rofi**) or plugins. Below is a list of the different modes: -* **run**: launch applications from $PATH, with option to launch in terminal. -* **drun**: launch applications based on desktop files. It tries to be compliant to the XDG standard. -* **window**: Switch between windows on an EWMH compatible window manager. -* **ssh**: Connect to a remote host via ssh. -* **filebrowser**: A basic file-browser for opening files. -* **keys**: list internal keybindings. -* **script**: Write (limited) custom mode using simple scripts. -* **combi**: Combine multiple modes into one. +- **run**: launch applications from $PATH, with option to launch in terminal. + +- **drun**: launch applications based on desktop files. It tries to be + compliant to the XDG standard. + +- **window**: Switch between windows on an EWMH compatible window manager. + +- **ssh**: Connect to a remote host via ssh. + +- **filebrowser**: A basic file-browser for opening files. + +- **keys**: list internal keybindings. + +- **script**: Write (limited) custom mode using simple scripts. + +- **combi**: Combine multiple modes into one. **Rofi** is known to work on Linux and BSD. -# Manpage +## Manpage For more up to date information, please see the manpages. The other sections and links might have outdated information as they have relatively less @@ -122,78 +148,87 @@ consult manpages, [discussion](https://github.com/davatorium/rofi/discussions) and [issue tracker](https://github.com/davatorium/rofi/issues?q=) before filing new issue. -* Manpages: - * [rofi](doc/rofi.1.markdown) - * [rofi-theme](doc/rofi-theme.5.markdown) - * [rofi-debugging](doc/rofi-debugging.5.markdown) - * [rofi-script](doc/rofi-script.5.markdown) - * [rofi-theme-selector](doc/rofi-theme-selector.1.markdown) - * [rofi-keys](doc/rofi-keys.5.markdown) - * [rofi-dmenu](doc/rofi-dmenu.5.markdown) +- Manpages: + - [rofi](doc/rofi.1.markdown) + - [rofi-theme](doc/rofi-theme.5.markdown) + - [rofi-debugging](doc/rofi-debugging.5.markdown) + - [rofi-script](doc/rofi-script.5.markdown) + - [rofi-theme-selector](doc/rofi-theme-selector.1.markdown) + - [rofi-keys](doc/rofi-keys.5.markdown) + - [rofi-dmenu](doc/rofi-dmenu.5.markdown) -# Installation +## Installation Please see the [installation guide](https://github.com/davatorium/rofi/blob/next/INSTALL.md) for instructions on how to install **Rofi**. -# Quickstart +## Quickstart -## Usage +### Usage -> **This section just gives a brief overview of the various options. To get the full set of options see the [manpages](#manpage) section above** +> **This section just gives a brief overview of the various options. To get the +> full set of options see the [manpages](#manpage) section above** #### Running rofi To launch **rofi** directly in a certain mode, specify a mode with `rofi -show