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