b0a4ee8955
chore: add linux debian deps install
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Has been cancelled
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Has been cancelled
CI / Linux (python=3.12 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
2026-06-22 21:14:45 +02:00
f6090b709f
Merge branch 'main' into dev
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.12 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
2026-06-22 16:25:28 +02:00
Kovid Goyal
a6ccfa99f3
Merge branch 'dependabot/go_modules/all-go-deps-9ac4468181' of https://github.com/kovidgoyal/kitty
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.12 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
2026-06-22 09:20:31 +05:30
dependabot[bot]
53bb448353
Bump github.com/nwaples/rardecode/v2 in the all-go-deps group
...
Bumps the all-go-deps group with 1 update: [github.com/nwaples/rardecode/v2](https://github.com/nwaples/rardecode ).
Updates `github.com/nwaples/rardecode/v2` from 2.2.3 to 2.2.5
- [Commits](https://github.com/nwaples/rardecode/compare/v2.2.3...v2.2.5 )
---
updated-dependencies:
- dependency-name: github.com/nwaples/rardecode/v2
dependency-version: 2.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all-go-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-22 03:43:04 +00:00
aaa0ae793f
chore: add quick start command
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Has been cancelled
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Has been cancelled
CI / Linux (python=3.12 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
2026-06-21 11:54:36 +02:00
Kovid Goyal
d114388553
Cleanup previous PR
2026-06-21 13:23:58 +05:30
Kovid Goyal
54a7841d18
Merge branch 'bvolpato/vertical-tab-bar-side' of https://github.com/bvolpato/kitty
2026-06-21 13:18:10 +05:30
33f1fa77d9
feat: launch from correct directory
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.12 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
2026-06-20 13:37:34 +02:00
1920295902
feat: make launch executable
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.12 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
2026-06-20 13:13:32 +02:00
c63a52b794
chore: update CONTRIBUTING for commands & key files
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.12 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
2026-06-20 12:00:28 +02:00
aed4f629f0
feat: add launch script
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.12 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
2026-06-20 10:31:23 +02:00
944ab76b49
feat(installer): update debian deps installation script
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.12 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
2026-06-20 10:28:27 +02:00
d934a1ebf3
chore: add husky prepare script
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.12 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
2026-06-20 10:22:29 +02:00
7e8e5fcb12
chore: make readme markdown
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Has been cancelled
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Has been cancelled
CI / Linux (python=3.12 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-06-20 10:11:32 +02:00
f9071359f0
chore: add husky postcommit
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.12 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-06-20 09:44:58 +02:00
be6cdf1f8e
feat: add linux-install-deps script
2026-06-20 09:40:09 +02:00
Kovid Goyal
42d3cb2148
Merge branch 'copilot/review-image-usage-hints-functionality' of https://github.com/kovidgoyal/kitty
2026-06-19 12:36:08 +05:30
copilot-swe-agent[bot]
051a5b72e0
Preferentially evict transient images before non-transient ones under storage pressure
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Has been cancelled
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Has been cancelled
CI / Linux (python=3.12 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
2026-06-19 06:48:39 +00:00
Kovid Goyal
d994a47fc8
Cleanup previous PR
2026-06-19 11:36:43 +05:30
Kovid Goyal
a2104d3755
Merge branch 'feat/10090-graphics-cache-dir' of https://github.com/Mekann2904/kitty
2026-06-19 10:16:10 +05:30
Kovid Goyal
9dfe10b682
Update changelog
2026-06-19 10:13:58 +05:30
Kovid Goyal
6202fb7847
Merge branch 'copilot/fix-issue-10146' of https://github.com/kovidgoyal/kitty
...
Fixes #10146
2026-06-19 10:13:08 +05:30
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
copilot-swe-agent[bot]
946867bf57
Fix first Wayland window wrong cell count with fractional scale (issue 10146)
2026-06-19 02:43:17 +00:00
Kovid Goyal
ec2cc29de7
Dont expose method used only for testing to wider code
2026-06-19 07:28:52 +05:30
Kovid Goyal
38dae45e07
Bump python for CVE
2026-06-18 19:28:24 +05:30
Kovid Goyal
9112d779d0
Update changelog
2026-06-18 19:17:50 +05:30
Kovid Goyal
424d6f1ca4
Merge branch 'copilot/add-support-for-alternate-extents' of https://github.com/kovidgoyal/kitty
...
Fixes #10165
2026-06-18 19:16:43 +05:30
copilot-swe-agent[bot]
0901fcbc21
Fix description of alternate/alternate_scrollback extents
2026-06-18 11:12:56 +00:00
copilot-swe-agent[bot]
6b2bb97cb5
Add alternate and alternate_scrollback extents to get-text remote control command
2026-06-18 08:25:39 +00:00
Kovid Goyal
285c576ddd
Merge branch 'fix-wayland-start-drag-silently-ignored' of https://github.com/ttys3/kitty
2026-06-18 10:37:36 +05:30
Kovid Goyal
e4e1ef0641
...
2026-06-17 06:23:22 +05:30
Kovid Goyal
bdfcfc4fc2
Another stab at #10152
2026-06-16 05:43:25 +05:30
Kovid Goyal
1dc3730782
macOS: handle the OS calling insertText: with a nil string
...
Fixes #10152
2026-06-15 13:36:18 +05:30
Kovid Goyal
65e6a127ff
Merge branch 'dependabot/github_actions/actions-882fedbe01' of https://github.com/kovidgoyal/kitty
2026-06-15 09:20:28 +05:30
Kovid Goyal
3c648e42f6
Merge branch 'dependabot/go_modules/all-go-deps-d54a6f1562' of https://github.com/kovidgoyal/kitty
2026-06-15 09:20:08 +05:30
dependabot[bot]
9b218001a1
Bump the actions group with 2 updates
...
Bumps the actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout ) and [github/codeql-action](https://github.com/github/codeql-action ).
Updates `actions/checkout` from 6.0.2 to 6.0.3
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v6.0.2...v6.0.3 )
Updates `github/codeql-action` from 4.36.0 to 4.36.2
- [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.36.0...v4.36.2 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
- dependency-name: github/codeql-action
dependency-version: 4.36.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-15 03:45:12 +00:00
dependabot[bot]
b43ca8fe31
Bump golang.org/x/sys from 0.45.0 to 0.46.0 in the all-go-deps group
...
Bumps the all-go-deps group with 1 update: [golang.org/x/sys](https://github.com/golang/sys ).
Updates `golang.org/x/sys` from 0.45.0 to 0.46.0
- [Commits](https://github.com/golang/sys/compare/v0.45.0...v0.46.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/sys
dependency-version: 0.46.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all-go-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-15 03:42:57 +00:00
Kovid Goyal
a685af8c35
version 0.47.4
2026-06-15 08:11:46 +05:30
Kovid Goyal
ba6b652850
Merge branch 'color-emoji-test-robust' of https://github.com/Strykar/kitty
2026-06-14 21:06:44 +05:30
Strykar
fc23ef57ec
fonts: make the color emoji regression test environment-independent
...
The coverage threshold (0.5 in fbd4e5ad1 , lowered to 0.3 in d4106ef2d to
get CI green) is environment-dependent: a correctly sized emoji covers
~0.84 of its cell on one box but ~0.39 in CI, while the buggy render is
~0.28, so the margin is thin and font/cell dependent.
Render the same font two ways at one size instead: via its fontconfig
descriptor (which carries the size-fixup matrix) and via its file path
(which does not). They must come out the same size; the bug shrinks the
descriptor one. Only the matrix differs, so the check no longer depends
on the environment or the emoji artwork.
2026-06-14 21:00:12 +05:30
Kovid Goyal
d4106ef2db
Lower threshold for color emoji shrinkage test as at least in CI the font results in a smaller emoji
2026-06-14 20:48:59 +05:30
Kovid Goyal
9393e29793
Update changelog
2026-06-14 20:08:53 +05:30
Kovid Goyal
e4bce6485b
Merge branch 'fix-10144' of https://github.com/Strykar/kitty
2026-06-14 20:07:56 +05:30
Strykar
fbd4e5ad1f
freetype: do not apply the fontconfig size-fixup matrix to color glyphs
...
ee937bdd1b routed FC_MATRIX through the cairo font matrix so synthetic
slant reaches color glyphs. But FC_MATRIX is also how fontconfig encodes
the pixel-size fixup of fixed-size faces. Noto Color Emoji is a ~109px
bitmap strike and fontconfig hands consumers a matrix scaling it to the
requested size (factor = requested_px / strike_px). cairo_set_font_size()
already brings the strike to the requested size, so feeding that matrix
into cairo_set_font_matrix() in apply_cairo_font_size() scales it down
again by the fixup factor. At terminal cell sizes that is a large shrink,
up to ~9x for small cells (easing to 1x as the cell nears the strike), so
color emoji render as a dot; fit_cairo_glyph() only shrinks, so it never
grows them back.
Only the shear carries synthetic slant; the diagonal is the size, which
cairo_set_font_size() and fit_cairo_glyph() already handle. Apply only
the shear and fall through to cairo_set_font_size() when there is no
shear. Pure-slant matrices are unchanged. This carries only the shear to
color glyphs, so a non-uniform diagonal scale from a hand-built FC_MATRIX
is dropped on that path; the stock fixup is uniform, so dropping it is
the intended behaviour.
Add a regression test that renders a color emoji and checks it fills its
cells, skipped unless a fixed-size color font with a fontconfig fixup
matrix is present.
Fixes #10144
2026-06-14 15:14:04 +05:30
Kovid Goyal
48ee061454
Update changelog
2026-06-13 12:50:05 +05:30
Kovid Goyal
aa4e94cef5
Merge branch 'render-time-matrix' of https://github.com/Strykar/kitty
2026-06-13 12:49:05 +05:30
Kovid Goyal
8a39929c15
Bump sqlite for CVE
2026-06-12 19:54:22 +05:30
ttyS3
98366076e1
fix(wayland): detect start_drag silently ignored by the compositor
...
The pointer_button_count check added in dc36e2165 uses the client side
view of the implicit grab, which is stale when the button release is
still in flight: glfwStartDrag passes the check, but by the time the
compositor processes wl_data_device.start_drag the implicit grab is
gone and the request is silently dropped. The data source then never
receives any event, so the tab drag state leaks forever, hijacking
mouse handling again, and the already created xdg_toplevel_drag
toplevel gets mapped as a stray undecorated window showing the drag
thumbnail that nothing ever destroys.
Detect this deterministically using protocol ordering: issue a
wl_display.sync right after start_drag. An accepted start_drag
synchronously produces events (wl_pointer.leave from the DND grab
taking over, wl_data_device.enter, wl_data_source events) that are
ordered before the sync callback. If the callback fires with none of
them seen, the request was dropped: cancel the drag, which notifies
the application (clearing the tab drag state) and destroys the drag
toplevel and data source.
Also defer mapping the drag toplevel until the session is confirmed,
so the stray window can never appear, not even for one frame.
Verified against headless GNOME Shell 50.2 (mutter) with injected
pointer timing scans: the unpatched build deadlocks with an orphaned
drag toplevel within ~13 fast flicks, the patched build catches every
race hit and cancels cleanly, with no deadlock, no stray window, and
normal slow drag/reorder/detach behaviour preserved.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 14:16:22 +08:00
Kovid Goyal
b15e047a47
version 0.47.3
2026-06-12 09:57:55 +05:30