1
0
Fork 0
mirror of https://github.com/davatorium/rofi.git synced 2024-11-18 13:54:36 -05:00

Update README.

This commit is contained in:
Dave Davenport 2016-07-04 17:29:58 +02:00
parent de832cef8d
commit a10543e6c5

View file

@ -7,45 +7,54 @@
# A window switcher, run dialog and dmenu replacement # A window switcher, run dialog and dmenu replacement
A popup window switcher roughly based on [superswitcher](http://code.google.com/p/superswitcher/). **Rofi** started as clone of simpleswitcher, written by [Sean Pringle](http://github.com/seanpringle/simpleswitcher) a
This version started off as a clone of simpleswitcher, the version from [Sean popup window switcher roughly based on [superswitcher](http://code.google.com/p/superswitcher/).
Pringle](http://github.com/seanpringle/simpleswitcher). All credit for this great tool should go to him. Simpleswitcher laid the foundations and therefor Sean Pringle deserves most of the credit for this tool. **Rofi**,
Rofi developed extra features, like a run-dialog, ssh-launcher and can act as a drop-in dmenu renamed as it lost the *simple* property, has been extended with extra features, like a run-dialog, ssh-launcher and
replacement, making it a very versatile tool. 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.
Using Rofi is a lot like dmenu, but extended for an improved work flow.
It main features are: It main features are:
* Full (configurable) keyboard navigation. * Full (configurable) keyboard navigation.
* Type to filter * Type to filter
- Tokenized: Type any word in any order to filter. - Tokenized: Type any word in any order to filter.
- Case insensitive - (toggable) Case insensitive.
- Supports regex and glob matching.
* UTF-8 enabled. * UTF-8 enabled.
- UTF-8 aware string collating. - UTF-8 aware string collating.
- intl. keyboard support (`e -> è) - intl. keyboard support (`e -> è)
* Pango font rendering.
* RTL language support. * RTL language support.
* Window Switcher. * Cairo drawing and Pango font rendering.
- I3 support. * Build in modes:
- EWMH compatible WM. - Window switcher mode.
* Run dialog. - EWMH compatible WM.
* Desktop File Run dialog. - Workaround for older I3 installations.
* SSH launcher. - Run mode.
- Desktop File Run mode.
- SSH launcher mode.
- Combi mode, allow several modes to be merged into one list.
* History based ordering last 25 choices are ordered on top based on use. (optional) * History based ordering last 25 choices are ordered on top based on use. (optional)
* Levenshtein distance ordering of matches. (optional) * Levenshtein distance ordering of matches. (optional)
* Drop in dmenu replacement. * Drop in dmenu replacement.
- With many added improvements. - With many added improvements.
* Can be easily extended using scripts. * Can be easily extended using scripts.
* Themeing.
The 4 Main functions of rofi are: **Rofi** has several buildin modes implementing common use-cases and can be exteneded by scripts (either called from
**Rofi** or calling **Rofi**).
Below the different modes are listed:
## Window Switcher ## Window Switcher
![Window List](https://davedavenport.github.io/rofi/images/rofi/window-list.png) ![Window List](https://davedavenport.github.io/rofi/images/rofi/window-list.png)
The window switcher shows the following informations in columns: The window switcher shows the following informations in columns (can be customized):
1. Desktop number (optional, not shown in I3 mode) 1. Desktop number
2. Window class. 2. Window class.
3. Window title. 3. Window title.
@ -53,20 +62,23 @@ If compiled with I3 support, it should autodetect if I3 window manager is runnin
I3 compatibility mode. This will disable Desktop numbers and hide the i3-bar, also it sends an IPC I3 compatibility mode. This will disable Desktop numbers and hide the i3-bar, also it sends an IPC
message to I3 to change focus. message to I3 to change focus.
## Run dialog > Note: With the latest I3 this is no longer needed as I3 obeys EWHM hints.
> The 'dedicated' support of I3 will be removed from future releases.
![run dialog](https://davedavenport.github.io/rofi/images/rofi/run-dialog.png) ## Run mode
The run dialog allows the user to quickly search and launch a program. ![run mode](https://davedavenport.github.io/rofi/images/rofi/run-dialog.png)
The run mode allows the user to quickly search and launch a program.
It offers the following features: It offers the following features:
- Shift-Return to run the selected program in a terminal. - Shift-Return to run the selected program in a terminal.
- Favorites list, frequently used programs are sorted on top. - Favorites list, frequently used programs are sorted on top.
## DRun dialog ## DRun mode
The desktop run dialog allows the user to quickly search and launch an application from the *freedesktop.org* Desktop The desktop run mode allows the user to quickly search and launch an application from the *freedesktop.org* Desktop
Entries. E.g. what is used by Desktop Environment to fill their launcher. It offers the following features: Entries. E.g. what is used by Desktop Environment to fill their launcher. It offers the following features:
- Favorites list, frequently used programs are sorted on top. - Favorites list, frequently used programs are sorted on top.
@ -80,6 +92,14 @@ Quickly ssh into remote machines
- Parses ~/.ssh/config to find hosts. - Parses ~/.ssh/config to find hosts.
## Script mode
Loads external scripts to add modes to **Rofi**, for example a file-browser.
## COMBI mode
Combine multiple modes in one view. This is especially usefull when merging the window and run mode into one view.
Allowing to quickly switch to an application, either by switching to it when it is already running or starting it.
## dmenu replacement ## dmenu replacement
@ -88,7 +108,7 @@ Quickly ssh into remote machines
Drop in dmenu replacement. (Screenshot shows rofi used by Drop in dmenu replacement. (Screenshot shows rofi used by
[teiler](https://github.com/carnager/teiler) ). [teiler](https://github.com/carnager/teiler) ).
**rofi** features several improvements over dmenu to improve usability. There is the option to add **Rofi** features several improvements over dmenu to improve usability. There is the option to add
an extra message bar (`-mesg`), pre-entering of text (`-filter`) or selecting entries based on a an extra message bar (`-mesg`), pre-entering of text (`-filter`) or selecting entries based on a
pattern (`-select`). Also highlighting (`-u` and `-a`) options and modi to force user to select one pattern (`-select`). Also highlighting (`-u` and `-a`) options and modi to force user to select one
provided option (`-only-match`). provided option (`-only-match`).
@ -99,11 +119,9 @@ If used with `-show [mode]`, rofi will immediately open in the specified [mode]
If used with `-dmenu`, rofi will use data from STDIN to let the user select an option. If used with `-dmenu`, rofi will use data from STDIN to let the user select an option.
## Single-shot For example to show a run dialog:
Show a run dialog with some font / color options: `rofi -show run`
`rofi -show run -font "snap 10" -fg "#505050" -bg "#000000" -hlfg "#ffb964" -hlbg "#000000" -o 85`
Show a ssh dialog: Show a ssh dialog:
@ -163,20 +181,21 @@ Type `Shift-Right` to switch from Window list mode to Run mode and back.
|`Alt-grave` | Toggle levenshtein sort. | |`Alt-grave` | Toggle levenshtein sort. |
|`Alt-Shift-S` | Take a screenshot and store this in the Pictures directory. | |`Alt-Shift-S` | Take a screenshot and store this in the Pictures directory. |
For the full list of keybindings see: `rofi -show keys` or `rofi -help`.
# Configuration # Configuration
There are currently three methods of setting configuration options: There are currently three methods of setting configuration options:
* Compile time: edit config.c. This method is strongly discouraged. * Local configuration. Normally, depending on XDG, in `~/.local/rofi/config`. This uses the Xresources format.
* Xresources: A method of storing key values in the Xserver. See * Xresources: A method of storing key values in the Xserver. See
[here](https://en.wikipedia.org/wiki/X_resources) for more information. [here](https://en.wikipedia.org/wiki/X_resources) for more information.
This is the recommended way of configuring **rofi**. Remember to load your changes with `xrdb -load ~/.Xresources` This is the recommended way of configuring **Rofi**. Remember to load your changes with `xrdb -load ~/.Xresources`
* Commandline options: Arguments passed to **rofi**. * Commandline options: Arguments passed to **Rofi**.
The Xresources options and the commandline options are aliased. So to set option X you would set: The Xresources options and the commandline options are aliased. So to set option X you would set:
`rofi.X: value` rofi.X: value
In the Xresources file, and to (override) this via the commandline you would pass the same key In the Xresources file, and to (override) this via the commandline you would pass the same key
prefixed with a '-': prefixed with a '-':
@ -187,6 +206,10 @@ To get a list of available options, formatted as Xresources entries run:
rofi -dump-Xresources rofi -dump-Xresources
or in a more readable format
rofi -help
The configuration system supports the following types: The configuration system supports the following types:
* String * String
@ -204,4 +227,5 @@ to disable it:
# Installation # Installation
Please see the [installation guide](https://davedavenport.github.io/rofi/p08-INSTALL.html) for instruction on how to install *rofi*. Please see the [installation guide](https://davedavenport.github.io/rofi/p08-INSTALL.html) for instruction on how to
install **Rofi**.