Commit Graph

343 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
1853c48561 tui/password: make lock emoji blink at 500ms via repeating timer
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/3ee6840f-29cc-43bb-a4b6-bf9ae604ea11

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-01 02:51:40 +00:00
copilot-swe-agent[bot]
8aa83221e8 Improve password input: hide cursor and show lock emoji (U+1F512)
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/cf06c199-5837-41da-bebf-eb3c220684db

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-01 02:43:55 +00:00
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
Kovid Goyal
eddaaed3e3 Modernize Go code 2026-03-21 08:41:47 +05:30
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
1d19942811 Store more metadata about pixel data shape when serializing 2025-11-15 12:23:56 +05:30
Kovid Goyal
6f588a0c29 run modernize 2025-11-11 17:09:37 +05:30
Kovid Goyal
d19fc375ba Switch to external shm package 2025-11-10 12:01:05 +05:30
Kovid Goyal
1e6d67b975 Update to the latest version of imaging
Gives us a bunch of new features and allows us to move a bunch of code
into imaging
2025-11-06 22:31:31 +05:30
Eng Zer Jun
d5455ab072 Update github.com/shirou/gopsutil to v4
v4 is the latest version with bug fixes and enhancements, notably the
removal of CGO implementations on Darwin in v4.24.9 [1].

Note: Due to the library's versioning policy, v4.24.5 is the first v4
release [2].

[1]: https://github.com/shirou/gopsutil/releases/tag/v4.24.9
[2]: https://github.com/shirou/gopsutil/releases/tag/v4.24.5

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2025-10-31 23:14:38 +08:00
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
ca7ab7a57c Get rid of os.Exit() from ExecAndHoldTillEnter 2025-09-30 13:25:22 +05:30
Kovid Goyal
ee00bfa01a ... 2025-09-21 10:15:06 +05:30
Kovid Goyal
a28e9a0146 Fix infinite recursion in readline completer 2025-08-16 06:55:39 +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
0a9d83e11b Allow more sophisticated event tracking for hover regions 2025-07-05 13:04:43 +05:30
Kovid Goyal
fdf0a13687 Change mouse pointer shape over input area 2025-07-05 12:23:44 +05:30
Kovid Goyal
834d0d3848 Make the filter labels clickable 2025-07-05 11:37:17 +05:30
Kovid Goyal
461e63049a Fix #8754 2025-06-26 21:30:43 +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
3059c87bd0 Use a lock and channel free parallelization for subseq scoring 2025-06-06 06:39:09 +05:30
Kovid Goyal
3feea5b279 DRYer 2025-06-05 20:59:09 +05:30
Kovid Goyal
6880ecaa28 Work on save file name mode 2025-06-03 20:27:14 +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
cc500893f0 ... 2025-05-21 12:16:25 +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
4713cc29ad make gofmt happy 2025-05-16 09:40:34 +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
375583259a Fix --hold always restoring cursor to block shape instead of respecting the value of cursor_shape 2025-02-18 20:21:07 +05:30
Kovid Goyal
8931062a70 hints kitten: Workaround for some broken light color themes that make the hints text color too low contrast to read
Fixes #7330
2025-01-17 20:22:10 +05:30
Kovid Goyal
2d02ff1c5f Implement using effective kitty config options for kittens
Also centralise reading of kitty options
2025-01-05 20:16:43 +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
8a607fa34c kitten run-shell: Forward KSI env var for no-rc
This is useless, since if you are doing manual shell integration
anyway there is no point in running via the run-shell kitten.
But, let's keep the pedants at bay.

Fixes #7809
2024-09-01 10:29:51 +05:30