// bit for modifiers (0 None), (1 SHIFT), (2 CONTROL) ( // NOTE: mostly from https://raw.githubusercontent.com/extrawurst/gitui/master/vim_style_key_config.ron open_help: Some(( code: F(1), modifiers: ( bits: 0,),)), move_left: Some(( code: Char('m'), modifiers: ( bits: 0,),)), move_right: Some(( code: Char('i'), modifiers: ( bits: 0,),)), move_up: Some(( code: Char('e'), modifiers: ( bits: 0,),)), move_down: Some(( code: Char('n'), modifiers: ( bits: 0,),)), popup_up: Some(( code: Char('p'), modifiers: ( bits: 2,),)), popup_down: Some(( code: Char('n'), modifiers: ( bits: 2,),)), page_up: Some(( code: Char('b'), modifiers: ( bits: 2,),)), page_down: Some(( code: Char('f'), modifiers: ( bits: 2,),)), home: Some(( code: Char('g'), modifiers: ( bits: 0,),)), end: Some(( code: Char('G'), modifiers: ( bits: 1,),)), shift_up: Some(( code: Char('E'), modifiers: ( bits: 1,),)), shift_down: Some(( code: Char('N'), modifiers: ( bits: 1,),)), edit_file: Some(( code: Char('o'), modifiers: ( bits: 0,),)), status_reset_item: Some(( code: Char('U'), modifiers: ( bits: 1,),)), status_ignore_file: Some(( code: Char('I'), modifiers: ( bits: 1,),)), diff_reset_lines: Some(( code: Char('u'), modifiers: ( bits: 0,),)), diff_stage_lines: Some(( code: Char('s'), modifiers: ( bits: 0,),)), stashing_save: Some(( code: Char('w'), modifiers: ( bits: 0,),)), stashing_toggle_index: Some(( code: Char('m'), modifiers: ( bits: 0,),)), stash_open: Some(( code: Char('l'), modifiers: ( bits: 0,),)), abort_merge: Some(( code: Char('M'), modifiers: ( bits: 1,),)), // blame: Some(( code: Char('B'), modifiers: ( bits: 1,),), // branch_find: Some(( code: Char('f'), modifiers: ( bits: 0,),), // cmd_bar_toggle: Some(( code: Char('.'), modifiers: ( bits: 0,),), // commit_amend: Some(( code: Char('a'), modifiers: ( bits: 2,),), // commit_history_next: Some(( code: Char('n'), modifiers: ( bits: 2,),) // compare_commits: Some(( code: Char('C'), modifiers: ( bits: 1,),), // copy: Some(( code: Char('y'), modifiers: ( bits: 0,),), // create_branch: Some(( code: Char('c'), modifiers: ( bits: 0,),), // delete_branch: Some(( code: Char('D'), modifiers: ( bits: 1,),), // delete_tag: Some(( code: Char('D'), modifiers: ( bits: 1,),), // diff_reset_lines: Some(( code: Char('u'), modifiers: ( bits: 0,),)), // diff_stage_lines: Some(( code: Char('s'), modifiers: ( bits: 0,),)), // edit_file: Some(( code: Char('e'), modifiers: ( bits: 0,),)), // end: Some(( code: Char('G'), modifiers: ( bits: 1,),)), // enter: Some(( code: Enter, modifiers: ( bits: 0,),), // exit_popup: Some(( code: Esc, modifiers: ( bits: 0,),), // exit: Some(( code: Char('c'), modifiers: ( bits: 2,),), // fetch: Some(( code: Char('F'), modifiers: ( bits: 1,),), // file_find: Some(( code: Char('f'), modifiers: ( bits: 0,),), // file_history: Some(( code: Char('H'), modifiers: ( bits: 1,),), // force_push: Some(( code: Char('P'), modifiers: ( bits: 1,),), // home: Some(( code: Char('g'), modifiers: ( bits: 0,),)), // log_checkout_commit: Some(( code: Char('S'), modifiers: ( bits: 1,),)), // log_mark_commit: Some(( code: Char(' '), modifiers: ( bits: 0,),), // log_reset_comit: Some(( code: Char('R'), modifiers: ( bits: 1,),), // log_reword_comit: Some(( code: Char('r'), modifiers: ( bits: 0,),), // log_tag_commit: Some(( code: Char('t'), modifiers: ( bits: 0,),), // merge_branch: Some(( code: Char('m'), modifiers: ( bits: 0,),), // move_down: Some(( code: Char('j'), modifiers: ( bits: 0,),)), // move_left: Some(( code: Char('h'), modifiers: ( bits: 0,),)), // move_right: Some(( code: Char('l'), modifiers: ( bits: 0,),)), // move_up: Some(( code: Char('k'), modifiers: ( bits: 0,),)), // open_commit_editor: Some(( code: Char('e'), modifiers: ( bits: 2,),), // open_commit: Some(( code: Char('c'), modifiers: ( bits: 0,),), // open_file_tree: Some(( code: Char('F'), modifiers: ( bits: 1,),), // open_help: Some(( code: Char('?'), modifiers: ( bits: 0,),)), // open_options: Some(( code: Char('o'), modifiers: ( bits: 0,),), // page_down: Some(( code: Char(']'), modifiers: ( bits: 0,),)), // page_up: Some(( code: Char('['), modifiers: ( bits: 0,),)), // popup_down: Some(( code: Char('n'), modifiers: ( bits: 2,),)), // popup_up: Some(( code: Char('p'), modifiers: ( bits: 2,),)), // pull: Some(( code: Char('f'), modifiers: ( bits: 0,),), // push: Some(( code: Char('p'), modifiers: ( bits: 0,),), // quit: Some(( code: Char('q'), modifiers: ( bits: 0,),), // rebase_branch: Some(( code: Char('R'), modifiers: ( bits: 1,),), // rename_branch: Some(( code: Char('r'), modifiers: ( bits: 0,),), // select_branch: Some(( code: Char('b'), modifiers: ( bits: 0,),), // select_tag: Some(( code: Enter, modifiers: ( bits: 0,),), // shift_down: Some(( code: Char('J'), modifiers: ( bits: 1,),)), // shift_down: Some(( code: Down, modifiers: ( bits: 1,),), // shift_up: Some(( code: Char('K'), modifiers: ( bits: 1,),)), // shift_up: Some(( code: Up, modifiers: ( bits: 1,),), // stage_unstage_item: Some(( code: Enter, modifiers: ( bits: 0,),), // stash_apply: Some(( code: Char('a'), modifiers: ( bits: 0,),), // stash_drop: Some(( code: Char('x'), modifiers: ( bits: 0,),), // stashing_save: Some(( code: Char('s'), modifiers: ( bits: 0,),), // stashing_toggle_index: Some(( code: Char('i'), modifiers: ( bits: 0,),)), // stashing_toggle_untracked: Some(( code: Char('u'), modifiers: ( bits: 0,),), // stash_open: Some(( code: Char('l'), modifiers: ( bits: 0,),)), // stash_open: Some(( code: Right, modifiers: ( bits: 0,),), // status_reset_item: Some(( code: Char('D'), modifiers: ( bits: 1,),), // status_reset_item: Some(( code: Char('U'), modifiers: ( bits: 1,),)), // status_stage_all: Some(( code: Char('a'), modifiers: ( bits: 0,),), // tab_files: Some(( code: Char('3'), modifiers: ( bits: 0,),), // tab_log: Some(( code: Char('2'), modifiers: ( bits: 0,),), // tab_stashes: Some(( code: Char('5'), modifiers: ( bits: 0,),), // tab_stashing: Some(( code: Char('4'), modifiers: ( bits: 0,),), // tab_status: Some(( code: Char('1'), modifiers: ( bits: 0,),), // tab_toggle_reverse: Some(( code: BackTab, modifiers: ( bits: 1,),), // tab_toggle: Some(( code: Tab, modifiers: ( bits: 0,),), // tag_annotate: Some(( code: Char('a'), modifiers: ( bits: 2,),), // tags: Some(( code: Char('T'), modifiers: ( bits: 1,),), // toggle_verify: Some(( code: Char('f'), modifiers: ( bits: 2,),), // toggle_workarea: Some(( code: Char('w'), modifiers: ( bits: 0,),), // tree_collapse_recursive: Some(( code: Left, modifiers: ( bits: 1,),), // tree_expand_recursive: Some(( code: Right, modifiers: ( bits: 1,),), // undo_commit: Some(( code: Char('U'), modifiers: ( bits: 1,),), // update_submodule: Some(( code: Char('u'), modifiers: ( bits: 0,),), // view_submodule_parent: Some(( code: Char('p'), modifiers: ( bits: 0,),), // view_submodules: Some(( code: Char('S'), modifiers: ( bits: 1,),), )