zfin/docs/reference/config/keys-srf.md
Emil Lerch 74fc219afd
All checks were successful
Generic zig build / build (push) Successful in 5m48s
Generic zig build / publish-macos (push) Successful in 11s
Generic zig build / deploy (push) Successful in 23s
add docs/guides
2026-06-22 14:53:53 -07:00

2 KiB

keys.srf reference

keys.srf rebinds the interactive TUI's keys. zfin reads it from ~/.config/zfin/keys.srf. When the file is absent, built-in defaults apply; when present, it is the sole source of bindings.

Generate a fully-commented starting file from the current defaults:

zfin interactive --default-keys > ~/.config/zfin/keys.srf

File format

One binding per line:

action::ACTION_NAME,key::KEY_STRING[,scope::SCOPE]
  • Modifiers: ctrl+, alt+, shift+ (e.g. ctrl+c).
  • Special keys: tab, enter, escape, space, backspace, left, right, up, down, page_up, page_down, home, end, F1-F12, insert, delete.
  • Multiple bindings: repeat the action on several lines to bind more than one key to it.
  • scope (optional): omitted or scope::global is a global binding; scope::<tab> (e.g. scope::options) is a tab-local binding whose action:: then names that tab's local action.

A tab-local binding may not reuse a globally-bound key; zfin refuses to start if you create that conflict.

Default global bindings

action::quit,key::q
action::quit,key::ctrl+c
action::refresh,key::r
action::refresh,key::F5
action::prev_tab,key::h
action::prev_tab,key::left
action::prev_tab,key::shift+tab
action::next_tab,key::l
action::next_tab,key::right
action::next_tab,key::tab
action::tab_1,key::1
action::tab_2,key::2
...
action::scroll_down,key::ctrl+d
action::scroll_up,key::ctrl+u
action::scroll_top,key::g
action::scroll_bottom,key::G
action::page_down,key::page_down
action::page_up,key::page_up
action::select_next,key::j
action::select_next,key::down
action::select_prev,key::k

Run zfin interactive --default-keys for the complete, current list (including tab-scoped actions), each line ready to edit.

See also


Documentation home