// 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('h'), modifiers: ( bits: 0,),)),
move_right: Some(( code: Char('l'), modifiers: ( bits: 0,),)),
move_up: Some(( code: Char('k'), modifiers: ( bits: 0,),)),
move_down: Some(( code: Char('j'), 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('K'), modifiers: ( bits: 1,),)),
shift_down: Some(( code: Char('J'), modifiers: ( bits: 1,),)),
edit_file: Some(( code: Char('e'), modifiers: ( bits: 0,),)),
status_reset_item: Some(( code: Char('U'), 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_ignore_file: Some(( code: Char('i'), 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,),),
)