Provided by: rofi_1.7.3-0.1_amd64 bug


       rofi - A window switcher, application launcher, ssh dialog, dmenu replacement and more


       rofi [ -show mode ]|[ -dmenu ]|[ -e msg ] [ CONFIGURATION ]


       rofi is an X11 pop-up 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.


       rofi's  main  functionality  is to assist in your workflow, allowing you to quickly switch
       between windows, start applications or log into a  remote  machine  via  ssh.   There  are
       different  modi  for  different  types  of  actions.  rofi is a standalone application and
       should not be integrated into scripts.  For integration into scripts it has a special mode
       that functions as a (drop-in) replacement for dmenu(1). See emulating dmenu below.

   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 X11) when launched with the -dmenu flag.

       For more information see rofi-dmenu(5).

   Display Error message
       rofi error dialog can also be called from the command line.

              rofi -e "my message"

       Markup support can be enabled, see CONFIGURATION options.


       There are currently three methods of setting configuration  options  (evaluated  in  order

              • System  configuration  file   (for  example  /etc/rofi.rasi).   It  first  checks
                XDG_CONFIG_DIRS, and then SYSCONFDIR (that is passed at compile time).  It  loads
                the  first  config file it finds, it does not merge multiple system configuration

              • Rasi theme file: The new theme format can be used to set configuration values.

              • Command-line options: Arguments passed to rofi.

       To get a template config file, run: rofi -dump-config > config.rasi

       This will contain (commented) all current  configuration  options,  modified  options  are

       The configuration system supports the following types:

              • string

              • integer (signed and unsigned)

              • char

              • boolean

              • lists

       For the syntax of these options, see the rofi-theme(5) manpage.

       For  use  on  the  command  line,  Boolean options have a non-default command-line syntax.
       Example to enable option X:


       To disable option X:


       Below is a list of the most important options:


       The help option shows the full list of command-line options and the  current  set  values.
       These include dynamic (run-time generated) options.


       Show the rofi version and exit.


       Dump  the  current  active configuration, in rasi format, to stdout and exit.  Information
       about the rasi format can be found in the rofi-theme(5) manpage.


       Dump the current active theme, in rasi format, to stdout and exit.

       -rasi-validate filename

       Try to parse the file and return 0 when successful, non-zero when failed.

       -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.

              Default:  Autodetect

       -display display

       The X server to contact. Default is $DISPLAY.


       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 three pre-defined options:

              echo -e "Option #1\nOption #2\nOption #3" | rofi -dmenu

       Or get the options from a script:

               / | 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 key bindings (see

       To show the run-dialog:

              rofi -show run

       If -show is the last option passed to rofi, the first enabled modi is shown.

       -modi mode1,mode2

       Specify an 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 configured 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 such mode has two


       Example: Have a mode called 'Workspaces' using the script:

              rofi -modi "window,run,ssh," -show Workspaces

       Notes: The i3 window manager dislikes commas  in  the  command  when  specifying  an  exec
       command.  For that case, # can be used as a separator.

       TIP: The name is allowed to contain spaces:

              rofi -modi "My File" -show "My File Browser"


       Start  in  case-sensitive  mode.   This  option  can  be  changed  at  run-time  using the
       -kb-toggle-case-sensitivity key binding.


       Cycle through the result list. Default is 'true'.

       -filter filter

       Filter the list by setting text in input bar to filter

       -config filename

       Load an alternative configuration file.

       -cache-dir filename

       Directory that is used to place temporary files, like history.

       -scroll-method method

       Select the scrolling method. 0: Per page, 1: continuous.


       Normalize the string before matching, so o will match ö, and é matches e.
       This is not a perfect implementation, but works. For now, it disables highlighting of  the
       matched part.


       Disables lazy grab, this forces the keyboard being grabbed before gui is shown.


       Disable plugin loading.

       -plugin-path directory

       Specify the directory where rofi should look for plugins.


       Show application icons in drun and window modes.


       Specify  icon  theme  to be used.  If not specified default theme from DE is used, Adwaita
       and gnome themes act as fallback themes.


       Specify an icon to be used when the application icon in run/drun are not yet loaded or  is
       not available.


       Use Pango markup to format output wherever possible.


       Make  rofi  react like a normal application window. Useful for scripts like Clerk that are
       basically an application.


       Make rofi steal focus on launch and restore close to window that held it when launched.

       -matching method

       Specify the matching algorithm used.  Currently, 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

              • prefix: match prefix

       Default: normal

       Note: glob matching might be slow for larger lists


       Tokenize the input.

       -drun-categories category1,category2

       Only show desktop files that are present in the listed categories.

       -drun-match-fields field1,field2,...

       When using drun, match only with the specified Desktop entry fields.  The different fields

              • name: the application's name

              • generic: the application's generic name

              • exec: the application's  executable

              • categories: the application's categories

              • comment: the application comment


              all: all the above

              Default: name,generic,exec,categories,keywords


       The format string for the drun dialog:

              • name: the application's name

              • generic: the application's generic name

              • exec: the application's  executable

              • categories: the application's categories

              • comment: the application comment

       Pango markup can be used to formatting the output.

              Default: {name} [<span weight='light' size='small'><i>({generic})</i></span>]

       Note: Only fields enabled in -drun-match-fields can be used in the format string.


       Show actions present in the Desktop files.

              Default: false

       -window-match-fields field1,field2,...

       When using window mode, match only with the specified fields.  The different fields are:

              • title: window's title

              • class: window's class

              • role: window's role

              • name: window's name

              • desktop: window's current desktop


              all: all the above

              Default: all

       -matching-negate-char char

       Set  the  character used to negate the query (i.e. if it does not match the next keyword).
       Set to '\x0' to disable.

              Default: '-'

   Layout and Theming
         In newer rofi releases, all the theming options have  been  moved  into  the  new  theme
       format. They are no longer normal
         rofi options that can be passed directly on the command line (there are too many).
         Small snippets can be passed on the command line: rofi -theme-str 'window {width: 50%;}'
       to override a single
         setting. They are merged into the current theme.
         They can also be appended at the end of the rofi config file to override  parts  of  the

       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.


       Specify  where the window should be located. The numbers map to the following locations on

                1 2 3
                8 0 4
                7 6 5

       Default: 0


       Keep a fixed number of visible lines.


       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


       Automatically  select  the  entry the mouse is hovering over. This option is best combined
       with custom mouse bindings.  To utilize hover-select and  accept  an  entry  in  a  single
       click, use:

              rofi -show run -hover-select -me-select-entry '' -me-accept-entry MousePrimary

       -eh number

       Set row height (in chars) Default: 1


       When one entry is left, automatically select it.

       -m num

       -m name

       -monitor num

       -monitor name

       Select  monitor  to  display  rofi on.  It accepts as input: 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 (that is, rofi will be displayed on top of the
                focused window).

              • -3: Position of mouse (overrides the location setting to get normal context  menu

              • -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 command line as an override.

       For example:

              rofi -theme-str '#window { fullscreen: true; }'

       This  option  can  be specified multiple times.  This is now the method to tweak the theme
       via the command line.

       -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

              • If  set  to 1, it tries to auto-detect based on the size of the monitor that rofi
                is displayed on (similar to latest Qt 5).

       -selected-row selected row

       Select a certain row.

       Default: 0

   PATTERN setting

       Specify which 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 an ssh session.  The pattern {host}  is  replaced
       by the selected ssh entry.

       Pattern: {ssh-client}

       Default: {terminal} -e {ssh-client} {host}


       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 a list of executable commands. Uses run-command.

       Default: {cmd}

   Window switcher settings
       -window-format format

       Format what is being displayed for windows.

       format: {field[:len]}


              • w: desktop name

              • t: title of window

              • n: name

              • r: role

              • c: class

       len:  maximum  field  length  (0  for auto-size). If length and window width are 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  an  alt  action  (-kb-accept-alt).   See

       Default: "wmctrl -i -R {window}"


       Show window thumbnail (if available) as icon in the window switcher.

       You  can stop rofi from exiting when closing a window (allowing multiple to be closed in a

              configuration {
                window {
                    close-on-delete: false;

   Combi settings
       -combi-modi mode1,mode2

       The modi to combine in combi mode.  For syntax to -combi-modi,  see  -modi.   To  get  one
       merge view, of window,run, and ssh:

              rofi -show combi -combi-modi "window,run,ssh" -modi combi

       NOTE:  The  i3  window  manager  dislikes  commas  in  the command when specifying an exec
       command.  For that case, # can be used as a separator.


       The format string for entries in the combi dialog:

              • mode: the mode display name

              • text: the entry text

       Pango markup can be used to formatting the output.

              Default: {mode} {text}

       Note: This setting is ignored if combi-hide-mode-prefix is eanbled.

   History and Sorting
       -disable-history -no-disable-history (re-enable history)

       Disable history

       -sort to enable -no-sort to disable

       Enable, disable sorting.  This setting can be changed at runtime (see -kb-toggle-sort).

       -sorting-method 'method' to specify the sorting method.

       There are 2 sorting methods:

              • levenshtein (Default)

              • fzf sorting.

       -max-history-size number

       Maximum number of entries to store  in  history.  Defaults  to  25.  (WARNING:  can  cause
       slowdowns when set too high)

   Message dialog
       -e message

       Pops  up  a message dialog (used internally for showing errors) with message.  Message can
       be multi-line.

   File browser settings
       File browser behavior can be controlled via the following options:

              configuration {
                 filebrowser {
                    /** Directory the file browser starts in. */
                    directory: "/some/directory";
                      * Sorting method. Can be set to:
                      *   - "name"
                      *   - "mtime" (modification time)
                      *   - "atime" (access time)
                      *   - "ctime" (change time)
                    sorting-method: "name";
                    /** Group directories before files. */
                    directories-first: true;


       Build and use a cache with the content of desktop files. Usable for systems with slow hard


       If drun-use-desktop-cache is enabled, rebuild a cache with the content of desktop files.

       -drun-url-launcher command

       Command to open a Desktop Entry that is a Link.

       -pid path

       Make rofi create a pid file and check this on startup. The pid file prevents multiple rofi
       instances from running simultaneously. This is useful when running rofi from a key-binding


       If rofi is already running, based on pid file, try to kill that instance.

       -display-{mode} string

       Set the name to use for mode. This is used as prompt and in combi-browser.

       It is now preferred to use the configuration file:

              configuration {
                {mode} {
                  display-name: *string*;

       -click-to-exit -no-click-to-exit

       Click the mouse outside the rofi window to exit.

       Default: enabled


       To launch commands (for example, 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)

              • {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)


       Please see rofi-theme(5) manpage for more information on theming.


       rofi has the following key bindings:

              • Control-v, Insert: Paste from clipboard

              • Control-Shift-v, Shift-Insert: Paste primary selection

              • Control-u: Clear the line

              • Control-a: Beginning of line

              • Control-e: End of line

              • Control-f, Right: Forward one character

              • Alt-f, Control-Right: Forward one word

              • Control-b, Left: Back one character

              • Alt-b, Control-Left: Back one word

              • Control-d, Delete: Delete character

              • Control-Alt-d: Delete word

              • Control-h, Backspace, Shift-Backspace: Backspace (delete previous character)

              • Control-Alt-h: Delete previous word

              • Control-j,Control-m,Enter: Accept entry

              • Control-n,Down: Select next entry

              • Control-p,Up: Select previous entry

              • Page Up: Go to previous page

              • Page Down: Go to next page

              • Control-Page Up: Go to previous column

              • Control-Page Down: Go to next column

              • Control-Enter: Use entered text as a command (in ssh/run modi)

              • Shift-Enter: Launch the application in a terminal (in run mode)

              • Control-Shift-Enter: As Control-Enter and run the command  in  terminal  (in  run

              • Shift-Enter:  Return  the  selected entry and move to the next item while keeping
                rofi open. (in dmenu)

              • Shift-Right: Switch to the next mode. The list can be customized with  the  -modi

              • Shift-Left:  Switch  to  the  previous  mode. The list can be customized with the
                -modi argument.

              • Control-Tab: Switch to the next mode. The list can be customized with  the  -modi

              • Control-Shift-Tab:  Switch  to the previous mode. The list can be customized with
                the -modi argument.

              • Control-space: Set selected item as input text.

              • Shift-Del: Delete entry from history.

              • grave: Toggle case sensitivity.

              • Alt-grave: Toggle sorting.

              • Alt-Shift-S: Take a screenshot and store it in the Pictures directory.

              • Control-l: File complete for run dialog.

       This list might not be complete, to get a full list of all key bindings supported in  your
       rofi, see rofi -h. The options starting with -kb are keybindings.

       Key  bindings  can be modified using the configuration systems. Multiple keys can be bound
       to one action by comma separating them. For example -kb-primary-paste "Conctrol+v,Insert"

       To get a searchable list of key bindings, run rofi -show keys.

       A key binding starting with ! will act when all keys have been released.

       You can bind certain events to key-actions:

       You can configure an action to be taken when rofi has  not  been  interacted  with  for  a
       certain amount of seconds. You can specify a keybinding to trigger after X seconds.

              configuration {
                timeout {
                    delay:  15;
                    action: "kb-cancel";

   Input change
       When the input of the textbox changes:

              configuration {
                inputchange {
                    action: "kb-row-first";

       For a full list of bindings, see the rofi-keys(5) manpage.

Available Modi

       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 );

       If there is no match, it will try to launch the input.

       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 );

       If there is no match, it will try to launch the input.

       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)  will run the command as
       entered in the entry box.  Pressing the accept-alt  binding  (shift-enter)  will  run  the
       command in a terminal.

       When  pressing the mode-complete binding (Control-l), you can use the File Browser mode to
       launch the application with a file as the first argument.

       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)  will run the command as entered in the entry
       box.  Pressing the accept-alt binding (shift-enter) will run the command in a terminal.

       When pressing the mode-complete binding (Control-l), you can use the File Browser mode  to
       launch the application passing a file as argument if specified in the desktop file.

       The    DRUN    mode    tries    to    follow   the   XDG   Desktop   Entry   Specification
       ⟨⟩ and should be compatible
       with  applications  using  this standard.  Some applications create invalid desktop files,
       rofi will discard these entries.  See the debugging section for more info  on  DRUN  mode,
       this will print why desktop files are discarded.

       There are two advanced options to tweak the behaviour:

              configuration {
                 drun {
                    /** Parse user desktop files. */
                    parse-user:   true;
                    /** Parse system desktop files. */
                    parse-system: false;

       Shows  a list of SSH targets based on your ssh config file, and allows to quickly ssh into

       Shows a searchable list of key bindings.

       Allows custom scripted  Modi  to  be  added,  see  the  rofi-script(5)  manpage  for  more

       Combines  multiple  modi in one list. Specify which modi are included with the -combi-modi

       When using the combi mode, a !bang can be used to filter the results by  modi.   All  modi
       that  match  the  bang  as  a  prefix  are  included.  For example, say you have specified
       -combi-modi run,window,windowcd. If your query begins with the bang !w, only results  from
       the  window  and  windowcd  modi are shown, even if the rest of the input text would match
       results from run.

       If no match, the input is handled by the first combined modi.


   The text in the window switcher is not nicely aligned.
       Try using a mono-space font.

   The window is completely black.
       Check quotes used on the command-line: you might have used  ("smart quotes") instead of "
       ("machine quotes").

   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"

   Why do I see different icons for run,drun and window mode
       Each of these modes uses different methods of resolving the icon:

              • Window:  It  first uses the icon that the application exposes via the X11 Server,
                if none is set it does a lookup of the window Class name in the icon theme.

              • drun: It uses the icon set in the desktop file.

              • run: It does a lookup using the executable name.


       Some basic usage examples of rofi:

       Show the run dialog:

              rofi -modi run -show run

       Show 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

              rofi -modi combi,window -show combi -combi-modi run,drun

       Pop up a text message claiming that this is the end:

              rofi -e "This is the end"

       Pop up 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 key bindings:

              rofi -show keys

       Use qalc to get a simple calculator in rofi:

               rofi -show calc -modi "calc:qalc +u8 -nocurrencies"


       In  i3  ⟨⟩ you want to bind rofi to be launched on key release. Otherwise,
       it     cannot     grab     the     keyboard.      See     also     the      i3      manual

       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, as it will execute the command after the keys have been released.



              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.



       rofi website can be found here ⟨⟩


       rofi support can be obtained:
        * GitHub Discussions ⟨⟩
        * Forum (Reddit) ⟨⟩
        * IRC ⟨irc://⟩ (#rofi on,


       To debug, it is smart to first try disabling your custom configuration: -no-config

       Disable parsing of configuration. This runs rofi in stock mode.

       If you run custom C plugins, you can disable them using:


       Disables the loading of plugins.

       To  further  debug the plugin, you can get a trace with (lots of) debug information.  This
       debug output can be enabled for multiple parts in rofi using  the  glib  debug  framework.
       Debug  domains can be enabled by setting the G_MESSAGES_DEBUG environment variable. At the
       time of creation of this page, the following debug domains exist:

              • all: Show debug information from all domains.

              • X11Helper: The X11 Helper functions.

              • View: The main window view functions.

              • Widgets.Box: The Box widget.

              • Dialogs.DMenu: The dmenu mode.

              • Dialogs.Run: The run mode.

              • Dialogs.DRun: The desktop file run mode.

              • Dialogs.Window: The window mode.

              • Dialogs.Script: The script mode.

              • Dialogs.Combi: The script mode.

              • Dialogs.Ssh: The ssh mode.

              • Rofi: The main application.

              • Timings: Get timing output.

              • Theme: Theme engine debug output. (warning lots of output).

              • Widgets.Icon: The Icon widget.

              • Widgets.Box: The box widget.

              • Widgets.Container: The container widget.

              • Widgets.Window: The window widget.

              • Helpers.IconFetcher: Information about icon lookup.

       The output of this can provide useful information when writing an issue.

       More          information          (possibly          outdated)          see          this
       ⟨⟩ wiki entry.


       The rofi issue tracker can be found here ⟨⟩

       When          creating          an         issue,         please         read         this
       ⟨⟩ first.


       rofi-sensible-terminal(1),        dmenu(1),         rofi-theme(5),         rofi-script(5),


              • Qball Cow ⟨⟩

              • Rasmus Steinke ⟨⟩

              • Quentin Glidic ⟨⟩

       Original        code        based        on        work       by:       Sean       Pringle
       ⟨⟩ ⟨⟩

       For a full list of authors, check the AUTHORS file.

                                               rofi                                       ROFI(1)