initial vimode implementation

This commit is contained in:
Piotr Kocia 2025-03-20 17:25:37 +01:00
parent be19ca2b20
commit e2c4ea3535
17 changed files with 1579 additions and 318 deletions

View file

@ -21,7 +21,8 @@ enum bind_action_normal {
BIND_ACTION_CLIPBOARD_COPY,
BIND_ACTION_CLIPBOARD_PASTE,
BIND_ACTION_PRIMARY_PASTE,
BIND_ACTION_SEARCH_START,
BIND_ACTION_START_VIMODE,
BIND_ACTION_START_VIMODE_SEARCH,
BIND_ACTION_FONT_SIZE_UP,
BIND_ACTION_FONT_SIZE_DOWN,
BIND_ACTION_FONT_SIZE_RESET,
@ -63,44 +64,41 @@ enum bind_action_normal {
BIND_ACTION_COUNT = BIND_ACTION_SELECT_ROW + 1,
};
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,
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,
BIND_ACTION_SEARCH_FIND_NEXT,
BIND_ACTION_SEARCH_EDIT_LEFT,
BIND_ACTION_SEARCH_EDIT_LEFT_WORD,
BIND_ACTION_SEARCH_EDIT_RIGHT,
BIND_ACTION_SEARCH_EDIT_RIGHT_WORD,
BIND_ACTION_SEARCH_EDIT_HOME,
BIND_ACTION_SEARCH_EDIT_END,
BIND_ACTION_SEARCH_DELETE_PREV,
BIND_ACTION_SEARCH_DELETE_PREV_WORD,
BIND_ACTION_SEARCH_DELETE_NEXT,
BIND_ACTION_SEARCH_DELETE_NEXT_WORD,
BIND_ACTION_SEARCH_DELETE_TO_START,
BIND_ACTION_SEARCH_DELETE_TO_END,
BIND_ACTION_SEARCH_EXTEND_CHAR,
BIND_ACTION_SEARCH_EXTEND_WORD,
BIND_ACTION_SEARCH_EXTEND_WORD_WS,
BIND_ACTION_SEARCH_EXTEND_LINE_DOWN,
BIND_ACTION_SEARCH_EXTEND_BACKWARD_CHAR,
BIND_ACTION_SEARCH_EXTEND_BACKWARD_WORD,
BIND_ACTION_SEARCH_EXTEND_BACKWARD_WORD_WS,
BIND_ACTION_SEARCH_EXTEND_LINE_UP,
BIND_ACTION_SEARCH_CLIPBOARD_PASTE,
BIND_ACTION_SEARCH_PRIMARY_PASTE,
BIND_ACTION_SEARCH_UNICODE_INPUT,
BIND_ACTION_SEARCH_COUNT,
enum bind_action_vimode {
BIND_ACTION_VIMODE_NONE,
BIND_ACTION_VIMODE_UP,
BIND_ACTION_VIMODE_DOWN,
BIND_ACTION_VIMODE_LEFT,
BIND_ACTION_VIMODE_RIGHT,
BIND_ACTION_VIMODE_UP_PAGE,
BIND_ACTION_VIMODE_DOWN_PAGE,
BIND_ACTION_VIMODE_UP_HALF_PAGE,
BIND_ACTION_VIMODE_DOWN_HALF_PAGE,
BIND_ACTION_VIMODE_UP_LINE,
BIND_ACTION_VIMODE_DOWN_LINE,
BIND_ACTION_VIMODE_FIRST_LINE,
BIND_ACTION_VIMODE_LAST_LINE,
BIND_ACTION_VIMODE_CANCEL,
BIND_ACTION_VIMODE_START_SEARCH,
BIND_ACTION_VIMODE_FIND_NEXT,
BIND_ACTION_VIMODE_FIND_PREV,
BIND_ACTION_VIMODE_ENTER_VISUAL,
BIND_ACTION_VIMODE_ENTER_VLINE,
BIND_ACTION_VIMODE_ENTER_VBLOCK,
BIND_ACTION_VIMODE_YANK,
BIND_ACTION_VIMODE_COUNT,
};
enum bind_action_vimode_search {
BIND_ACTION_VIMODE_SEARCH_NONE,
BIND_ACTION_VIMODE_SEARCH_CONFIRM,
BIND_ACTION_VIMODE_SEARCH_CANCEL,
BIND_ACTION_VIMODE_SEARCH_DELETE_PREV_CHAR,
BIND_ACTION_VIMODE_SEARCH_LEFT,
BIND_ACTION_VIMODE_SEARCH_RIGHT,
BIND_ACTION_VIMODE_SEARCH_COUNT,
};
enum bind_action_url {
@ -140,7 +138,8 @@ struct wayland;
struct key_binding_set {
key_binding_list_t key;
key_binding_list_t search;
key_binding_list_t vimode;
key_binding_list_t vimode_search;
key_binding_list_t url;
key_binding_list_t mouse;
xkb_mod_mask_t selection_overrides;