mirror of
https://github.com/davatorium/rofi.git
synced 2024-11-18 13:54:36 -05:00
940 lines
25 KiB
Markdown
940 lines
25 KiB
Markdown
# ROFI 1 rofi
|
|
|
|
## NAME
|
|
|
|
**rofi** - A window switcher, application launcher, ssh dialog and dmenu replacement
|
|
|
|
## SYNOPSIS
|
|
|
|
**rofi** [ -show *mode* ]|[ -dmenu ]|[ -e *msg* ] [ CONFIGURATION ]
|
|
|
|
|
|
## DESCRIPTION
|
|
|
|
**rofi** is an X11 popup window switcher, run dialog, dmenu replacement and more. It focuses on
|
|
being fast to use and have minimal distraction. It supports keyboard and mouse navigation, type to
|
|
filter, tokenized search and more.
|
|
|
|
|
|
## USAGE
|
|
|
|
**rofi** main functionality is to assist in your workflow, allowing you to quickly (with a few keystrokes) switch
|
|
between windows, start applications or log into a remote machine via ssh. There are different modi for different type of
|
|
actions.
|
|
|
|
**rofi** can also function as (drop in) replacement for **dmenu(1)**.
|
|
|
|
### Running rofi
|
|
|
|
To launch **rofi** directly in a certain mode, specify a mode with `rofi -show <mode>`.
|
|
To show the run dialog:
|
|
|
|
rofi -show run
|
|
|
|
|
|
### Emulating dmenu
|
|
|
|
**rofi** can emulate **dmenu(1)** (a dynamic menu for X) when launched with the `-dmenu` flag.
|
|
|
|
The "official" website for `dmenu` can be found [here](http://tools.suckless.org/dmenu/).
|
|
|
|
**rofi** does not aim to be 100% compatible with dmenu. There are simply to many different flavours of dmenu.
|
|
The idea is the basic usage commandline flags are obeyed, theme related flags are not.
|
|
Besides this, **rofi** offers some extended features (like multi-select, highlighting, message bar, extra key-bindings).
|
|
|
|
|
|
### Display Error message
|
|
|
|
**rofi** error dialog can also be called from the commandline.
|
|
|
|
rofi -e "my message"
|
|
|
|
Markup support can be enabled, see CONFIGURATION options.
|
|
|
|
## CONFIGURATION
|
|
|
|
There are currently three methods of setting configuration options (evaluated in order below):
|
|
|
|
* System configuration file (f.e. /etc/rofi.conf).
|
|
* Xresources: A method of storing key values in the Xserver. See
|
|
[here](https://en.wikipedia.org/wiki/X_resources) for more information.
|
|
* Rasi theme file: The new *theme* format can be used to set configuration values.
|
|
* Configuration File: This uses the same format as the Xresources file.
|
|
By default it looks in `XDG_USER_CONFIG_DIR`/rofi/config, but can be overridden on commandline.
|
|
By default XDG_USER_CONFIG_DIR defaults to `$HOME/.config`. (See `rofi -h` for current location).
|
|
This is the recommended way of configuring **rofi**.
|
|
* Command-line options: Arguments passed to **rofi**.
|
|
|
|
**TIP**: To get a template config file run: `rofi -dump-xresources > rofi-example.config`.
|
|
**NOTE**: In version 1.4.0 we support configuration in a new format, a config for this can be generated by: `rofi
|
|
-dump-config`
|
|
|
|
The Xresources file expects options starting with `rofi.` followed by it's name. An Example to set the number of lines:
|
|
|
|
rofi.lines: 10
|
|
|
|
Command line options override settings from Xresources file. The same option set as argument:
|
|
prefixed with a '-':
|
|
|
|
rofi -lines 10
|
|
|
|
To get a list of available options, formatted as Xresources entries run:
|
|
|
|
rofi -dump-xresources
|
|
|
|
The configuration system supports the following types:
|
|
|
|
* String
|
|
* Integer (signed and unsigned)
|
|
* Char
|
|
* Boolean
|
|
|
|
Boolean options have a non-default command-line syntax. Example to enable option X:
|
|
|
|
-X
|
|
|
|
To disable option X:
|
|
|
|
-no-X
|
|
|
|
Below is a list of the most important options:
|
|
|
|
### General
|
|
|
|
`-help`
|
|
|
|
The help option shows the full list of commandline options and the current set value.
|
|
These include dynamic (run-time generated) options.
|
|
|
|
`-dump-xresources`
|
|
|
|
Dump the current active configuration in Xresources format to the command-line.
|
|
This does not validate all passed values (e.g. colors).
|
|
|
|
`-threads` *num*
|
|
|
|
Specify the number of threads **rofi** should use:
|
|
|
|
* 0: Autodetect the number of supported hardware threads.
|
|
* 1: Disable threading
|
|
* 2..N: Specify the maximum number of threads to use in the thread pool.
|
|
|
|
`-dmenu`
|
|
|
|
Run **rofi** in dmenu mode. This allows for interactive scripts.
|
|
In `dmenu` mode, **rofi** reads from STDIN, and output to STDOUT.
|
|
A simple example, displaying 3 pre-defined options:
|
|
|
|
echo -e "Option #1\nOption #2\nOption #3" | rofi -dmenu
|
|
|
|
Or get the options from a script:
|
|
|
|
~/my_script.sh | rofi -dmenu
|
|
|
|
`-show` *mode*
|
|
|
|
Open **rofi** in a certain mode. Available modes are `window`, `run`, `drun`, `ssh`, `combi`.
|
|
The special argument `keys` can be used to open a searchable list of supported keybindings
|
|
(see *KEYBINDINGS*)
|
|
|
|
To show the run-dialog:
|
|
|
|
rofi -show run
|
|
|
|
`-modi` *mode1,mode1*
|
|
|
|
Specify a ordered, comma separated list of modes to enable.
|
|
Enabled modes can be changed at runtime. Default key is Ctrl+Tab.
|
|
If no modes are specified all modes will be enabled.
|
|
To only show the run and ssh launcher:
|
|
|
|
rofi -modi "run,ssh" -show run
|
|
|
|
Custom modes can be added using the internal 'script' mode. Each mode has two parameters:
|
|
|
|
<name>:<script>
|
|
|
|
Example: Have a mode 'Workspaces' using the `i3_switch_workspaces.sh` script:
|
|
|
|
rofi -modi "window,run,ssh,Workspaces:i3_switch_workspaces.sh" -show Workspaces
|
|
|
|
Notes: The I3 Window manager does not like commas in the command when specifying an exec command.
|
|
For that case '#' can be used as an separator.
|
|
|
|
`-case-sensitive`
|
|
|
|
Start in case sensitive mode.
|
|
This option can be changed at run-time using the `-kb-toggle-case-sensitivity` key binding.
|
|
|
|
`-cycle`
|
|
|
|
Cycle through the results list. Default is 'true'.
|
|
|
|
`-filter` *filter*
|
|
|
|
Filter the list by setting text in input bar to *filter*
|
|
|
|
`-config` *filename*
|
|
|
|
Load alternative configuration file.
|
|
|
|
`-scroll-method` *method*
|
|
|
|
Select the scrolling method. 0: Per page, 1: continuous.
|
|
|
|
`-no-show-match`
|
|
|
|
Hide the indicator that shows what part of the string is matched.
|
|
|
|
`-no-lazy-grab`
|
|
|
|
Disables lazy grab, this forces the keyboard being grabbed before gui is shown.
|
|
|
|
`-no-plugins`
|
|
|
|
Disable plugin loading.
|
|
|
|
`-plugin-path` *directory*
|
|
|
|
Specify the directory where *rofi* should look for plugins.
|
|
|
|
|
|
### Matching
|
|
|
|
`-matching` *method*
|
|
|
|
Specify the matching algorithm used.
|
|
Current the following methods are supported.
|
|
|
|
* **normal**: Match the int string.
|
|
* **regex**: Match a regex input.
|
|
* **glob**: Match a glob pattern.
|
|
* **fuzzy**: Do a fuzzy match.
|
|
|
|
Default: *normal*
|
|
|
|
Note: glob matching might be slow for larger lists
|
|
|
|
`-tokenize`
|
|
|
|
Tokenize the input.
|
|
|
|
### Layout
|
|
|
|
Most of the following options are **deprecated** and should not be used. Please use the new theme format to customize
|
|
rofi. More information about the new format can be found in the **rofi-theme(5)** manpage.
|
|
|
|
`-lines`
|
|
|
|
Maximum number of lines to show before scrolling.
|
|
|
|
rofi -lines 25
|
|
|
|
Default: *15*
|
|
|
|
`-columns`
|
|
|
|
Number of columns to show before scrolling.
|
|
|
|
rofi -columns 2
|
|
|
|
Default: *1*
|
|
|
|
`-width` [value]
|
|
|
|
Set width of menu. `[value]` is specified in percentage.
|
|
|
|
rofi -width 60
|
|
|
|
If `[value]` is larger then 100, size is set in pixels. Example to span a full hd monitor:
|
|
|
|
rofi -width 1920
|
|
|
|
If `[value]` is negative, it tries to estimates a character width. To show 30 characters on a row:
|
|
|
|
rofi -width -30
|
|
|
|
Character width is a rough estimation, and might not be correct, but should work for most monospaced fonts.
|
|
|
|
Default: *50*
|
|
|
|
`-location`
|
|
|
|
Specify where the window should be located. The numbers map to the following locations on screen:
|
|
|
|
1 2 3
|
|
8 0 4
|
|
7 6 5
|
|
|
|
Default: *0*
|
|
|
|
`-fixed-num-lines`
|
|
|
|
Keep a fixed number of visible lines (See the `-lines` option.)
|
|
|
|
`-padding`
|
|
|
|
Define the inner margin of the window.
|
|
|
|
Default: *5*
|
|
|
|
`-fullscreen`
|
|
|
|
Use the full screen height and width.
|
|
|
|
`-sidebar-mode`
|
|
|
|
Open in sidebar-mode. In this mode a list of all enabled modes is shown at the bottom.
|
|
(See `-modi` option)
|
|
To show sidebar use:
|
|
|
|
rofi -show run -sidebar-mode -lines 0
|
|
|
|
`-auto-select`
|
|
|
|
When one entry is left, automatically select it.
|
|
|
|
`-m` *num*
|
|
|
|
`-m` *name*
|
|
|
|
`-monitor` *num*
|
|
|
|
`-monitor` *name*
|
|
|
|
Select monitor to display **rofi** on.
|
|
As input it accepts: *primary* (if primary output is set), the *xrandr* output name or integer number (in order of
|
|
detection). Negative numbers are handled differently:
|
|
|
|
* **-1**: the currently focused monitor.
|
|
* **-2**: the currently focused window (i.e. rofi will be displayed on top of the focused window).
|
|
* **-3**: Position at mouse (overrides the location setting to get normal context menu
|
|
behaviour.)
|
|
* **-4**: the monitor with the focused window.
|
|
* **-5**: the monitor that shows the mouse pointer.
|
|
|
|
Default: *-5*
|
|
|
|
See `rofi -h` output for the detected monitors, their position and size.
|
|
|
|
|
|
`-theme` *filename*
|
|
|
|
Path to the new theme file format. This overrides the old theme settings.
|
|
|
|
`-theme-str` *string*
|
|
|
|
Allow theme parts to be specified on the commandline as an override.
|
|
|
|
For example
|
|
|
|
rofi -theme-str '#window { fullscreen: true; }'
|
|
|
|
This option can be specified multiple times.
|
|
|
|
|
|
|
|
`-dpi` *number*
|
|
|
|
Override the default DPI setting.
|
|
If set to `0` it tries to auto-detect based on X11 screen size. (Similar to i3 and GTK)
|
|
If set to `1` it tries to auto-detect based on monitor (rofi is displayed on) size. (Similar to latest QT5)
|
|
|
|
### PATTERN setting
|
|
|
|
`-terminal`
|
|
|
|
Specify what terminal to start.
|
|
|
|
rofi -terminal xterm
|
|
|
|
Pattern: *{terminal}*
|
|
Default: *x-terminal-emulator*
|
|
|
|
`-ssh-client` *client*
|
|
|
|
Override the used ssh client.
|
|
|
|
Pattern: *{ssh-client}*
|
|
Default: *ssh*
|
|
|
|
|
|
### SSH settings
|
|
|
|
`-ssh-command` *cmd*
|
|
|
|
Set the command to execute when starting a ssh session.
|
|
The pattern *{host}* is replaced by the selected ssh entry.
|
|
|
|
Pattern: *{ssh-client}*
|
|
Default: *{terminal} -e {ssh-client} {host}*
|
|
|
|
`-parse-hosts`
|
|
|
|
Parse the `/etc/hosts` file for entries.
|
|
|
|
Default: *disabled*
|
|
|
|
`-parse-known-hosts`
|
|
`-no-parse-known-hosts`
|
|
|
|
Parse the `~/.ssh/known_hosts` file for entries.
|
|
|
|
Default: *enabled*
|
|
|
|
### Run settings
|
|
|
|
`-run-command` *cmd*
|
|
|
|
Set command (*{cmd}*) to execute when running an application.
|
|
See *PATTERN*.
|
|
|
|
Default: *{cmd}*
|
|
|
|
`-run-shell-command` *cmd*
|
|
|
|
Set command to execute when running an application in a shell.
|
|
See *PATTERN*.
|
|
|
|
Default: *{terminal} -e {cmd}*
|
|
|
|
`-run-list-command` *cmd*
|
|
|
|
If set, use an external tool to generate list of executable commands. Uses 'run-command'
|
|
|
|
Default: *""*
|
|
|
|
### Window switcher settings
|
|
|
|
`-window-format` *format*
|
|
|
|
Format what is being displayed for windows.
|
|
|
|
*format*: {field[:len]}
|
|
|
|
*field*:
|
|
|
|
* **w**: Desktop name
|
|
* **t**: Title of window
|
|
* **n**: Name
|
|
* **r**: Role
|
|
* **c**: Class
|
|
|
|
*len*: maximum field length (0 for auto-size). If length negative and window *width* is negative field length is *width - len*.
|
|
if length is positive, the entry will be truncated or padded to fill that length.
|
|
|
|
|
|
default: {w} {c} {t}
|
|
|
|
`-window-command` *cmd*
|
|
|
|
Set command to execute on selected window for custom action.
|
|
See *PATTERN*.
|
|
|
|
Default: *"xkill -id {window}"*
|
|
|
|
### Combi settings
|
|
|
|
`-combi-modi` *mode1,mode2*
|
|
|
|
The modi to combine in combi mode.
|
|
For syntax to see `-modi`.
|
|
To get one merge view, of window,run,ssh:
|
|
|
|
rofi -show combi -combi-modi "window,run,ssh" -modi combi
|
|
|
|
Notes: The I3 Window manager does not like commas in the command when specifying an exec command.
|
|
For that case '#' can be used as an separator.
|
|
|
|
### History and Sorting
|
|
|
|
`-disable-history`
|
|
`-no-disable-history` (re-enable history)
|
|
|
|
Disable history
|
|
|
|
`-levenshtein-sort` to enable
|
|
`-no-levenshtein-sort` to disable
|
|
|
|
When searching sort the result based on levenshtein distance.
|
|
This setting can be changed at runtime, see `-kb-toggle-sort`.
|
|
|
|
### Dmenu specific
|
|
|
|
`-sep` *separator*
|
|
|
|
Separator for dmenu. Example: To show list 'a' to 'e' with '|' as separator:
|
|
|
|
echo "a|b|c|d|e" | rofi -sep '|' -dmenu
|
|
|
|
`-p` *prompt*
|
|
|
|
Specify the prompt to show in dmenu mode. E.g. select monkey a,b,c,d or e.
|
|
|
|
echo "a|b|c|d|e" | rofi -sep '|' -dmenu -p "monkey:"
|
|
|
|
Default: *dmenu*
|
|
|
|
`-selected-row` *selected row*
|
|
|
|
Select a certain row.
|
|
|
|
Default: *0*
|
|
|
|
`-l` *number of lines to show*
|
|
|
|
Maximum number of lines the menu may show before scrolling.
|
|
|
|
rofi -lines 25
|
|
|
|
Default: *15*
|
|
|
|
`-i`
|
|
|
|
Makes dmenu searches case-insensitive
|
|
|
|
`-a` *X*
|
|
|
|
Active row, mark row X as active. (starting at 0)
|
|
You can specify single element: -a 3
|
|
A range: -a 3-8
|
|
or a set of rows: -a 0,2
|
|
or any combination: -a 0,2-3,9
|
|
|
|
`-u` *X*
|
|
|
|
Urgent row, mark row X as urgent. (starting at 0)
|
|
You can specify single element: -u 3
|
|
A range: -u 3-8
|
|
or a set of rows: -u 0,2
|
|
or any combination: -u 0,2-3,9
|
|
|
|
`-only-match`
|
|
|
|
Only return a selected item, do not allow custom entry.
|
|
This mode always returns an entry, or returns directly when no entries given.
|
|
|
|
`-no-custom`
|
|
|
|
Only return a selected item, do not allow custom entry.
|
|
This mode returns directly when no entries given.
|
|
|
|
`-format` *format*
|
|
|
|
Allows the output of dmenu to be customized (N is total number of input entries):
|
|
|
|
* 's' selected string.
|
|
* 'i' index (0 - (N-1)).
|
|
* 'd' index (1 - N).
|
|
* 'q' quote string.
|
|
* 'f' filter string (user input).
|
|
* 'F' quoted filter string (user input).
|
|
|
|
Default: 's'
|
|
|
|
`-select` *string*
|
|
|
|
Select first line that matches the given string
|
|
|
|
`-mesg` *string*
|
|
|
|
Add a message line below the filter entry box. Supports pango markup.
|
|
For more information on supported markup see [here](https://developer.gnome.org/pango/stable/PangoMarkupFormat.html)
|
|
|
|
`-normal-window`
|
|
|
|
Make **rofi** react like a normal application window. Useful for scripts like Clerk that are basically an application.
|
|
|
|
`-dump`
|
|
|
|
Dump the filtered list to stdout and quit.
|
|
This can be used to get the list as **rofi** would filter it.
|
|
Use together with `-filter` command.
|
|
|
|
`-input` *file*
|
|
|
|
Reads from *file* instead of stdin.
|
|
|
|
`-password`
|
|
|
|
Hide the input text. This should not be considered secure!
|
|
|
|
`-markup-rows`
|
|
|
|
Tell **rofi** that DMenu input is pango markup encoded and should be rendered.
|
|
See [here](https://developer.gnome.org/pango/stable/PangoMarkupFormat.html) for details about pango markup.
|
|
|
|
|
|
`-multi-select`
|
|
|
|
Allow multiple lines to be selected. Adds a small selection indicator to the left of each entry.
|
|
|
|
`-sync`
|
|
|
|
Force rofi mode to first read all data from stdin before showing selection window. This is how original dmenu behaviour.
|
|
|
|
Note: the default asynchronous mode will also be automatically disabled if used with conflicting options
|
|
such as `-dump`, `-only-match` or `-auto-select`
|
|
|
|
`-async-pre-read` *number*
|
|
|
|
Reads the first 25 entries blocking. Then switches to async mode. This makes it feel more 'snappy'.
|
|
|
|
*default*: 25
|
|
|
|
### Message dialog
|
|
|
|
`-e` *message*
|
|
|
|
Popup a message dialog (used internally for showing errors) with *message*.
|
|
Message can be multi-line.
|
|
|
|
### Other
|
|
|
|
`-pid` *path*
|
|
|
|
Make **rofi** create a pid file and check this on startup. Avoiding multiple copies running
|
|
simultaneously. This is useful when running **rofi** from a keybinding daemon.
|
|
|
|
`-fake-transparency`
|
|
|
|
Enable fake transparency. This only works with transparent background color in the theme.
|
|
|
|
`-fake-background`
|
|
|
|
Select what to use as background for fake transparency. This can be 'background', 'screenshot' or a path to an image
|
|
file (currently only supports png).
|
|
|
|
`-display-{mode}` *string*
|
|
|
|
Set the name to use for mode. This is used as prompt and in combi-browser.
|
|
|
|
`-click-to-exit`
|
|
`-no-click-to-exit`
|
|
|
|
Click the mouse outside of the **rofi** window to exit.
|
|
|
|
Default: *enabled*
|
|
|
|
### Debug
|
|
|
|
|
|
`-no-config`
|
|
|
|
Disable parsing of configuration. This runs rofi in *stock* mode.
|
|
|
|
`-no-plugins`
|
|
|
|
Disables the loading of plugins.
|
|
|
|
To get a trace with (lots of) debug information set the following environment variable when executing **rofi**:
|
|
|
|
```
|
|
G_MESSAGES_DEBUG=all
|
|
```
|
|
|
|
The trace can be filtered by only outputting the relevant domains, f.e.:
|
|
|
|
```
|
|
G_MESSAGES_DEBUG=Dialogs.DRun
|
|
```
|
|
|
|
For more information on debugging see the [wiki](https://github.com/DaveDavenport/rofi/wiki/Debugging%20Rofi)
|
|
|
|
## PATTERN
|
|
|
|
To launch commands (e.g. when using the ssh launcher) the user can enter the used command-line,
|
|
the following keys can be used that will be replaced at runtime:
|
|
|
|
* `{host}`: The host to connect to.
|
|
* `{terminal}`: The configured terminal (See -terminal-emulator)
|
|
* `{ssh-client}`: The configured ssh client (See -ssh-client)
|
|
* `{cmd}`: The command to execute.
|
|
* `{window}`: The window id of the selected window. (In `window-command`)
|
|
|
|
## DMENU REPLACEMENT
|
|
|
|
If `argv[0]` (calling command) is dmenu, **rofi** will start in dmenu mode.
|
|
This way it can be used as a drop-in replacement for dmenu. just copy or symlink **rofi** to dmenu in `$PATH`.
|
|
|
|
ln -s /usr/bin/rofi /usr/bin/dmenu
|
|
|
|
## THEMING
|
|
|
|
The theme format below describes the old (pre version 1.4) theme format. Please see rofi-theme(5) manpage for an updated
|
|
manual.
|
|
|
|
The theme setup allows you to specify colors per state, similar to **i3**
|
|
Currently 3 states exists:
|
|
|
|
* **normal** Normal row.
|
|
* **urgent** Highlighted row (urgent)
|
|
* **active** Highlighted row (active)
|
|
|
|
For each state the following 5 colors must be set:
|
|
|
|
* **bg** Background color row
|
|
* **fg** Text color
|
|
* **bgalt** Background color alternating row
|
|
* **hlfg** Foreground color selected row
|
|
* **hlbg** Background color selected row
|
|
|
|
The window background and border color should be specified separate. The key `color-window` contains
|
|
a pair `background,border,separator`.
|
|
An example for `Xresources` file:
|
|
|
|
! State: 'bg', 'fg', 'bgalt', 'hlbg', 'hlfg'
|
|
rofi.color-normal: #fdf6e3, #002b36, #eee8d5, #586e75, #eee8d5
|
|
rofi.color-urgent: #fdf6e3, #dc322f, #eee8d5, #dc322f, #fdf6e3
|
|
rofi.color-active: #fdf6e3, #268bd2, #eee8d5, #268bd2, #fdf6e3
|
|
|
|
! 'background', 'border', 'separator'
|
|
rofi.color-window: #fdf6e3, #002b36, #002b36
|
|
|
|
Same settings can also be specified on command-line:
|
|
|
|
rofi -color-normal "#fdf6e3,#002b36,#eee8d5,#586e75,#eee8d5"
|
|
|
|
## COLORS
|
|
|
|
RGB colors can be specified by either its X11 name, or hexadecimal notation.
|
|
For example:
|
|
|
|
white
|
|
|
|
Or
|
|
|
|
#FFFFFF
|
|
|
|
ARGB colors are also support, these can be used to create a transparent window if: 1. Your Xserver supports TrueColor, 2.
|
|
You are running a composite manager.
|
|
|
|
argb:FF444444
|
|
|
|
Or
|
|
|
|
#FF444444
|
|
|
|
The first two fields specify the alpha level. This determines the amount of transparency.
|
|
(00 everything, FF nothing). The other fields represent the actual color, in hex.
|
|
|
|
Within **rofi** transparency can be used, e.g. if the selected background color is 50% transparent, the background color
|
|
of the window will be visible through it.
|
|
|
|
## KEYBINDINGS
|
|
|
|
**rofi** has the following key-bindings:
|
|
|
|
* `Ctrl-v, Insert`: Paste clipboard
|
|
* `Ctrl-Shift-v, Shift-Insert`: Paste primary selection
|
|
* `Ctrl-u`: Clear the line
|
|
* `Ctrl-a`: Beginning of line
|
|
* `Ctrl-e`: End of line
|
|
* `Ctrl-f, Right`: Forward one character
|
|
* `Alt-f`: Forward one word
|
|
* `Ctrl-b, Left`: Back one character
|
|
* `Alt-b`: Back one word
|
|
* `Ctrl-d, Delete`: Delete character
|
|
* `Ctrl-Alt-d`: Delete word
|
|
* `Ctrl-h, Backspace`: Backspace (delete previous character)
|
|
* `Ctrl-Alt-h`: Delete previous word
|
|
* `Ctrl-j,Ctrl-m,Enter`: Accept entry
|
|
* `Ctrl-n,Down`: Select next entry
|
|
* `Ctrl-p,Up`: Select previous entry
|
|
* `Page Up`: Go to the previous page
|
|
* `Page Down`: Go to the next page
|
|
* `Ctrl-Page Up`: Go to the previous column
|
|
* `Ctrl-Page Down`: Go to the next column
|
|
* `Ctrl-Enter`: Use entered text as command (in ssh/run modi)
|
|
* `Shift-Enter`: Launch the application in a terminal (in run mode)
|
|
* `Shift-Enter`: Return the selected entry and move to the next item while keeping Rofi open. (in dmenu)
|
|
* `Shift-Right`: Switch to the next modi. The list can be customized with the `-switchers` argument.
|
|
* `Shift-Left`: Switch to the previous modi. The list can be customized with the `-switchers` argument.
|
|
* `Ctrl-Tab`: Switch to the next modi. The list can be customized with the `-switchers` argument.
|
|
* `Ctrl-Shift-Tab`: Switch to the previous modi. The list can be customized with the `-switchers` argument.
|
|
* `Ctrl-space`: Set selected item as input text.
|
|
* `Shift-Del`: Delete entry from history.
|
|
* `grave`: Toggle case sensitivity.
|
|
* `Alt-grave`: Toggle levenshtein sorting.
|
|
* `Alt-Shift-S`: Take a screenshot and store this in the Pictures directory.
|
|
|
|
To get a full list of keybindings on the commandline, see `rofi -dump-xresources | grep kb-`.
|
|
Keybindings can be modified using the configuration systems.
|
|
To get searchable list of keybindings, run `rofi -show keys`.
|
|
|
|
A keybinding starting with `!` will act when all keys have been released.
|
|
|
|
## Available Modi
|
|
|
|
### Window
|
|
|
|
Show a list of all the windows and allow switching between them.
|
|
Pressing the `delete-entry` binding (`shift-delete`) will close the window.
|
|
Pressing the `accept-custom` binding (`control-enter` or `shift-enter`) will run a command on the window.
|
|
(See option `window-command` );
|
|
|
|
### WindowCD
|
|
|
|
Shows a list of the windows on the current desktop and allows switching between them.
|
|
Pressing the `delete-entry` binding (`shift-delete`) will kill the window.
|
|
Pressing the `accept-custom` binding (`control-enter` or `shift-enter`) will run a command on the window.
|
|
(See option `window-command` );
|
|
|
|
### Run
|
|
|
|
Shows a list of executables in **$PATH** and can launch them (optional in a terminal).
|
|
Pressing the `delete-entry` binding (`shift-delete`) will remove this entry from the run history.
|
|
Pressing the `accept-custom` binding (`control-enter` or `shift-enter`) will run the command in a terminal.
|
|
|
|
### DRun
|
|
|
|
Same as the **run** launches, but the list is created from the installed desktop files. It automatically launches them
|
|
in a terminal if specified in the Desktop File.
|
|
Pressing the `delete-entry` binding (`shift-delete`) will remove this entry from the run history.
|
|
Pressing the `accept-custom` binding (`control-enter` or `shift-enter`) with custom input (no entry matching) will run the command in a terminal.
|
|
|
|
### SSH
|
|
|
|
Shows a list of SSH targets based on your ssh config file, and allows to quickly ssh into them.
|
|
|
|
### Keys
|
|
|
|
Shows a searchable list of key bindings.
|
|
|
|
### Script
|
|
|
|
Allows custom scripted Modi to be added.
|
|
|
|
## FAQ
|
|
|
|
### The text in the window switcher is not nicely lined out.
|
|
|
|
Try using a mono-space font.
|
|
|
|
### The window is completely black.
|
|
|
|
Check quotes used on the commandline: e.g. used “ instead of ".
|
|
|
|
### What does the icon in the top right show?
|
|
|
|
The indicator shows:
|
|
|
|
` ` Case insensitive and no sorting.
|
|
`-` Case sensitivity enabled, no sorting.
|
|
`+` Case insensitive and Sorting enabled
|
|
`±` Sorting and Case sensitivity enabled"
|
|
|
|
## EXAMPLES
|
|
|
|
Some basic usage examples of **rofi**:
|
|
|
|
Show the run dialog:
|
|
|
|
rofi -modi run -show run
|
|
|
|
|
|
Show the the run dialog and allow switching to Desktop File run dialog (drun):
|
|
|
|
rofi -modi run,drun -show run
|
|
|
|
Combine the run and Desktop File run dialog (drun):
|
|
|
|
rofi -modi combi -show combi -combi-modi run,drun
|
|
|
|
|
|
Combine the run and Desktop File run dialog (drun) and allow switching to window switcher:
|
|
|
|
rofi -modi combi,window -show combi -combi-modi run,drun
|
|
|
|
Run **rofi** full monitor width at the top of the monitor like a dropdown menu:
|
|
|
|
rofi -show run -width 100 -location 1 -lines 5 -bw 2 -yoffset -2
|
|
|
|
Get a colored list of available wifi networks:
|
|
|
|
tty-pipe nmcli device wifi | out2html -p | rofi -dmenu -markup-rows
|
|
|
|
Popup a text message claiming that this is the end:
|
|
|
|
rofi -e "This is the end"
|
|
|
|
Popup a text message in red, bold font claiming that this is still the end:
|
|
|
|
rofi -e "<span color='red'><b>This is still the end</b></span>>" -markup
|
|
|
|
Show all keybindings:
|
|
|
|
rofi -show keys
|
|
|
|
Use `qalc` to get a simple calculator in **rofi**:
|
|
|
|
rofi -show calc -modi "calc:qalc +u8 -nocurrencies"
|
|
|
|
## I3
|
|
|
|
In [I3](http://i3wm.org/) you want to bind rofi to be launched on key-release. Otherwise it cannot grab the keyboard.
|
|
See also the I3 [manual](http://i3wm.org/docs/userguide.html):
|
|
|
|
Some tools (such as import or xdotool) might be unable to run upon a KeyPress event, because the keyboard/pointer is
|
|
still grabbed. For these situations, the --release flag can be used, which will execute the command after the keys have
|
|
been released.
|
|
|
|
## LICENSE
|
|
|
|
MIT/X11
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
a copy of this software and associated documentation files (the
|
|
"Software"), to deal in the Software without restriction, including
|
|
without limitation the rights to use, copy, modify, merge, publish,
|
|
distribute, sublicense, and/or sell copies of the Software, and to
|
|
permit persons to whom the Software is furnished to do so, subject to
|
|
the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be
|
|
included in all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
## WEBSITE
|
|
|
|
**rofi** website can be found at [here](https://davedavenport.github.io/rofi/)
|
|
|
|
## SUPPORT
|
|
|
|
**rofi** support can be obtained [here](irc://irc.freenode.net/#rofi) (#rofi on irc.freenode.net), or via the
|
|
[forum](https://reddit.com/r/qtools//)
|
|
|
|
## DEBUGGING
|
|
|
|
Please see [this](https://github.com/DaveDavenport/rofi/wiki/Debugging Rofi) wiki entry.
|
|
|
|
## ISSUE TRACKER
|
|
|
|
**rofi** issue tracker can be found [here](https://github.com/DaveDavenport/rofi/issues)
|
|
|
|
When creating an issue, please read [this](https://github.com/DaveDavenport/rofi/blob/master/.github/CONTRIBUTING.md)
|
|
first.
|
|
|
|
## SEE ALSO
|
|
|
|
rofi-sensible-terminal(1), dmenu(1), rofi-theme(5)
|
|
|
|
## AUTHOR
|
|
|
|
Qball Cow <qball@gmpclient.org>
|
|
|
|
Rasmus Steinke <rasi@xssn.at>
|
|
|
|
Quentin Glidic <sardemff7+rofi@sardemff7.net>
|
|
|
|
|
|
Original code based on work by: Sean Pringle <sean.pringle@gmail.com>
|
|
|
|
For a full list of authors, check the AUTHORS file.
|