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