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
Strykar fbd4e5ad1f
freetype: do not apply the fontconfig size-fixup matrix to color glyphs
ee937bdd1b routed FC_MATRIX through the cairo font matrix so synthetic
slant reaches color glyphs. But FC_MATRIX is also how fontconfig encodes
the pixel-size fixup of fixed-size faces. Noto Color Emoji is a ~109px
bitmap strike and fontconfig hands consumers a matrix scaling it to the
requested size (factor = requested_px / strike_px). cairo_set_font_size()
already brings the strike to the requested size, so feeding that matrix
into cairo_set_font_matrix() in apply_cairo_font_size() scales it down
again by the fixup factor. At terminal cell sizes that is a large shrink,
up to ~9x for small cells (easing to 1x as the cell nears the strike), so
color emoji render as a dot; fit_cairo_glyph() only shrinks, so it never
grows them back.

Only the shear carries synthetic slant; the diagonal is the size, which
cairo_set_font_size() and fit_cairo_glyph() already handle. Apply only
the shear and fall through to cairo_set_font_size() when there is no
shear. Pure-slant matrices are unchanged. This carries only the shear to
color glyphs, so a non-uniform diagonal scale from a hand-built FC_MATRIX
is dropped on that path; the stock fixup is uniform, so dropping it is
the intended behaviour.

Add a regression test that renders a color emoji and checks it fills its
cells, skipped unless a fixed-size color font with a fontconfig fixup
matrix is present.

Fixes #10144
2026-06-14 15:14:04 +05:30
.github Bump actions/checkout from 6 to 6.0.2 in the actions group 2026-06-08 03:44:39 +00:00
3rdparty
bypy Bump sqlite for CVE 2026-06-12 19:54:22 +05:30
docs Update changelog 2026-06-13 12:50:05 +05:30
gen
glad
glfw fix(tabs): mouse handling stuck after aborted tab drag on Wayland 2026-06-10 03:43:25 +00:00
kittens fix(choose-fonts): guard preview rendering against partial terminal color query 2026-06-10 02:18:18 -07:00
kitty freetype: do not apply the fontconfig size-fixup matrix to color glyphs 2026-06-14 15:14:04 +05:30
kitty_tests freetype: do not apply the fontconfig size-fixup matrix to color glyphs 2026-06-14 15:14:04 +05:30
logo
shell-integration Avoid shell quoting in ssh login fallback 2026-05-19 23:14:08 +05:00
terminfo
tools dnd kitten: Create regular files with O_EXCL to avoid symlink attacks 2026-06-03 12:17:38 +05:30
.editorconfig
.gitattributes
.gitignore
__main__.py
benchmark.py
Brewfile
build-terminfo
CHANGELOG.rst
CONTRIBUTING.md
count-lines-of-code
dev.sh
embeds.go
go.mod Bump dep version 2026-06-09 06:23:34 +05:30
go.sum Bump dep version 2026-06-09 06:23:34 +05:30
INSTALL.md
key_encoding.json
LICENSE
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"]