Rofi

From ArchWiki

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.

Installation

Install the rofi package for use under Xorg display servers.

Merging support for Wayland compositors in the main branch has indefinitely stalled [1]. For Wayland support, instead install rofi-lbonn-waylandAUR or rofi-lbonn-wayland-gitAUR for the developmental version. Note that these packages require a Wayland compositor that supports the Layer Shell protcol. This includes wlroots based compositors, such as Sway, and some Mir based compositors, but does not include mutter, the compositor for Gnome, for example.

Configuration

There are currently three methods of setting configuration options:

  • Local configuration. Normally, depending on XDG, in ~/.config/rofi/config.rasi.
  • Xresources: A method of storing key values in the Xserver.
  • Command line options
Note: The Xresources format is obsolete since rofi 1.6.0 and may stop working at any time.

So

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

can be expressed in a configuration file like this (New theme format):

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. You can write the output of the command directly to your configuration file while running rofi -dump-config > ~/.config/rofi/config.rasi

Note: i3 users be aware that putting commas in the i3 configuration file can cause issues. To bind a key to launch rofi, either use a configuration file or replace the commas with #, e.g. rofi -combi-modi window#drun#ssh.

Icons

It is possible to use icons to display with their corresponding entries. Assuming you have papirus-icon-theme installed, with -show-icons and defining the icon theme with -icon-theme, you can have rofi display icons and do the following:

$ rofi -combi-modi window,drun,ssh -theme solarized -font "hack 10" -show combi -icon-theme "Papirus" -show-icons

Rofi as dmenu replacement

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements. See Help:Style for reference.Tango-edit-clear.png

Reason: A single symlink does not need an AUR package (Discuss in Talk:Rofi)

If called as dmenu (via a symlink), rofi acts like dmenu. You may want to install rofi-dmenuAUR, which symlinks /usr/bin/dmenu to the rofi executable. Then, programs that call dmenu from a script (like passmenu from pass) will use rofi instead of dmenu.

If you prefer the look of dmenu, this approximates it:

rofi -show run -modi run -location 1 -width 100 \
		 -l 1 -line-margin 0 -line-padding 1 \
		 -separator-style none -font "mono 10" -columns 9 -bw 0 \
		 -disable-history \
		 -hide-scrollbar \
		 -color-window "#222222, #222222, #b1b4b3" \
		 -color-normal "#222222, #b1b4b3, #222222, #005577, #b1b4b3" \
		 -color-active "#222222, #b1b4b3, #222222, #007763, #b1b4b3" \
		 -color-urgent "#222222, #b1b4b3, #222222, #77003d, #b1b4b3" \
		 -kb-row-select "Tab" -kb-row-tab ""

Execute shell commands from rofi

If you want the ability to run shell commands or use your own scripts directly from rofi with seeing the output, then ensure following:

  • Define -run-shell-command '{terminal} -e SHELL -ic "{cmd} && read" where SHELL is your shell (e.g. bash, zsh). This allows you to enter the command on the inputbar followed by Shift+Enter. The terminal stays open until the next keypress.

This is an example with the recommended escaping sequence for i3:

bindsym $mod+d exec --no-startup-id rofi -show drun -run-shell-command '{terminal} -e zsh -ic "{cmd} && read"'

Unicode selection integration

Install rofimoji for a Unicode emoji/character picker integrated with rofi. See the project's README for usage and configuration.

Custom themes

You can preview and apply themes for rofi with

$ rofi-theme-selector

Customizations may be saved to your .Xresources file (requires the xorg-xrdb package). To apply changes, reload .Xresources with xrdb -load ~/.Xresources.

Contributed themes

Rofi comes with several official themes, and more user themes can be found at the rofi-themes repository.

Load up an official theme, or download a .rasi user theme and place it in ~/.config/rofi/example.rasi on the command line:

$ rofi options -theme example

Alternatively, in your configuration file outside of the configuration { } block:

@theme "example"

Tips and tricks

Rofi as power management menu

Rofi can be used to perform power management operation with systemd. Clone rofi-power-menu repository. To launch it, you have to tell rofi where to find rofi-power-menu executable. For example, if the executable is in $HOME/.rofi-power-menu:

rofi -show p -modi p:$HOME/.rofi-power-menu

You can also put the executable in the PATH, and pass only its name.

To show default symbols, you may need to install ttf-nerd-fonts-symbols.

For more information, read the README file in the repository.