Kovid Goyal
7f2d577a94
...
2026-08-05 05:32:48 +05:30
Kovid Goyal
a8d244acaa
Move glsl loading code to legacy
2026-08-05 05:32:48 +05:30
Kovid Goyal
9c82a5f7ef
Move shader pythons code into shaders package
2026-08-05 05:32:48 +05:30
Kovid Goyal
9afa480de5
Move shaders into kitty package
2026-08-05 05:32:48 +05:30
Kovid Goyal
0131876e86
Rationalize build/test/package cycle
2026-08-05 05:32:48 +05:30
Kovid Goyal
2f81f960d1
Remove unneeded build step
2026-08-05 05:32:48 +05:30
Kovid Goyal
ca9945e547
Work on slang module compilation
2026-08-05 05:32:48 +05:30
Kovid Goyal
9f5339c6df
Stub slang module
2026-08-05 05:32:48 +05:30
Kovid Goyal
285adb03d0
DRYer
2026-08-05 05:32:48 +05:30
copilot-swe-agent[bot]
5f6fe10f86
Use GITHUB_TOKEN for slang release API request to avoid rate limits
2026-08-05 05:32:47 +05:30
copilot-swe-agent[bot]
55eb556171
Address code review: use url=None, add TypeError comment
2026-08-05 05:32:47 +05:30
copilot-swe-agent[bot]
1a8a843409
Implement install_slang_compiler() in ci.py
2026-08-05 05:32:47 +05:30
Kovid Goyal
991333e6c3
Stub for installation of slang on CI
2026-08-05 05:32:47 +05:30
Kovid Goyal
7d96c15d2d
Add slang to sources
2026-08-05 05:32:47 +05:30
Kovid Goyal
e4f3753103
Merge branch 'patch-1' of https://github.com/alexmyczko/kitty
2026-08-05 05:28:13 +05:30
Alex Myczko
2be09a7f1b
Add chawan as a TUI web browser option
2026-08-04 21:05:20 +02:00
Kovid Goyal
b7efde1d55
Merge branch 'fix/key-encoding-serialize-buffer-overflow' of https://github.com/ne-lande/kitty
2026-08-04 23:38:44 +05:30
ne-lande
99114a2aad
fix stack BOF in serialize() in key_encoding.c
...
found by fuzzing random targets via afl
initial guess:
the P macro calls snprintf(size=0) to clamp writes when the output buffer is full
however snprintf with size=0 writes nothing but still returns the number of bytes it would have written, so `pos` keeps
accumulating past KEY_BUFFER_SIZE-2
two unconditional writes after the loop then write past the end of the stack buffer:
```
output[pos++] = csi_trailer; /* pos may be >= KEY_BUFFER_SIZE */
output[pos] = 0;
```
2026-08-04 20:11:09 +03:00
Kovid Goyal
fe60b67c50
Add a new AI category to integrations
CI / Linux (python=3.14 cc=clang sanitize=1) (push) Has been cancelled
CI / Linux (python=3.12 cc=gcc sanitize=0) (push) Has been cancelled
CI / Linux (python=3.13 cc=gcc sanitize=1) (push) Has been cancelled
CI / Linux package (push) Has been cancelled
CI / Bundle test (macos-latest) (push) Has been cancelled
CI / Bundle test (ubuntu-latest) (push) Has been cancelled
CI / macOS Brew (push) Has been cancelled
CI / Test ./dev.sh and benchmark (push) Has been cancelled
CodeQL / CodeQL-Build (actions, ubuntu-latest) (push) Has been cancelled
CodeQL / CodeQL-Build (c, macos-latest) (push) Has been cancelled
CodeQL / CodeQL-Build (c, ubuntu-latest) (push) Has been cancelled
CodeQL / CodeQL-Build (go, ubuntu-latest) (push) Has been cancelled
CodeQL / CodeQL-Build (python, ubuntu-latest) (push) Has been cancelled
Depscan / Scan dependencies for vulnerabilities (push) Has been cancelled
2026-08-04 09:51:11 +05:30
Kovid Goyal
04dec0b6b0
Merge branch 'patch-1' of https://github.com/rickye26/kitty
2026-08-04 09:48:46 +05:30
Rick Ye
f2ebc805c8
Add captain-miao tool to integrations documentation
...
captain-miao is a TUI app to manage multiple AI coding sessions. It deeply integrates into the kitty terminal through the remote control. I think it's a nice showcase for this unique capability of kitty.
2026-08-04 00:12:16 -04:00
Kovid Goyal
51738e02f0
Update the list of NERD glyph names
...
Fixes #10311
2026-08-04 06:29:55 +05:30
Kovid Goyal
fd6c299965
Fix #10312
2026-08-04 06:28:12 +05:30
Kovid Goyal
da19316471
Merge branch 'add-malevich' of https://github.com/shergin/kitty
2026-08-04 06:21:35 +05:30
Valentin Shergin
faec3fc63d
Add malevich to graphics protocol support list
2026-08-03 15:51:10 -07:00
Kovid Goyal
9f5cc8a484
Merge branch 'dependabot/github_actions/actions-d2809b2831' of https://github.com/kovidgoyal/kitty
CI / Linux (python=3.14 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.12 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.13 cc=gcc sanitize=1) (push) Waiting to run
CI / Linux package (push) Waiting to run
CI / Bundle test (macos-latest) (push) Waiting to run
CI / Bundle test (ubuntu-latest) (push) Waiting to run
CI / macOS Brew (push) Waiting to run
CI / Test ./dev.sh and benchmark (push) Waiting to run
CodeQL / CodeQL-Build (actions, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, macos-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (go, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (python, ubuntu-latest) (push) Waiting to run
Depscan / Scan dependencies for vulnerabilities (push) Waiting to run
2026-08-03 09:27:26 +05:30
Kovid Goyal
04c6d11232
Merge branch 'dependabot/go_modules/all-go-deps-5b60b3c741' of https://github.com/kovidgoyal/kitty
2026-08-03 09:27:13 +05:30
dependabot[bot]
1f443698fc
Bump github/codeql-action from 4.37.1 to 4.37.3 in the actions group
...
Bumps the actions group with 1 update: [github/codeql-action](https://github.com/github/codeql-action ).
Updates `github/codeql-action` from 4.37.1 to 4.37.3
- [Release notes](https://github.com/github/codeql-action/releases )
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md )
- [Commits](https://github.com/github/codeql-action/compare/v4.37.1...v4.37.3 )
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 4.37.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-03 03:45:03 +00:00
dependabot[bot]
0f06f2fa34
Bump the all-go-deps group with 3 updates
...
Bumps the all-go-deps group with 3 updates: [github.com/klauspost/compress](https://github.com/klauspost/compress ), [github.com/nwaples/rardecode/v2](https://github.com/nwaples/rardecode ) and [github.com/ulikunitz/xz](https://github.com/ulikunitz/xz ).
Updates `github.com/klauspost/compress` from 1.19.0 to 1.19.1
- [Release notes](https://github.com/klauspost/compress/releases )
- [Commits](https://github.com/klauspost/compress/compare/v1.19.0...v1.19.1 )
Updates `github.com/nwaples/rardecode/v2` from 2.2.5 to 2.3.0
- [Commits](https://github.com/nwaples/rardecode/compare/v2.2.5...v2.3.0 )
Updates `github.com/ulikunitz/xz` from 0.5.15 to 0.5.16
- [Commits](https://github.com/ulikunitz/xz/compare/v0.5.15...v0.5.16 )
---
updated-dependencies:
- dependency-name: github.com/klauspost/compress
dependency-version: 1.19.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all-go-deps
- dependency-name: github.com/nwaples/rardecode/v2
dependency-version: 2.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all-go-deps
- dependency-name: github.com/ulikunitz/xz
dependency-version: 0.5.16
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all-go-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-03 03:43:01 +00:00
Kovid Goyal
5de75dfd02
Cleanup previous PR
2026-08-03 08:55:12 +05:30
Kovid Goyal
7c4edc89ad
Merge branch 'remember-maximized-state' of https://github.com/lsdhophora/kitty
2026-08-03 08:52:31 +05:30
lsdhophora
6ccbc33d35
Fix ruff E501: break long function signature
2026-08-03 08:45:35 +08:00
lsdhophora
3b04aaaece
Remember maximized window state across restarts
2026-08-03 07:50:26 +08:00
Francis Lavoie
86c5e13816
Wayland: do not ignore the scroll wheel after reversing direction
...
A high resolution wheel delivers one physical detent as several VALUE120
events, so pending_scroll_pixels accumulates fractions of a line and carries
the remainder to the next event. Detents do not reliably total 120 units, so
that carry is load bearing: it is what lets an undersized detent still scroll
a line.
It breaks down when the scroll direction changes, because the residual then
has the wrong sign and the first detent of the new direction is spent
cancelling it rather than scrolling. Measured on a Logitech MX Master 3 under
GNOME/Wayland, against a terminal program that had requested mouse events,
47% of detents that reversed direction scrolled nothing, against 2% of
detents continuing in the same direction.
Discard the residual when the direction changes, and leave the carry alone
otherwise, so scrolling in a single direction is unaffected.
The accumulator state also moves from Screen to OSWindow, since scroll events
are delivered to an OS Window rather than to a particular terminal window.
2026-08-02 15:47:31 -04:00
Kovid Goyal
f293199d30
Update changelog
CI / Linux (python=3.14 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.12 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.13 cc=gcc sanitize=1) (push) Waiting to run
CI / Linux package (push) Waiting to run
CI / Bundle test (macos-latest) (push) Waiting to run
CI / Bundle test (ubuntu-latest) (push) Waiting to run
CI / macOS Brew (push) Waiting to run
CI / Test ./dev.sh and benchmark (push) Waiting to run
CodeQL / CodeQL-Build (actions, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, macos-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (go, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (python, ubuntu-latest) (push) Waiting to run
Depscan / Scan dependencies for vulnerabilities (push) Waiting to run
2026-08-02 22:01:41 +05:30
Kovid Goyal
2e215d3114
also handle CR in tab title when drawing drag tab bar
2026-08-02 21:59:26 +05:30
Kovid Goyal
75bd9d7979
Improve fade style for vertical tab bar
2026-08-02 21:54:56 +05:30
Kovid Goyal
70bdd4e96e
Fix quadratic algorithms in previous PR
2026-08-02 21:14:03 +05:30
Kovid Goyal
fe81090243
Merge branch 'vertical-tabs-multiline-titles' of https://github.com/chancez/kitty
2026-08-02 20:59:13 +05:30
Chance Zibolski
e7d8d17755
Vertical tabs: test wrapping combined with the line limit
...
Wrapping and tab_title_max_lines already compose, since wrapping runs before the
line limit is applied. Cover the combinations that were only checked by hand:
explicit newlines wrapped independently of each other, a wrap width wider than
the tab bar being clamped to it, and wrapped tabs packing by the lines they use
until the overflow ellipsis takes over.
2026-08-01 09:18:15 -07:00
Chance Zibolski
51ebfe4912
Vertical tabs: add tab_title_wrap to wrap long titles
...
A tab title too wide for the sidebar could only be truncated, which is wasteful
now that a title may use several lines. Add tab_title_wrap, accepting no (the
default, truncate as before), yes to wrap at the width of the tab bar, or a
number to wrap at that many cells.
Wrapping happens on grapheme boundaries so a line break can never land inside a
multi-codepoint grapheme, and SGR escapes are treated as zero width so colors
from tab_title_template neither consume cells nor get split in half. Wrapping is
bounded by tab_title_max_lines, and when a title needs more lines than it is
allowed the last line it gets is truncated with an ellipsis, which also makes
dropped lines visible for titles containing explicit newlines.
Only vertical tab bars are affected, since wrapping requires more than one row.
2026-08-01 09:18:15 -07:00
Chance Zibolski
4ccb98058b
Vertical tabs: fill the tab background for the full width of the tab bar
...
Each line of a vertical tab was only painted as far as its text reached, so the
tab background ended mid row and the sidebar showed a ragged right edge. This
was already the case for single line titles, but multi-line titles make it
obvious, since the lines of one title rarely have the same length.
Paint the tab's full width before drawing the title over it, so every line a tab
occupies is filled in that tab's colors.
2026-08-01 09:18:15 -07:00
Chance Zibolski
26032a4802
Vertical tabs: support multi-line tab titles
...
Newlines in tab_title_template were drawn as a linefeed without a carriage
return, so each line started where the previous one ended, staircasing to the
right. Titles also collided with the tab below them after two lines, because
update_vertical assumed a fixed two line stride per tab.
Set LNM on the tab bar screen so a newline returns to the start of the next
line, measure how many lines each title actually occupies, and pack tabs at
cumulative offsets.
The blank line between tabs is preserved: one is inserted between tabs while
there is room, and dropped automatically once the tabs need the space, as
before. Previously this fell out of every tab reserving two lines, which is no
longer true now that a tab occupies only as many lines as its title needs.
The number of lines a title may use is limited by the new tab_title_max_lines
option, defaulting to 1 so existing configurations render as before. Lines
beyond the limit are dropped rather than bleeding into the next tab, and a title
is never allowed to use more lines than remain below it, since drawing past the
last line would scroll the tab bar and lose the tabs already drawn.
Only vertical tab bars are affected; horizontal tab bars share a single row.
2026-08-01 09:17:55 -07:00
Kovid Goyal
999cde66db
Ignore inapplicable CVEs
CI / Linux (python=3.14 cc=clang sanitize=1) (push) Has been cancelled
CI / Linux (python=3.12 cc=gcc sanitize=0) (push) Has been cancelled
CI / Linux (python=3.13 cc=gcc sanitize=1) (push) Has been cancelled
CI / Linux package (push) Has been cancelled
CI / Bundle test (macos-latest) (push) Has been cancelled
CI / Bundle test (ubuntu-latest) (push) Has been cancelled
CI / macOS Brew (push) Has been cancelled
CI / Test ./dev.sh and benchmark (push) Has been cancelled
CodeQL / CodeQL-Build (actions, ubuntu-latest) (push) Has been cancelled
CodeQL / CodeQL-Build (c, macos-latest) (push) Has been cancelled
CodeQL / CodeQL-Build (c, ubuntu-latest) (push) Has been cancelled
CodeQL / CodeQL-Build (go, ubuntu-latest) (push) Has been cancelled
CodeQL / CodeQL-Build (python, ubuntu-latest) (push) Has been cancelled
Depscan / Scan dependencies for vulnerabilities (push) Has been cancelled
2026-07-30 21:07:26 +05:30
Kovid Goyal
2cb1d95c3a
version 0.48.2
CI / Linux (python=3.14 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.12 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.13 cc=gcc sanitize=1) (push) Waiting to run
CI / Linux package (push) Waiting to run
CI / Bundle test (macos-latest) (push) Waiting to run
CI / Bundle test (ubuntu-latest) (push) Waiting to run
CI / macOS Brew (push) Waiting to run
CI / Test ./dev.sh and benchmark (push) Waiting to run
CodeQL / CodeQL-Build (actions, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, macos-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (go, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (python, ubuntu-latest) (push) Waiting to run
Depscan / Scan dependencies for vulnerabilities (push) Waiting to run
2026-07-30 17:04:27 +05:30
Kovid Goyal
35a6e8b961
...
CI / Linux (python=3.14 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.12 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.13 cc=gcc sanitize=1) (push) Waiting to run
CI / Linux package (push) Waiting to run
CI / Bundle test (macos-latest) (push) Waiting to run
CI / Bundle test (ubuntu-latest) (push) Waiting to run
CI / macOS Brew (push) Waiting to run
CI / Test ./dev.sh and benchmark (push) Waiting to run
CodeQL / CodeQL-Build (actions, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, macos-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (go, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (python, ubuntu-latest) (push) Waiting to run
Depscan / Scan dependencies for vulnerabilities (push) Waiting to run
2026-07-30 08:45:35 +05:30
Kovid Goyal
a0308451bb
Merge branch 'desktui-graphics-protocol' of https://github.com/mishushakov/kitty
CI / Linux (python=3.14 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.12 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.13 cc=gcc sanitize=1) (push) Waiting to run
CI / Linux package (push) Waiting to run
CI / Bundle test (macos-latest) (push) Waiting to run
CI / Bundle test (ubuntu-latest) (push) Waiting to run
CI / macOS Brew (push) Waiting to run
CI / Test ./dev.sh and benchmark (push) Waiting to run
CodeQL / CodeQL-Build (actions, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, macos-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (go, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (python, ubuntu-latest) (push) Waiting to run
Depscan / Scan dependencies for vulnerabilities (push) Waiting to run
2026-07-29 17:11:51 +05:30
Kovid Goyal
d0be0d2182
...
CI / Linux (python=3.14 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.12 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.13 cc=gcc sanitize=1) (push) Waiting to run
CI / Linux package (push) Waiting to run
CI / Bundle test (macos-latest) (push) Waiting to run
CI / Bundle test (ubuntu-latest) (push) Waiting to run
CI / macOS Brew (push) Waiting to run
CI / Test ./dev.sh and benchmark (push) Waiting to run
CodeQL / CodeQL-Build (actions, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, macos-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (go, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (python, ubuntu-latest) (push) Waiting to run
Depscan / Scan dependencies for vulnerabilities (push) Waiting to run
2026-07-29 13:41:10 +05:30
Kovid Goyal
9524c76fab
tab_title_template: Add a field that evaluated to the total memory used by all child processes in the tab
...
Fixes #10293
2026-07-29 13:36:24 +05:30
Kovid Goyal
503e1d1b5c
autoformat
2026-07-29 13:26:11 +05:30