---
obj: application
arch-wiki: https://wiki.archlinux.org/title/rofi
website: https://davatorium.github.io/rofi/
repo: https://github.com/davatorium/rofi
---
# Rofi
Rofi is a window switcher, run dialog, ssh-launcher and dmenu replacement that started as a clone of simpleswitcher, written by Sean Pringle and later expanded by Dave Davenport.

## Configuration
There are two methods of setting configuration options:
- Local configuration. Normally, depending on XDG, in `~/.config/rofi/config.rasi`.
- Command line options:

```shell
rofi -combi-modi window,drun,ssh -theme solarized -font "hack 10" -show combi
```

can be expressed in a configuration file like this:
```
configuration {
 modi: "window,drun,ssh,combi";
 font: "hack 10";
 combi-modi: "window,drun,ssh";
 }
@theme "solarized"
```

To get a full list of options for `config.rasi` file run `rofi -dump-config` or `rofi -h`. You can write the output of the command directly to your configuration file while running `rofi -dump-config > ~/.config/rofi/config.rasi`.

## Themes
The easiest way to get started theming rofi is by modifying your existing theme.

Themes can be modified/tweaked by adding theming elements to the end of the  
config file. The default location of this file is `~/.config/rofi/config.rasi`, if the file does not exists, you can create it.

A basic config:
```
configuration {
  modes: [ combi ];
  combi-modes: [ window, drun, run ];
}

@theme "gruvbox-light"

/* Insert theme modifications after this */
```

For example if we want to change the `Type to filter` text in the entry box we append the following:
```css
entry {
    placeholder: "Type here";
}
```

In the above section, `entry` indicates the widget, `placeholder` is the property we want to modify and we set it to the string `"Type here"`.
