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
Miro Hrončok dcd67580f5 tests: accept coreutils >= 9.12 shell-quoted env output in test_ssh_env_vars
Since coreutils 9.12, env shell-quotes values written to a terminal
by default (a pty counts as one, see coreutils issue #355 for the
history: https://github.com/coreutils/coreutils/issues/355).

This makes the literal, unquoted match for TSET= in
test_ssh_env_vars no longer find the value, so the test times out
waiting for it and eventually surfaces as an EIO reading from the pty
once the child has already exited. Accept the shlex-quoted form of
the value as well, since the ssh kitten's own env-passing code does
not use env and is unaffected.

Observed failure (Fedora rawhide buildroot with coreutils-9.12-1.fc46):

    ======================================================================
    ERROR: test_ssh_env_vars (kitty_tests.ssh.SSHKitten.test_ssh_env_vars)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "kitty_tests/__init__.py", line 461, in wait_till
        self.process_input_from_child(timeout=end_time - time.monotonic())
      File "kitty_tests/__init__.py", line 449, in process_input_from_child
        data = os.read(self.master_fd, io.DEFAULT_BUFFER_SIZE)
    OSError: [Errno 5] Input/output error

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
      File "kitty_tests/__init__.py", line 250, in wrapper
        return func(*args, **kwargs)
      File "kitty_tests/ssh.py", line 146, in test_ssh_env_vars
        pty.wait_till(lambda: 'TSET={}'.format(tset.replace('$A', 'AAA')) in pty.screen_contents())
      File "kitty_tests/__init__.py", line 464, in wait_till
        raise Exception(f'Failed to read from pty with error: {e}. {self.screen_contents_for_error()}') from e
    Exception: Failed to read from pty with error: [Errno 5] Input/output error. Screen contents as repr:
    '...\nA=AAA\nTSET=\'AAA-$(echo no)-`echo no2` !Q5 "something else"\'\n...'

    Ran 337 tests in 19.341s
    FAILED (errors=1, skipped=3)

Assisted-By: Claude Sonnet 5
2026-09-22 13:42:05 +02:00
.github
3rdparty
bypy
docs Fix the IPC lock used by custom shader compilation 2026-09-22 15:21:40 +05:30
gen
glad
glfw
kittens
kitty Report errors compiling custom shaders in the UI 2026-09-22 15:37:35 +05:30
kitty_tests tests: accept coreutils >= 9.12 shell-quoted env output in test_ssh_env_vars 2026-09-22 13:42:05 +02:00
logo
shell-integration
terminfo
tools Do not drop an escaped U+FFFD in the shlex lexer 2026-09-21 12:05:20 -04:00
.clang-format
.clang-format-for-slang
.clang-format-ignore
.editorconfig
.gitattributes
.gitignore
__main__.py
autoformat
benchmark.py
Brewfile
build-terminfo
CHANGELOG.rst
CONTRIBUTING.md
count-lines-of-code
dev.sh
embeds.go
go.mod
go.sum
INSTALL.md
key_encoding.json
LICENSE
local-agent.md
Makefile
publish.py
pyproject.toml
README.asciidoc
rsync-and-build.sh
SECURITY.md
session.vim
setup.py
shell.nix
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"]