Skip to content
Rasmus Steinke edited this page May 8, 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 a selected item. 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
  • chosen linenumber can be printed instead of line content. If line was not part of stdin, output is empty
  • 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.