Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package bemenu for openSUSE:Factory checked in at 2023-05-09 13:08:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bemenu (Old) and /work/SRC/openSUSE:Factory/.bemenu.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bemenu" Tue May 9 13:08:52 2023 rev:19 rq:1085625 version:0.6.15 Changes: -------- --- /work/SRC/openSUSE:Factory/bemenu/bemenu.changes 2022-12-16 17:52:19.492239968 +0100 +++ /work/SRC/openSUSE:Factory/.bemenu.new.1533/bemenu.changes 2023-05-09 13:08:58.277604315 +0200 @@ -1,0 +2,14 @@ +Tue May 9 06:26:48 UTC 2023 - Michael Vetter <mvet...@suse.com> + +- Update to 0.6.15: + * Add rounded corners/Border radius #319 + * Add Match/Page Counter #204 + * docs: add missing options #331 + * Add fixed height option #270 + * Fix Makefile to support submodule setups #329 + * Fix: invisible right border #333 + * Fix: select last entry if pointer/touch above last index #332 + * ESC have no effect under Wayland while enabled Vim binding #334 + * Small fixes #340 + +------------------------------------------------------------------- Old: ---- bemenu-0.6.14.tar.gz New: ---- bemenu-0.6.15.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bemenu.spec ++++++ --- /var/tmp/diff_new_pack.9ClrHb/_old 2023-05-09 13:08:58.797607410 +0200 +++ /var/tmp/diff_new_pack.9ClrHb/_new 2023-05-09 13:08:58.801607434 +0200 @@ -1,7 +1,7 @@ # # spec file for package bemenu # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define bcond_with curses Name: bemenu -Version: 0.6.14 +Version: 0.6.15 Release: 0 Summary: Dynamic menu library and client program inspired by dmenu License: MIT ++++++ bemenu-0.6.14.tar.gz -> bemenu-0.6.15.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bemenu-0.6.14/GNUmakefile new/bemenu-0.6.15/GNUmakefile --- old/bemenu-0.6.14/GNUmakefile 2022-12-16 01:15:13.000000000 +0100 +++ new/bemenu-0.6.15/GNUmakefile 2023-05-08 14:19:04.000000000 +0200 @@ -33,7 +33,8 @@ # support non git builds .git/index: - mkdir -p .git + [ -f .git ] && exit; \ + mkdir -p .git; \ touch .git/index %.a: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bemenu-0.6.14/VERSION new/bemenu-0.6.15/VERSION --- old/bemenu-0.6.14/VERSION 2022-12-16 01:15:13.000000000 +0100 +++ new/bemenu-0.6.15/VERSION 2023-05-08 14:19:04.000000000 +0200 @@ -1 +1 @@ -0.6.14 +0.6.15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bemenu-0.6.14/client/common/common.c new/bemenu-0.6.15/client/common/common.c --- old/bemenu-0.6.14/client/common/common.c 2022-12-16 01:15:13.000000000 +0100 +++ new/bemenu-0.6.15/client/common/common.c 2023-05-08 14:19:04.000000000 +0200 @@ -182,7 +182,9 @@ " -T, --no-touch ignore touch events.\n" " -K, --no-keyboard ignore keyboard events.\n" " --binding use alternative key bindings. Available options: vim\n" + " --fixed-height prevent the display from changing height on filter.\n" " --scrollbar display scrollbar. (none (default), always, autohide)\n" + " --counter display a matched/total items counter. (none (default), always)\n" " --accept-single immediately return if there is only one item.\n" " --ifne only display menu if there are items.\n" " --fork always fork. (bemenu-run)\n" @@ -208,6 +210,7 @@ " -M, --margin defines the empty space on either side of the menu. (wx)\n" " -W, --width-factor defines the relative width factor of the menu (from 0 to 1). (wx)\n" " -B, --border defines the width of the border in pixels around the menu. (wx)\n" + " -R --border-radius defines the radius of the border around the menu (0 = no curved borders).\n" " --ch defines the height of the cursor (0 = scales with line height). (wx)\n" " --cw defines the width of the cursor. (wx)\n" " --hp defines the horizontal padding for the entries in single line mode. (wx)\n" @@ -269,7 +272,9 @@ { "index", required_argument, 0, 'I' }, { "prefix", required_argument, 0, 'P' }, { "password", no_argument, 0, 'x' }, + { "fixed-height", no_argument, 0, 0x090 }, { "scrollbar", required_argument, 0, 0x100 }, + { "counter", required_argument, 0, 0x10a }, { "accept-single",no_argument, 0, 0x11a }, { "ifne", no_argument, 0, 0x117 }, { "fork", no_argument, 0, 0x118 }, @@ -286,6 +291,7 @@ { "margin", required_argument, 0, 'M' }, { "width-factor", required_argument, 0, 'W' }, { "border", required_argument, 0, 'B' }, + { "border-radius",required_argument, 0, 'R' }, { "ch", required_argument, 0, 0x120 }, { "cw", required_argument, 0, 0x125 }, { "hp", required_argument, 0, 0x122 }, @@ -322,7 +328,7 @@ for (optind = 0;;) { int32_t opt; - if ((opt = getopt_long(*argc, *argv, "hviwxcl:I:p:P:I:bfF:m:H:M:W:B:nsCTK", opts, NULL)) < 0) + if ((opt = getopt_long(*argc, *argv, "hviwxcl:I:p:P:I:bfF:m:H:M:W:B:R:nsCTK", opts, NULL)) < 0) break; switch (opt) { @@ -357,9 +363,15 @@ case 'I': client->selected = strtol(optarg, NULL, 10); break; + case 0x090: + client->fixed_height = true; + break; case 0x100: client->scrollbar = (!strcmp(optarg, "none") ? BM_SCROLLBAR_NONE : (!strcmp(optarg, "always") ? BM_SCROLLBAR_ALWAYS : (!strcmp(optarg, "autohide") ? BM_SCROLLBAR_AUTOHIDE : BM_SCROLLBAR_NONE))); break; + case 0x10a: + client->counter = (!strcmp(optarg, "always")); + break; case 0x11a: client->accept_single = true; break; @@ -412,6 +424,9 @@ case 'B': client->border_size = strtol(optarg, NULL, 10); break; + case 'R': + client->border_radius = strtol(optarg, NULL, 10); + break; case 0x120: client->cursor_height = strtol(optarg, NULL, 10); break; @@ -537,12 +552,15 @@ bm_menu_set_wrap(menu, client->wrap); bm_menu_set_monitor(menu, client->monitor); bm_menu_set_monitor_name(menu, client->monitor_name); + bm_menu_set_fixed_height(menu, client->fixed_height); bm_menu_set_scrollbar(menu, client->scrollbar); + bm_menu_set_counter(menu, client->counter); bm_menu_set_panel_overlap(menu, !client->no_overlap); bm_menu_set_spacing(menu, !client->no_spacing); bm_menu_set_password(menu, client->password); bm_menu_set_width(menu, client->hmargin_size, client->width_factor); bm_menu_set_border_size(menu, client->border_size); + bm_menu_set_border_radius(menu, client->border_radius); bm_menu_set_key_binding(menu, client->key_binding); if (client->center) { @@ -590,8 +608,8 @@ uint32_t unicode; enum bm_key key = BM_KEY_NONE; - struct bm_pointer pointer; - struct bm_touch touch; + struct bm_pointer pointer = {0}; + struct bm_touch touch = {0}; enum bm_run_result status = BM_RUN_RESULT_RUNNING; do { if (!bm_menu_render(menu)) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bemenu-0.6.14/client/common/common.h new/bemenu-0.6.15/client/common/common.h --- old/bemenu-0.6.14/client/common/common.h 2022-12-16 01:15:13.000000000 +0100 +++ new/bemenu-0.6.15/client/common/common.h 2023-05-08 14:19:04.000000000 +0200 @@ -21,11 +21,14 @@ uint32_t monitor; uint32_t hmargin_size; uint32_t border_size; + uint32_t border_radius; float width_factor; bool bottom; bool center; bool grab; bool wrap; + bool fixed_height; + bool counter; bool accept_single; bool ifne; bool no_overlap; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bemenu-0.6.14/lib/bemenu.h new/bemenu-0.6.15/lib/bemenu.h --- old/bemenu-0.6.14/lib/bemenu.h 2022-12-16 01:15:13.000000000 +0100 +++ new/bemenu-0.6.15/lib/bemenu.h 2023-05-08 14:19:04.000000000 +0200 @@ -645,6 +645,24 @@ BM_PUBLIC uint32_t bm_menu_get_border_size(struct bm_menu* menu); /** + * Set the radius of the border for the bar + * + * @param menu bm_menu to get border radius from. + * @return border radius of the menu. + */ + +BM_PUBLIC void bm_menu_set_border_radius(struct bm_menu* menu, uint32_t border_radius); + +/** + * Get the size of the border for the bar + * + * @param menu bm_menu to get border radius from. + * @return border radius of the menu. + */ + +BM_PUBLIC uint32_t bm_menu_get_border_radius(struct bm_menu* menu); + +/** * Set a hexadecimal color for element. * * @param menu bm_menu instance where to set color. @@ -672,6 +690,24 @@ BM_PUBLIC void bm_menu_set_scrollbar(struct bm_menu *menu, enum bm_scrollbar_mode mode); /** + * Set fixed height mode of the bar. + * + * @param menu bm_menu to set the fixed height for. + * @param mode to be set. + */ + +BM_PUBLIC void bm_menu_set_fixed_height(struct bm_menu *menu, bool mode); + +/** + * Get the fixed height mode of the bar. + * + * @param menu bm_menu to get the fixed height from. + * @return current fixed height mode + */ + +BM_PUBLIC bool bm_menu_get_fixed_height(struct bm_menu *menu); + +/** * Return current scrollbar display mode. * * @param menu bm_menu instance where to get scrollbar display state from. @@ -680,6 +716,24 @@ BM_PUBLIC enum bm_scrollbar_mode bm_menu_get_scrollbar(struct bm_menu *menu); /** + * Set the counter display mode. + * + * @param menu bm_menu to set the counter for. + * @param display mode to be set. + */ + +BM_PUBLIC void bm_menu_set_counter(struct bm_menu *menu, bool mode); + +/** + * Get the counter display mode. + * + * @param menu bm_menu to get the counter from. + * @return current counter display mode + */ + +BM_PUBLIC bool bm_menu_get_counter(struct bm_menu *menu); + +/** * Set the vertical alignment of the bar. * * @param menu bm_menu to set alignment for. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bemenu-0.6.14/lib/internal.h new/bemenu-0.6.15/lib/internal.h --- old/bemenu-0.6.14/lib/internal.h 2022-12-16 01:15:13.000000000 +0100 +++ new/bemenu-0.6.15/lib/internal.h 2023-05-08 14:19:04.000000000 +0200 @@ -353,11 +353,21 @@ enum bm_filter_mode filter_mode; /** + * Current fixed height mode. + */ + bool fixed_height; + + /** * Current Scrollbar display mode. */ enum bm_scrollbar_mode scrollbar; /** + * Current counter display mode. + */ + bool counter; + + /** * Should selection be wrapped? */ bool wrap; @@ -383,6 +393,11 @@ uint32_t border_size; /** + * Border radius + */ + uint32_t border_radius; + + /** * Is menu grabbed? */ bool grabbed; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bemenu-0.6.14/lib/menu.c new/bemenu-0.6.15/lib/menu.c --- old/bemenu-0.6.14/lib/menu.c 2022-12-16 01:15:13.000000000 +0100 +++ new/bemenu-0.6.15/lib/menu.c 2023-05-08 14:19:04.000000000 +0200 @@ -360,6 +360,20 @@ return menu->border_size; } +void +bm_menu_set_border_radius(struct bm_menu* menu, uint32_t border_radius) +{ + assert(menu); + menu->border_radius = border_radius; +} + +uint32_t +bm_menu_get_border_radius(struct bm_menu* menu) +{ + assert(menu); + return menu->border_radius; +} + uint32_t bm_menu_get_height(struct bm_menu *menu) { @@ -421,6 +435,18 @@ } void +bm_menu_set_fixed_height(struct bm_menu *menu, bool mode) +{ + menu->fixed_height = mode; +} + +bool +bm_menu_get_fixed_height(struct bm_menu *menu) +{ + return menu->fixed_height; +} + +void bm_menu_set_scrollbar(struct bm_menu *menu, enum bm_scrollbar_mode mode) { menu->scrollbar = (mode == BM_SCROLLBAR_LAST ? BM_SCROLLBAR_NONE : mode); @@ -433,6 +459,18 @@ } void +bm_menu_set_counter(struct bm_menu *menu, bool mode) +{ + menu->counter = mode; +} + +bool +bm_menu_get_counter(struct bm_menu *menu) +{ + return menu->counter; +} + +void bm_menu_set_align(struct bm_menu *menu, enum bm_align align) { assert(menu); @@ -639,7 +677,7 @@ bm_menu_get_filtered_items(menu, &count); if (count <= index) - return 0; + index = (count > 0 ? count - 1 : 0); if (menu->index != index) menu->dirty = true; @@ -764,7 +802,6 @@ size_t oldLen = strlen(menu->old_filter); addition = (oldLen < len && !memcmp(menu->old_filter, menu->filter, oldLen)); } - if (menu->old_filter && addition && menu->filtered.count <= 0) return; @@ -865,13 +902,14 @@ } uint32_t selected_line = posy / line_height; + assert(menu->lines != 0); + uint16_t current_page_index = menu->index / menu->lines; + if (0 == selected_line) { // Mouse over title bar + bm_menu_set_highlighted_index(menu, current_page_index * menu->lines); return; } - assert(menu->lines != 0); - uint16_t current_page_index = menu->index / menu->lines; - if (selected_line >= displayed) { // This might be useless return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bemenu-0.6.14/lib/renderers/cairo_renderer.h new/bemenu-0.6.15/lib/renderers/cairo_renderer.h --- old/bemenu-0.6.14/lib/renderers/cairo_renderer.h 2022-12-16 01:15:13.000000000 +0100 +++ new/bemenu-0.6.15/lib/renderers/cairo_renderer.h 2023-05-08 14:19:04.000000000 +0200 @@ -258,6 +258,18 @@ } static inline void +bm_cairo_draw_rounded_path(cairo_t *cr, double x, double y, double width, double height, double radius) +{ + double degrees = M_PI / 180; + cairo_new_sub_path(cr); + cairo_arc(cr, x + width - radius, y + radius, radius, -90 * degrees, 0 * degrees); + cairo_arc(cr, x + width - radius, y + height - radius, radius, 0 * degrees, 90 * degrees); + cairo_arc(cr, x + radius, y + height - radius, radius, 90 * degrees, 180 * degrees); + cairo_arc(cr, x + radius, y + radius, radius, 180 * degrees, 270 * degrees); + cairo_close_path(cr); +} + +static inline void bm_cairo_paint(struct cairo *cairo, uint32_t width, uint32_t max_height, const struct bm_menu *menu, struct cairo_paint_result *out_result) { assert(cairo && menu && out_result); @@ -282,6 +294,12 @@ uint32_t height = fmin(fmax(menu->line_height, ascii_height), max_height); uint32_t vpadding = (height - ascii_height)/2; + uint32_t border_radius = menu->border_radius; + + uint32_t total_item_count = menu->items.count; + uint32_t filtered_item_count; + bm_menu_get_filtered_items(menu, &filtered_item_count); + cairo_set_source_rgba(cairo->cr, 0, 0, 0, 0); cairo_rectangle(cairo->cr, 0, 0, width, height); @@ -354,8 +372,16 @@ uint32_t posy = titleh; const uint32_t page = (menu->index / lines) * lines; - for (uint32_t l = 0, i = page; l < lines && i < count && posy < max_height; ++i, ++l) { - bool highlighted = (items[i] == bm_menu_get_highlighted_item(menu)); + + for (uint32_t l = 0, i = page; l < lines && posy < max_height; ++i, ++l) { + if (!menu->fixed_height && i >= count) { + continue; + } + + bool highlighted = false; + if (i < count) { + highlighted = (items[i] == bm_menu_get_highlighted_item(menu)); + } if (highlighted) { if (menu->event_feedback) { @@ -365,18 +391,22 @@ bm_cairo_color_from_menu_color(menu, BM_COLOR_HIGHLIGHTED_FG, &paint.fg); bm_cairo_color_from_menu_color(menu, BM_COLOR_HIGHLIGHTED_BG, &paint.bg); } - } else if (bm_menu_item_is_selected(menu, items[i])) { + } else if (i < count && bm_menu_item_is_selected(menu, items[i])) { bm_cairo_color_from_menu_color(menu, BM_COLOR_SELECTED_FG, &paint.fg); bm_cairo_color_from_menu_color(menu, BM_COLOR_SELECTED_BG, &paint.bg); - } else if (i % 2 == 1) { + } else if (i < count && i % 2 == 1) { bm_cairo_color_from_menu_color(menu, BM_COLOR_ALTERNATE_FG, &paint.fg); bm_cairo_color_from_menu_color(menu, BM_COLOR_ALTERNATE_BG, &paint.bg); } else { bm_cairo_color_from_menu_color(menu, BM_COLOR_ITEM_FG, &paint.fg); bm_cairo_color_from_menu_color(menu, BM_COLOR_ITEM_BG, &paint.bg); } + + char *line_str = ""; + if (i < count) { + line_str = bm_cairo_entry_message(items[i]->text, highlighted, menu->event_feedback, i, count); + } - char *line_str = bm_cairo_entry_message(items[i]->text, highlighted, menu->event_feedback, i, count); if (menu->prefix && highlighted) { paint.pos = (struct pos){ spacing_x + border_size, posy+vpadding + border_size }; paint.box = (struct box){ 4, 0, vpadding, -vpadding, width - paint.pos.x, height }; @@ -455,21 +485,34 @@ out_result->displayed += (cl < width); out_result->height = fmax(out_result->height, result.height); } - + bm_cairo_color_from_menu_color(menu, BM_COLOR_FILTER_FG, &paint.fg); + bm_cairo_color_from_menu_color(menu, BM_COLOR_FILTER_BG, &paint.bg); if (menu->wrap || menu->index + 1 < count) { - bm_cairo_color_from_menu_color(menu, BM_COLOR_FILTER_FG, &paint.fg); - bm_cairo_color_from_menu_color(menu, BM_COLOR_FILTER_BG, &paint.bg); bm_pango_get_text_extents(cairo, &paint, &result, ">"); paint.pos = (struct pos){ width/cairo->scale - result.x_advance - 2, vpadding + border_size }; paint.box = (struct box){ 1, 2, vpadding, -vpadding, 0, height }; bm_cairo_draw_line(cairo, &paint, &result, ">"); } + + } + + if (menu->counter) { + char counter[128]; + snprintf(counter, sizeof(counter), "[%u/%u]", filtered_item_count, total_item_count); + bm_pango_get_text_extents(cairo, &paint, &result, "%s", counter); + paint.pos = (struct pos){ width/cairo->scale - result.x_advance - 10, vpadding + border_size }; + paint.box = (struct box){ 1, 2, vpadding, -vpadding, 0, height }; + bm_cairo_draw_line(cairo, &paint, &result, "%s", counter); } // Draw borders bm_cairo_color_from_menu_color(menu, BM_COLOR_BORDER, &paint.fg); cairo_set_source_rgba(cairo->cr, paint.fg.r, paint.fg.b, paint.fg.g, paint.fg.a); - cairo_rectangle(cairo->cr, 0, 0, width + border_size, (height * (page_length + 1)) + (2 * border_size)); + if (!border_radius) { + cairo_rectangle(cairo->cr, 0, 0, (width + border_size)/cairo->scale, (height * (page_length + 1)) + (2 * border_size)); + } else { + bm_cairo_draw_rounded_path(cairo->cr, 0, 0, (width + border_size)/cairo->scale, (height * (page_length + 1)) + (2 * border_size), border_radius); + } cairo_set_line_width(cairo->cr, 2 * menu->border_size); cairo_stroke(cairo->cr); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bemenu-0.6.14/lib/vim.c new/bemenu-0.6.15/lib/vim.c --- old/bemenu-0.6.14/lib/vim.c 2022-12-16 01:15:13.000000000 +0100 +++ new/bemenu-0.6.15/lib/vim.c 2023-05-08 14:19:04.000000000 +0200 @@ -212,7 +212,7 @@ if(menu->vim_last_key == 0) return vim_on_first_key(menu, unicode, item_count, items_displayed); else return vim_on_second_key(menu, unicode, item_count, items_displayed); } else if(menu->vim_mode == 'i'){ - if(key == BM_KEY_ESCAPE && unicode == 0){ + if(key == BM_KEY_ESCAPE && (unicode == 0 || unicode == 27)){ menu->vim_mode = 'n'; return BM_VIM_CONSUME; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bemenu-0.6.14/man/bemenu.1.scd.in new/bemenu-0.6.15/man/bemenu.1.scd.in --- old/bemenu-0.6.14/man/bemenu.1.scd.in 2022-12-16 01:15:13.000000000 +0100 +++ new/bemenu-0.6.15/man/bemenu.1.scd.in 2023-05-08 14:19:04.000000000 +0200 @@ -6,13 +6,13 @@ # SYNOPSIS -*bemenu* [*-hivwx*] [*-I* <_index_>] [*-l* <_lines_>] [*-P* _prefix_] +*bemenu* [*-hCiKTvwx*] [*-I* <_index_>] [*-l* <_lines_>] [*-P* <_prefix_>] \[*-p* <_prompt_>] [*--ifne*] [*--scrollbar* _none_|_always_|_autohide_] - \[_backend_options_] + \[*--binding* _vim_] [*--fork*] [_backend_options_] -*bemenu-run* [*-hivwx*] [*-I* <_index_>] [*-l* <_lines_>] [*-P* <_prefix_>] +*bemenu-run* [*-hCiKTvwx*] [*-I* <_index_>] [*-l* <_lines_>] [*-P* <_prefix_>] \[*-p* <_prompt_>] [*--ifne*] [*--scrollbar* _none_|_always_|_autohide_] - \[*--fork*] [*--no-exec*] [_backend-options_] + \[*--binding* _vim_] [*--fork*] [*--no-exec*] [_backend-options_] # DESCRIPTION @@ -35,6 +35,9 @@ *-h, --help* Print a help message to standard output and exit. +*-C, --no-cursor* + Disable all cursor events. + *-I, --index* <_index_> Highlight the item at _index_ at the start. Indices start at 0. By default, the first item is highlighted. @@ -42,6 +45,9 @@ *-i, --ignorecase* Filter items case-insensitively. +*-K, --no-keyboard* + Disable all keyboard events. + *-l, --list* <_number_> List items vertically with the given _number_ of lines. @@ -52,6 +58,12 @@ Defines the _prompt_ text to be displayed to the left of the input field. Defaults to âbemenuâ. +*-s, --no-spacing* + Disable the title spacing on entries. + +*-T, --no-touch* + Disable all touch events. + *-v, --version* Print the *bemenu* version number to standard output and exit. @@ -61,6 +73,9 @@ *-x, --password* Hide filter text. +*--binding* + Use alternative key bindings. Available options: vim + *--fork* Always *fork*(2) before executing the selections. Disabled by default when using the terminal backend. @@ -236,11 +251,11 @@ *M-[1-9]* Print selected items and exit with a custom error code 10 (*M-1*) - through 18 (*M-9*), see _EXIT STATUS_. + through 18 (*M-9*), see _EXIT STATUS_. *M-0* Print selected items and exit with the custom error code 19, see _EXIT - STATUS_. + STATUS_. # ENVIRONMENT