kitty/tools/tui
Павел Мешалкин 8ffdf7d7ee feat: add per-mapping --allow-fallback for layout-independent shortcuts
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).
2026-03-25 19:34:13 +03:00
..
graphics Store more metadata about pixel data shape when serializing 2025-11-15 12:23:56 +05:30
loop feat: add per-mapping --allow-fallback for layout-independent shortcuts 2026-03-25 19:34:13 +03:00
readline Modernize Go code 2026-03-21 08:41:47 +05:30
sgr Rename go module from kitty -> github.com/kovidgoyal/kitty 2025-05-16 08:43:39 +05:30
shell_integration run modernize 2025-11-11 17:09:37 +05:30
shortcuts Rename go module from kitty -> github.com/kovidgoyal/kitty 2025-05-16 08:43:39 +05:30
subseq Move error handling code into its own library 2025-10-12 13:51:16 +05:30
dcs_to_kitty.go Rename go module from kitty -> github.com/kovidgoyal/kitty 2025-05-16 08:43:39 +05:30
download_with_progress.go Make various goroutines panic-safe 2025-10-09 07:17:53 +05:30
hold.go Get rid of os.Exit() from ExecAndHoldTillEnter 2025-09-30 13:25:22 +05:30
mouse.go Allow more sophisticated event tracking for hover regions 2025-07-05 13:04:43 +05:30
password.go Rename go module from kitty -> github.com/kovidgoyal/kitty 2025-05-16 08:43:39 +05:30
progress-bar.go Rename go module from kitty -> github.com/kovidgoyal/kitty 2025-05-16 08:43:39 +05:30
progress-bar_test.go Rename go module from kitty -> github.com/kovidgoyal/kitty 2025-05-16 08:43:39 +05:30
render_lines.go Rename go module from kitty -> github.com/kovidgoyal/kitty 2025-05-16 08:43:39 +05:30
run.go run modernize 2025-11-11 17:09:37 +05:30
spinners.go
tmux.go Update github.com/shirou/gopsutil to v4 2025-10-31 23:14:38 +08:00
ui_kitten.go Rename go module from kitty -> github.com/kovidgoyal/kitty 2025-05-16 08:43:39 +05:30