Commit graph

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