Skip to content
Rasmus Steinke edited this page May 10, 2015 · 37 revisions

####What is dmenu?

  • dmenu reads stdin, it splits the input based on a separator (newline character) and displays each item as a selectable entry. Confirming the selection will output that item to stdout.
  • dmenu also has a input textbox, that is used to filter the input list.
  • input can be arbitrary and will be shown on stdout the same way as regular entries.

####rofi extends standard dmenu behavior in the following ways:

  • it's possible to force output to match stdin. Entries that are not part of stdin are ignored
  • each line can have multiple actions, depending on the key that was pressed. rofi will return a different exit code on each key (default: Alt-{1-9} > exit codes 10-18)
  • filtering is case insensitive by default.
  • entries can be colored line by line, it's possible to color ranges and single lines. (x-y and x,y,z)
  • formatting of stdout with -format parameter
  • -format n will show line number
  • -format s will show line content
    ** -format n:s will show both, separated by ":"
  • rofi can select a certain line number on startup.

####Proposed extended features:

  • allow to separate input into a visible output and a hidden string, which matches output.
  • allow to output all filtered results to stdout
  • mark lines to be printed on stdout
  • make certain lines not selectable (think of help text at the top) - this could work similar to -u and -a options
Clone this wiki locally