Commit graph

1484 commits

Author SHA1 Message Date
copilot-swe-agent[bot]
4d55d30614
Enhance regression test with additional geometry validity assertions
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/3b0c9eab-24ba-4934-a941-be477477cee4

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-05-01 15:05:34 +00:00
copilot-swe-agent[bot]
20185fc317
Fix display corruption when maximizing horizontal split with window_padding_width >= 4 (issue #9946)
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/3b0c9eab-24ba-4934-a941-be477477cee4

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-05-01 15:04:46 +00:00
Kovid Goyal
cff2e6efcf
... 2026-05-01 12:49:50 +05:30
Kovid Goyal
197115cb95
More work on the dnd kitten 2026-05-01 12:37:35 +05:30
Kovid Goyal
614a32c790
More work on DnD kitten 2026-05-01 08:48:21 +05:30
copilot-swe-agent[bot]
777c1aa718
Update symlink tests to reflect new top-level symlink protocol behavior
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/9d43f7a2-9a0f-4749-aab8-bf72b82e7277

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-30 04:13:51 +00:00
Kovid Goyal
ee84e68ca4
Have top level symlink behavior match for local and remote drops 2026-04-30 09:38:17 +05:30
Kovid Goyal
79bf7ef1a4
Cleanup previous PR 2026-04-30 09:23:22 +05:30
copilot-swe-agent[bot]
0615823d15
Add text/uri-list edge case tests and overwrite confirmation tests to dnd_kitten_drop
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/cc433db7-b78f-4174-a6a7-1ba6e51955ac

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-29 13:27:02 +00:00
Kovid Goyal
8bbce578f2
Basic dnd test working 2026-04-29 17:59:33 +05:30
Kovid Goyal
1d6f695140
More work on dnd kitten 2026-04-29 17:46:12 +05:30
Kovid Goyal
6dffc06e8f
... 2026-04-29 12:57:41 +05:30
Kovid Goyal
86c055d96a
More work on dnd kitten 2026-04-29 12:40:46 +05:30
Kovid Goyal
58d314be7c
Cleanup previous PR 2026-04-28 16:57:14 +05:30
Idate96
5a74cb126f Guard line buffer copy bounds 2026-04-28 13:10:34 +02:00
Kovid Goyal
3e46fa9f81
More work on dnd kitten 2026-04-26 22:55:11 +05:30
Kovid Goyal
9acc16cc44
Clarify that end of drop escape code discards queued requests 2026-04-26 22:34:30 +05:30
Kovid Goyal
20bd31db0b
Allow multiple drops on the dnd kitten 2026-04-26 18:42:14 +05:30
Kovid Goyal
de677bc239
Merge branch 'add-test' of https://github.com/zzhaolei/kitty 2026-04-26 15:10:21 +05:30
zhaolei
5c591d5355 Add tests for glyph_matches_dot_liga_final_component 2026-04-26 16:43:37 +08:00
Kovid Goyal
eb6eb37613
Remove option used only for testing 2026-04-26 13:50:10 +05:30
Kovid Goyal
b67f479040
Remove leftover debug print 2026-04-26 12:54:29 +05:30
Kovid Goyal
2f81f9e43b
Cleanup previous PR 2026-04-26 12:19:01 +05:30
Bruno Volpato
8d935486ef tabbar: address vertical alignment feedback 2026-04-25 15:21:50 -04:00
bvolpato
19ea73f047 Add vertical tab bars on the left and right
Teach tab_bar_edge about left and right sidebars and route tab layout,
hit-testing, and drag/drop through the vertical axis when needed.
2026-04-25 15:08:15 -04:00
zhaolei
98c8357ebe Add shaping tests for ligature cases and bundle Comfy Code 2026-04-25 19:43:17 +08:00
Kovid Goyal
896d193413
pep8 2026-04-24 10:42:25 +05:30
Kovid Goyal
a0b35a4597
Merge branch 'copilot/fix-issue-9910' of https://github.com/kovidgoyal/kitty
Fixes #9910
2026-04-24 10:35:05 +05:30
copilot-swe-agent[bot]
7d3ff332b9
macOS: fix args passed via open --args being ignored when macos-launch-services-cmdline is present (fixes #9910)
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/2cdc7e8f-5b64-4c97-bd65-dec508155313

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-24 04:52:37 +00:00
Kovid Goyal
a47ec50d72
More work on the dnd kitten 2026-04-23 17:23:21 +05:30
Kovid Goyal
cadaec5712
Cleanup previous PR 2026-04-23 12:51:27 +05:30
copilot-swe-agent[bot]
fd1e55dd81
Add tests for broken and non-broken symlinks in URI drop protocol
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/9be1623f-7a9a-451b-a0ed-695882c7c8f4

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-23 07:13:34 +00:00
Kovid Goyal
4c6f7ff6b5
Modify drop protocol to allow transmission of broken symlinks in the URI list 2026-04-23 12:36:22 +05:30
Kovid Goyal
3cf037d263
More work on the dnd kitten 2026-04-23 12:04:05 +05:30
Kovid Goyal
c655ea8946
More work on dnd kitten 2026-04-21 14:06:33 +05:30
Kovid Goyal
d0a6b5eeac
Implement writing of MIME data on drop 2026-04-21 13:32:02 +05:30
Kovid Goyal
8b3daa6a50
Fix drop data requests 2026-04-21 08:32:42 +05:30
Kovid Goyal
9a011dea3e
More work on DnD kitten 2026-04-21 08:19:22 +05:30
Kovid Goyal
01e453a048
More work on DnD kitten 2026-04-20 20:16:02 +05:30
Kovid Goyal
a899d24b64
More work on DnD kitten 2026-04-20 19:19:51 +05:30
Kovid Goyal
54eab02709
Add tests for drop move events 2026-04-20 11:23:49 +05:30
Kovid Goyal
08c3ab106d
... 2026-04-19 21:38:09 +05:30
Kovid Goyal
9bb359e1ef
Bump python version in CI 2026-04-19 21:35:13 +05:30
Kovid Goyal
e9dcc4393f
... 2026-04-19 21:05:14 +05:30
Kovid Goyal
36e8094afe
Make dnd kitten testing infra a bit more robust 2026-04-19 21:00:09 +05:30
Kovid Goyal
0ddbffdf79
Allow mocking remote clients 2026-04-19 20:42:43 +05:30
Kovid Goyal
51b0e9c4ad
Work on testing infrastructure for DnD kitten 2026-04-19 20:21:55 +05:30
Kovid Goyal
f3c8ce919d
Refactor test code to make it less cluttered 2026-04-19 14:28:46 +05:30
Kovid Goyal
79bb660493
Remove unused code 2026-04-19 14:03:32 +05:30
Kovid Goyal
b4d07ddece
DRYer 2026-04-19 13:54:13 +05:30
Kovid Goyal
dc9bf889a6
Fix chunking of t=k not handling metadata present only on first chunk 2026-04-19 12:52:00 +05:30
distsystem
875ca70a55 Fix crash in overlay line drawing on uninitialized linebuf view
screen_draw_overlay_line accessed self->linebuf->line->cpu_cells
without ever calling linebuf_init_line on the shared view. Render
paths that initialize a stack-local Line via render_line_for_virtual_y
left the view's cpu_cells as NULL (the value set by alloc_line via
PyType_GenericAlloc), and the multicell-trim loop then dereferenced
NULL + xstart * sizeof(CPUCell), producing a SIGSEGV at a small
address (e.g. 0x1e for xstart=2). The crash was reachable any time
an IME pre-edit overlay was rendered with the cursor not in column 0
on a screen whose linebuf->line had not been re-pointed by some
unrelated prior call.

Fix by initializing the view at the overlay row on entry. Add a
test_draw_overlay_line method on Screen so the behavior can be
exercised directly from a regression test.
2026-04-18 13:10:07 +08:00
copilot-swe-agent[bot]
e8e2b31182
Fix memory safety issues, protocol bugs, and add tests for DnD implementation
Fixes:
- Memory leak: drag_free_remote_item now frees children array
- Memory leak: drag_free_offer now frees pending data
- Memory leak: toplevel_data_for_drag frees old URI string before replacement
- Protocol bug: drag_notify missing OSC prefix in escape code output
- Protocol bug: drag_notify missing colon separators between metadata keys
- Buffer overflow: add_payload symlink case ensures capacity for null terminator
- Integer overflow: expand_rgb_data uses size_t casts for multiplication
- Memory leak: realloc anti-pattern fixed in 7 locations (drop_register_window,
  drop_dispatch_data, drag_add_mimes, drag_add_pre_sent_data, drag_add_image,
  add_payload default case, queue_payload_to_child)
- UB: queue_payload_to_child guards memcpy with NULL source + 0 count

Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/3c7e550c-e8e8-413e-a54b-87d61cb8e574

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-14 09:33:23 +00:00
copilot-swe-agent[bot]
519fd49ce6
Fix bugs in t=k remote drag implementation and add comprehensive tests
Bug fixes in dnd.c:
- mktempdir_in_cache: add missing 'return ans' after successful strdup
- mktempdir_in_cache (utils.py): use O_RDONLY instead of O_RDWR for directories
- remote_items allocation: use mi.num_uris instead of ds.num_mimes
- Off-by-one: uri_item_idx > changed to >= for bounds checks
- Off-by-one: entry_num > changed to >= for bounds checks
- populate_dir_entries: fix missing last entry after final null separator
- add_payload directory finalization: create directory on disk with mkdirat
- get_errno_name: add EFBIG, EISDIR, ENOSPC error codes

Test infrastructure:
- Add dnd_test_force_drag_dropped() to simulate DROPPED state
- Make notify_drag_data_ready() succeed in test mode

Comprehensive t=k tests added:
- Single file, empty file, single symlink transfer
- Chunked file transfer with m=1
- Single directory with children
- Directory with symlinks
- Multiple URIs
- Deep directory trees (breadth-first and depth-first, 3+ levels)
- Mixed file/dir/symlink at top level
- Completion signal
- Error handling (client errors, invalid state)
- DoS limits (REMOTE_DRAG_LIMIT, PRESENT_DATA_CAP)
- Invalid input (bad base64, too large chunks, invalid indices/handles)
- URI list with comments
- Multiple chunks for directory listing

Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/9da0bff7-6a1a-490f-a4c5-8cb328e056ce

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-13 15:54:34 +00:00
Kovid Goyal
864ef70484
Have the client send machine id to terminal rather than vice versa
The terminal is the trusted by user party here.
2026-04-12 11:00:23 +05:30
Kovid Goyal
9ebe692bf7
Allow drop clients to use machine id as well 2026-04-12 09:27:16 +05:30
Kovid Goyal
df20d4aa7c
Add machine id and stub for t=k transfers 2026-04-11 17:20:53 +05:30
copilot-swe-agent[bot]
74c3bbe06d
Implement software rendering for Unicode 16 legacy computing symbols
Add rendering for codepoints U+1FBCE-U+1FBEF, U+1CC1B-U+1CC3F,
and U+1CE16-U+1CE19 in decorations.c with registration in fonts.c
and test coverage in kitty_tests/fonts.py.

Characters implemented:
- U+1FBCE-1FBCF: Left two-thirds and one-third blocks
- U+1FBD0-1FBDF: 16 diagonal box drawing characters
- U+1FBE0-1FBE3: Justified half white circles (outlines)
- U+1FBE4-1FBE5: Upper/lower centre quarter blocks
- U+1FBE8-1FBEB: Justified half black circles (filled)
- U+1FBEC-1FBEF: Justified quarter black circles (filled)
- U+1CC1B-1CC1E: Box drawing variants with offset junctions
- U+1CC1F-1CC20: Double diagonal lines
- U+1CC30-1CC3F: Twelfth and quarter circle arcs
- U+1CE16-1CE19: Box drawings light vertical T-junctions

Fixes #9851
2026-04-11 14:17:21 +05:30
copilot-swe-agent[bot]
76c76381b8
Add missing block elements from Unicode Symbols for Legacy Computing Supplement
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/0e5a33d1-c34e-4e8a-b161-7469ab770c05

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-11 04:24:29 +00:00
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]
b8cbb7f68d
Address code review: use < 2 condition, fix docstring, assert first handle = 2
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/6973699c-a979-4d97-8213-1a4a501044a1

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-10 07:39:40 +00:00
copilot-swe-agent[bot]
afa63ccec7
Implement new drop protocol X/Y key handling from b466f8b
- dnd.c: drop_send_dir_listing now uses drop_append_request_keys (echoes
  all request keys including Y for sub-dirs) and emits :X=handle instead
  of :Y=handle:X=2.  Directory handles are now the X value itself.
- dnd.c: drop_alloc_dir_handle starts handle counter at 1 so first
  handle is 2, keeping 0 (absent) and 1 (symlink) reserved as per protocol.
- dnd.py: add is_dir_event() / dir_handle() helpers; update all tests to
  use int(X) > 1 as directory indicator and X as the handle value.
- dnd.py: rename test_Y_key_in_dir_listing_response to
  test_X_key_is_handle_in_dir_listing_response with updated assertions.
- dnd.py: test_uri_directory_transfer_tree expanded to verify unambiguous
  identification (Y=parent, x=entry echoed) at all three directory levels.

Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/6973699c-a979-4d97-8213-1a4a501044a1

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-10 07:35:09 +00:00
copilot-swe-agent[bot]
0a8713972c
Change drag offer error responses from t=R to t=E in dnd.c and dnd.py
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/b0dd4978-d0b4-42a3-81e0-51b5ce155db9

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-09 17:14:44 +00:00
copilot-swe-agent[bot]
0f47a23c36
Update DnD tests for new protocol: use x/y/Y disambiguation instead of request_id
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/cdeecb3c-8589-4622-8f6b-21b724e4d5fd

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-09 15:35:23 +00:00
copilot-swe-agent[bot]
4d2b63fce8
Revert to 1-based directory entry indexing in DnD protocol
- dnd.c: entry_num==0 closes handle; entry_num>=1 reads at entry_num-1
- parse-dnd-command.h: revert cell_y default to 0 (from {0} init)
- gen/apc_parsers.py: remove post_init for DnD parser
- docs/dnd-protocol.rst: update to say 1-based indexing
- tests: all .index() calls add +1, rename test_dir_entry_one_based_index

Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/d4074aba-3aeb-4d2b-adc1-d6c6f2b539e7

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-09 11:52:31 +00:00
copilot-swe-agent[bot]
7e0e3eb6ac
Fix os.makedirs to os.mkdir for single-level directory in test
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/d09883e5-f460-471d-9dcf-e64e7b96882f

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-09 11:38:49 +00:00
copilot-swe-agent[bot]
d548afc94a
Implement DnD protocol changes for symlinks and directory handling
- Remove unique identifier (device:inode) from directory listings
- Change directory entry indexing from 1-based to 0-based
- Add symlink handling in directories: respond with t=r:X=1 and target
- Update parser to default cell_y to -1 for close handle detection
- Update and extend tests for all new behaviors

Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/d09883e5-f460-471d-9dcf-e64e7b96882f

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-09 11:33:43 +00:00
Kovid Goyal
139a0fac25
Merge branch 'fix-inactive-text-alpha' of https://github.com/zzhaolei/kitty 2026-04-09 14:09:43 +05:30
zhaolei
40c2012eeb Support negative inactive_text_alpha values for active-window-only fading 2026-04-09 13:04:01 +08:00
copilot-swe-agent[bot]
4339deb647
Add comprehensive tests for request queue and request_id behavior
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/3a4975c2-8691-486b-8ff9-f8a2146b8756

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-09 03:20:41 +00:00
Kovid Goyal
47b5b2ea65
Prevent reading uri-list items for a drag and drop in same window 2026-04-09 06:38:58 +05:30
copilot-swe-agent[bot]
f6f1cae3b7
Fix issue #9834: preserve trailing spaces on soft-wrapped lines during copy
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/343539f7-deab-4eeb-9829-99bec57c3523

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-08 17:17:20 +00:00
copilot-swe-agent[bot]
9cd8558cfd
Address code review feedback: improve test names and docstrings
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/f9868553-29a2-48c4-85c2-b6b8f686dccc

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-08 15:47:31 +00:00
copilot-swe-agent[bot]
7d33569c1a
Add comprehensive drag protocol tests and fix double-free bug in drag_free_built_data
- Add 37 new tests covering the drag source side of the DND protocol
- Test drag offer registration/unregistration (t=o, t=O)
- Test drag MIME type offering with various operations (copy/move/both)
- Test pre-sent data for valid/invalid indices, chunked data, multiple MIMEs
- Test image thumbnails: valid RGBA/RGB, invalid formats, dimensions, chunking
- Test drag start failures (no window, no offer, image size mismatches)
- Test drag cancellation from client (t=E:y=-1)
- Test offer replacement, cleanup, and error propagation
- Test client_id propagation for drag operations
- Test resource cleanup on window close during drag build
- Fix double-free in drag_free_built_data: set ds.items=NULL after free
- Add drag_free_offer to destroy_fake_window_contents for proper cleanup

Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/f9868553-29a2-48c4-85c2-b6b8f686dccc

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-08 15:43:37 +00:00
Kovid Goyal
a0958a05a9
Merge branch 'action_aliases_command_palette' of https://github.com/dmgerman/kitty 2026-04-07 19:40:55 +05:30
copilot-swe-agent[bot]
18fb31b416
Fix double-click word selection not extending beyond viewport edges
Add continue_word_upwards_scrollback() and continue_word_downwards_offscreen()
to extend word selection beyond viewport boundaries, mirroring the line
selection fix. Add tests for word selection wrapping into scrollback and
below viewport.

Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/58191e45-d925-4996-b0d5-8b1bd4baa8d5

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-07 09:49:50 +00:00
copilot-swe-agent[bot]
82bf8923cc
Fix triple-click line selection not extending wrapped lines beyond viewport bottom
Similar to commit 625e984 which fixed extending into scrollback (above viewport),
this fix extends line selection below the viewport when a wrapped line continues
past the bottom edge. Adds continue_line_downwards_offscreen() and applies it
in both the initial selection and extending selection code paths.

Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/e548ce84-fdb7-4fd1-b3df-e1166b45f5bd

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-07 09:31:17 +00:00
Daniel M German
3d89cb267c Add alias and combine support to the command palette
Users who define action_alias or kitten_alias in kitty.conf had no way
to discover or trigger these custom commands from the command palette.
Aliased keybindings were miscategorized (landing in "Miscellaneous"
with no help text), and combine bindings had the same problem.

Changes:

- Resolve aliases via opts.alias_map to get correct action names,
  categories, and help text for aliased keybindings
- Add dedicated "Action aliases" and "Kitten aliases" sections that
  list all user-defined aliases, with bound aliases showing their key
  and unbound aliases browsable as unmapped entries
- Add a "Combined actions" section for combine keybindings
- Make alias names searchable in the Go TUI so users can find
  bindings by typing the alias name
- Fix action column highlight positions to match the scored text,
  preventing visual corruption when searching for alias names

Also refactors collect_keys_data into focused single-responsibility
functions and reduces nesting depth across both Python and Go.
2026-04-06 09:45:39 -07:00
Kovid Goyal
03cf6f9348
Fix unclosed resource warning in test 2026-04-01 20:01:28 +05:30
Kovid Goyal
78f1607bf5
Cleanup previous PR 2026-04-01 19:52:40 +05:30
copilot-swe-agent[bot]
51fe3dc274
Implement DnD protocol: t=s URI file transfer and t=d directory listing with tests
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/a5aee38b-1746-4699-9dcc-2138f43cabe8

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-01 08:55:55 +00:00
Kovid Goyal
81d0e2dc8e
Cleanup previous PR 2026-04-01 13:05:56 +05:30
copilot-swe-agent[bot]
02aec3fa3e
Add DnD protocol test framework and tests
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/faa69cb9-991d-49f4-802b-263f4bb28ee9

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-01 07:22:47 +00:00
copilot-swe-agent[bot]
96d10e51a0
Fix drag resize direction bugs and add comprehensive tests
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/12198e55-3901-439b-9fba-9b5f5b470416

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-01 03:48:49 +00:00
copilot-swe-agent[bot]
35ca3a178d
Implement smooth animated scrolling for scroll_line_up and scroll_line_down
Fixes #9784
2026-03-31 21:02:53 +05:30
Kovid Goyal
fe0ecbd9ca
Regenerate palette colors when changing colors at runtime
Fixes #9763
2026-03-28 09:33:25 +05:30
copilot-swe-agent[bot]
0330db0b7a
Add tests for triple/double click mouse selection behaviors; fix extension_in_progress not being cleared on selection reset
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/3ee2e09c-5400-46f6-a556-0bba0e9dcff8

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-03-27 16:59:58 +00:00
Kovid Goyal
7e5aac2e2b
Allow setting color table value to none via OSC 21 2026-03-27 20:50:28 +05:30
Jake Stewart
1a62cde212
Add option to generate 256 color palette from first 16 colors
Needs more work to test and possibly implement reporting and setting
of the nullable color table colors.

Fixes #9426
2026-03-27 20:01:14 +05:30
Kovid Goyal
88ee80b327
Cleanup previous PR
Actually respect the fallback order when finding matching shortcuts
2026-03-26 09:30:14 +05:30
Павел Мешалкин
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
copilot-swe-agent[bot]
b252524def Add tests for graphics protocol crash fixes (commits e9661f0 and 48ab623)
Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/52901924-cb01-416f-8d4c-56bc2872a3c6
2026-03-23 03:39:38 +00:00
copilot-swe-agent[bot]
d37a9fd48a
Fix marker highlighting for CJK/wide chars not at position 0
Fixes #9705
Fixes #9706
2026-03-19 15:35:14 +05:30
Kovid Goyal
83160c10c4
Cleanup previous PR 2026-03-16 17:38:14 +05:30
Kovid Goyal
30756bb819
Cleanup previous PR 2026-03-15 08:38:59 +05:30
Alexey Shurygin
827c8dd614 Address PR review feedback 2026-03-15 01:33:38 +03:00
Alexey Shurygin
b66c6c4932 Fix: Dictation does not start on double Fn key press on Mac OS 2026-03-15 01:15:05 +03:00
copilot-swe-agent[bot]
551acca0e4
Implement maximize layout action for splits layout
Fixes #9629
Fixes #9630
2026-03-09 15:27:54 +05:30
copilot-swe-agent[bot]
5638d20921
Make showing of unmapped actions a runtime cached setting
Fixes #9591
2026-03-03 15:24:26 +05:30
copilot-swe-agent[bot]
f13c8cd44d
Allow optionally showing unmapped actions in the command palette
Also highlight letters matching the search query.
Fixes #9589
2026-03-03 14:29:10 +05:30