Commit Graph

18318 Commits

Author SHA1 Message Date
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
Matsumoto Kotaro
cc2d7a1789 graphics: add memory-only storage for graphics data
Add a new graphics protocol key, N=1, to request that transmitted
image/frame data is kept only in memory and not written to the graphics
disk cache file.

This is useful for transient high-frequency updates such as video-like
streams, where the latest frame is the only useful data and persisting
each frame to the disk cache causes unnecessary write traffic.

The implementation keeps the existing graphics cache abstraction intact:
memory-only entries can still be read back by animation, composition, and
frame coalescing paths. Only persistence to the disk cache file is skipped.

The default behavior is unchanged when N is omitted or set to zero.
2026-05-30 18:46:24 +09: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
Kovid Goyal
dd136ba806 ... 2026-05-24 09:12:43 +05:30
Kovid Goyal
2d9b104134 Fix #10058 2026-05-22 21:38:00 +05:30
Kovid Goyal
2dcbb392dc Merge branch 'add-orbiton-to-documentation' of https://github.com/xyproto/kitty 2026-05-22 17:13:56 +05:30
Alexander F. Rødseth
8f87080cbb Add the Orbiton text editor to the documentation 2026-05-22 12:42:36 +02:00
Kovid Goyal
a17b2df580 Fix #10054 2026-05-22 07:57:41 +05:30
Kovid Goyal
270c553af6 When background_image glob does not match anything use the literal path for backwards compat 2026-05-20 20:37:23 +05:30
Kovid Goyal
bfc4947cac Bump dependency for CVE 2026-05-20 20:32:08 +05:30
Kovid Goyal
fbbac6de38 Fix #10044 2026-05-20 20:13:09 +05:30
Kovid Goyal
8bc6389f3d Technically copy_or_noop should be passed through event when there is no active window, although it will do nothing in that case anyway 2026-05-20 12:08:31 +05:30
Kovid Goyal
5ed2c0cfd9 Make mypy happy 2026-05-20 12:07:09 +05:30
Kovid Goyal
13fc98d7ec Update changelog
Fixes #10040
2026-05-20 11:58:57 +05:30
Kovid Goyal
8651d8b5c4 Merge branch 'fix/copy-or-noop-passthrough' of https://github.com/M-Hassan-Raza/kitty 2026-05-20 11:58:01 +05:30
Hassan Raza
f413f528af Preserve copy_or_noop passthrough 2026-05-20 11:15:49 +05:00
Kovid Goyal
8243a3d3b8 Merge branch 'fix/ssh-login-shell-argv' of https://github.com/M-Hassan-Raza/kitty 2026-05-20 08:15:24 +05:30
Hassan Raza
d77c94e3aa Avoid shell quoting in ssh login fallback 2026-05-19 23:14:08 +05:00
Kovid Goyal
8eb76cd315 Fix #10037 2026-05-19 21:11:55 +05:30
Kovid Goyal
1011bb0459 Merge branch 'fix/ssh-copy-archive-safety' of https://github.com/M-Hassan-Raza/kitty 2026-05-19 19:02:47 +05:30
Hassan Raza
c0db371afe Quote ssh bootstrap symlink moves 2026-05-19 16:54:02 +05:00
Kovid Goyal
cf5c180a01 Merge branch 'clear-font-caches-on-reload' of https://github.com/zzhaolei/kitty 2026-05-19 11:55:45 +05:30