gitui/KEY_CONFIG.md
extrawurst 8f7f35b8a9 remove focus key bindings
merge them into `move_XYZ` keys
2023-02-11 10:51:51 +00:00

1.8 KiB

Key Config

The default keys are based on arrow keys to navigate.

However popular demand lead to fully customizability of the key bindings.

Create a key_bindings.ron file like this:

(
    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,),)),

    stash_open: Some(( code: Char('l'), modifiers: ( bits: 0,),)),

    open_help: Some(( code: F(1), modifiers: ( bits: 0,),)),
)

The config file format based on the Ron file format. The location of the file depends on your OS:

  • $HOME/.config/gitui/key_bindings.ron (mac)
  • $XDG_CONFIG_HOME/gitui/key_bindings.ron (linux using XDG)
  • $HOME/.config/gitui/key_bindings.ron (linux)
  • %APPDATA%/gitui/key_bindings.ron (Windows)

See all possible keys to overwrite in code: here

Here is a vim style key config with h, j, k, l to navigate. Use it to copy the content into key_bindings.ron to get vim style key bindings.

Key Symbols

Similar to the above GitUI allows you to change the way the UI visualizes key combos containing special keys like enter(default: ) and shift(default: ).

If we can find a file key_symbols.ron in the above folders we apply the overwrites in it.

Example content of this file looks like:

(
    enter: Some("enter"),
    shift: Some("shift-")
)

This example will only overwrite two symbols. Find all possible symbols to overwrite in symbols.rs in the type KeySymbolsFile (src/keys/symbols.rs)