mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
config: add remaining search.scrollback key bindings
All scrollback up/down key bindings are now available in search mode.
This commit is contained in:
parent
a772179b6c
commit
3e67415e3e
5 changed files with 91 additions and 3 deletions
10
config.c
10
config.c
|
|
@ -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[] = {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
10
foot.ini
10
foot.ini
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
42
search.c
42
search.c
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue