dmenu
Related articles
dmenu is a fast and lightweight dynamic menu for X. It reads arbitrary text from stdin, and creates a menu with one item for each line. The user can then select an item, through the arrow keys or typing a part of the name, and the line is printed to stdout. dmenu_run is a wrapper that ships with the dmenu distribution that allows its use as an application launcher.
Contents
Installation
Install the dmenu package from the official repositories. If you want the development build from git, install the dmenu-gitAUR package from the Arch User Repository.
Various patched variants exist which extend dmenu's default functionality. Consider installing one of the following packages from the AUR:
- dmenu2AUR: dmenu fork with many useful patches applied and additional capabilities added including dimming, specifying a custom opacity, and underlining.
You may run dmenu with:
$ dmenu_run
Configuration
Now, you will want to attach the dmenu_run
command to a keystroke combination. This can be done either via your window manager or desktop environment configuration, or with a program like xbindkeys. See the Hotkeys article for more information. Also, it is helpful to Prelink dmenu.
Displaying Custom Items
Custom items may be shown by piping them into dmenu. For example:
$ echo -e "first\nsecond\nthird" | dmenu
Manually Adding Items
dmenu will look for executables in the directories defined in your $PATH
. See the following article for information on modifying your $PATH
: Environment variables
Fonts
dmenu can display fonts using the X logical font description as found using the tool xfontsel, which is provided by xorg-xfontsel. This example will run dmenu using the terminus-font:
$ dmenu_run -fn "-xos4-terminus-medium-r-*-*-14-*"
The syntax is similar if using a dmenu variant patched with XFT support.
$ dmenu_run -fn 'Droid Sans Mono-9'
Support for shell aliases
dmenu does not support shell aliases. To have dmenu recognize your aliases, install the dmenu-recent-aliasesAUR[broken link: archived in aur-mirror] package from the AUR and run dmenu_run_aliases
. Your aliases must be in either ~/.bash_aliases
or ~/.zsh_aliases
to be recognized by dmenu_run_aliases.
Troubleshooting
No locale support
Running dmenu_run results in the following error message:
$ dmenu_run
no locale support
Make sure that the environment variable LANG
is correctly set. See the following for more information: Locale#Troubleshooting
If certain entries are missing from dmenu, the cache may be malformed. Delete it and restart dmenu.
$ rm ~/.dmenu_cache $ rm ~/.cache/dmenu_run
Note that there will most likely be only one cache file, depending on if $XDG_CACHE_HOME
is set. See the contents of /usr/bin/dmenu_run
for more information.
See also
- dmenu – The official dmenu website
- Dmenu Hacking thread – Dmenu hacking thread in arch linux forums. An overview of scripts is provided in the dmenu_scripts collection.