163 Commits

Author SHA1 Message Date
Kovid Goyal
c5b9b7d81d ... 2026-05-17 13:45:53 +05:30
Kovid Goyal
3165a47579 More work on the DnD kitten 2026-05-05 10:49:56 +05:30
Kovid Goyal
cd7d3026f6 Handle dnd chunking internally in the loop 2026-05-02 17:28:01 +05:30
Kovid Goyal
197115cb95 More work on the dnd kitten 2026-05-01 12:37:35 +05:30
Kovid Goyal
3d8a2fbb4f Use SIMD base64 everywhere 2026-04-21 11:56:55 +05:30
Kovid Goyal
4e04e34438 Refactor dnd cmd queueing API 2026-04-19 22:54:44 +05:30
Kovid Goyal
0ddbffdf79 Allow mocking remote clients 2026-04-19 20:42:43 +05:30
Kovid Goyal
36171d1233 More work on dnd kitten 2026-04-19 10:21:01 +05:30
copilot-swe-agent[bot]
2e314ecba9 Rewrite mouse-demo drop to use OnDnDData API; fix QueueDnDData bugs
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/3359d812-5cb2-44a6-ae6e-ba1d708c490a

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-16 15:32:49 +00:00
Kovid Goyal
f8dd59ebb0 Loop callback for dnd escape codes 2026-04-16 20:47:16 +05:30
Kovid Goyal
5ea424abeb Loop API for DnD transmission 2026-04-16 20:06:12 +05:30
Kovid Goyal
b16d199c54 ... 2026-04-16 19:24:21 +05:30
Kovid Goyal
0e41c937ac More modernization 2026-04-16 19:15:19 +05:30
Kovid Goyal
01055d36b0 Move roundtrip on exit flag into terminal options to have a consistent API 2026-04-10 15:37:20 +05:30
Kovid Goyal
3fe884a29a DRYer 2026-04-10 15:32:27 +05:30
Kovid Goyal
5e158f90a7 Fix some responses from terminal sometimes leaking into shell on after kitten exit
Always do a roundtrip at kitten exit, except for special purpose
kittens. This slows down exit by one round trip time (capped at 2
seconds), however it ensures that we never get terminal response leak.

Fixes #9839
2026-04-10 15:14:38 +05:30
copilot-swe-agent[bot]
6a0efbfdba Refactor ShortcutTracker.Match() to respect AllowFallback priority order
Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/85fbf706-4688-4901-9a23-907cebc91da3
2026-03-26 04:31:37 +00:00
Павел Мешалкин
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
newwares
828bd56fa5 ssh kitten: Push and pop keyboard encoding flags 2026-02-07 20:26:28 -05:00
Kovid Goyal
fee4cb0975 fix warning from linter 2025-12-02 23:37:53 +05:30
Kovid Goyal
b627d2e4ab Move error handling code into its own library 2025-10-12 13:51:16 +05:30
Kovid Goyal
f067e9cd92 Make various goroutines panic-safe 2025-10-09 07:17:53 +05:30
Kovid Goyal
ee00bfa01a ... 2025-09-21 10:15:06 +05:30
Kovid Goyal
2bdbbd909c Handle color scheme changes in choose-files kitten 2025-07-20 13:43:59 +05:30
Kovid Goyal
4d3bbd82e0 Extend the SGR Pixel mouse reporting protocol to also report when the mouse leaves the window 2025-07-12 11:59:23 +05:30
Kovid Goyal
d22244d135 Micro-optimization 2025-07-12 09:22:27 +05:30
Kovid Goyal
4a13c53438 Turn off focus tracking while doing tty remote control
Fixes #8733
2025-06-16 21:57:19 +05:30
Kovid Goyal
3feea5b279 DRYer 2025-06-05 20:59:09 +05:30
Kovid Goyal
7657b2b8c6 Get correct stacktraces for goroutine panics 2025-06-01 13:07:11 +05:30
Kovid Goyal
d1faccdd1c Loop API print proper stack traces for panics in go routines 2025-06-01 12:51:59 +05:30
Kovid Goyal
ecb9c46b95 ... 2025-06-01 12:35:23 +05:30
Kovid Goyal
b55013944e More work on choose-files 2025-05-20 14:16:49 +05:30
Kovid Goyal
e015ebefab Implement focus tracking in kitten infrastructure 2025-05-16 12:48:21 +05:30
Kovid Goyal
c861259e3b Rename go module from kitty -> github.com/kovidgoyal/kitty
Makes the code more easily re-useable in other projects
2025-05-16 08:43:39 +05:30
Kovid Goyal
7ec0085a0b Also report panic via debugprintln 2025-05-14 12:06:01 +05:30
Kovid Goyal
237bb35ee9 More CodeQL fixes 2025-04-20 21:53:11 +05:30
Kovid Goyal
adfcffa5d7 Various fixes to make CodeQL happy 2025-04-20 21:34:42 +05:30
Kovid Goyal
3a4d32b85b Get basic full string width tests running 2025-04-11 10:45:39 +05:30
Kovid Goyal
f3db7e7554 diff kitten: Automatically change colors on terminal color scheme change 2025-01-05 06:00:24 +05:30
Kovid Goyal
134271be93 diff kitten: Abort when run inside a terminal that does not support the kitty keyboard protocol
Fixes #8185
2025-01-03 21:34:38 +05:30
Kovid Goyal
fc463aaba5 Code to query terminal for capabilities 2025-01-03 21:30:05 +05:30
Kovid Goyal
4cb190130f Document why we explicitly turn off in band resize 2024-11-19 08:08:35 +05:30
Tim Culverhouse
4b354fbd30 tui: explicitly turn off in-band resize mode
Explicitly turn off in-band resize notifications if they were requested
as part of the loop. Kitty implicitly resets this mode when `XTRESTORE`
(`CSI ? r`) is seen, however some terminals implementing mode 2048
(eg foot and Ghostty) follow the xterm behavior of only restoring the
state of explicitly passed modes.

Some of the kittens have become very useful outside of just Kitty
(`show-key`, for example). Add an explicit reset of mode 2048 to support
the behavior of other terminal emulators.
2024-11-18 10:51:14 -06:00
Kovid Goyal
62d5e13cbd themes kitten: fix some keybaord shortcuts not working with weird IME systems on Linux that convert key events into text events 2024-10-15 09:51:52 +05:30
Kovid Goyal
2ac26b0e6d Fix #7752 2024-08-20 17:27:13 +05:30
Kovid Goyal
573058d861 Fix panic on empty style 2024-07-21 18:41:04 +05:30
Kovid Goyal
9c9041cf57 Dont need to reset inband resize since it is saved and restored on the private setting stack 2024-07-20 17:02:08 +05:30
Kovid Goyal
33131ff5eb ... 2024-07-20 14:06:39 +05:30
Kovid Goyal
95aeaa390f ... 2024-07-19 12:05:52 +05:30
Kovid Goyal
10bd0f71d8 Use inband resize events in kittens 2024-07-18 21:57:53 +05:30