Павел Мешалкин 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
2026-03-25 20:20:17 +05:30
...
2024-07-14 12:34:24 +05:30
2026-03-21 08:41:47 +05:30
2026-03-21 17:13:19 +05:30
2023-11-11 08:32:05 +05:30
2025-05-30 10:06:38 +05:30
2023-06-14 03:39:53 +06:00
2023-07-29 14:16:25 +05:30
2021-09-23 20:31:13 +05:30
2021-09-28 14:23:49 +05:30
2023-07-29 14:16:25 +05:30
2026-02-24 07:47:22 +05:30
2025-10-07 20:20:19 +05:30
...
2025-09-14 21:31:43 +05:30
2024-03-28 19:36:07 +05:30
...
2026-03-17 08:22:45 +05:30
2026-03-23 17:26:53 -04:00
2022-11-14 15:42:01 +05:30
2022-11-14 15:41:53 +05:30

= kitty - the fast, feature-rich, cross-platform, GPU based terminal

If you live in the terminal, *kitty* is made for **you**!

See https://sw.kovidgoyal.net/kitty/[the kitty website].

image:https://github.com/kovidgoyal/kitty/workflows/CI/badge.svg["Build status", link="https://github.com/kovidgoyal/kitty/actions?query=workflow%3ACI"]

https://sw.kovidgoyal.net/kitty/faq/[Frequently Asked Questions]

To ask other questions about kitty usage, use either the https://github.com/kovidgoyal/kitty/discussions/[discussions on GitHub] or the
https://www.reddit.com/r/KittyTerminal[Reddit community]

Packaging status in various repositories:

image:https://repology.org/badge/vertical-allrepos/kitty-terminal.svg?columns=3&header=kitty["Packaging status", link="https://repology.org/project/kitty-terminal/versions"]
Description
No description provided
Readme 71 MiB
Languages
Python 38.4%
C 28%
Go 26.2%
Objective-C 5.7%
Shell 1.1%
Other 0.6%