Commit graph

141 commits

Author SHA1 Message Date
Matsumoto Kotaro
89946ebc07 graphics: make N a transient usage-hints bitmask
Change the graphics protocol N key from a boolean into a usage-hints
bitmask. Define the first bit as a transient hint, allowing the terminal
to treat the image data as short-lived and apply optimizations such as
skipping disk cache writes.

Propagate the transient hint through frame coalescing and composition, so
a composed frame is transient if any contributing frame is transient.
2026-06-19 13:22:01 +09:00
Matsumoto Kotaro
cc2d7a1789 graphics: add memory-only storage for graphics data
Add a new graphics protocol key, N=1, to request that transmitted
image/frame data is kept only in memory and not written to the graphics
disk cache file.

This is useful for transient high-frequency updates such as video-like
streams, where the latest frame is the only useful data and persisting
each frame to the disk cache causes unnecessary write traffic.

The implementation keeps the existing graphics cache abstraction intact:
memory-only entries can still be read back by animation, composition, and
frame coalescing paths. Only persistence to the disk cache file is skipped.

The default behavior is unchanged when N is omitted or set to zero.
2026-05-30 18:46:24 +09:00
Kovid Goyal
ff1ce8fa76
Add detection for dnd protocol 2026-05-06 08:48:26 +05:30
Kovid Goyal
2ead0de844
Only parse color options for key=val specs in parse_colors 2026-04-26 10:15:28 +05:30
Kovid Goyal
df20d4aa7c
Add machine id and stub for t=k transfers 2026-04-11 17:20:53 +05:30
Kovid Goyal
564c964ed0
Add remote drag protocol
Needs to be implemented.
2026-04-10 20:32:53 +05:30
Kovid Goyal
3ab89a2fa8
Refactor the drop protocol
Get rid of request_id. Instead use the x, y, and Y fields to
disambiguate requests. Specify error handling a little more robustly.

Implementation needed.
2026-04-09 20:39:54 +05:30
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
71fcc7e233
Add a request id for DnD protocol data requests
Allows multiple in-flight requests. Needs implementation.
2026-04-09 08:23:33 +05:30
Kovid Goyal
348151c457
More work on DnD protocol 2026-04-08 19:07:15 +05:30
Kovid Goyal
e41592e3b1
More work on the DnD protocol 2026-04-02 12:03:49 +05:30
Kovid Goyal
4f7855aede
More work on the DnD protocol 2026-04-01 12:01:04 +05:30
Kovid Goyal
4798ccd0d2
Fix completion for edit-in-kitty not including some common text file types 2026-03-27 20:07:55 +05:30
Kovid Goyal
bd2a5cccfb
More work on dnd protocol 2026-03-21 17:13:19 +05:30
Kovid Goyal
67b706ff71
Make DND code constant available to kittens 2026-03-21 08:41:47 +05:30
Kovid Goyal
b4d57525ea
Only base64 encode payload when needed 2026-03-21 08:41:47 +05:30
Kovid Goyal
5ad55ec936
Implement drop data transmission 2026-03-21 08:41:47 +05:30
Kovid Goyal
4f404f8c85
Send dropped message 2026-03-21 08:41:47 +05:30
Kovid Goyal
3a30c47942
Get drop status updates working 2026-03-21 08:41:47 +05:30
Kovid Goyal
b0e57b4dce
Send drop move events to child 2026-03-21 08:41:46 +05:30
Kovid Goyal
5a8132d241
Start and stop accepting drops 2026-03-21 08:41:46 +05:30
Kovid Goyal
2898324047
Start work on DnD protocol 2026-03-21 08:41:46 +05:30
vishalpatil-45
7c8cd2cd1e Fix: Increase sRGB LUT precision to 8 decimal places for more accurate color rendering 2026-02-17 02:22:20 +05:30
Kovid Goyal
573bfb688a
Move parsing of colors fully into C
Uses a perfect hash function for color name lookup
2025-12-31 14:21:45 +05:30
Kovid Goyal
6c81547e24
Output the set of special colors separately 2025-11-08 00:55:10 +05:30
Kovid Goyal
aa7d38d5b1
Cleanup some code 2025-11-08 00:51:15 +05:30
Kovid Goyal
9a4b52f8b9
diff kitten: Fix wheel_scroll_multiplier not being respected
Fixes #9054
2025-10-01 17:07:47 +05:30
Kovid Goyal
d8b524c692
Cache parsing of command line specifications
Change option specification from dict to tuple for better performance
and immutability and better type checking.
2025-09-29 12:31:10 +05:30
Kovid Goyal
80260e6eb1
Move back to individual settings for scrollbar
We need to split out the color settings so that they can be set in
themes anyway, so ...
2025-09-14 17:48:59 +05:30
Kovid Goyal
12c1b0cbdf
remove leftover debug prints 2025-07-20 21:45:36 +05:30
Kovid Goyal
d5534b6238
Add conf file for desktop-ui kitten 2025-07-01 13:26:39 +05:30
Kovid Goyal
6b07ad7ba4
When scores match tie break with length 2025-06-24 21:17:02 +05:30
Kovid Goyal
9de6bfbbd7
More work on choose files kitten 2025-06-19 11:43:12 +05:30
Kovid Goyal
fe9b9d1d33
py3.10 compat 2025-06-18 17:39:26 +05:30
Kovid Goyal
ad03fa94b2
Update the list of nerd font names when updating other unicode data as well
No longer need to store the list of names in our source code
2025-05-21 13:19:27 +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
b950cb85ce
... 2025-04-29 09:39:05 +05:30
Kovid Goyal
24aa1f171c
Make AsCommandLine() more parsimonious 2025-04-29 09:37:36 +05:30
Kovid Goyal
cd75baccf2
Remove unused code 2025-04-28 15:37:08 +05:30
Kovid Goyal
27c5b6aac5
Generate option parser in C for kitty CLI 2025-04-28 09:20:10 +05:30
Kovid Goyal
e42d410ee4
Move cli spec parsing code into simple module 2025-04-28 09:20:10 +05:30
Kovid Goyal
3f00dc1c9e
Work on improving CLI parsing
Can now set bool values explicitly with =
Handle multi short flag args like -abc
Add unit tests for CLI parsing
Generate go code to serialize CLI options as a cmdline

TODO: Implement setting of bool vals in C and Go parsing code
TODO: Help/rst output should somehow indicate this feature
2025-04-26 09:01:54 +05:30
Kovid Goyal
82e2fe82d6
Add a couple more gseg tests 2025-04-11 13:34:16 +05:30
Kovid Goyal
c03dd673ae
Restore fast path for printable ASCII 2025-04-11 09:34:21 +05:30
Kovid Goyal
e976cf67fd
Make GraphemeBreakProperty available globally 2025-04-11 09:34:21 +05:30
Kovid Goyal
6712169c0f
... 2025-04-01 17:18:11 +05:30
Kovid Goyal
057dde35a7
Use a two stage lookup table for segmentation
Saves one extra array lookup at no cost in size
2025-04-01 14:25:24 +05:30
Kovid Goyal
557e6547f2
... 2025-04-01 13:31:20 +05:30