Commit graph

19049 commits

Author SHA1 Message Date
Kovid Goyal
80b4e90933
Merge branch 'macos-fullscreen-tiling' of https://github.com/agmitron/kitty 2026-08-18 07:39:05 +05:30
Aleksei Gmitron
241ee9c4d1 macos: allow OS windows to participate in Split View tiling 2026-08-17 22:17:15 +04:00
Kovid Goyal
e7ccaa429d
Merge branch 'dependabot/github_actions/actions-24edcfd16d' of https://github.com/kovidgoyal/kitty 2026-08-17 09:23:00 +05:30
Kovid Goyal
fc1e06ca66
Merge branch 'dependabot/go_modules/all-go-deps-6f41e48654' of https://github.com/kovidgoyal/kitty 2026-08-17 09:22:40 +05:30
dependabot[bot]
3bd66222f5
Bump github/codeql-action from 4.37.5 to 4.37.6 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.5 to 4.37.6
- [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.5...v4.37.6)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.37.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-17 03:45:03 +00:00
dependabot[bot]
53b39c786e
Bump the all-go-deps group with 2 updates
Bumps the all-go-deps group with 2 updates: [github.com/klauspost/compress](https://github.com/klauspost/compress) and [github.com/seancfoley/ipaddress-go](https://github.com/seancfoley/ipaddress-go).


Updates `github.com/klauspost/compress` from 1.19.1 to 1.19.2
- [Release notes](https://github.com/klauspost/compress/releases)
- [Commits](https://github.com/klauspost/compress/compare/v1.19.1...v1.19.2)

Updates `github.com/seancfoley/ipaddress-go` from 1.7.1 to 1.8.1
- [Release notes](https://github.com/seancfoley/ipaddress-go/releases)
- [Commits](https://github.com/seancfoley/ipaddress-go/compare/v1.7.1...v1.8.1)

---
updated-dependencies:
- dependency-name: github.com/klauspost/compress
  dependency-version: 1.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-deps
- dependency-name: github.com/seancfoley/ipaddress-go
  dependency-version: 1.8.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-17 03:43:04 +00:00
Kovid Goyal
46379d4e0e
Another 10% speedup for printable ascii throughput 2026-08-17 07:14:40 +05:30
Kovid Goyal
82ae858a03
Speed up CSI escape code parsing by ~30% 2026-08-16 22:08:28 +05:30
Kovid Goyal
07ea7583ac
Improve performance of SIMD UTF-8 decoding
Optimise the AVX 2 implementation reducing number of operations per block
and also add an AVX-512 implementation used when the CPU supports it at
runtime.
2026-08-16 20:25:03 +05:30
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
Kovid Goyal
69025901b3
Dont hardcode /tmp 2026-08-16 17:01:27 +05:30
Kovid Goyal
cb32a9b950
Improve throughput for scrollback buffer by ~30% 2026-08-16 16:58:15 +05:30
Kovid Goyal
9ba59a16c1
More benchmark script improvements 2026-08-16 11:59:42 +05:30
Kovid Goyal
f5ae245f65
Switch to perf for profiling from gperftools 2026-08-16 11:24:41 +05:30
Kovid Goyal
a432ef3774
Allow controlling exactly what is benachmarked by benchmark.py 2026-08-16 10:41:30 +05:30
Kovid Goyal
ee156905c7
When expanding a window in alternate screen mode use the most common background color as the color for the newly created lines leading to less visual flicker until the application can redraw itself
Fixes #10365
2026-08-16 07:46:29 +05:30
Kovid Goyal
e2252170cc
Merge branch 'fix-x11-scroll-crossing-storm' of https://github.com/liguangsheng/kitty 2026-08-16 06:11:35 +05:30
Kovid Goyal
cc15b85c4d
Bump version of go/image 2026-08-15 14:08:26 +05:30
Kovid Goyal
82600d7e6f
Merge branch 'fix-wayland-null-output-crash' of https://github.com/browntech/kitty 2026-08-15 10:05:52 +05:30
Wes Brown
2dbe5df2d8 Wayland: fix crash when an output global is removed
surfaceHandleEnter() and surfaceHandleLeave() passed the event's output
argument straight to wl_output_get_user_data(). Wayland delivers object
arguments as NULL when the object was destroyed client-side before the
event was dispatched, even for arguments declared non-nullable, so this
segfaults whenever a wl_output global goes away while a window is open.
Easily reproduced with a hardware KVM or a monitor input switch.

Also fixes two pre-existing problems in surfaceHandleLeave():

- The removal loop stopped at monitorsCount - 1, so it never compared the
  last entry, and the trailing unconditional
  window->wl.monitors[--window->wl.monitorsCount] = NULL
  dropped the last monitor whether or not it was the one that was left.
  A leave for a monitor not in the list therefore evicted an unrelated
  one.
- That same statement ran even when monitorsCount was 0, writing to
  monitors[-1] and leaving the count negative.

Both are replaced with the remove_i_from_array() loop already used for
this array in registryHandleGlobalRemove().

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 19:01:11 -05:00
liguangsheng
153c93633f X11: fix scroll wheel being ignored when spurious crossing events occur
resetScrollValuators() runs on every LeaveNotify, clearing the initialized
flag of every scroll valuator. handle_xi_motion_event() then treats the next
XI_Motion event as a baseline sample and discards it.

On setups where the X server emits crossing events with mode NotifyGrab
faster than the wheel is turned, every scroll event lands in that branch and
is swallowed, so scrolling does not work at all. This is easy to hit inside a
VMware guest, where the same physical mouse is exposed as several pointer
devices: --debug-input shows a continuous leave/enter cycle and a single
Scroll event for the whole session.

Fix this in two places:

- Do not reset the baseline for crossing events generated by a grab being
  activated/released or by the pointer moving to a child window, since the
  pointer did not actually leave.

- Keep the baseline value across a reset so the next event can still compute
  a delta from it, and only discard the event when the jump is too large to
  be a genuine scroll.

Fixes #9846
2026-08-14 19:04:54 +08:00
Kovid Goyal
b71ef95ec7
Fix northern lights rendering on OS Window resize 2026-08-14 16:07:07 +05:30
Kovid Goyal
1b0c1d0a0c
Merge branch 'fix/builtin-kitten-guide' of https://github.com/M-Hassan-Raza/kitty 2026-08-14 15:48:15 +05:30
Hassan Raza
b172b487fd
Fix builtin kitten development guide 2026-08-14 12:25:02 +05:00
Kovid Goyal
d9610f5e1e
Bump version of Go 2026-08-14 08:10:55 +05:30
Kovid Goyal
f29665f601
Merge branch 'fix/bash-ssh-hostname-detection' of https://github.com/M-Hassan-Raza/kitty 2026-08-14 07:58:18 +05:30
Kovid Goyal
d65382d1a6
Merge branch 'fix-remap-keymap-reload' of https://github.com/bjohas/kitty 2026-08-14 07:56:19 +05:30
bjohas
bd0a39f495 Re-apply remap_modifiers to a reloaded xkb keymap state
On X11 glfw_xkb_compile_keymap() gets its state from
xkb_x11_state_new_from_device(), which seeds it with the server's physical
modifier mask. Every other path into that state goes through
glfw_xkb_update_modifiers(), where the permutation is applied, so after a
keymap reload the state held physical modifiers until the next XkbStateNotify
happened to arrive. Any key pressed in that window was encoded with the
modifier on the keycap: with ctrl held across a reload under
`remap_modifiers ctrl:super`, Ctrl+A reached the child as a literal 0x01.

Keymap reloads are routine - switching layout causes one, and so does any
client asking X for a keysym it must bind to a spare keycode.

Re-apply the permutation to the freshly loaded state, after
glfw_xkb_update_masks() has computed the modifier indices it is expressed in.
On Wayland the new state is empty, so this is a no-op there.
2026-08-13 10:20:20 +01:00
Hassan Raza
2a67ebf7e2
Wrap get-text protocol schema 2026-08-13 13:14:04 +05:00
Kovid Goyal
5be74884c8
... 2026-08-13 09:01:38 +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
Kovid Goyal
3362c47fb2
Merge branch 'fix/get-text-protocol-extent' of https://github.com/M-Hassan-Raza/kitty 2026-08-13 08:11:38 +05:30
Hassan Raza
ec2724ab5f
Document last non-empty get-text extent 2026-08-13 07:30:08 +05:00
Kovid Goyal
e94fc0f6e7
Merge branch 'fix/bash-command-hook' of https://github.com/M-Hassan-Raza/kitty 2026-08-13 01:41:12 +05:30
Kovid Goyal
b99ee09d13
Bump version of python for CVEs 2026-08-12 20:50:07 +05:30
Hassan Raza
9bbb900e6a
Skip disabled Bash command hook 2026-08-12 20:02:47 +05:00
Kovid Goyal
cea9aeb803
Wayland: Fix clipboard sharing between kitty instances in containers with isolated PID namespaces
Dont rely on PID alone for the self transfer sentinel.

Fixes #10352
2026-08-12 20:28:49 +05:30
Kovid Goyal
0c932d0b35
Merge branch 'fix/session-file-completion' of https://github.com/M-Hassan-Raza/kitty 2026-08-12 20:12:38 +05:30
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
896fc0c36a
Improve benchmark script
It now benchmarks the I/O thread as well for results much closer to what
you get when running in real kitty
2026-08-12 15:37: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
Kovid Goyal
cc51e89f22
Make ty happy 2026-08-12 15:07:11 +05:30