git: da5e99bb9c1f - main - x11/kitty: Update to 0.49.1

From: Nicola Vitale <nivit_at_FreeBSD.org>
Date: Fri, 25 Sep 2026 12:40:05 UTC
The branch main has been updated by nivit:

URL: https://cgit.FreeBSD.org/ports/commit/?id=da5e99bb9c1f6f56cc62449ed1c4ca89e7d11269

commit da5e99bb9c1f6f56cc62449ed1c4ca89e7d11269
Author:     Nicola Vitale <nivit@FreeBSD.org>
AuthorDate: 2026-09-25 12:37:32 +0000
Commit:     Nicola Vitale <nivit@FreeBSD.org>
CommitDate: 2026-09-25 12:37:32 +0000

    x11/kitty: Update to 0.49.1
    
    - Update list of dependencies
    
    ChangeLog:
    
    1. https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes
    
    Reported by:    Kovid Goyal <notifications@github.com>
---
 x11/kitty/Makefile                                 |  19 +-
 x11/kitty/distinfo                                 |  10 +-
 x11/kitty/files/patch-docs_changelog.rst           |   6 +-
 x11/kitty/files/patch-docs_conf.py                 |  17 +-
 x11/kitty/files/patch-kitty_shaders_custom_demo.py |  11 +
 x11/kitty/files/patch-setup.py                     |   8 +-
 ...ish_vendor__conf.d_kitty-shell-integration.fish |   4 +-
 x11/kitty/pkg-plist                                | 274 ++++++++++++++++++---
 8 files changed, 289 insertions(+), 60 deletions(-)

diff --git a/x11/kitty/Makefile b/x11/kitty/Makefile
index 5ede0e24a954..b4fc94ac4c15 100644
--- a/x11/kitty/Makefile
+++ b/x11/kitty/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	kitty
 DISTVERSIONPREFIX=	v
-DISTVERSION=	0.48.2
-PORTREVISION=	3
+DISTVERSION=	0.49.1
+PORTREVISION=	0
 CATEGORIES=	x11 wayland
 
 MAINTAINER=	nivit@FreeBSD.org
@@ -15,34 +15,42 @@ BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}furo>0:textproc/py-furo@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}sphinx-autobuild>=2025.8.25:textproc/py-sphinx-autobuild@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}sphinx-copybutton>0:textproc/py-sphinx-copybutton@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}sphinx-design>=0.7.0_1:textproc/py-sphinx-design@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}sphinx-inline-tabs>0:textproc/py-sphinx-inline-tabs@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}sphinxext-opengraph>0:textproc/py-sphinxext-opengraph@${PY_FLAVOR} \
+		evdev-proto>=5.8:devel/evdev-proto \
 		nerd-fonts-symbols>=3.1.1:x11-fonts/nerd-fonts-symbols \
 		roboto-fonts-ttf>=2.134:x11-fonts/roboto-fonts-ttf \
 		simde>=0.7.6:devel/simde \
 		sphinx-build:textproc/py-sphinx@${PY_FLAVOR} \
 		urw-base35-fonts>=20200910:x11-fonts/urw-base35-fonts \
+		slangc:graphics/linux-slang \
 		wayland-protocols>=0:graphics/wayland-protocols
 LIB_DEPENDS=	libcairo.so:graphics/cairo \
+		libcanberra.so:audio/libcanberra \
 		libdbus-1.so:devel/dbus \
 		libepoll-shim-interpose.so:devel/libepoll-shim \
 		libfontconfig.so:x11-fonts/fontconfig \
 		libharfbuzz.so:print/harfbuzz \
 		liblcms2.so:graphics/lcms2 \
+		libpixman-1.so:x11/pixman \
 		libpng16.so:graphics/png \
+		libudev.so:devel/libudev-devd \
 		libwayland-client.so:graphics/wayland \
 		libwayland-cursor.so:graphics/wayland \
 		libxkbcommon.so:x11/libxkbcommon \
 		libxxhash.so:devel/xxhash
+RUN_DEPENDS=	slangc:graphics/linux-slang
 
 # ncursesw and tinfo >= 6.1 seem to be needed
 USES=		compiler:c11 cpe desktop-file-utils gettext-runtime gl gmake \
-		go:modules,1.26 ncurses pkgconfig python shebangfix ssl tar:xz \
+		go:modules,1.26 linux:rl9 ncurses pkgconfig python shebangfix ssl tar:xz \
 		terminfo xorg
 CPE_VENDOR=	kovidgoyal
 
 USE_GL=		gl
-USE_XORG=	x11 xcb xcursor xi xinerama xrandr
+USE_LINUX=	base
+USE_XORG=	pixman x11 xcb xcursor xi xinerama xrandr
 
 SHEBANG_FILES=	build-terminfo count-lines-of-code update-on-ox
 SHEBANG_GLOB=	*.py
@@ -95,7 +103,8 @@ post-patch:
 		-e "s:(dirs_exist_ok=True):\1, ignore=shutil.ignore_patterns('*.orig', '*.bak'):1" \
 		${WRKSRC}/setup.py
 	${REINPLACE_CMD} -e "s:%%DATADIR%%:${DATADIR}:1" \
-		${WRKSRC}/shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish
+		${WRKSRC}/shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish \
+		${WRKSRC}/kitty/shaders/custom/demo.py
 
 # For librsync, we need to set header and library path
 do-build:
diff --git a/x11/kitty/distinfo b/x11/kitty/distinfo
index 88a159c9ca12..ea8310cf4804 100644
--- a/x11/kitty/distinfo
+++ b/x11/kitty/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1785744813
-SHA256 (go/x11_kitty/kitty-v0.48.2/v0.48.2.mod) = 0af15a39f42d80fb343db505a3bbcf12f862fa85036ac53e188421490eaf1e17
-SIZE (go/x11_kitty/kitty-v0.48.2/v0.48.2.mod) = 1848
-SHA256 (go/x11_kitty/kitty-v0.48.2/v0.48.2.zip) = f387490ac860a1a3848555efd82b11e5a5d69c3800ef63f826e557c62592391b
-SIZE (go/x11_kitty/kitty-v0.48.2/v0.48.2.zip) = 10334225
+TIMESTAMP = 1790242233
+SHA256 (go/x11_kitty/kitty-v0.49.1/v0.49.1.mod) = 9d1386beb3fe602a2ec71425f563bd52c9e7a32e3687af39d93be3275c08b30c
+SIZE (go/x11_kitty/kitty-v0.49.1/v0.49.1.mod) = 1900
+SHA256 (go/x11_kitty/kitty-v0.49.1/v0.49.1.zip) = 09e44563662f81e62212e0d91d54d3991ea0295394a719810fe2d284365c5697
+SIZE (go/x11_kitty/kitty-v0.49.1/v0.49.1.zip) = 10613844
diff --git a/x11/kitty/files/patch-docs_changelog.rst b/x11/kitty/files/patch-docs_changelog.rst
index 8d9b96141ae6..372b69d84e45 100644
--- a/x11/kitty/files/patch-docs_changelog.rst
+++ b/x11/kitty/files/patch-docs_changelog.rst
@@ -1,6 +1,6 @@
 --- docs/changelog.rst.orig	1979-11-29 23:00:00 UTC
 +++ docs/changelog.rst
-@@ -3391,7 +3391,7 @@ - A :doc:`new kitten <kittens/panel>` to create dock p
+@@ -4896,7 +4896,7 @@ - A :doc:`new kitten <kittens/panel>` to create dock p
  - A :doc:`new kitten <kittens/panel>` to create dock panels on X11 desktops
    showing the output from arbitrary terminal programs.
  
@@ -9,7 +9,7 @@
  
  - Implement changing the font size for individual top level (OS) windows
    (:iss:`408`)
-@@ -3506,7 +3506,7 @@ - Implement support for the SGR *faint* escape code to
+@@ -5011,7 +5011,7 @@ - Implement support for the SGR *faint* escape code to
  - Implement support for the SGR *faint* escape code to make text blend
    into the background (:iss:`446`).
  
@@ -18,7 +18,7 @@
    so that URLs that stretch over multiple lines are detected. Also improve
    detection of surrounding brackets/quotes.
  
-@@ -3518,7 +3518,7 @@ - Expand environment variables in config file include 
+@@ -5023,7 +5023,7 @@ - Expand environment variables in config file include 
  
  - Expand environment variables in config file include directives
  
diff --git a/x11/kitty/files/patch-docs_conf.py b/x11/kitty/files/patch-docs_conf.py
index d44ac81291d4..164e0c464986 100644
--- a/x11/kitty/files/patch-docs_conf.py
+++ b/x11/kitty/files/patch-docs_conf.py
@@ -1,23 +1,20 @@
 --- docs/conf.py.orig	1979-11-29 23:00:00 UTC
 +++ docs/conf.py
-@@ -216,18 +216,10 @@ def commit_role(
+@@ -220,15 +220,10 @@ def commit_role(
      name: str, rawtext: str, text: str, lineno: int, inliner: Any, options: Any = {}, content: Any = []
  ) -> Tuple[List[nodes.reference], List[nodes.problematic]]:
-     ' Link to a github commit '
+     "Link to a github commit"
 -    try:
--        commit_id = subprocess.check_output(
--            f'git rev-list --max-count=1 {text}'.split()).decode('utf-8').strip()
+-        commit_id = subprocess.check_output(f'git rev-list --max-count=1 {text}'.split()).decode('utf-8').strip()
 -    except Exception:
--        msg = inliner.reporter.error(
--            f'git commit id "{text}" not recognized.', line=lineno)
+-        msg = inliner.reporter.error(f'git commit id "{text}" not recognized.', line=lineno)
 -        prb = inliner.problematic(rawtext, rawtext, msg)
 -        return [prb], [msg]
 +    commit_id = text
      url = f'https://github.com/kovidgoyal/kitty/commit/{commit_id}'
-     normalize_options(options)
--    short_id = subprocess.check_output(
--        f'git rev-list --max-count=1 --abbrev-commit {commit_id}'.split()).decode('utf-8').strip()
+     options = normalize_options(options)
+-    short_id = subprocess.check_output(f'git rev-list --max-count=1 --abbrev-commit {commit_id}'.split()).decode('utf-8').strip()
 +    short_id = text[:9]
      node = nodes.reference(rawtext, f'commit: {short_id}', refuri=url, **options)
      return [node], []
- # }}}
+ 
diff --git a/x11/kitty/files/patch-kitty_shaders_custom_demo.py b/x11/kitty/files/patch-kitty_shaders_custom_demo.py
new file mode 100644
index 000000000000..135346874873
--- /dev/null
+++ b/x11/kitty/files/patch-kitty_shaders_custom_demo.py
@@ -0,0 +1,11 @@
+--- kitty/shaders/custom/demo.py.orig	1979-11-29 23:00:00 UTC
++++ kitty/shaders/custom/demo.py
+@@ -13,6 +13,8 @@ from typing import Any
+ from threading import Thread
+ from typing import Any
+ 
++sys.path.insert(0, '%%DATADIR%%')
++
+ from kitty.constants import glfw_path
+ from kitty.fast_data_types import GLFW_FKEY_ESCAPE as KEY_ESCAPE
+ from kitty.fast_data_types import GLFW_MOUSE_BUTTON_LEFT as MOUSE_BUTTON_LEFT
diff --git a/x11/kitty/files/patch-setup.py b/x11/kitty/files/patch-setup.py
index 95b3aa101776..40782fada45e 100644
--- a/x11/kitty/files/patch-setup.py
+++ b/x11/kitty/files/patch-setup.py
@@ -1,6 +1,6 @@
---- setup.py	2025-12-16 12:38:37 UTC
+--- setup.py.orig	2026-09-24 15:43:23 UTC
 +++ setup.py
-@@ -1489,12 +1489,17 @@ def create_linux_bundle_gunk(ddir: str, args: Options)
+@@ -1740,12 +1741,17 @@ def create_linux_bundle_gunk(ddir: str, args: Options)
      in_src_launcher = base / (f'{libdir_name}/kitty/kitty/launcher/kitty')
      launcher = base / 'bin/kitty'
      skip_docs = False
@@ -19,7 +19,7 @@
          else:
              if args.skip_building_kitten:
                  skip_docs = True
-@@ -1504,8 +1509,10 @@ def create_linux_bundle_gunk(ddir: str, args: Options)
+@@ -1758,8 +1764,10 @@ def create_linux_bundle_gunk(ddir: str, args: Options)
              else:
                  raise SystemExit(f'kitten binary not found at: {kitten_exe}')
      if not skip_docs:
@@ -29,6 +29,6 @@
 +            copy_man_pages(ddir)
 +        if build_docs:
 +            copy_html_docs(ddir)
-     for (icdir, ext) in {'256x256': 'png', 'scalable': 'svg'}.items():
+     for icdir, ext in {'256x256': 'png', 'scalable': 'svg'}.items():
          icdir = os.path.join(ddir, 'share', 'icons', 'hicolor', icdir, 'apps')
          safe_makedirs(icdir)
diff --git a/x11/kitty/files/patch-shell-integration_fish_vendor__conf.d_kitty-shell-integration.fish b/x11/kitty/files/patch-shell-integration_fish_vendor__conf.d_kitty-shell-integration.fish
index 67f8ab615a0a..fcad738e5a2c 100644
--- a/x11/kitty/files/patch-shell-integration_fish_vendor__conf.d_kitty-shell-integration.fish
+++ b/x11/kitty/files/patch-shell-integration_fish_vendor__conf.d_kitty-shell-integration.fish
@@ -1,6 +1,6 @@
 --- shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish.orig	1979-11-29 23:00:00 UTC
 +++ shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish
-@@ -126,7 +126,7 @@ function __ksi_schedule --on-event fish_prompt -d "Set
+@@ -141,7 +141,7 @@ function __ksi_schedule --on-event fish_prompt -d "Set
      # for sudo it will be clobbered by us, so only install this if sudo is not already function
      if not contains "no-sudo" $_ksi
          and test -n "$TERMINFO" -a "file" = (type -t sudo 2> /dev/null || echo "x")
@@ -8,4 +8,4 @@
 +        and not test -r "%%DATADIR%%/terminfo/x/xterm-kitty" -o -r "/usr/share/terminfo/x/xterm-kitty" -o -r "/usr/share/terminfo/78/xterm-kitty"
          # Ensure terminfo is available in sudo
          function sudo
-             set --local is_sudoedit "n"
+             set --local cannot_set_env_var "n"
diff --git a/x11/kitty/pkg-plist b/x11/kitty/pkg-plist
index fb7148a6a2b3..301e6c23b39b 100644
--- a/x11/kitty/pkg-plist
+++ b/x11/kitty/pkg-plist
@@ -20,10 +20,11 @@ share/applications/kitty.desktop
 %%PORTDOCS%%%%DOCSDIR%%/_images/social_previews/summary_actions_1745a1bd.png
 %%PORTDOCS%%%%DOCSDIR%%/_images/social_previews/summary_binary_478594b0.png
 %%PORTDOCS%%%%DOCSDIR%%/_images/social_previews/summary_build_e554a463.png
-%%PORTDOCS%%%%DOCSDIR%%/_images/social_previews/summary_changelog_fa6a3b75.png
+%%PORTDOCS%%%%DOCSDIR%%/_images/social_previews/summary_changelog_9055a468.png
 %%PORTDOCS%%%%DOCSDIR%%/_images/social_previews/summary_clipboard_673291d1.png
 %%PORTDOCS%%%%DOCSDIR%%/_images/social_previews/summary_color-stack_b2e66ffc.png
 %%PORTDOCS%%%%DOCSDIR%%/_images/social_previews/summary_conf_6d817f14.png
+%%PORTDOCS%%%%DOCSDIR%%/_images/social_previews/summary_custom-shaders_69b092c7.png
 %%PORTDOCS%%%%DOCSDIR%%/_images/social_previews/summary_deccara_77e64daf.png
 %%PORTDOCS%%%%DOCSDIR%%/_images/social_previews/summary_desktop-notifications_9e55697a.png
 %%PORTDOCS%%%%DOCSDIR%%/_images/social_previews/summary_dnd-protocol_bbf3df2d.png
@@ -100,6 +101,7 @@ share/applications/kitty.desktop
 %%PORTDOCS%%%%DOCSDIR%%/_sources/clipboard.rst.txt
 %%PORTDOCS%%%%DOCSDIR%%/_sources/color-stack.rst.txt
 %%PORTDOCS%%%%DOCSDIR%%/_sources/conf.rst.txt
+%%PORTDOCS%%%%DOCSDIR%%/_sources/custom-shaders.rst.txt
 %%PORTDOCS%%%%DOCSDIR%%/_sources/deccara.rst.txt
 %%PORTDOCS%%%%DOCSDIR%%/_sources/desktop-notifications.rst.txt
 %%PORTDOCS%%%%DOCSDIR%%/_sources/dnd-protocol.rst.txt
@@ -165,6 +167,8 @@ share/applications/kitty.desktop
 %%PORTDOCS%%%%DOCSDIR%%/_sources/underlines.rst.txt
 %%PORTDOCS%%%%DOCSDIR%%/_sources/unscroll.rst.txt
 %%PORTDOCS%%%%DOCSDIR%%/_sources/wide-gamut-colors.rst.txt
+%%PORTDOCS%%%%DOCSDIR%%/_sphinx_design_static/design-tabs.js
+%%PORTDOCS%%%%DOCSDIR%%/_sphinx_design_static/sphinx-design.min.css
 %%PORTDOCS%%%%DOCSDIR%%/_static/base-stemmer.js
 %%PORTDOCS%%%%DOCSDIR%%/_static/basic.css
 %%PORTDOCS%%%%DOCSDIR%%/_static/check-solid.svg
@@ -176,6 +180,7 @@ share/applications/kitty.desktop
 %%PORTDOCS%%%%DOCSDIR%%/_static/custom.css
 %%PORTDOCS%%%%DOCSDIR%%/_static/custom.js
 %%PORTDOCS%%%%DOCSDIR%%/_static/debug.css
+%%PORTDOCS%%%%DOCSDIR%%/_static/design-tabs.js
 %%PORTDOCS%%%%DOCSDIR%%/_static/doctools.js
 %%PORTDOCS%%%%DOCSDIR%%/_static/documentation_options.js
 %%PORTDOCS%%%%DOCSDIR%%/_static/english-stemmer.js
@@ -192,13 +197,12 @@ share/applications/kitty.desktop
 %%PORTDOCS%%%%DOCSDIR%%/_static/scripts/furo.js.map
 %%PORTDOCS%%%%DOCSDIR%%/_static/searchtools.js
 %%PORTDOCS%%%%DOCSDIR%%/_static/skeleton.css
+%%PORTDOCS%%%%DOCSDIR%%/_static/sphinx-design.min.css
 %%PORTDOCS%%%%DOCSDIR%%/_static/sphinx_highlight.js
 %%PORTDOCS%%%%DOCSDIR%%/_static/styles/furo-extensions.css
 %%PORTDOCS%%%%DOCSDIR%%/_static/styles/furo-extensions.css.map
 %%PORTDOCS%%%%DOCSDIR%%/_static/styles/furo.css
 %%PORTDOCS%%%%DOCSDIR%%/_static/styles/furo.css.map
-%%PORTDOCS%%%%DOCSDIR%%/_static/tabs.css
-%%PORTDOCS%%%%DOCSDIR%%/_static/tabs.js
 %%PORTDOCS%%%%DOCSDIR%%/_static/timestamps.css
 %%PORTDOCS%%%%DOCSDIR%%/_static/timestamps.js
 %%PORTDOCS%%%%DOCSDIR%%/actions.html
@@ -208,6 +212,7 @@ share/applications/kitty.desktop
 %%PORTDOCS%%%%DOCSDIR%%/clipboard.html
 %%PORTDOCS%%%%DOCSDIR%%/color-stack.html
 %%PORTDOCS%%%%DOCSDIR%%/conf.html
+%%PORTDOCS%%%%DOCSDIR%%/custom-shaders.html
 %%PORTDOCS%%%%DOCSDIR%%/deccara.html
 %%PORTDOCS%%%%DOCSDIR%%/desktop-notifications.html
 %%PORTDOCS%%%%DOCSDIR%%/dnd-protocol.html
@@ -651,9 +656,6 @@ share/icons/hicolor/scalable/apps/kitty.svg
 %%DATADIR%%/kitty/__pycache__/session%%PYTHON_TAG%%.opt-1.pyc
 %%DATADIR%%/kitty/__pycache__/session%%PYTHON_TAG%%.opt-2.pyc
 %%DATADIR%%/kitty/__pycache__/session%%PYTHON_TAG%%.pyc
-%%DATADIR%%/kitty/__pycache__/shaders%%PYTHON_TAG%%.opt-1.pyc
-%%DATADIR%%/kitty/__pycache__/shaders%%PYTHON_TAG%%.opt-2.pyc
-%%DATADIR%%/kitty/__pycache__/shaders%%PYTHON_TAG%%.pyc
 %%DATADIR%%/kitty/__pycache__/shell_integration%%PYTHON_TAG%%.opt-1.pyc
 %%DATADIR%%/kitty/__pycache__/shell_integration%%PYTHON_TAG%%.opt-2.pyc
 %%DATADIR%%/kitty/__pycache__/shell_integration%%PYTHON_TAG%%.pyc
@@ -700,20 +702,9 @@ share/icons/hicolor/scalable/apps/kitty.svg
 %%DATADIR%%/kitty/__pycache__/xdg%%PYTHON_TAG%%.opt-2.pyc
 %%DATADIR%%/kitty/__pycache__/xdg%%PYTHON_TAG%%.pyc
 %%DATADIR%%/kitty/actions.py
-%%DATADIR%%/kitty/alpha_blend.glsl
 %%DATADIR%%/kitty/bash.py
-%%DATADIR%%/kitty/bgimage_fragment.glsl
-%%DATADIR%%/kitty/bgimage_vertex.glsl
-%%DATADIR%%/kitty/blit_common.glsl
-%%DATADIR%%/kitty/blit_fragment.glsl
-%%DATADIR%%/kitty/blit_vertex.glsl
-%%DATADIR%%/kitty/border_fragment.glsl
-%%DATADIR%%/kitty/border_vertex.glsl
 %%DATADIR%%/kitty/borders.py
 %%DATADIR%%/kitty/boss.py
-%%DATADIR%%/kitty/cell_defines.glsl
-%%DATADIR%%/kitty/cell_fragment.glsl
-%%DATADIR%%/kitty/cell_vertex.glsl
 %%DATADIR%%/kitty/child.py
 %%DATADIR%%/kitty/choose_entry.py
 %%DATADIR%%/kitty/cli.py
@@ -773,10 +764,7 @@ share/icons/hicolor/scalable/apps/kitty.svg
 %%DATADIR%%/kitty/fonts/render.py
 %%DATADIR%%/kitty/glfw-wayland.so
 %%DATADIR%%/kitty/glfw-x11.so
-%%DATADIR%%/kitty/graphics_fragment.glsl
-%%DATADIR%%/kitty/graphics_vertex.glsl
 %%DATADIR%%/kitty/guess_mime_type.py
-%%DATADIR%%/kitty/hsluv.glsl
 %%DATADIR%%/kitty/key_encoding.py
 %%DATADIR%%/kitty/key_names.py
 %%DATADIR%%/kitty/keys.py
@@ -814,7 +802,6 @@ share/icons/hicolor/scalable/apps/kitty.svg
 %%DATADIR%%/kitty/layout/stack.py
 %%DATADIR%%/kitty/layout/tall.py
 %%DATADIR%%/kitty/layout/vertical.py
-%%DATADIR%%/kitty/linear2srgb.glsl
 %%DATADIR%%/kitty/machine_id.py
 %%DATADIR%%/kitty/main.py
 %%DATADIR%%/kitty/marks.py
@@ -919,6 +906,9 @@ share/icons/hicolor/scalable/apps/kitty.svg
 %%DATADIR%%/kitty/rc/__pycache__/run%%PYTHON_TAG%%.opt-1.pyc
 %%DATADIR%%/kitty/rc/__pycache__/run%%PYTHON_TAG%%.opt-2.pyc
 %%DATADIR%%/kitty/rc/__pycache__/run%%PYTHON_TAG%%.pyc
+%%DATADIR%%/kitty/rc/__pycache__/screenshot%%PYTHON_TAG%%.opt-1.pyc
+%%DATADIR%%/kitty/rc/__pycache__/screenshot%%PYTHON_TAG%%.opt-2.pyc
+%%DATADIR%%/kitty/rc/__pycache__/screenshot%%PYTHON_TAG%%.pyc
 %%DATADIR%%/kitty/rc/__pycache__/scroll_window%%PYTHON_TAG%%.opt-1.pyc
 %%DATADIR%%/kitty/rc/__pycache__/scroll_window%%PYTHON_TAG%%.opt-2.pyc
 %%DATADIR%%/kitty/rc/__pycache__/scroll_window%%PYTHON_TAG%%.pyc
@@ -946,6 +936,9 @@ share/icons/hicolor/scalable/apps/kitty.svg
 %%DATADIR%%/kitty/rc/__pycache__/set_font_size%%PYTHON_TAG%%.opt-1.pyc
 %%DATADIR%%/kitty/rc/__pycache__/set_font_size%%PYTHON_TAG%%.opt-2.pyc
 %%DATADIR%%/kitty/rc/__pycache__/set_font_size%%PYTHON_TAG%%.pyc
+%%DATADIR%%/kitty/rc/__pycache__/set_os_window_title%%PYTHON_TAG%%.opt-1.pyc
+%%DATADIR%%/kitty/rc/__pycache__/set_os_window_title%%PYTHON_TAG%%.opt-2.pyc
+%%DATADIR%%/kitty/rc/__pycache__/set_os_window_title%%PYTHON_TAG%%.pyc
 %%DATADIR%%/kitty/rc/__pycache__/set_spacing%%PYTHON_TAG%%.opt-1.pyc
 %%DATADIR%%/kitty/rc/__pycache__/set_spacing%%PYTHON_TAG%%.opt-2.pyc
 %%DATADIR%%/kitty/rc/__pycache__/set_spacing%%PYTHON_TAG%%.pyc
@@ -991,6 +984,7 @@ share/icons/hicolor/scalable/apps/kitty.svg
 %%DATADIR%%/kitty/rc/resize_os_window.py
 %%DATADIR%%/kitty/rc/resize_window.py
 %%DATADIR%%/kitty/rc/run.py
+%%DATADIR%%/kitty/rc/screenshot.py
 %%DATADIR%%/kitty/rc/scroll_window.py
 %%DATADIR%%/kitty/rc/select_window.py
 %%DATADIR%%/kitty/rc/send_key.py
@@ -1000,6 +994,7 @@ share/icons/hicolor/scalable/apps/kitty.svg
 %%DATADIR%%/kitty/rc/set_colors.py
 %%DATADIR%%/kitty/rc/set_enabled_layouts.py
 %%DATADIR%%/kitty/rc/set_font_size.py
+%%DATADIR%%/kitty/rc/set_os_window_title.py
 %%DATADIR%%/kitty/rc/set_spacing.py
 %%DATADIR%%/kitty/rc/set_tab_color.py
 %%DATADIR%%/kitty/rc/set_tab_title.py
@@ -1010,13 +1005,77 @@ share/icons/hicolor/scalable/apps/kitty.svg
 %%DATADIR%%/kitty/remote_control.py
 %%DATADIR%%/kitty/render_cache.py
 %%DATADIR%%/kitty/rgb.py
-%%DATADIR%%/kitty/rounded_rect_fragment.glsl
-%%DATADIR%%/kitty/rounded_rect_vertex.glsl
-%%DATADIR%%/kitty/screenshot_fragment.glsl
-%%DATADIR%%/kitty/screenshot_vertex.glsl
 %%DATADIR%%/kitty/search_query_parser.py
 %%DATADIR%%/kitty/session.py
-%%DATADIR%%/kitty/shaders.py
+%%DATADIR%%/kitty/shaders/__init__.py
+%%DATADIR%%/kitty/shaders/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc
+%%DATADIR%%/kitty/shaders/__pycache__/__init__%%PYTHON_TAG%%.opt-2.pyc
+%%DATADIR%%/kitty/shaders/__pycache__/__init__%%PYTHON_TAG%%.pyc
+%%DATADIR%%/kitty/shaders/__pycache__/slang%%PYTHON_TAG%%.opt-1.pyc
+%%DATADIR%%/kitty/shaders/__pycache__/slang%%PYTHON_TAG%%.opt-2.pyc
+%%DATADIR%%/kitty/shaders/__pycache__/slang%%PYTHON_TAG%%.pyc
+%%DATADIR%%/kitty/shaders/__pycache__/validate_shaders%%PYTHON_TAG%%.opt-1.pyc
+%%DATADIR%%/kitty/shaders/__pycache__/validate_shaders%%PYTHON_TAG%%.opt-2.pyc
+%%DATADIR%%/kitty/shaders/__pycache__/validate_shaders%%PYTHON_TAG%%.pyc
+%%DATADIR%%/kitty/shaders/alpha-blend.slang
+%%DATADIR%%/kitty/shaders/background.slang
+%%DATADIR%%/kitty/shaders/bgimage.slang
+%%DATADIR%%/kitty/shaders/blit-common.slang
+%%DATADIR%%/kitty/shaders/blit.slang
+%%DATADIR%%/kitty/shaders/border.slang
+%%DATADIR%%/kitty/shaders/cell.slang
+%%DATADIR%%/kitty/shaders/custom/__init__.py
+%%DATADIR%%/kitty/shaders/custom/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc
+%%DATADIR%%/kitty/shaders/custom/__pycache__/__init__%%PYTHON_TAG%%.opt-2.pyc
+%%DATADIR%%/kitty/shaders/custom/__pycache__/__init__%%PYTHON_TAG%%.pyc
+%%DATADIR%%/kitty/shaders/custom/__pycache__/demo%%PYTHON_TAG%%.opt-1.pyc
+%%DATADIR%%/kitty/shaders/custom/__pycache__/demo%%PYTHON_TAG%%.opt-2.pyc
+%%DATADIR%%/kitty/shaders/custom/__pycache__/demo%%PYTHON_TAG%%.pyc
+%%DATADIR%%/kitty/shaders/custom/bloom.slang
+%%DATADIR%%/kitty/shaders/custom/crt-blue.pipeline
+%%DATADIR%%/kitty/shaders/custom/crt.slang
+%%DATADIR%%/kitty/shaders/custom/cursor-trail-blaze.pipeline
+%%DATADIR%%/kitty/shaders/custom/cursor-trail-blaze.slang
+%%DATADIR%%/kitty/shaders/custom/cursor-trail-default.pipeline
+%%DATADIR%%/kitty/shaders/custom/cursor-trail-default.slang
+%%DATADIR%%/kitty/shaders/custom/cursor-trail-lightning.pipeline
+%%DATADIR%%/kitty/shaders/custom/cursor-trail-lightning.slang
+%%DATADIR%%/kitty/shaders/custom/demo.py
+%%DATADIR%%/kitty/shaders/custom/dim-inactive-windows.pipeline
+%%DATADIR%%/kitty/shaders/custom/fireworks-rockets.pipeline
+%%DATADIR%%/kitty/shaders/custom/fireworks-rockets.slang
+%%DATADIR%%/kitty/shaders/custom/fireworks.pipeline
+%%DATADIR%%/kitty/shaders/custom/fireworks.slang
+%%DATADIR%%/kitty/shaders/custom/focus-highlight.pipeline
+%%DATADIR%%/kitty/shaders/custom/focus-highlight.slang
+%%DATADIR%%/kitty/shaders/custom/inside-the-matrix.pipeline
+%%DATADIR%%/kitty/shaders/custom/inside-the-matrix.slang
+%%DATADIR%%/kitty/shaders/custom/negative.slang
+%%DATADIR%%/kitty/shaders/custom/northern-lights.pipeline
+%%DATADIR%%/kitty/shaders/custom/northern-lights.slang
+%%DATADIR%%/kitty/shaders/custom/pipeline.slang
+%%DATADIR%%/kitty/shaders/custom/pond-ripple.pipeline
+%%DATADIR%%/kitty/shaders/custom/pond-ripple.slang
+%%DATADIR%%/kitty/shaders/custom/sample.slang
+%%DATADIR%%/kitty/shaders/custom/spotlight.pipeline
+%%DATADIR%%/kitty/shaders/custom/spotlight.slang
+%%DATADIR%%/kitty/shaders/custom/tab-change.pipeline
+%%DATADIR%%/kitty/shaders/custom/tab-change.slang
+%%DATADIR%%/kitty/shaders/custom/tft.slang
+%%DATADIR%%/kitty/shaders/custom/types.slang
+%%DATADIR%%/kitty/shaders/custom/underwater.slang
+%%DATADIR%%/kitty/shaders/custom/water.slang
+%%DATADIR%%/kitty/shaders/graphics.slang
+%%DATADIR%%/kitty/shaders/hsluv.slang
+%%DATADIR%%/kitty/shaders/linear2srgb.slang
+%%DATADIR%%/kitty/shaders/padding.slang
+%%DATADIR%%/kitty/shaders/rounded_rect.slang
+%%DATADIR%%/kitty/shaders/screenshot.slang
+%%DATADIR%%/kitty/shaders/slang.py
+%%DATADIR%%/kitty/shaders/tint.slang
+%%DATADIR%%/kitty/shaders/trail.slang
+%%DATADIR%%/kitty/shaders/utils.slang
+%%DATADIR%%/kitty/shaders/validate_shaders.py
 %%DATADIR%%/kitty/shell_integration.py
 %%DATADIR%%/kitty/shm.py
 %%DATADIR%%/kitty/short_uuid.py
@@ -1024,14 +1083,9 @@ share/icons/hicolor/scalable/apps/kitty.svg
 %%DATADIR%%/kitty/tab_bar.py
 %%DATADIR%%/kitty/tabs.py
 %%DATADIR%%/kitty/terminfo.py
-%%DATADIR%%/kitty/tint_fragment.glsl
-%%DATADIR%%/kitty/tint_vertex.glsl
-%%DATADIR%%/kitty/trail_fragment.glsl
-%%DATADIR%%/kitty/trail_vertex.glsl
 %%DATADIR%%/kitty/types.py
 %%DATADIR%%/kitty/typing_compat.py
 %%DATADIR%%/kitty/update_check.py
-%%DATADIR%%/kitty/utils.glsl
 %%DATADIR%%/kitty/utils.py
 %%DATADIR%%/kitty/window.py
 %%DATADIR%%/kitty/window_list.py
@@ -1041,6 +1095,164 @@ share/icons/hicolor/scalable/apps/kitty.svg
 %%DATADIR%%/logo/beam-cursor@2x.png
 %%DATADIR%%/logo/kitty-128.png
 %%DATADIR%%/logo/kitty.png
+%%DATADIR%%/shaders/bgimage.frag.glsl
+%%DATADIR%%/shaders/bgimage.glsl.json
+%%DATADIR%%/shaders/bgimage.json
+%%DATADIR%%/shaders/bgimage.spv
+%%DATADIR%%/shaders/bgimage.spv.json
+%%DATADIR%%/shaders/bgimage.vert.glsl
+%%DATADIR%%/shaders/blit.frag.glsl
+%%DATADIR%%/shaders/blit.glsl.json
+%%DATADIR%%/shaders/blit.json
+%%DATADIR%%/shaders/blit.spv
+%%DATADIR%%/shaders/blit.spv.json
+%%DATADIR%%/shaders/blit.vert.glsl
+%%DATADIR%%/shaders/border.frag.glsl
+%%DATADIR%%/shaders/border.glsl.json
+%%DATADIR%%/shaders/border.json
+%%DATADIR%%/shaders/border.spv
+%%DATADIR%%/shaders/border.spv.json
+%%DATADIR%%/shaders/border.vert.glsl
+%%DATADIR%%/shaders/cell.06299.frag.glsl
+%%DATADIR%%/shaders/cell.06299.glsl.json
+%%DATADIR%%/shaders/cell.06299.spv
+%%DATADIR%%/shaders/cell.06299.spv.json
+%%DATADIR%%/shaders/cell.06299.vert.glsl
+%%DATADIR%%/shaders/cell.2ced3.frag.glsl
+%%DATADIR%%/shaders/cell.2ced3.glsl.json
+%%DATADIR%%/shaders/cell.2ced3.spv
+%%DATADIR%%/shaders/cell.2ced3.spv.json
+%%DATADIR%%/shaders/cell.2ced3.vert.glsl
+%%DATADIR%%/shaders/cell.337b6.frag.glsl
+%%DATADIR%%/shaders/cell.337b6.glsl.json
+%%DATADIR%%/shaders/cell.337b6.spv
+%%DATADIR%%/shaders/cell.337b6.spv.json
+%%DATADIR%%/shaders/cell.337b6.vert.glsl
+%%DATADIR%%/shaders/cell.37c22.frag.glsl
+%%DATADIR%%/shaders/cell.37c22.glsl.json
+%%DATADIR%%/shaders/cell.37c22.spv
+%%DATADIR%%/shaders/cell.37c22.spv.json
+%%DATADIR%%/shaders/cell.37c22.vert.glsl
+%%DATADIR%%/shaders/cell.3a52d.frag.glsl
+%%DATADIR%%/shaders/cell.3a52d.glsl.json
+%%DATADIR%%/shaders/cell.3a52d.spv
+%%DATADIR%%/shaders/cell.3a52d.spv.json
+%%DATADIR%%/shaders/cell.3a52d.vert.glsl
+%%DATADIR%%/shaders/cell.3e8c7.frag.glsl
+%%DATADIR%%/shaders/cell.3e8c7.glsl.json
+%%DATADIR%%/shaders/cell.3e8c7.spv
+%%DATADIR%%/shaders/cell.3e8c7.spv.json
+%%DATADIR%%/shaders/cell.3e8c7.vert.glsl
+%%DATADIR%%/shaders/cell.4307f.frag.glsl
+%%DATADIR%%/shaders/cell.4307f.glsl.json
+%%DATADIR%%/shaders/cell.4307f.spv
+%%DATADIR%%/shaders/cell.4307f.spv.json
+%%DATADIR%%/shaders/cell.4307f.vert.glsl
+%%DATADIR%%/shaders/cell.45d75.frag.glsl
+%%DATADIR%%/shaders/cell.45d75.glsl.json
+%%DATADIR%%/shaders/cell.45d75.spv
+%%DATADIR%%/shaders/cell.45d75.spv.json
+%%DATADIR%%/shaders/cell.45d75.vert.glsl
+%%DATADIR%%/shaders/cell.53df3.frag.glsl
+%%DATADIR%%/shaders/cell.53df3.glsl.json
+%%DATADIR%%/shaders/cell.53df3.spv
+%%DATADIR%%/shaders/cell.53df3.spv.json
+%%DATADIR%%/shaders/cell.53df3.vert.glsl
+%%DATADIR%%/shaders/cell.696dd.frag.glsl
+%%DATADIR%%/shaders/cell.696dd.glsl.json
+%%DATADIR%%/shaders/cell.696dd.spv
+%%DATADIR%%/shaders/cell.696dd.spv.json
+%%DATADIR%%/shaders/cell.696dd.vert.glsl
+%%DATADIR%%/shaders/cell.7c802.frag.glsl
+%%DATADIR%%/shaders/cell.7c802.glsl.json
+%%DATADIR%%/shaders/cell.7c802.spv
+%%DATADIR%%/shaders/cell.7c802.spv.json
+%%DATADIR%%/shaders/cell.7c802.vert.glsl
+%%DATADIR%%/shaders/cell.8795d.frag.glsl
+%%DATADIR%%/shaders/cell.8795d.glsl.json
+%%DATADIR%%/shaders/cell.8795d.spv
+%%DATADIR%%/shaders/cell.8795d.spv.json
+%%DATADIR%%/shaders/cell.8795d.vert.glsl
+%%DATADIR%%/shaders/cell.97519.frag.glsl
+%%DATADIR%%/shaders/cell.97519.glsl.json
+%%DATADIR%%/shaders/cell.97519.spv
+%%DATADIR%%/shaders/cell.97519.spv.json
+%%DATADIR%%/shaders/cell.97519.vert.glsl
+%%DATADIR%%/shaders/cell.a0507.frag.glsl
+%%DATADIR%%/shaders/cell.a0507.glsl.json
+%%DATADIR%%/shaders/cell.a0507.spv
+%%DATADIR%%/shaders/cell.a0507.spv.json
+%%DATADIR%%/shaders/cell.a0507.vert.glsl
+%%DATADIR%%/shaders/cell.a07b1.frag.glsl
+%%DATADIR%%/shaders/cell.a07b1.glsl.json
+%%DATADIR%%/shaders/cell.a07b1.spv
+%%DATADIR%%/shaders/cell.a07b1.spv.json
+%%DATADIR%%/shaders/cell.a07b1.vert.glsl
+%%DATADIR%%/shaders/cell.ce584.frag.glsl
+%%DATADIR%%/shaders/cell.ce584.glsl.json
+%%DATADIR%%/shaders/cell.ce584.spv
+%%DATADIR%%/shaders/cell.ce584.spv.json
+%%DATADIR%%/shaders/cell.ce584.vert.glsl
+%%DATADIR%%/shaders/cell.d5dd6.frag.glsl
+%%DATADIR%%/shaders/cell.d5dd6.glsl.json
+%%DATADIR%%/shaders/cell.d5dd6.spv
+%%DATADIR%%/shaders/cell.d5dd6.spv.json
+%%DATADIR%%/shaders/cell.d5dd6.vert.glsl
+%%DATADIR%%/shaders/cell.frag.glsl
+%%DATADIR%%/shaders/cell.glsl.json
+%%DATADIR%%/shaders/cell.json
+%%DATADIR%%/shaders/cell.spv
+%%DATADIR%%/shaders/cell.spv.json
+%%DATADIR%%/shaders/cell.vert.glsl
+%%DATADIR%%/shaders/glsl-uniforms.json
+%%DATADIR%%/shaders/graphics.alpha_mask.frag.glsl
+%%DATADIR%%/shaders/graphics.alpha_mask.glsl.json
+%%DATADIR%%/shaders/graphics.alpha_mask.spv
+%%DATADIR%%/shaders/graphics.alpha_mask.spv.json
+%%DATADIR%%/shaders/graphics.alpha_mask.vert.glsl
+%%DATADIR%%/shaders/graphics.frag.glsl
+%%DATADIR%%/shaders/graphics.glsl.json
+%%DATADIR%%/shaders/graphics.json
+%%DATADIR%%/shaders/graphics.premult.frag.glsl
+%%DATADIR%%/shaders/graphics.premult.glsl.json
+%%DATADIR%%/shaders/graphics.premult.spv
+%%DATADIR%%/shaders/graphics.premult.spv.json
+%%DATADIR%%/shaders/graphics.premult.vert.glsl
+%%DATADIR%%/shaders/graphics.spv
+%%DATADIR%%/shaders/graphics.spv.json
+%%DATADIR%%/shaders/graphics.vert.glsl
+%%DATADIR%%/shaders/padding.frag.glsl
+%%DATADIR%%/shaders/padding.glsl.json
+%%DATADIR%%/shaders/padding.json
+%%DATADIR%%/shaders/padding.spv
+%%DATADIR%%/shaders/padding.spv.json
+%%DATADIR%%/shaders/padding.vert.glsl
+%%DATADIR%%/shaders/rounded_rect.frag.glsl
+%%DATADIR%%/shaders/rounded_rect.glsl.json
+%%DATADIR%%/shaders/rounded_rect.json
+%%DATADIR%%/shaders/rounded_rect.spv
+%%DATADIR%%/shaders/rounded_rect.spv.json
+%%DATADIR%%/shaders/rounded_rect.vert.glsl
+%%DATADIR%%/shaders/screenshot.frag.glsl
+%%DATADIR%%/shaders/screenshot.glsl.json
+%%DATADIR%%/shaders/screenshot.json
+%%DATADIR%%/shaders/screenshot.spv
+%%DATADIR%%/shaders/screenshot.spv.json
+%%DATADIR%%/shaders/screenshot.vert.glsl
+%%DATADIR%%/shaders/slangc.version
+%%DATADIR%%/shaders/slangpy.version
+%%DATADIR%%/shaders/tint.frag.glsl
+%%DATADIR%%/shaders/tint.glsl.json
+%%DATADIR%%/shaders/tint.json
+%%DATADIR%%/shaders/tint.spv
+%%DATADIR%%/shaders/tint.spv.json
+%%DATADIR%%/shaders/tint.vert.glsl
+%%DATADIR%%/shaders/trail.frag.glsl
+%%DATADIR%%/shaders/trail.glsl.json
+%%DATADIR%%/shaders/trail.json
+%%DATADIR%%/shaders/trail.spv
+%%DATADIR%%/shaders/trail.spv.json
+%%DATADIR%%/shaders/trail.vert.glsl
 %%DATADIR%%/shell-integration/bash/kitty.bash
 %%DATADIR%%/shell-integration/fish/vendor_completions.d/clone-in-kitty.fish
 %%DATADIR%%/shell-integration/fish/vendor_completions.d/kitten.fish