Skip to content

bakkeby/dmenu

Repository files navigation

Please ignore. This is just my personal build of what was once dmenu.

Refer to https://tools.suckless.org/dmenu/ for details on dmenu, how to install it and how it works. Alternatively you may want to refer to the wiki for more information about this build and the various options.


Patches included:

  • alpha

    • adds transparency for the dmenu window
  • barpadding

    • adds padding between the dmenu window and the edge of the screen
    • intended to be used in combination with the barpadding patch for dwm
  • border

    • adds a border around the dmenu window
  • case-insensitive

    • adds option to make dmenu case-insensitive by default
  • center

    • this patch centers dmenu in the middle of the screen
  • color_emoji

    • enables color emoji in dmenu by removing a workaround for a BadLength error in the Xft library when color glyphs are used
    • enabling this will crash dmenu on encountering such glyphs unless you also have an updated Xft library that can handle them
  • dynamic_options

    • adds an option which makes dmenu run the command given to it whenever input is changed with the current input as the last argument and update the option list according to the output of that command
  • fuzzyhighlight

    • intended to be combined with the fuzzymatch patch, this makes it so that fuzzy matches are highlighted
  • fuzzymatch

    • adds support for fuzzy-matching to dmenu, allowing users to type non-consecutive portions of the string to be matched
  • grid

    • allows dmenu's entries to be rendered in a grid by adding a option to specify the number of grid columns
  • gridnav

    • adds the ability to move left and right through a grid (when using the grid patch)
  • highpriority

    • this patch will automatically sort the search result so that high priority items are shown first
  • incremental

    • this patch causes dmenu to print out the current text each time a key is pressed
  • initialtext

    • adds an option to provide preselected text
  • instant

    • adds a flag that will cause dmenu to select an item immediately if there is only one matching option left
  • line-height

    • adds an option which sets the minimum height of a dmenu line
    • this helps integrate dmenu with other UI elements that require a particular vertical size
  • managed

    • adds an option which sets override_redirect to false; thus letting your window manager manage the dmenu window
    • this may be helpful in contexts where you don't want to exclusively bind dmenu or want to treat dmenu more as a "window" rather than as an overlay
  • morecolor

    • adds an additional color scheme for highlighting entries adjacent to the current selection
  • mouse-support

    • adds basic mouse support for dmenu
  • multi-selection

    • without this patch when you press Ctrl+Enter dmenu just outputs current item and it is not possible to undo that
    • with this patch dmenu will output all selected items only on exit
    • it is also possible to deselect any selected item
  • navhistory

    • provides dmenu the ability for history navigation similar to that of bash
  • no-sort

    • adds an option option to disable sorting menu items after matching
    • useful, for example, when menu items are sorted by their frequency of use (using an external cache) and the most frequently selected items should always appear first regardless of how they were exact, prefix, or substring matches
  • numbers

    • adds text which displays the number of matched and total items in the top right corner of dmenu
  • password

    • with this patch dmenu will not directly display the keyboard input, but instead replace it with dots
    • all data from stdin will be ignored
  • plain-prompt

    • simple change that avoids colors for the prompt by making it use the same style as the rest of the input field
  • preselect

    • adds an option to preselect an item by providing the index that should be pre-selected
  • printindex

    • allows dmenu to print out the 0-based index of matched text instead of the matched text itself
    • this can be useful in cases where you would like to select entries from one array of text but index into another, or when you are selecting from an ordered list of non-unique items
  • printinputtext

    • adds an option which makes Return key ignore selection and print the input text to stdout
    • the flag basically swaps the functions of Return and Shift+Return hotkeys
  • rejectnomatch

    • adds an option where text input will be rejected if it would result in no matching item
  • restrict-return

    • adds an option that disables Shift-Return and Ctrl-Return
    • this guarantees that dmenu will only output one item, and that item was read from stdin
  • separator

    • separates the input in two halves based on a delimiter where one half is displayed in dmenu while the other is returned / printed to standard out when selected
  • symbols

    • allows the symbols, which are printed in dmenu to indicate that either the input is too long or there are too many options to be shown in dmenu in one line, to be defined
  • tsv

    • makes dmenu split input lines at first tab character and only display first part, but it will perform matching on and output full lines as usual
    • can be useful if you want to separate data and representation
  • vertfull

    • prevents dmenu from indenting items at the same level as the prompt length
  • wmtype

    • adds extended window manager hints such as _NET_WM_WINDOW_TYPE and _NET_WM_WINDOW_TYPE_DOCK
  • xresources

    • allows dmenu to read font and colors from Xresources
  • xyw

    • adds options for specifying dmenu window position and width