18367 Commits

Author SHA1 Message Date
Kovid Goyal 4c3b96ca40 Update changelog 2026-06-10 19:02:54 +05:30
Kovid Goyal 8f2ad60f96 Merge branch 'fix/choose-fonts-color-race' of https://github.com/noctilust/kitty 2026-06-10 19:02:09 +05:30
Forrest 83677a2235 fix(choose-fonts): guard preview rendering against partial terminal color query
The choose-fonts kitten queries the terminal for the user's foreground and
background colors at startup by sending a DCS request. The terminal responds
with separate DCS response strings — one per field — which arrive
asynchronously through on_query_response.

The background handler unconditionally called draw_screen() after storing its
value. If the terminal's DCS response for "background" arrived before the
response for "foreground", draw_screen() fired with text_style.Foreground
still at its Go zero value ("").

The font list preview (list.go) only guarded against empty Background, not
empty Foreground, so it passed the check and sent a render_family_samples
command to the Python backend with foreground="". The backend's to_color('')
raised ValueError: Invalid color name: '', crashing the kitten.

The faces pane (faces.go) launched a render_family_samples goroutine
unconditionally when its preview cache was empty, with no guard at all.

Fix
---
1. ui.go — Only trigger draw_screen() from the foreground or background
   handler when the counterpart field is already populated, so the UI
   never renders with a partial TextStyle.

2. list.go — Require both Foreground and Background to be non-empty
   before rendering the font preview, not just Background alone.

3. faces.go — Skip the render_family_samples goroutine if either color
   field is still empty. The preview cache stays empty, so the next
   redraw (triggered when the counterpart query response arrives, or
   by on_wakeup) retries with full colors.
2026-06-10 02:18:18 -07:00
Kovid Goyal 901b6bd1ed Add kmv to integrations 2026-06-10 12:54:45 +05:30
Kovid Goyal 9b4c0281a2 Update changelog 2026-06-10 09:33:45 +05:30
Kovid Goyal dbf52d4870 Mark matrix as not required in the fontconfig typeddict as the C code adds it only when the pattern contains a matrix 2026-06-10 08:32:14 +05:30
Kovid Goyal 949a1e1fb1 Merge branch 'fix/focus-follows-mouse-desktop-switch-v2' of https://github.com/lxcode/kitty 2026-06-10 08:05:57 +05:30
Kovid Goyal 11c2ccf00f Add tests for splits layout serialization 2026-06-10 07:41:02 +05:30
Kovid Goyal 238573e799 Fix splits layout options serialization
Fixes #10124
2026-06-10 07:34:47 +05:30
Kovid Goyal c126e227d3 Bump dep version nightly 2026-06-09 06:23:34 +05:30
Kovid Goyal 424fe9991b Sanitise color control responses for shells that still dont use the kitty keyboard protocol 2026-06-09 06:21:15 +05:30
David Thiel 1cc1a445e3 Fix focus_follows_mouse switching active window on desktop/space return
When focus_follows_mouse is enabled, returning to a desktop/space fired an
enter event that switched the active window to whichever one was under the
cursor, even though the mouse had not crossed a window boundary.

Distinguish genuine mouse motion into a window from a window reappearing
under a stationary cursor by checking, in cursor_enter_callback, whether the
cursor position actually changed. focus_follows_mouse now switches focus only
when the cursor moved, so motion into a window still switches focus while a
stationary reappearance does not.
2026-06-08 14:46:40 +01:00
Kovid Goyal 79a768ed55 Merge branch 'followup-b-cairo-matrix' of https://github.com/Strykar/kitty 2026-06-08 12:26:06 +05:30
Kovid Goyal 55425e2e75 Show secure input indicator on active tab 2026-06-08 11:22:54 +05:30
Kovid Goyal 4ca6a20c7d Merge branch 'dependabot/github_actions/actions-e6ee9d7de3' of https://github.com/kovidgoyal/kitty 2026-06-08 09:41:39 +05:30
Kovid Goyal 07ccc19533 Merge branch 'dependabot/go_modules/all-go-deps-44a001e8d2' of https://github.com/kovidgoyal/kitty 2026-06-08 09:41:18 +05:30
dependabot[bot] d9334a6149 Bump actions/checkout from 6 to 6.0.2 in the actions group
Bumps the actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 6 to 6.0.2
- [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...v6.0.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-08 03:44:39 +00:00
dependabot[bot] 60c31ba2ab Bump the all-go-deps group with 2 updates
Bumps the all-go-deps group with 2 updates: [github.com/alecthomas/chroma/v2](https://github.com/alecthomas/chroma) and [github.com/shirou/gopsutil/v4](https://github.com/shirou/gopsutil).


Updates `github.com/alecthomas/chroma/v2` from 2.24.1 to 2.26.1
- [Release notes](https://github.com/alecthomas/chroma/releases)
- [Commits](https://github.com/alecthomas/chroma/compare/v2.24.1...v2.26.1)

Updates `github.com/shirou/gopsutil/v4` from 4.26.4 to 4.26.5
- [Release notes](https://github.com/shirou/gopsutil/releases)
- [Commits](https://github.com/shirou/gopsutil/compare/v4.26.4...v4.26.5)

---
updated-dependencies:
- dependency-name: github.com/alecthomas/chroma/v2
  dependency-version: 2.26.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-deps
- dependency-name: github.com/shirou/gopsutil/v4
  dependency-version: 4.26.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-08 03:42:55 +00:00
Kovid Goyal d20fe4d4b5 version 0.47.2 v0.47.2 2026-06-07 09:37:24 +05:30
Kovid Goyal 314899b9aa Update changelog 2026-06-07 09:22:28 +05:30
Kovid Goyal 45bd3a0f14 Add a note about interaction of --reload-in and auto reload 2026-06-07 08:55:48 +05:30
Kovid Goyal 470a70db57 Remind user to not transfer files from machines they dont trust 2026-06-07 06:52:27 +05:30
Kovid Goyal 72c1ff6085 Ignore inapplicable CVE 2026-06-06 18:53:13 +05:30
Kovid Goyal 40ed8cfd3c fontconfig: ignore failure to return FC_INDEX assume its zero
Sigh. The number of creative ways Linux systems can be broken.
See #10112
2026-06-06 18:46:15 +05:30
Kovid Goyal 6839281277 Fix #10113 2026-06-06 18:36:29 +05:30
Kovid Goyal 2d9e243847 Ignore inappplicable CVE 2026-06-06 06:12:03 +05:30
Kovid Goyal 522555a5b6 ... 2026-06-05 06:31:08 +05:30
Kovid Goyal b2d70c899d Merge branch 'master' of https://github.com/Mobinshahidi/kitty 2026-06-04 21:12:59 +05:30
Mobin shahidi 3bd18be320 docs: add kitty-search to integrations 2026-06-04 18:56:41 +03:30
Kovid Goyal 8996aa798c dnd kitten: Create regular files with O_EXCL to avoid symlink attacks
This is not really needed as the terminal emulator should be de
duplicating directory entries anyway but no harm in defense in depth.
2026-06-03 12:17:38 +05:30
Kovid Goyal 4aa4a5c056 File transfer protocol: use O_NOFOLLOW when opening regular files 2026-06-03 06:18:31 +05:30
Kovid Goyal 9b89031a7f Bump Go toolchain version for CVEs 2026-06-03 05:58:36 +05:30
Kovid Goyal e6e5524f67 diff kitten: Strip suid/sgid bits from extracted files 2026-06-03 05:45:04 +05:30
Kovid Goyal cb0f05c4e4 Fix parsing of config set aborting on non-existent files 2026-06-02 21:19:04 +05:30
Kovid Goyal 54ecc67339 Update changelog
Fixes #10102
2026-06-02 21:08:28 +05:30
Kovid Goyal 3684838188 Merge branch 'copilot/modify-watch-for-config-changes' of https://github.com/kovidgoyal/kitty 2026-06-02 21:06:58 +05:30
copilot-swe-agent[bot] bff5af7052 address review: fix comment wording and rename burst_actions variable 2026-06-02 12:46:10 +00:00
copilot-swe-agent[bot] d80fd1c23d consolidate watch tests and add include-in-included-file test
- Merge TestWatchForConfigChangesIncludeAdded and
  TestWatchForConfigChangesIncludeRemoved into the main
  TestWatchForConfigChanges function, which now starts the watcher
  once and shares it across all integration subtests.
- Add prime_watcher helper that retries writes until an action fires,
  replacing the blind time.Sleep(200ms) watcher-startup wait.
- Add new subtest "include added to already-included file adds its
  parent dir": writes an include directive into sub/included.conf
  (itself included from kitty.conf), then verifies that changes to
  the newly referenced file trigger the action, confirming its parent
  directory was added to the watch set.
- Fix TestWatchForConfigChangesDebounce to use prime_watcher instead
  of time.Sleep for startup; capture before_burst baseline before the
  burst loop so the burst-action count is computed correctly.
2026-06-02 12:45:00 +00:00
copilot-swe-agent[bot] 7e96373515 watch: non-recursive config file watching with dynamic include tracking 2026-06-02 08:23:05 +00:00
Kovid Goyal 6c586934f4 ... 2026-06-02 13:31:14 +05:30
Kovid Goyal 4043e99b75 Merge branch 'copilot/show-secure-input-in-menubar' of https://github.com/kovidgoyal/kitty 2026-06-01 13:11:30 +05:30
Kovid Goyal 26d255b27d Merge branch 'dependabot/github_actions/actions-754f0868f5' of https://github.com/kovidgoyal/kitty 2026-06-01 13:04:24 +05:30
Kovid Goyal 905e1b77d1 Merge branch 'dependabot/go_modules/all-go-deps-c4d8eed042' of https://github.com/kovidgoyal/kitty 2026-06-01 13:01:52 +05:30
dependabot[bot] de8870da47 Bump github/codeql-action from 4.35.5 to 4.36.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.35.5 to 4.36.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.35.5...v4.36.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-01 06:48:15 +00:00
dependabot[bot] 73ac7b738f Bump the all-go-deps group with 3 updates
Bumps the all-go-deps group with 3 updates: [github.com/ebitengine/purego](https://github.com/ebitengine/purego), [github.com/sgtdi/fswatcher](https://github.com/sgtdi/fswatcher) and [golang.org/x/sys](https://github.com/golang/sys).


Updates `github.com/ebitengine/purego` from 0.10.0 to 0.10.1
- [Release notes](https://github.com/ebitengine/purego/releases)
- [Commits](https://github.com/ebitengine/purego/compare/v0.10.0...v0.10.1)

Updates `github.com/sgtdi/fswatcher` from 1.2.0 to 1.3.0
- [Release notes](https://github.com/sgtdi/fswatcher/releases)
- [Commits](https://github.com/sgtdi/fswatcher/compare/v1.2.0...v1.3.0)

Updates `golang.org/x/sys` from 0.44.0 to 0.45.0
- [Commits](https://github.com/golang/sys/compare/v0.44.0...v0.45.0)

---
updated-dependencies:
- dependency-name: github.com/ebitengine/purego
  dependency-version: 0.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-deps
- dependency-name: github.com/sgtdi/fswatcher
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-deps
- dependency-name: golang.org/x/sys
  dependency-version: 0.45.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-01 06:40:37 +00:00
Kovid Goyal 385d90c427 Fix matching of var/env against tabs
Fixes #10095
2026-06-01 11:49:45 +05:30
Kovid Goyal 9c7b3d778a Switch to match/case 2026-06-01 11:47:14 +05:30
copilot-swe-agent[bot] f388fdabdc Show [Secure input] indicator in macOS global menubar title area when secure keyboard entry is enabled 2026-06-01 00:57:43 +00:00
Kovid Goyal ce4defcff4 Merge branch 'wayland-titlebar-crash' of https://github.com/cwelsys/kitty 2026-05-31 11:03:13 +05:30
Connor Welsh fb4d05f7e8 Wayland: Fix crash hiding titlebar on layer-shell windows
inform_compositor_of_window_geometry() calls xdg_surface_set_window_geometry()
unconditionally, but layer-shell surfaces (e.g. those from `kitten panel`) have
no xdg_surface. With hide_window_decorations set to titlebar-only, the panel hits
this geometry call during creation and dereferences the NULL proxy, crashing in
wl_proxy_get_version() with SIGSEGV.

Guard on window->wl.xdg.surface: layer-shell surfaces manage geometry via the
layer surface, so the xdg call is skipped. Normal toplevels are unaffected.
2026-05-30 16:14:55 -04:00