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.
Contents
Installation
Configuration
There are currently three methods of setting configuration options:
- Local configuration. Normally, depending on XDG, in
~/.config/rofi/config
. This uses the Xresources format. - Xresources: A method of storing key values in the Xserver.
- Command line options
So
rofi -combi-modi window,drun,ssh -theme solarized -font "hack 10" -show combi
can be expressed in a config file like this:
rofi.combi-modi: window,drun,ssh rofi.theme: solarized rofi.font: hack 10 rofi.modi: combi
To get a full list of options you can put in Xresources or in your config file run rofi -dump-Xresources
#
eg rofi -combi-modi window#drun#ssh
If called as dmenu (via a symlink), rofi acts like dmenu. You may want to install rofi-dmenuAUR, which symlinks dmenu to rofi. 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 \ -lines 2 -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:
- configure the PATH variable in
~/.profile
(instead of e.g.~/.bashrc
) and then logout and re-login to your window manager/desktop environment - define
-run-shell-command '{terminal} -e \\"{cmd}; read -n 1 -s"'
. 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 -font \\"DejaVu 9\\" -run-shell-command '{terminal} -e \\" {cmd}; read -n 1 -s\\"'"
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
See the official rofi-themes repository for a list of custom themes.
Download one of the .rasi themes and place it in ~/.config/rofi/example.rasi
. Then load up the theme on the command line or in a config file:
rofi <options> -theme example
or in your configuration file
rofi.theme: example