mirror of
https://github.com/extrawurst/gitui.git
synced 2024-11-30 11:46:20 +03:00
49 lines
2.0 KiB
Markdown
49 lines
2.0 KiB
Markdown
# 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:
|
|
```
|
|
(
|
|
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](https://github.com/ron-rs/ron).
|
|
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](https://github.com/extrawurst/gitui/blob/master/src/keys/key_list.rs#L83)
|
|
|
|
Here is a [vim style key config](vim_style_key_config.ron) 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](https://github.com/extrawurst/gitui/blob/master/src/keys/symbols.rs)) |