Kovid Goyal
090f90dc4a
Report errors compiling custom shaders in the UI
2026-09-22 15:37:35 +05:30
Kovid Goyal
a908167e98
Fix the IPC lock used by custom shader compilation
2026-09-22 15:21:40 +05:30
Kovid Goyal
5fcb618070
Merge branch 'fix/adjacent-split-drag' of https://github.com/xiaobai050/kitty
2026-09-22 15:14:14 +05:30
白鸽
2faf4b051c
Splits: Resize adjacent regions consistently when dragging dividers
2026-09-22 17:09:21 +08:00
Kovid Goyal
7894d6bc03
Merge branch 'fix/window-title-shader-bounds' of https://github.com/xiaobai050/kitty
2026-09-22 14:30:17 +05:30
白鸽
629fec3750
Handle empty iterables before testing their truthiness
2026-09-22 16:30:29 +08:00
白鸽
1c40a44f0c
Custom shaders: Include window title bars in active padding bounds
2026-09-22 16:15:18 +08:00
Kovid Goyal
31c16b37b3
Merge branch 'fix-shlex-drops-escaped-replacement-char' of https://github.com/devangpratap/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-09-21 22:20:23 +05:30
devangpratap
c7226d702e
Do not drop an escaped U+FFFD in the shlex lexer
...
write_escaped_ch compares the decoded rune against utf8.RuneError to
detect invalid UTF-8, but a literal U+FFFD decodes to that same rune, so
an escaped replacement character was silently deleted. The size returned
by DecodeRuneInString already tells the two apart: invalid bytes decode
with a size of one, a real U+FFFD with a size of three. Keep the rune
when the size is greater than one.
2026-09-21 12:05:20 -04:00
Kovid Goyal
d4d6db3cfd
Merge branch 'fix-avx512-32bit-x86-pr' of https://github.com/Blarse/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-09-21 14:15:36 +05:30
Egor Ignatov
ead3ff5ea4
Fix crash on 32-bit x86 CPUs that support AVX-512
...
The AVX-512 implementations in simd-string-512.c are built only for
x86-64, on other platforms they are stubs that call fatal(). However,
init_simd() enables them whenever the CPU reports AVX-512 support, which
it also does when running a 32-bit x86 build. That build then exits as
soon as it decodes any UTF-8 or draws any text.
Never select the AVX-512 implementations on platforms for which they are
not built, whether detected at runtime or requested via KITTY_SIMD=512.
2026-09-21 13:07:56 +05:00
Kovid Goyal
42ec0f62ca
Merge branch 'dependabot/github_actions/actions-dbb2744aad' of https://github.com/kovidgoyal/kitty
2026-09-21 09:39:49 +05:30
Kovid Goyal
4ab91d18ee
Merge branch 'dependabot/go_modules/all-go-deps-55a8ce8540' of https://github.com/kovidgoyal/kitty
2026-09-21 09:39:22 +05:30
dependabot[bot]
1afc6e1bfb
Bump github/codeql-action from 4.37.9 to 4.38.0 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.9 to 4.38.0
- [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.9...v4.38.0 )
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 4.38.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-09-21 03:47:02 +00:00
dependabot[bot]
740b1f21b4
Bump github.com/seancfoley/ipaddress-go in the all-go-deps group
...
Bumps the all-go-deps group with 1 update: [github.com/seancfoley/ipaddress-go](https://github.com/seancfoley/ipaddress-go ).
Updates `github.com/seancfoley/ipaddress-go` from 1.8.3 to 1.8.4
- [Release notes](https://github.com/seancfoley/ipaddress-go/releases )
- [Commits](https://github.com/seancfoley/ipaddress-go/compare/v1.8.3...v1.8.4 )
---
updated-dependencies:
- dependency-name: github.com/seancfoley/ipaddress-go
dependency-version: 1.8.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all-go-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-09-21 03:42:54 +00:00
Kovid Goyal
07ed6aa3de
version 0.49.0
2026-09-21 08:57:08 +05:30
Kovid Goyal
719c61a12b
...
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-09-19 16:10:23 +05:30
Kovid Goyal
2795eac486
add test for IME around cursor
2026-09-19 15:51:09 +05:30
Kovid Goyal
a1d2e5942b
autoformat
2026-09-19 15:23:24 +05:30
Kovid Goyal
41b7959675
Fix #10492
2026-09-19 15:21:29 +05:30
Kovid Goyal
ff7681336f
...
2026-09-19 12:10:40 +05:30
Kovid Goyal
fd65a44c1e
Fix #10496
2026-09-19 11:55:08 +05:30
Kovid Goyal
8a101a6d91
Cleanup previous PR
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-09-19 06:49:53 +05:30
Kovid Goyal
ad2659bd18
Merge branch 'fix-disk-full-startup-crash' of https://github.com/JESwartz/kitty
2026-09-19 06:44:15 +05:30
James Swartz
3a5c815720
Show a startup warning when the effective config can't be saved
2026-09-18 14:17:41 -04:00
James Swartz
70d8a536f1
Fix Kitty crashing on startup when disk is full
2026-09-18 14:14:25 -04:00
Kovid Goyal
729309f611
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-09-18 23:00:16 +05:30
Kovid Goyal
1fb52b8443
Cleanup previous PR and make VS15 on explicit width cell behavior consistent with VS16
2026-09-18 22:59:19 +05:30
Kovid Goyal
c444b942ef
Merge branch 'thai-sara-am' of https://github.com/noomz/kitty
2026-09-18 20:54:46 +05:30
Kovid Goyal
c85bcda29c
Linux only allow single instance socket use by same user
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-09-18 14:54:49 +05:30
Kovid Goyal
dcedd186de
edit-in-kitty: Harden parsing of edit commands received from clients
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-09-17 19:56:56 +05:30
Kovid Goyal
5db43982c8
Fix #10491
2026-09-17 17:03:58 +05:30
Kovid Goyal
701f40b5c8
fix #10490
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-09-17 14:22:59 +05:30
Kovid Goyal
295d266ad6
Fix #10489
2026-09-17 09:11:47 +05:30
Kovid Goyal
b079feaf43
Merge branch 'fix-executable-completion-dir-symlinks' of https://github.com/devangpratap/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-09-17 06:35:01 +05:30
devangpratap
62a4b451d4
Do not offer symlinks to directories as executables in completion
...
CompleteExecutablesInPath excluded directories with e.IsDir(), but that is false
for a symlink pointing at a directory. Directories are executable in the
access(2) sense, so such a symlink sitting in a PATH entry passed the X_OK check
and was offered as a command. Use the existing is_dir_or_symlink_to_dir helper,
which already makes this distinction elsewhere in the file.
2026-09-16 20:17:32 -04:00
Kovid Goyal
1d67ecd47c
Merge branch 'fix-mimepat-guess-mime-type' of https://github.com/devangpratap/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-09-16 17:21:42 +05:30
devangpratap
579c735014
Use GuessMimeType for mime based completion
...
complete_by_mimepat called mime.TypeByExtension directly, so it saw only the
extensions the Go standard library knows about. Everything else in kitty that
needs a mime type goes through utils.GuessMimeType, which also consults the
user's mime.types, kitty's builtin types and KnownExtensions. As a result
files like foo.py or foo.toml were not offered when completing arguments that
ask for text/*, even though kitten pager opens them as text.
2026-09-16 05:43:17 -04:00
Kovid Goyal
e97b5bee12
Bump dep for CVE
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-09-16 13:13:38 +05:30
Kovid Goyal
d37f845293
cleanup previous PR fixing one regression and doing code cleanups
2026-09-16 12:57:51 +05:30
Kovid Goyal
5d58f2f4cc
cleanup docs for previous PR
2026-09-16 11:48:38 +05:30
Kovid Goyal
d20a0acb3a
Merge branch 'feature/inactive-shader-tint' of https://github.com/xiaobai050/kitty
2026-09-16 11:36:26 +05:30
Kovid Goyal
50eaaf5d15
Merge branch 'fix-case-insensitive-completion-matching' of https://github.com/devangpratap/kitty
2026-09-16 10:56:25 +05:30
Kovid Goyal
dac0357514
Update changelog
2026-09-16 10:55:04 +05:30
Kovid Goyal
65b02b21f4
Splits: Fix issues with proportional sizing
...
Fixes found while reviewing #10471 :
- A window squeezed to zero size (by maximize or an extreme bias) was
indistinguishable from a removed one, so closing an unrelated window
handed its share to windows in sub-trees that lost nothing. Track
survivors separately from the numeric weight.
- Pruning a batch of windows gave a different layout than closing them
one by one, since a perpendicular sub-tree stops being perpendicular
once removals collapse it. Apply the policy one window at a time.
- Windows reconciled by do_layout(), rather than split off an existing
window, bypassed the policy entirely. Route them through it too.
Also fix two pre-existing bugs on the same code paths:
- collapse_redundant_pairs() collapsed top down, so a pair whose
children only became empty during the recursion was never
re-examined and was left in the tree, consuming its share of the
space.
- do_layout() kept using a stale pairs root when removing windows
collapsed the tree, so windows added in the same relayout were
attached to the discarded root and vanished for a frame.
2026-09-16 10:47:59 +05:30
devangpratap
ebb41b83da
Fix completion of directories containing files with uppercase extensions
...
Completion patterns are lowercased in make_completer and file names are
lowercased before being matched against them, but the names of files inside
a directory were passed to the matcher unchanged. A directory whose only
matching file was named something like B.CONF was therefore never offered as
a completion candidate for a *.conf pattern, while the same file named
b.conf worked.
2026-09-16 00:43:53 -04:00
Kovid Goyal
791614ce93
Merge branch 'splits-proportional' of https://github.com/xiaobai050/kitty
...
# Conflicts:
# kitty_tests/layout.py
2026-09-16 09:23:31 +05:30
Siriwat Uamganmsup
0b29c33e89
Widen the cell for Thai/Lao vowel sign AM (U+0E33, U+0EB3)
...
These two code points have Grapheme_Cluster_Break=SpacingMark but a
width of one, the only such code points in Unicode. Grapheme
segmentation (GB9a) adds them to the previous cell, so "จำ" occupied a
single cell in kitty while wcwidth() based programs count two. As a
result the SARA AA glyph was clipped, only the nikhahit was visible and
the cursor drifted right by one cell per AM.
Now, when such a code point combines into a plain one cell wide cell,
the cell is widened to two cells, using the same mechanism as U+FE0F
does for narrow emoji. The C and Go wcswidth() implementations are
updated to match so that kitty's own width calculations agree with the
screen.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 10:43:49 +07:00
Kovid Goyal
1f20d43198
Update changelog
2026-09-16 08:44:59 +05:30
Kovid Goyal
a11839a2c7
Merge branch 'fix/nested-split-border-resize' of https://github.com/xiaobai050/kitty
2026-09-16 08:42:29 +05:30