mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-22 05:33:45 -04: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[] = {
|
static const char *const search_binding_action_map[] = {
|
||||||
[BIND_ACTION_SEARCH_NONE] = NULL,
|
[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_CANCEL] = "cancel",
|
||||||
[BIND_ACTION_SEARCH_COMMIT] = "commit",
|
[BIND_ACTION_SEARCH_COMMIT] = "commit",
|
||||||
[BIND_ACTION_SEARCH_FIND_PREV] = "find-prev",
|
[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_CLIPBOARD_PASTE] = "clipboard-paste",
|
||||||
[BIND_ACTION_SEARCH_PRIMARY_PASTE] = "primary-paste",
|
[BIND_ACTION_SEARCH_PRIMARY_PASTE] = "primary-paste",
|
||||||
[BIND_ACTION_SEARCH_UNICODE_INPUT] = "unicode-input",
|
[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[] = {
|
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
|
Unicode input mode. See _key-bindings.unicode-input_ for
|
||||||
details. Default: _none_.
|
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
|
# SECTION: url-bindings
|
||||||
|
|
||||||
This section lets you override the default key bindings used in URL
|
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-page=Shift+Page_Down
|
||||||
# scrollback-down-half-page=none
|
# scrollback-down-half-page=none
|
||||||
# scrollback-down-line=none
|
# scrollback-down-line=none
|
||||||
|
# scrollback-home=none
|
||||||
|
# scrollback-end=none
|
||||||
# clipboard-copy=Control+Shift+c XF86Copy
|
# clipboard-copy=Control+Shift+c XF86Copy
|
||||||
# clipboard-paste=Control+Shift+v XF86Paste
|
# clipboard-paste=Control+Shift+v XF86Paste
|
||||||
# primary-paste=Shift+Insert
|
# primary-paste=Shift+Insert
|
||||||
|
|
@ -187,6 +189,14 @@
|
||||||
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
|
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
|
||||||
# primary-paste=Shift+Insert
|
# primary-paste=Shift+Insert
|
||||||
# unicode-input=none
|
# 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]
|
[url-bindings]
|
||||||
# cancel=Control+g Control+c Control+d Escape
|
# cancel=Control+g Control+c Control+d Escape
|
||||||
|
|
|
||||||
|
|
@ -59,8 +59,13 @@ enum bind_action_normal {
|
||||||
enum bind_action_search {
|
enum bind_action_search {
|
||||||
BIND_ACTION_SEARCH_NONE,
|
BIND_ACTION_SEARCH_NONE,
|
||||||
BIND_ACTION_SEARCH_SCROLLBACK_UP_PAGE,
|
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,
|
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_CANCEL,
|
||||||
BIND_ACTION_SEARCH_COMMIT,
|
BIND_ACTION_SEARCH_COMMIT,
|
||||||
BIND_ACTION_SEARCH_FIND_PREV,
|
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;
|
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:
|
case BIND_ACTION_SEARCH_SCROLLBACK_DOWN_PAGE:
|
||||||
if (term->grid == &term->normal) {
|
if (term->grid == &term->normal) {
|
||||||
cmd_scrollback_down(term, term->rows);
|
cmd_scrollback_down(term, term->rows);
|
||||||
|
|
@ -1078,6 +1092,34 @@ execute_binding(struct seat *seat, struct terminal *term,
|
||||||
}
|
}
|
||||||
return false;
|
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:
|
case BIND_ACTION_SEARCH_CANCEL:
|
||||||
if (term->search.view_followed_offset)
|
if (term->search.view_followed_offset)
|
||||||
grid->view = grid->offset;
|
grid->view = grid->offset;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue