If you live in the terminal, kitty is made for you! Cross-platform, fast, feature-rich, GPU based. https://sw.kovidgoyal.net/kitty/
Find a file
Chance Zibolski 1b81045008 Save the layout state of every layout a tab has used to sessions
save_as_session recorded only the state of the tab's active layout, so the state
of any layout the tab had been toggled away from was lost. Toggling a splits tab
to the stack layout and saving discarded the splits tree entirely, because Stack
has no layout_state() of its own, and switching back to splits after restoring
rebuilt the tree from scratch along the default axis.

The session file also carried no last_used_layout, so _last_used_layout was None
after a restore and toggle_layout <current layout> silently did nothing, since it
delegates to last_used_layout() which returns early when unset. The key that
produced the stack layout no longer undid it.

Tab now keeps the layouts it has used, by name, and writes their state plus
last_used_layout into the existing set_layout_state JSON rather than adding new
session commands. Older versions of kitty ignore unknown keys in that dict but
abort on unknown commands, so nesting keeps session files readable by them.

Restoring the state of a layout that is not being made current must not reorder
the window list, since only the current layout determines window order, hence
apply_to_window_list. Splits.set_layout_state also has to accept state for a
layout whose tree is still empty, which is the case for a layout that has not
laid out any windows yet.

Fixes #10320
2026-08-05 07:53:47 -07:00
.github Try newer clang-format installed via pip 2026-08-05 20:15:07 +05:30
3rdparty autoformat 2026-08-05 05:32:56 +05:30
bypy autoformat 2026-08-05 05:32:56 +05:30
docs Update changelog 2026-08-05 13:37:48 +05:30
gen autoformat 2026-08-05 05:32:56 +05:30
glad autoformat 2026-08-05 05:32:56 +05:30
glfw autoformat c/objc code, using clang-format with left alignment for line continuation chars 2026-08-05 19:37:00 +05:30
kittens autoformat c/objc code, using clang-format with left alignment for line continuation chars 2026-08-05 19:37:00 +05:30
kitty Save the layout state of every layout a tab has used to sessions 2026-08-05 07:53:47 -07:00
kitty_tests Save the layout state of every layout a tab has used to sessions 2026-08-05 07:53:47 -07:00
logo autoformat 2026-08-05 05:32:56 +05:30
shell-integration autoformat 2026-08-05 05:32:56 +05:30
terminfo Update Se terminfo entry to reset cursor to configured default 2026-04-26 17:50:16 -05:00
tools Also handle leading ~ 2026-08-05 05:32:55 +05:30
.clang-format ... 2026-08-05 20:01:16 +05:30
.clang-format-ignore Try newer clang-format installed via pip 2026-08-05 20:15:07 +05:30
.editorconfig
.gitattributes Load GLSL binding information at runtime rather than writing it to a generated C header 2026-08-05 05:32:55 +05:30
.gitignore Agent neutral instructions 2026-07-06 11:18:16 +05:30
__main__.py autoformat 2026-08-05 05:32:56 +05:30
benchmark.py autoformat 2026-08-05 05:32:56 +05:30
Brewfile
build-terminfo
CHANGELOG.rst
CONTRIBUTING.md
count-lines-of-code
dev.sh
embeds.go
go.mod Bump the all-go-deps group with 3 updates 2026-08-03 03:43:01 +00:00
go.sum Bump the all-go-deps group with 3 updates 2026-08-03 03:43:01 +00:00
INSTALL.md
key_encoding.json
LICENSE
local-agent.md A new option to color compensatory padding with neighboring cell colors 2026-08-05 05:32:55 +05:30
Makefile
publish.py autoformat 2026-08-05 05:32:56 +05:30
pyproject.toml autoformat 2026-08-05 07:16:05 +05:30
README.asciidoc
rsync-and-build.sh
SECURITY.md
session.vim
setup.py Honor verbose flag when building shaders 2026-08-05 05:32:56 +05:30
shell.nix Note that shader-slang is now a dependency 2026-08-05 05:32:49 +05:30
staticcheck.conf
test.py
update-on-ox

= kitty - the fast, feature-rich, cross-platform, GPU based terminal

If you live in the terminal, *kitty* is made for **you**!

See https://sw.kovidgoyal.net/kitty/[the kitty website].

image:https://github.com/kovidgoyal/kitty/workflows/CI/badge.svg["Build status", link="https://github.com/kovidgoyal/kitty/actions?query=workflow%3ACI"]

https://sw.kovidgoyal.net/kitty/faq/[Frequently Asked Questions]

To ask other questions about kitty usage, use either the https://github.com/kovidgoyal/kitty/discussions/[discussions on GitHub] or the
https://www.reddit.com/r/KittyTerminal[Reddit community]

Packaging status in various repositories:

image:https://repology.org/badge/vertical-allrepos/kitty-terminal.svg?columns=3&header=kitty["Packaging status", link="https://repology.org/project/kitty-terminal/versions"]