dmenu

Kris's build of dmenu
git clone git clone https://git.krisyotam.com/krisyotam/dmenu.git
Log | Files | Refs | README | LICENSE

patches.def.h (16154B)


      1 /* Patches */
      2 
      3 /* The alpha patch adds transparency for the dmenu window.
      4  * You need to uncomment the corresponding line in config.mk to use the -lXrender library
      5  * when including this patch.
      6  * https://github.com/bakkeby/patches/blob/master/dmenu/dmenu-alpha-5.0_20210725_523aa08.diff
      7  */
      8 #define ALPHA_PATCH 0
      9 
     10 /* This adds padding for dmenu in similar fashion to the similarly named patch for dwm. The idea
     11  * is to have dmenu appear on top of the bar when using said patch in dwm.
     12  * https://github.com/bakkeby/patches/wiki/barpadding
     13  */
     14 #define BARPADDING_PATCH 0
     15 
     16 /* This patch adds proper support for Right-To-Left (RTL) languages, such as Hebrew,
     17  * Arabic, and Farsi.
     18  *
     19  * Texts combining both RTL and LTR languages are displayed correctly. This is
     20  * achieved using the GNU FriBiDi library, which is an additional dependency for
     21  * this patch.
     22  *
     23  * You need to uncomment the corresponding line in config.mk to use the fribidi library.
     24  * https://tools.suckless.org/dmenu/patches/bidi/
     25  */
     26 #define BIDI_PATCH 0
     27 
     28 /* This patch adds a border around the dmenu window. It is intended to be used with the center
     29  * or xyw patches, to make the menu stand out from similarly coloured windows.
     30  * http://tools.suckless.org/dmenu/patches/border/
     31  */
     32 #define BORDER_PATCH 0
     33 
     34 /* The caret scheme patch, a.k.a. colored caret patch, adds the option to change the color
     35  * of the caret via the SchemeCaret color scheme.
     36  *
     37  * https://tools.suckless.org/dmenu/patches/colored-caret/
     38  */
     39 #define CARET_SCHEME_PATCH 0
     40 
     41 /* By default the caret in dmenu has a width of 2 pixels. This patch makes that configurable
     42  * as well as overridable via a command line option.
     43  * https://github.com/DarkSamus669/dmenu-patches/blob/main/dmenu-caretwidth-5.2.diff
     44  */
     45 #define CARET_WIDTH_PATCH 0
     46 
     47 /* This patch makes dmenu case-insensitive by default, replacing the
     48  * case-insensitive -i option with a case sensitive -s option.
     49  * http://tools.suckless.org/dmenu/patches/case-insensitive/
     50  */
     51 #define CASEINSENSITIVE_PATCH 0
     52 
     53 /* This patch centers dmenu in the middle of the screen.
     54  * https://tools.suckless.org/dmenu/patches/center/
     55  */
     56 #define CENTER_PATCH 0
     57 
     58 /* Minor patch to enable the use of Ctrl+v (XA_PRIMARY) and Ctrl+Shift+v (CLIPBOARD) to paste.
     59  * By default dmenu only supports Ctrl+y and Ctrl+Shift+y to paste.
     60  */
     61 #define CTRL_V_TO_PASTE_PATCH 0
     62 
     63 /* This patch dyamically changes the size of the dmenu window based on how many items are
     64  * drawn in a vertical view. For this to work set a higher maximum of lines, e.g. -l 500.
     65  * https://gist.github.com/mircodz/1d9b88db958089bb08adbf45eb53b66f
     66  */
     67 #define DYNAMIC_HEIGHT_PATCH 0
     68 
     69 /* This patch adds a flag (-dy) which makes dmenu run the command given to it whenever input
     70  * is changed with the current input as the last argument and update the option list according
     71  * to the output of that command.
     72  * https://tools.suckless.org/dmenu/patches/dynamicoptions/
     73  */
     74 #define DYNAMIC_OPTIONS_PATCH 0
     75 
     76 /* This patch will allow for emojis on the left side with a colored background when selected.
     77  * To test this try running:
     78  *    $ echo -e ":b here\n:p there\n:r and here" | ./dmenu -p "Search..." -W 400 -l 20 -i -h -1
     79  * NB: the original patch came embedded with the the xyw patch, the morecolors patch and the
     80  * line height patch and as such is intended to be combined with these.
     81  * https://tools.suckless.org/dmenu/patches/emoji-highlight/
     82  */
     83 #define EMOJI_HIGHLIGHT_PATCH 0
     84 
     85 /* This patch adds support for fuzzy-matching to dmenu, allowing users to type non-consecutive
     86  * portions of the string to be matched.
     87  * https://tools.suckless.org/dmenu/patches/fuzzymatch/
     88  */
     89 #define FUZZYMATCH_PATCH 0
     90 
     91 /* Adds fzf-like functionality for dmenu.
     92  * Refer to https://github.com/DAFF0D11/dafmenu/ for documentation and example use cases.
     93  * https://github.com/DAFF0D11/dafmenu/blob/master/patches/dmenu-fzfexpect-5.1.diff
     94  */
     95 #define FZFEXPECT_PATCH 0
     96 
     97 /* Allows dmenu's entries to be rendered in a grid by adding a new -g flag to specify
     98  * the number of grid columns. The -g and -l options can be used together to create a
     99  * G columns * L lines grid.
    100  * https://tools.suckless.org/dmenu/patches/grid/
    101  */
    102 #define GRID_PATCH 0
    103 
    104 /* This patch adds the ability to move left and right through a grid.
    105  * This patch depends on the grid patch.
    106  * https://tools.suckless.org/dmenu/patches/gridnav/
    107  */
    108 #define GRIDNAV_PATCH 0
    109 
    110 /* This patch highlights the individual characters of matched text for each dmenu list entry.
    111  * If combined with the fuzzymatch patch then fuzzy highlight will be used for highlighting
    112  * depending on whether fuzzy matching is enabled.
    113  *
    114  * Known issue: highlighting does not work properly when pango markup is used
    115  *
    116  * https://tools.suckless.org/dmenu/patches/highlight/
    117  * https://tools.suckless.org/dmenu/patches/fuzzyhighlight/
    118  */
    119 #define HIGHLIGHT_PATCH 0
    120 
    121 /* This will automatically sort the search result so that high priority items are shown first.
    122  * https://tools.suckless.org/dmenu/patches/highpriority/
    123  */
    124 #define HIGHPRIORITY_PATCH 0
    125 
    126 /* This patch causes dmenu to print out the current text each time a key is pressed.
    127  * https://tools.suckless.org/dmenu/patches/incremental/
    128  */
    129 #define INCREMENTAL_PATCH 0
    130 
    131 /* This patch adds an option to provide preselected text.
    132  * https://tools.suckless.org/dmenu/patches/initialtext/
    133  */
    134 #define INITIALTEXT_PATCH 0
    135 
    136 /* Adds support for input methods (fctix, ibus, etc.) allowing the user to change the
    137  * keyboard layout while dmenu is open.
    138  * https://github.com/bakkeby/dmenu-flexipatch/pull/22
    139  */
    140 #define INPUTMETHOD_PATCH 0
    141 
    142 /* This patch adds a flag which will cause dmenu to select an item immediately if there
    143  * is only one matching option left.
    144  * https://tools.suckless.org/dmenu/patches/instant/
    145  */
    146 #define INSTANT_PATCH 0
    147 
    148 /* This patch adds a '-h' option which sets the minimum height of a dmenu line. This helps
    149  * integrate dmenu with other UI elements that require a particular vertical size.
    150  * http://tools.suckless.org/dmenu/patches/line-height/
    151  */
    152 #define LINE_HEIGHT_PATCH 0
    153 
    154 /* This patch adds a -wm flag which sets override_redirect to false; thus letting your window
    155  * manager manage the dmenu window.
    156  *
    157  * This may be helpful in contexts where you don't want to exclusively bind dmenu or want to
    158  * treat dmenu more as a "window" rather than as an overlay.
    159  * https://tools.suckless.org/dmenu/patches/managed/
    160  */
    161 #define MANAGED_PATCH 0
    162 
    163 /* This patch adds an additional color scheme for highlighting entries adjacent to the current
    164  * selection.
    165  * https://tools.suckless.org/dmenu/patches/morecolor/
    166  */
    167 #define MORECOLOR_PATCH 0
    168 
    169 /* This patch adds basic mouse support for dmenu.
    170  * https://tools.suckless.org/dmenu/patches/mouse-support/
    171  */
    172 #define MOUSE_SUPPORT_PATCH 0
    173 
    174 /* Expands the above to support mouse hovering.
    175  * https://tools.suckless.org/dmenu/patches/mouse-support/
    176  */
    177 #define MOTION_SUPPORT_PATCH 0
    178 
    179 /* Without this patch when you press Ctrl+Enter dmenu just outputs current item and it is not
    180  * possible to undo that.
    181  * With this patch dmenu will output all selected items only on exit. It is also possible to
    182  * deselect any selected item.
    183  * Also refer to the dmenu_run replacement on the below URL that supports multiple selections.
    184  *
    185  * This patch is not compatible with, and takes precedence over, the json, printinputtext,
    186  * pipeout and non-blocking stdin patches.
    187  *
    188  * https://tools.suckless.org/dmenu/patches/multi-selection/
    189  */
    190 #define MULTI_SELECTION_PATCH 0
    191 
    192 /* This patch provides dmenu the ability for history navigation similar to that of bash.
    193  *
    194  * If you take this patch then it is recommended that you also uncomment the line in the
    195  * dmenu_run script which replaces the exec command.
    196  *
    197  * https://tools.suckless.org/dmenu/patches/navhistory/
    198  */
    199 #define NAVHISTORY_PATCH 0
    200 
    201 /* This patch adds back in the workaround for a BadLength error in the Xft library when color
    202  * glyphs are used. This is for systems that do not have an updated version of the Xft library
    203  * (or generally prefer monochrome fonts).
    204  */
    205 #define NO_COLOR_EMOJI_PATCH 0
    206 
    207 /* Adds the -S option to disable sorting menu items after matching. Useful, for example, when menu
    208  * items are sorted by their frequency of use (using an external cache) and the most frequently
    209  * selected items should always appear first regardless of how they were exact, prefix, or
    210  * substring matches.
    211  * https://tools.suckless.org/dmenu/patches/no-sort/
    212  */
    213 #define NO_SORT_PATCH 0
    214 
    215 /* This is a patch to have dmenu read stdin in a non blocking way, making it wait for input both
    216  * from stdin and from X. This means that you can continue feeding dmenu while you type.
    217  * This patch is meant to be used along with the incremental patch, so that you can use stdout
    218  * to feed stdin.
    219  *
    220  * This patch is not compatible with the json and multi-selection patches, both of which takes
    221  * precedence over this patch.
    222  *
    223  * https://tools.suckless.org/dmenu/patches/non_blocking_stdin/
    224  */
    225 #define NON_BLOCKING_STDIN_PATCH 0
    226 
    227 /* Adds text which displays the number of matched and total items in the top right corner of dmenu.
    228  * https://tools.suckless.org/dmenu/patches/numbers/
    229  */
    230 #define NUMBERS_PATCH 0
    231 
    232 /* This patch adds simple markup for dmenu using pango markup.
    233  * This depends on the pango library v1.44 or greater.
    234  * You need to uncomment the corresponding lines in config.mk to use the pango libraries
    235  * when including this patch.
    236  *
    237  * Note that the pango patch is incompatible with the scroll patch and will result in
    238  * compilation errors if both are enabled.
    239  *
    240  * Known issue: not compatible with the scroll patch
    241  *
    242  * Also see:
    243  * https://developer.gnome.org/pygtk/stable/pango-markup-language.html
    244  * https://github.com/StillANixRookie/dmenu-pango
    245  */
    246 #define PANGO_PATCH 0
    247 
    248 /* With this patch dmenu will not directly display the keyboard input, but instead replace
    249  * it with dots. All data from stdin will be ignored.
    250  * https://tools.suckless.org/dmenu/patches/password/
    251  */
    252 #define PASSWORD_PATCH 0
    253 
    254 /* This patch allows the selected text to be piped back out with dmenu. This can be useful if you
    255  * want to display the output of a command on the screen.
    256  * Only text starting with the character '#' is piped out by default.
    257  *
    258  * This patch is not compatible with the json and multi-select patches, both of which takes
    259  * precedence over this one.
    260  *
    261  * https://tools.suckless.org/dmenu/patches/pipeout/
    262  */
    263 #define PIPEOUT_PATCH 0
    264 
    265 /* Lifted from the listfullwidth patch this simple change just avoids colors for the prompt (with
    266  * the -p option or in config.h) by making it use the same style as the rest of the input field.
    267  * The rest of the listfullwidth patch is covered by the vertfull patch.
    268  * https://tools.suckless.org/dmenu/patches/listfullwidth/
    269  */
    270 #define PLAIN_PROMPT_PATCH 0
    271 
    272 /* This patch changes the behaviour of matched items and the Tab key to allow tab completion.
    273  * https://tools.suckless.org/dmenu/patches/prefix-completion/
    274  */
    275 #define PREFIXCOMPLETION_PATCH 0
    276 
    277 /* This patch adds an option -ps to specify an item by providing the index that should be
    278  * pre-selected.
    279  * https://tools.suckless.org/dmenu/patches/preselect/
    280  */
    281 #define PRESELECT_PATCH 0
    282 
    283 /* This patch allows dmenu to print out the 0-based index of matched text instead of the matched
    284  * text itself. This can be useful in cases where you would like to select entries from one array
    285  * of text but index into another, or when you are selecting from an ordered list of non-unique
    286  * items.
    287  * https://tools.suckless.org/dmenu/patches/printindex/
    288  */
    289 #define PRINTINDEX_PATCH 0
    290 
    291 /* This patch adds a flag (-t) which makes Return key to ignore selection and print the input
    292  * text to stdout. The flag basically swaps the functions of Return and Shift+Return hotkeys.
    293  *
    294  * This patch is not compatible with the multi-select and json patches, both of which takes
    295  * precedence over this one.
    296  *
    297  * https://tools.suckless.org/dmenu/patches/printinputtext/
    298  */
    299 #define PRINTINPUTTEXT_PATCH 0
    300 
    301 /* This patch adds a flag (-q) which makes dmenu not show any items if the search string is
    302  * empty.
    303  * https://github.com/baskerville/dmenu_qxyw/blob/master/dmenu_qxyw-hg.diff
    304  */
    305 #define QUIET_PATCH 0
    306 
    307 /* This patch adds a new flag to dmenu with which text input will be rejected if it would
    308  * result in no matching item.
    309  * https://tools.suckless.org/dmenu/patches/reject-no-match/
    310  */
    311 #define REJECTNOMATCH_PATCH 0
    312 
    313 /* The input width used to be relative to the input options prior to commit e1e1de7:
    314  * https://git.suckless.org/dmenu/commit/e1e1de7b3b8399cba90ddca9613f837b2dbef7b9.html
    315  *
    316  * This had a performance hit when using large data sets and was removed in favour of having the
    317  * input width take up 1/3rd of the available space.
    318  *
    319  * This option adds that feature back in with some performance optimisations at the cost of
    320  * accuracy and correctness.
    321  */
    322 #define RELATIVE_INPUT_WIDTH_PATCH 0
    323 
    324 /* This patch adds a '-1' option which disables Shift-Return and Ctrl-Return.
    325  * This guarantees that dmenu will only output one item, and that item was read from stdin.
    326  * The original patch used '-r'. This was changed to '-1' to avoid conflict with the incremental
    327  * patch.
    328  * https://tools.suckless.org/dmenu/patches/restrict-return/
    329  */
    330 #define RESTRICT_RETURN_PATCH 0
    331 
    332 /* This patch adds support for text scrolling and no longer appends '...' for long input as
    333  * it can handle long text.
    334  *
    335  * Known issue: not compatible with the pango patch
    336  *
    337  * https://tools.suckless.org/dmenu/patches/scroll/
    338  */
    339 #define SCROLL_PATCH 0
    340 
    341 /* This patch adds -d and -D flags which separates the input into two halves; one half to be
    342  * displayed in dmenu and the other to be printed to stdout. This patch takes precedence over
    343  * the TSV patch.
    344  * https://tools.suckless.org/dmenu/patches/separator/
    345  */
    346 #define SEPARATOR_PATCH 0
    347 
    348 /* This patch allows the symbols, which are printed in dmenu to indicate that either the input
    349  * is too long or there are too many options to be shown in dmenu in one line, to be defined.
    350  * https://tools.suckless.org/dmenu/patches/symbols/
    351  */
    352 #define SYMBOLS_PATCH 0
    353 
    354 /* With this patch dmenu will split input lines at first tab character and only display first
    355  * part, but it will perform matching on and output full lines as usual.
    356  *
    357  * This can be useful if you want to separate data and representation, for example, a music
    358  * player wrapper can display only a track title to user, but still supply full filename to
    359  * the underlying script.
    360  * https://tools.suckless.org/dmenu/patches/tsv/
    361  */
    362 #define TSV_PATCH 0
    363 
    364 /* This patch prevents dmenu from indenting items at the same level as the prompt length.
    365  * https://tools.suckless.org/dmenu/patches/vertfull/
    366  */
    367 #define VERTFULL_PATCH 0
    368 
    369 /* This patch adds basic vi mode capabilities to dmenu.
    370  *   - movements inside typed text with [h|l|w|b|e|0|$]
    371  *   - movements through list with [j|k|g|G|C-d|C-u]
    372  *   - standard insertions with [a|A|i|I]
    373  *   - paste after|before cursor with [p|P], use ctrl to use clipboard
    374  *   - delete from cursor to eol with D
    375  *   - delete the character under cursor with x
    376  *   - Enter and Tab will work like normal
    377  *
    378  * https://tools.suckless.org/dmenu/patches/vi-mode/
    379  */
    380 #define VI_MODE_PATCH 0
    381 
    382 /* Adds extended window manager hints such as _NET_WM_WINDOW_TYPE and _NET_WM_WINDOW_TYPE_DOCK.
    383  * https://github.com/Baitinq/dmenu/blob/master/patches/dmenu-wm_type.diff
    384  */
    385 #define WMTYPE_PATCH 0
    386 
    387 /* This patch adds the ability to configure dmenu via Xresources. At startup, dmenu will read and
    388  * apply the resources named below:
    389  *    dmenu.font          : font or font set
    390  *    dmenu.background    : normal background color
    391  *    dmenu.foreground    : normal foreground color
    392  *    dmenu.selbackground : selected background color
    393  *    dmenu.selforeground : selected foreground color
    394  *
    395  * See patch/xresources.c for more color settings.
    396  *
    397  * https://tools.suckless.org/dmenu/patches/xresources/
    398  */
    399 #define XRESOURCES_PATCH 0
    400 
    401 /* This patch adds options for specifying dmenu window position and width.
    402  * The center patch takes precedence over the XYW patch if enabled.
    403  * https://tools.suckless.org/dmenu/patches/xyw/
    404  */
    405 #define XYW_PATCH 0