config: add remaining search.scrollback key bindings

All scrollback up/down key bindings are now available in search mode.
This commit is contained in:
Daniel Eklöf 2023-10-08 10:37:16 +02:00
parent a772179b6c
commit 3e67415e3e
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
5 changed files with 91 additions and 3 deletions

View file

@ -134,6 +134,14 @@ static const char *const binding_action_map[] = {
static const char *const search_binding_action_map[] = {
[BIND_ACTION_SEARCH_NONE] = NULL,
[BIND_ACTION_SEARCH_SCROLLBACK_UP_PAGE] = "scrollback-up-page",
[BIND_ACTION_SEARCH_SCROLLBACK_UP_HALF_PAGE] = "scrollback-up-half-page",
[BIND_ACTION_SEARCH_SCROLLBACK_UP_LINE] = "scrollback-up-line",
[BIND_ACTION_SEARCH_SCROLLBACK_DOWN_PAGE] = "scrollback-down-page",
[BIND_ACTION_SEARCH_SCROLLBACK_DOWN_HALF_PAGE] = "scrollback-down-half-page",
[BIND_ACTION_SEARCH_SCROLLBACK_DOWN_LINE] = "scrollback-down-line",
[BIND_ACTION_SEARCH_SCROLLBACK_HOME] = "scrollback-home",
[BIND_ACTION_SEARCH_SCROLLBACK_END] = "scrollback-end",
[BIND_ACTION_SEARCH_CANCEL] = "cancel",
[BIND_ACTION_SEARCH_COMMIT] = "commit",
[BIND_ACTION_SEARCH_FIND_PREV] = "find-prev",
@ -159,8 +167,6 @@ static const char *const search_binding_action_map[] = {
[BIND_ACTION_SEARCH_CLIPBOARD_PASTE] = "clipboard-paste",
[BIND_ACTION_SEARCH_PRIMARY_PASTE] = "primary-paste",
[BIND_ACTION_SEARCH_UNICODE_INPUT] = "unicode-input",
[BIND_ACTION_SEARCH_SCROLLBACK_UP_PAGE] = "scrollback-up-page",
[BIND_ACTION_SEARCH_SCROLLBACK_DOWN_PAGE] = "scrollback-down-page",
};
static const char *const url_binding_action_map[] = {

View file

@ -987,6 +987,31 @@ scrollback search mode. The syntax is exactly the same as the regular
Unicode input mode. See _key-bindings.unicode-input_ for
details. Default: _none_.
*scrollback-up-page*
Scrolls up/back one page in history. Default: _Shift+Page\_Up_.
*scrollback-up-half-page*
Scrolls up/back half of a page in history. Default: _none_.
*scrollback-up-line*
Scrolls up/back a single line in history. Default: _none_.
*scrollback-down-page*
Scroll down/forward one page in history. Default:
_Shift+Page\_Down_.
*scrollback-down-half-page*
Scroll down/forward half of a page in history. Default: _none_.
*scrollback-down-line*
Scroll down/forward a single line in history. Default: _none_.
*scrollback-home*
Scroll to the beginning of the scrollback. Default: _none_.
*scrollback-end*
Scroll to the end (bottom) of the scrollback. Default: _none_.
# SECTION: url-bindings
This section lets you override the default key bindings used in URL

View file

@ -139,6 +139,8 @@
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# scrollback-home=none
# scrollback-end=none
# clipboard-copy=Control+Shift+c XF86Copy
# clipboard-paste=Control+Shift+v XF86Paste
# primary-paste=Shift+Insert
@ -187,6 +189,14 @@
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
# primary-paste=Shift+Insert
# unicode-input=none
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# scrollback-home=none
# scrollback-end=none
[url-bindings]
# cancel=Control+g Control+c Control+d Escape

View file

@ -59,8 +59,13 @@ enum bind_action_normal {
enum bind_action_search {
BIND_ACTION_SEARCH_NONE,
BIND_ACTION_SEARCH_SCROLLBACK_UP_PAGE,
BIND_ACTION_SEARCH_SCROLLBACK_UP_HALF_PAGE,
BIND_ACTION_SEARCH_SCROLLBACK_UP_LINE,
BIND_ACTION_SEARCH_SCROLLBACK_DOWN_PAGE,
// TODO: copy the remaining scrollback key-bindings from normal mode
BIND_ACTION_SEARCH_SCROLLBACK_DOWN_HALF_PAGE,
BIND_ACTION_SEARCH_SCROLLBACK_DOWN_LINE,
BIND_ACTION_SEARCH_SCROLLBACK_HOME,
BIND_ACTION_SEARCH_SCROLLBACK_END,
BIND_ACTION_SEARCH_CANCEL,
BIND_ACTION_SEARCH_COMMIT,
BIND_ACTION_SEARCH_FIND_PREV,

View file

@ -1071,6 +1071,20 @@ execute_binding(struct seat *seat, struct terminal *term,
}
return false;
case BIND_ACTION_SEARCH_SCROLLBACK_UP_HALF_PAGE:
if (term->grid == &term->normal) {
cmd_scrollback_up(term, max(term->rows / 2, 1));
return true;
}
break;
case BIND_ACTION_SEARCH_SCROLLBACK_UP_LINE:
if (term->grid == &term->normal) {
cmd_scrollback_up(term, 1);
return true;
}
break;
case BIND_ACTION_SEARCH_SCROLLBACK_DOWN_PAGE:
if (term->grid == &term->normal) {
cmd_scrollback_down(term, term->rows);
@ -1078,6 +1092,34 @@ execute_binding(struct seat *seat, struct terminal *term,
}
return false;
case BIND_ACTION_SEARCH_SCROLLBACK_DOWN_HALF_PAGE:
if (term->grid == &term->normal) {
cmd_scrollback_down(term, max(term->rows / 2, 1));
return true;
}
break;
case BIND_ACTION_SEARCH_SCROLLBACK_DOWN_LINE:
if (term->grid == &term->normal) {
cmd_scrollback_down(term, 1);
return true;
}
break;
case BIND_ACTION_SEARCH_SCROLLBACK_HOME:
if (term->grid == &term->normal) {
cmd_scrollback_up(term, term->grid->num_rows);
return true;
}
break;
case BIND_ACTION_SEARCH_SCROLLBACK_END:
if (term->grid == &term->normal) {
cmd_scrollback_down(term, term->grid->num_rows);
return true;
}
break;
case BIND_ACTION_SEARCH_CANCEL:
if (term->search.view_followed_offset)
grid->view = grid->offset;