DMENU(1)
โจ DMENU(1) โจ โ the dynamic menu, aka the manual page for dmenu
okay bestie, sit down, we're learning dmenu ๐ it's a General Commands Manual situation, and honestly? she's iconic. let's go.
๐ธ SYNOPSIS ๐ธ
dmenu [-bfiv] [-l lines] [-m monitor] [-p prompt] [-fn font] [-nb color]
[-nf color] [-sb color] [-sf color] [-w windowid]
dmenu_run ...
๐ฆ DESCRIPTION ๐ฆ
so what IS dmenu, you ask? it's a dynamic menu for X, and here's the vibe: it reads a list of newline-separated items from stdin. that's it, that's the whole job. ๐ซถ
then, when the user selects an item and presses Return, their choice is printed to stdout and dmenu terminates. like, gone, done, slay, exit stage left. โจ
and the filter? entering text will narrow the items to those matching the tokens in the input. typey typey, less listy listy. ๐ฅ
dmenu_run is a script used by dwm(1) which lists programs in the user's $PATH and runs the result in their $SHELL. king behavior, no cap. ๐
๐ OPTIONS ๐
one bullet per flag, we do NOT skip any, periodt.
-bโdmenuappears at the bottom of the screen. lowkey humble of her.-fโdmenugrabs the keyboard before readingstdinif not reading from a tty. this is faster, but will lock up X untilstdinreaches end-of-file.
โ ๏ธ bestie, that -f caveat is real real. faster yes, but X gets held hostage until EOF. know what you're doing, fr fr.
-iโdmenumatches menu items case insensitively.SlayandslayandSLAYare all the same girl. ๐-l linesโdmenulists items vertically, with the given number of lines.-m monitorโdmenuis displayed on the monitor number supplied. monitor numbers start from0. (yes, zero. programmers, amirite ๐)-p promptโ defines the prompt to be displayed to the left of the input field.-fn fontโ defines the font or font set used. โจ aesthetics โจ-nb colorโ defines the normal background color.#RGB,#RRGGBB, and X color names are supported. so many options, we love a flexible queen ๐-nf colorโ defines the normal foreground color.-sb colorโ defines the selected background color.-sf colorโ defines the selected foreground color.-vโ prints version information tostdout, then exits. short and sweet, we stan a brief encounter ๐-w windowidโ embed into windowid.
๐ USAGE ๐
big news: dmenu is completely controlled by the keyboard. no mouse, no touchscreen, no vibes-based clicking. items are selected using the arrow keys, page up, page down, home, and end.
here's the whole keymap, every single one, don't skip ๐ซถ
- Tab โ Copy the selected item to the input field.
- Return โ Confirm selection. Prints the selected item to
stdoutand exits, returning success. - Ctrl-Return โ Confirm selection. Prints the selected item to
stdoutand continues. - Shift-Return โ Confirm input. Prints the input text to
stdoutand exits, returning success. - Escape โ Exit without selecting an item, returning failure.
- Ctrl-Left โ Move cursor to the start of the current word
- Ctrl-Right โ Move cursor to the end of the current word
- C-a โ Home
- C-b โ Left
- C-c โ Escape
- C-d โ Delete
- C-e โ End
- C-f โ Right
- C-g โ Escape
- C-h โ Backspace
- C-i โ Tab
- C-j โ Return
- C-J โ Shift-Return
- C-k โ Delete line right
- C-m โ Return
- C-M โ Shift-Return
- C-n โ Down
- C-p โ Up
- C-u โ Delete line left
- C-w โ Delete word left
- C-y โ Paste from primary X selection
- C-Y โ Paste from X clipboard
- M-b โ Move cursor to the start of the current word
- M-f โ Move cursor to the end of the current word
- M-g โ Home
- M-G โ End
- M-h โ Up
- M-j โ Page down
- M-k โ Page up
- M-l โ Down
๐ that's the whole keyboard lore. memorize it or don't, but it's all here, iykyk.
๐ฅ SEE ALSO ๐ฅ
and that's the whole page, bestie!! this was dmenu-5.4, living under the DMENU(1) header, and she ate. ๐ โจ go forth and dynamically menu. ๐ฆ๐๐
๐ฆ where this page comes from
- ubuntu resolute: suckless-tools 49-1 ยท MIT
- ubuntu stonking: suckless-tools 49-1 ยท MIT
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms