one flake containing all of my nixos configs
// 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,),),
)