Commit Graph

18337 Commits

Author SHA1 Message Date
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
Kovid Goyal
6bd62a5242 Merge branch 'master' of https://github.com/codeasone/kitty 2026-05-30 07:35:10 +05:30
Kovid Goyal
4aa0cd6215 bump go image mod version for CVE 2026-05-30 05:17:19 +05:30
Mark Stuart
852fc4a662 Add equalize action and equalize_on_close option to Splits layout
Adds an `equalize` layout action that redistributes split sizes so each
window receives a proportional share of space along each axis.

Also adds an `equalize_on_close` layout option that automatically
equalizes splits whenever a window is closed, keeping the remaining
windows balanced without requiring an explicit key binding.

These two features compose well. For example, to keep splits balanced
at all times - equalizing on every open and close:

    enabled_layouts splits:equalize_on_close=true
    map ctrl+' combine : launch --location=hsplit --cwd=current : layout_action equalize
    map ctrl+/ combine : launch --location=vsplit --cwd=current : layout_action equalize

A standalone key binding for manual rebalancing is also supported:

    map ctrl+shift+e layout_action equalize
2026-05-29 20:02:42 +01:00
Kovid Goyal
2b7d8af55a Fix #10089 2026-05-29 14:55:14 +05:30
Kovid Goyal
9ffabc7caf ... 2026-05-29 14:52:30 +05:30
Kovid Goyal
52b44f4f1a Ensure we dont double copy 2026-05-29 07:52:38 +05:30
Kovid Goyal
d6b662e706 macOS: Fix regression in 0.47.0 that broke passing Cmd+C on to terminal applications when no text is selected
Fixes #10087
2026-05-29 07:47:29 +05:30
Kovid Goyal
74b80e9a29 Update changelog 2026-05-29 07:14:28 +05:30
Kovid Goyal
a6aa51e823 Merge branch 'master' of https://github.com/pakhromov/kitty 2026-05-29 07:13:17 +05:30
Pavel
0fedf69d87 scrollbar: start drag after track click when jump_on_click is enabled
When scrollbar_jump_on_click is on and the user clicks the track, immediately
jump to the clicked position and begin a drag so holding the button and
moving the mouse continues scrolling. Matches the behavior of Firefox and
GTK apps.
2026-05-28 21:19:10 +02:00
Kovid Goyal
fb5255b1ae version 0.47.1 v0.47.1 2026-05-28 09:51:42 +05:30
Kovid Goyal
51261c9fba ... 2026-05-28 09:13:16 +05:30
Kovid Goyal
99248ea629 Update changelog
Fixes #10082
2026-05-28 07:43:44 +05:30
Kovid Goyal
db8938fc9f Merge branch 'copilot/fix-10082' of https://github.com/kovidgoyal/kitty 2026-05-28 07:42:31 +05:30
copilot-swe-agent[bot]
0146b02aaf Fix #10082: Re-apply _NET_WM_STATE for X11 layer shell windows on each show
Some window managers (e.g. kwin_x11) clear _NET_WM_STATE when a window
is unmapped/withdrawn. This caused layer shell windows to lose states like
_NET_WM_STATE_ABOVE, _NET_WM_STATE_SKIP_TASKBAR, etc. when hidden and
re-shown via toggle. The result was inconsistent behaviour between the
first show and subsequent shows.

Fix by calling update_wm_hints() before XMapWindow in
_glfwPlatformShowWindow() for layer shell windows, which re-applies all
WM state properties (_NET_WM_STATE, window type, strut, size hints)
before each map operation.
2026-05-28 02:07:59 +00:00
Kovid Goyal
2c48b7409b List what software supports the DnD protocol 2026-05-28 07:27:24 +05:30
Kovid Goyal
3fc5bed364 Merge branch 'decst8c' of https://github.com/aymanbagabas/kitty 2026-05-27 08:38:45 +05:30
Kovid Goyal
c7622683c8 Cleanup previous PR 2026-05-27 08:31:41 +05:30
Kovid Goyal
1c69bc5c99 Merge branch 'tab-resize-reset' of https://github.com/aymanbagabas/kitty 2026-05-27 08:30:58 +05:30
Ayman Bagabas
c68a1654d3 feat(vt): add support for DECST8C escape sequence
Recognize CSI ? 5 W as DECST8C, which resets the active screen's tab
stops to the default of every 8 columns. Other CSI W variants continue
to produce a parse error.

Signed-off-by: Ayman Bagabas <aymanbagabas@gmail.com>
2026-05-26 21:12:27 -04:00
Ayman Bagabas
3138ae4aad fix(screen): preserve tab stops across window resizes
Previously, every window resize reinitialised the tab stops to the
default of every 8 columns, discarding any stops set via HTS or cleared
via TBC. ECMA-48 only treats RIS, DECSTR, and DECCOLM as events that
reset tab stops, and other terminal emulators all preserve user-set
stops across an interactive resize.

Copy the surviving prefix of the previous tab stops into the freshly
allocated array on both main and alt screens. Newly added columns when
growing the window keep the default every 8 columns pattern. Also point
the active tabstops pointer at the alt screen's array when a resize
happens while the alt screen is active, instead of unconditionally
resetting it to the main screen's array.

Signed-off-by: Ayman Bagabas <aymanbagabas@gmail.com>
2026-05-26 21:12:27 -04:00
Kovid Goyal
e257e5695f Fix focus change on drag with focus_follows_mouse not working 2026-05-27 05:31:25 +05:30
Kovid Goyal
173535736a Allow non UI/client drags from programs that disallow move on drag 2026-05-26 21:56:35 +05:30
Kovid Goyal
2096948cbc Wayland: Only use key repeat events from server is repeat rate == 0
Fixes #10070
2026-05-26 08:31:52 +05:30
Kovid Goyal
a20ea1b96a Merge branch 'dependabot/github_actions/actions-bcb0c4251a' of https://github.com/kovidgoyal/kitty 2026-05-25 11:00:30 +05:30
Kovid Goyal
ca80b376b0 Merge branch 'dependabot/go_modules/all-go-deps-4e9911e4e5' of https://github.com/kovidgoyal/kitty 2026-05-25 11:00:09 +05:30
dependabot[bot]
b2948a5018 Bump github/codeql-action from 4.35.4 to 4.35.5 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.4 to 4.35.5
- [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.4...v4.35.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-25 04:19:17 +00:00
dependabot[bot]
afaa7053a5 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.2 to 2.2.3
- [Commits](https://github.com/nwaples/rardecode/compare/v2.2.2...v2.2.3)

---
updated-dependencies:
- dependency-name: github.com/nwaples/rardecode/v2
  dependency-version: 2.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-25 04:14:21 +00:00
Kovid Goyal
f2df2394ce Fix conf watcher kitten not tracking changes to symlink targets 2026-05-24 09:54:01 +05:30