feat(tui): add Emacs keymap profile with runtime switching
- Introduce built‑in Emacs keymap (`keymap_emacs.toml`) alongside existing Vim layout. - Add `ui.keymap_profile` and `ui.keymap_path` configuration options; persist profile changes via `:keymap` command. - Expose `KeymapProfile` enum (Vim, Emacs, Custom) and integrate it throughout state, UI rendering, and help overlay. - Extend command registry with `keymap.set_vim` and `keymap.set_emacs` to allow profile switching. - Update help overlay, command specs, and README to reflect new keybindings and profile commands. - Adjust `Keymap::load` to honor preferred profile, custom paths, and fallback logic.
This commit is contained in:
@@ -73,6 +73,12 @@ These settings customize the look and feel of the terminal interface.
|
||||
- `syntax_highlighting` (boolean, default: `false`)
|
||||
Enables lightweight syntax highlighting inside fenced code blocks when the terminal supports 256-color output.
|
||||
|
||||
- `keymap_profile` (string, optional)
|
||||
Set to `"vim"` or `"emacs"` to pick a built-in keymap profile. When omitted the default Vim bindings are used. Runtime changes triggered via `:keymap ...` are persisted by updating this field.
|
||||
|
||||
- `keymap_path` (string, optional)
|
||||
Absolute path to a custom keymap definition. When present it overrides `keymap_profile`. See `crates/owlen-tui/keymap.toml` or `crates/owlen-tui/keymap_emacs.toml` for the expected TOML structure.
|
||||
|
||||
## Storage Settings (`[storage]`)
|
||||
|
||||
These settings control how conversations are saved and loaded.
|
||||
|
||||
Reference in New Issue
Block a user