mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-07-02 05:45:00 +00:00
Add --allow-fallback option to the map command that controls shifted and ascii (alternate_key) fallback for individual key mappings. For non-Latin keyboard layouts, when the current layout key is non-ascii (codepoint > 127 and < 0xE000), the alternate_key from the base layout is used for matching if the mapping opts in via --allow-fallback=shifted,ascii. Default kitty bindings use --allow-fallback=shifted,ascii so they work out of the box with non-Latin layouts. User custom mappings default to --allow-fallback=shifted (preserving existing shifted_key behavior without ascii fallback). --allow-fallback=none disables all fallback for a mapping. Python side: parse_options_for_map() in options/utils.py handles flag parsing, ShortcutMapping uses it in __init__. get_shortcut() filters candidates by per-mapping allow_fallback. Go side: ParseMap() handles --allow-fallback, KeyAction stores AllowFallback, ShortcutTracker.Match passes it to matching. MatchesParsedShortcut defaults to shifted,ascii for hardcoded shortcuts. Migrated kittens (themes, command_palette, diff, choose_files) to use ShortcutTracker with configurable map entries. Tests added for Python (5 test methods) and Go (ParseMap + key matching). |
||
|---|---|---|
| .. | ||
| ask | ||
| broadcast | ||
| choose_files | ||
| choose_fonts | ||
| clipboard | ||
| command_palette | ||
| desktop_ui | ||
| diff | ||
| hints | ||
| hyperlinked_grep | ||
| icat | ||
| notify | ||
| pager | ||
| panel | ||
| query_terminal | ||
| quick_access_terminal | ||
| remote_file | ||
| resize_window | ||
| show_key | ||
| ssh | ||
| themes | ||
| transfer | ||
| tui | ||
| unicode_input | ||
| __init__.py | ||
| runner.py | ||