Commit graph

40 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
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
bd2a5cccfb
More work on dnd protocol 2026-03-21 17:13:19 +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
Kovid Goyal
15f711d6b5
Start work on horizontal align for multicells 2025-02-19 07:50:40 +05:30
Kovid Goyal
5c2c88858b
Implement reporting of multicell commands 2025-02-03 10:56:45 +05:30
Kovid Goyal
8030cbd361
Allow more subscales 2025-02-03 10:56:44 +05:30
Kovid Goyal
b1c80d212f
Allow non-width multicell code to fill multiple cells using native width algo 2025-02-03 10:56:44 +05:30
Kovid Goyal
383e1f8f57
Work on scaled rendering for box drawing chars 2025-02-03 10:56:43 +05:30
Kovid Goyal
5e861ea5ac
Start work on testing multicell commands 2025-02-03 10:56:43 +05:30
Kovid Goyal
540e030f96
Start work on handling multicell escape code 2025-02-03 10:56:43 +05:30
Kovid Goyal
2b3f2258ff
More pyugrade to 3.9 2024-08-05 11:00:51 +05:30
Kovid Goyal
c19488f3be
Graphics protocol: Add a new delete mode for deleting images whose ids fall within a range
Useful for bulk deletion. See #7080
2024-02-25 09:57:44 +05:30
Kovid Goyal
293ad34535
Get rid of utoi() 2024-02-25 09:57:31 +05:30
Kovid Goyal
75872a1097
Dont need an extra variable 2024-02-25 09:57:25 +05:30
Kovid Goyal
409ca6bfab
Allow larger graphics escape code sizes 2024-02-25 09:57:25 +05:30
Kovid Goyal
8a83014f51
Dont construct memoryview when not needed in non dump code path 2024-02-25 09:57:23 +05:30
Kovid Goyal
5f809bf249
Get kitty building with the new VT parser 2024-02-25 09:57:22 +05:30
Kovid Goyal
77292a16d6
Make shebangs consistent
Follow PEP 0394 and use /usr/bin/env python so that the python in the
users venv is respected. Not that the kitty python files are meant to be
executed standalone anyway, but, whatever.

Fixes #6810
2023-11-11 08:32:05 +05:30
Kovid Goyal
52d5a4679f
Graphics protocol: Support for positioning images relative to other images
Fixes #6617
2023-10-27 15:27:30 +05:30
Kovid Goyal
119582a9d4
Make relative imports work in gen scripts even when directly executed 2023-10-15 09:51:03 +05:30
Kovid Goyal
e6ef2fceea
py3.8 support 2023-10-14 07:57:03 +05:30
Kovid Goyal
56063b96fd
Move gen scripts into their own package 2023-10-14 07:44:18 +05:30
Renamed from gen-apc-parsers.py (Browse further)