# ROFI 1 rofi ## NAME **rofi** - A window switcher, application launcher, ssh dialog and dmenu replacement ## SYNOPSIS **rofi** [ -width *pct_scr* ] [ -lines *lines* ] [ -columns *columns* ] [ -font *pangofont* ] [ -terminal *terminal* ] [ -location *position* ] [ -fixed-num-lines ] [ -padding *padding* ] [ -display *display* ] [ -bw *width* ] [ -dmenu [ -p *prompt* ] [ -sep *separator* ] [ -l *selected line* ] [ -mesg ] [ -select ] [ -input *input* ] ] [ -filter *filter* ] [ -ssh-client *client* ] [ -ssh-command *command* ] [ -window-command *command* ] [ -disable-history ] [ -levenshtein-sort ] [ -case-sensitive ] [ -cycle ] [ -show *mode* ] [ -modi *mode1,mode2* ] [ -eh *element height* ] [ -e *message*] [ -a *row* ] [ -u *row* ] [ -pid *path* ] [ -version ] [ -help ] [ -dump-xresources ] [ -auto-select ] [ -parse-hosts ] [ -no-parse-known-hosts ] [ -combi-modi *mode1,mode2* ] [ -normal-window ] [ -fake-transparency ] [ -matching *method* ] [ -tokenize ] [ -no-click-to-exit ] [ -threads *num* ] [ -config *filename* ] [ -no-show-match ] [ -theme *filename* ] [ -theme-str *string* ] [ -dpi *dpi* ] ## 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 `. 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). ## 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. * 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: :