Commit Graph

1424 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
f2df2394ce Fix conf watcher kitten not tracking changes to symlink targets 2026-05-24 09:54:01 +05:30
Kovid Goyal
dd136ba806 ... 2026-05-24 09:12:43 +05:30
Kovid Goyal
6da5bae945 Cleanup previous PR 2026-05-18 13:55:48 +05:30
Kovid Goyal
c5b9b7d81d ... 2026-05-17 13:45:53 +05:30
Xuyiyang23333
c0661024d8 Fix silent failure when pager (less) is not installed
When kitten --help is run in a terminal and less is not available,
ShowHelpInPager silently discards the error from pager.Run(), resulting
in no output and a zero exit code. Fall back to writing help text
directly to stdout when the pager fails, matching the behavior of the
Python equivalent in kitty/cli.py which catches FileNotFoundError and
prints the text as a fallback.

Signed-off-by: Xuyiyang23333 <xuyiyang23333@gmail.com>
2026-05-13 00:37:55 +08:00
Kovid Goyal
3165a47579 More work on the DnD kitten 2026-05-05 10:49:56 +05:30
Kovid Goyal
da590ed5ec Remove unused code 2026-05-03 11:57:33 +05:30
Kovid Goyal
cd7d3026f6 Handle dnd chunking internally in the loop 2026-05-02 17:28:01 +05:30
Kovid Goyal
ff7c6425e6 More work on dnd kitten 2026-05-02 12:16:42 +05:30
copilot-swe-agent[bot]
3f04b4dd40 Remove spurious blank line in Decoder Finish method
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/cb72bac9-aa33-480e-83e9-2f59508694a7

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-05-02 03:23:18 +00:00
copilot-swe-agent[bot]
ef8189016f Add streaming base64 encoder with comprehensive tests
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/cb72bac9-aa33-480e-83e9-2f59508694a7

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-05-02 03:21:25 +00:00
Kovid Goyal
197115cb95 More work on the dnd kitten 2026-05-01 12:37:35 +05:30
copilot-swe-agent[bot]
7757d160bc RemoveChildren: use RefCountedFile instead of DupFile, skip seek for child dirs
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/e648c02e-d4cc-4f6c-8188-17941e8a1dd8

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-27 04:01:02 +00:00
copilot-swe-agent[bot]
708cff7f4b Convert RemoveChildren from recursive to iterative stack-based
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/bd5ca209-e811-4c49-bec7-5dd3a40d8c57

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-27 03:50:32 +00:00
Kovid Goyal
c655df1c2d ... 2026-04-27 09:12:43 +05:30
Kovid Goyal
9e59bf2f6a Avoid extra lstat() per entry when removing directory tree 2026-04-27 09:09:07 +05:30
copilot-swe-agent[bot]
cca16aabd3 Add tests for RenameAt, find_overwrites, and rename_contents
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/2fffdd1f-2d67-4a28-b124-437c26794e25

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-27 03:02:32 +00:00
Kovid Goyal
8c2c32a5a5 More work on the dnd kitten 2026-04-27 08:22:17 +05:30
Kovid Goyal
151fb9220f More work on dnd kitten 2026-04-26 20:45:41 +05:30
Kovid Goyal
ff560f615e ... 2026-04-26 13:15:08 +05:30
copilot-swe-agent[bot]
6000226cdf Add tests for file_at_fd.go and fix FD lifetime bug in CopyFolderContents
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/389bb81e-e9f9-4428-a79a-d8d461cfe943

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-25 11:30:59 +00:00
Kovid Goyal
a5940b4eb1 ... 2026-04-25 13:59:37 +05:30
Kovid Goyal
ecc241d891 For for background copy go routine to exit 2026-04-25 13:40:58 +05:30
Kovid Goyal
f6c0955e84 Read large directories in chunks for faster cancel 2026-04-25 13:34:21 +05:30
Kovid Goyal
a6e58e2ca9 Cleanup symlink seen handling 2026-04-25 13:25:33 +05:30
Kovid Goyal
5146cb388b Fix various minor bugs in copy folders 2026-04-25 13:02:27 +05:30
Kovid Goyal
8737da510f Add optional symlink following to copyfolder function 2026-04-25 12:08:56 +05:30
Kovid Goyal
4a5ab0a05e Fix various minor bugs in the copy folders function 2026-04-24 15:35:44 +05:30
Kovid Goyal
68a4623f37 DRYer 2026-04-24 15:12:24 +05:30
Kovid Goyal
55c4519707 More pointless UNIX variability 2026-04-24 14:56:29 +05:30
Kovid Goyal
0f81bca430 DRYer 2026-04-24 14:37:34 +05:30
Kovid Goyal
ca7388c145 Bloody lazy Crapple
No mknodat. Sigh.
2026-04-24 14:22:41 +05:30
Kovid Goyal
2c37fb4845 API to copy folder contents using dir fds
Also make the various fd based wrappers handle EINTR automatically.
2026-04-24 14:12:04 +05:30
Kovid Goyal
ddcf471d90 rename file 2026-04-24 14:11:32 +05:30
Kovid Goyal
64342abda0 More work on the dnd kitten 2026-04-23 08:15:34 +05:30
Kovid Goyal
b4f7162a73 Use CLOEXEC with openat 2026-04-21 22:01:39 +05:30
Kovid Goyal
43035b7224 Rename at fd module 2026-04-21 21:59:05 +05:30
Kovid Goyal
828384a324 More fd based API 2026-04-21 21:58:33 +05:30
Kovid Goyal
b8de27655f Utility function to delete content of dir pointed to by open file 2026-04-21 21:41:17 +05:30
Kovid Goyal
1ca6dba7e1 ... 2026-04-21 13:12:45 +05:30
Kovid Goyal
3d8a2fbb4f Use SIMD base64 everywhere 2026-04-21 11:56:55 +05:30
Kovid Goyal
744ad7438c Use SIMD base64 encoding for graphics transmission 2026-04-21 10:01:28 +05:30
Kovid Goyal
93573aec6f Switch to SIMD based base64 decoder 2026-04-21 09:52:39 +05:30
Kovid Goyal
1b741ca725 Clean up API of streaming decoder 2026-04-21 09:49:09 +05:30
copilot-swe-agent[bot]
7b346d15c1 Add comprehensive tests for streaming_base64 decoder
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/b5dbc339-6907-46fb-a7e7-9ee08b7ed20d

Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
2026-04-21 04:13:30 +00:00
Kovid Goyal
94651eaff2 Go version of streaming base64 decoder 2026-04-21 09:34:25 +05:30
Kovid Goyal
4e04e34438 Refactor dnd cmd queueing API 2026-04-19 22:54:44 +05:30
Kovid Goyal
0ddbffdf79 Allow mocking remote clients 2026-04-19 20:42:43 +05:30