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:
(
focus_right: Some(( code: Char('l'), modifiers: ( bits: 0,),)),
focus_left: Some(( code: Char('h'), modifiers: ( bits: 0,),)),
focus_above: Some(( code: Char('k'), modifiers: ( bits: 0,),)),
focus_below: 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,),)),
move_down: Some(( code: Char('j'), 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.
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)