Commit graph

1564 commits

Author SHA1 Message Date
Kovid Goyal
e62ec6d540
Throughput improvements when processing large blocks of text
Mostly comes from detecting the case of runs of ASCII printable
characters and using a special fast path for them. Improves benchmarks
as per benchmark.py by 15-30% for text heavy workloads
2026-08-16 17:47:56 +05:30
Hassan Raza
bf18c2b8c1
Fix Bash SSH hostname detection 2026-08-13 07:55:42 +05:00
Kovid Goyal
48625a824d
Remove incremental linking test. setup is not available in all contexts where tests run and this functionality isnt important enough to warrant a test anyway 2026-08-13 08:14:28 +05:30
Hassan Raza
9bbb900e6a
Skip disabled Bash command hook 2026-08-12 20:02:47 +05:00
Hassan Raza
baa9a2ecba
Complete session file completion 2026-08-12 19:15:52 +05:00
Kovid Goyal
29d8b45594
Query go itself for its cache directories
Fixes test suite causing a full rebuild on every run on macOS
2026-08-12 19:06:45 +05:30
Kovid Goyal
46460cbb29
Merge branch 'fix/relink-command-changes' of https://github.com/M-Hassan-Raza/kitty 2026-08-12 18:41:42 +05:30
Kovid Goyal
dcbffe3fe0
Cleanup all_fonts_map() invocation to be once per worker process only and not in master process when using execed test workers 2026-08-12 17:39:03 +05:30
Hassan Raza
111cd86f61
Relink when linker commands change 2026-08-12 16:21:24 +05:00
Kovid Goyal
00a5ca54ef
Cleanup test worker launch code 2026-08-12 16:01:31 +05:30
Kovid Goyal
185de897b4
Run tests in execed workers rather than forked workers on macOS to ensure there are no issues form CoreFoundation libraries not liking fork + threads
Fixes #10349
2026-08-12 15:53:22 +05:30
Kovid Goyal
f047fc82d5
Report python test worker failures separately from test failures 2026-08-12 15:29:40 +05:30
Kovid Goyal
485a12aa12
Report python subtest failures when running test suite 2026-08-12 15:25:32 +05:30
Hassan Raza
81791a090f
Quote choose-files shell output safely 2026-08-12 13:10:53 +05:00
Kovid Goyal
58828dd893
Simplify remap_modifier making it a single option 2026-08-11 18:32:21 +05:30
Kovid Goyal
36872d91bb
autoformat 2026-08-11 16:49:43 +05:30
Kovid Goyal
50c683e1a7
Merge PR #10307: Add remap_modifier option
Adds remap_modifier config option to present one modifier key to kitty
as another, as discussed in issue #1077. Resolves merge conflicts by
adopting master's formatting style (multi-line macros, pointer spacing)
while preserving all new PR functionality.

Co-Authored-By: Bjoern <bjohas@users.noreply.github.com>
2026-08-11 16:42:53 +05:30
Kovid Goyal
953ac19e77
Autoformat slang code 2026-08-10 22:29:18 +05:30
Kovid Goyal
81e94953f8
Merge branch 'feature/UAT-set-os-window-title' of https://github.com/Bonjour123/kitty 2026-08-10 21:14:35 +05:30
Lucas TAVEAU
988242d4d2 feat: add remote control for OS window titles [feature/UAT-set-os-window-title] 2026-08-10 09:52:16 +02:00
Kovid Goyal
28b7c238dc
Use a fresh cache dir for shader compilation test 2026-08-10 12:51:11 +05:30
Kovid Goyal
c97b71e66b
Nicer test cache dir name 2026-08-10 12:38:15 +05:30
Kovid Goyal
e7d41ff7f4
Fix loading of pipeline files by absolute path 2026-08-10 10:16:37 +05:30
Ayush Bhat
54cf9988d5 Fix hang on Scroll Up with a huge count
screen_scroll() looped `count` times with no upper bound, so CSI 2147483647 S
spun for ~2.1 billion iterations at 100% CPU and never returned, hanging the
whole terminal.

Scrolling up by more than the number of lines on screen blanks the entire
region, so clamp count to self->lines. Scroll Down (_reverse_scroll) already
caps its count the same way.

Fixes #10333
2026-08-08 22:03:03 +02:00
Kovid Goyal
17e577f75b
Add a test to check that all custom shaders build 2026-08-07 18:49:56 +05:30
bjohas
07be70cf86 Add tests for remap_modifier
Covers the empty default, a single remap, that both directions of a swap are
recorded, that the last declaration for a source wins wherever it appears,
multi-modifier destinations, and that every rejection is reported rather than
silently ignored: wrong arity, unknown or non-remappable modifier names, a
source naming more than one modifier, and a no-op mapping.

Whether the permutation is applied simultaneously rather than sequentially is
a property of the C code and is not observable from the parsed dict, which is
identical either way; the comment says so rather than implying more coverage
than exists.
2026-08-06 16:22:37 +01:00
Kovid Goyal
cb4cefee5a
misc layout code robustness fixes 2026-08-05 21:04:30 +05:30
Chance Zibolski
1b81045008 Save the layout state of every layout a tab has used to sessions
save_as_session recorded only the state of the tab's active layout, so the state
of any layout the tab had been toggled away from was lost. Toggling a splits tab
to the stack layout and saving discarded the splits tree entirely, because Stack
has no layout_state() of its own, and switching back to splits after restoring
rebuilt the tree from scratch along the default axis.

The session file also carried no last_used_layout, so _last_used_layout was None
after a restore and toggle_layout <current layout> silently did nothing, since it
delegates to last_used_layout() which returns early when unset. The key that
produced the stack layout no longer undid it.

Tab now keeps the layouts it has used, by name, and writes their state plus
last_used_layout into the existing set_layout_state JSON rather than adding new
session commands. Older versions of kitty ignore unknown keys in that dict but
abort on unknown commands, so nesting keeps session files readable by them.

Restoring the state of a layout that is not being made current must not reorder
the window list, since only the current layout determines window order, hence
apply_to_window_list. Splits.set_layout_state also has to accept state for a
layout whose tree is still empty, which is the case for a layout that has not
laid out any windows yet.

Fixes #10320
2026-08-05 07:53:47 -07:00
Kovid Goyal
e99f6044c5
Remove NUL from paths received via OSC7
NUL is anyway not legal in paths and it causes session files saved with
such paths to fail

We dont remove other control codes since they are actually legal in
paths.

Fixes #10321
2026-08-05 13:36:18 +05:30
Kovid Goyal
ed025b37af
fix specialisation not working 2026-08-05 08:17:05 +05:30
Kovid Goyal
d6712dc695
... 2026-08-05 08:05:40 +05:30
Kovid Goyal
dd2c59d255
autoformat 2026-08-05 07:16:05 +05:30
Kovid Goyal
81e7d4f1a7
Test to insure that custom shader compilation uses its cache 2026-08-05 05:33:00 +05:30
Kovid Goyal
ae347ec014
allow specialisation of custom shaders at link time 2026-08-05 05:32:59 +05:30
Kovid Goyal
98e2de1a98
move to using a pipeline definition file for custom shaders 2026-08-05 05:32:58 +05:30
Kovid Goyal
5431baa422
More work on custom shaders 2026-08-05 05:32:57 +05:30
Kovid Goyal
c99c4b1bdf
speedup slow ssh shell integration test by removing redundant entries from test matrix 2026-08-05 05:32:57 +05:30
Kovid Goyal
9d33c21131
... 2026-08-05 05:32:57 +05:30
Kovid Goyal
60c4f1c37c
... 2026-08-05 05:32:57 +05:30
Kovid Goyal
53f1b6fefb
Report Go tests properly 2026-08-05 05:32:57 +05:30
Kovid Goyal
39ae060d23
Run python test in parallel 2026-08-05 05:32:57 +05:30
Kovid Goyal
cbf3c50cf4
... 2026-08-05 05:32:57 +05:30
Kovid Goyal
16297903f6
test for compiling custom shader to glsl 2026-08-05 05:32:57 +05:30
Kovid Goyal
4b15314267
compile builtin shaders in dependency layers 2026-08-05 05:32:56 +05:30
Kovid Goyal
7f0b072f0d
autoformat 2026-08-05 05:32:56 +05:30
Kovid Goyal
104acf7d65
add tests for lock_with_file 2026-08-05 05:32:56 +05:30
Kovid Goyal
71e8d7496e
... 2026-08-05 05:32:55 +05:30
Kovid Goyal
5802d35198
Switch over to the slang based shaders 2026-08-05 05:32:54 +05:30
Kovid Goyal
dbe59e0667
... 2026-08-05 05:32:54 +05:30
Kovid Goyal
c4f1d1b9be
Delay load slangc 2026-08-05 05:32:54 +05:30