Hi,

Thanks for the diff!

On Tue, Aug 17, 2021 at 09:14:05AM +0200, Paco Esteban wrote:
> Hi ports@,
> 
> This is an update of x11/kitty to 0.23.0
> It works for me and all tests pass on amd64.

same here, also on amd64

> 
> About the port itself, I removed most of the patches that seem to be
> included upstream.

libcanberra isn't detected with the default settings and therefore no
more sound support with your diff. I've added '--canberra-library' to
MODPY_SETUP_ARGS (provides a path to dlopen). This restores the sound
support.

>  I have a doubt about a new one I had to introduce.
> We don't seem to have a function called posix_fallocate, which is used
> to guarantee disk space available.  The closest thing I could find is
> ftruncate(2), which is not exactly the same but it was used on the same
> file under certain conditions.  This is probably the wrong move, so I'm
> open to suggestions here.

Not sure about this, but see sthen's response. Would leave it as in your
diff for now as it seems to work.

> I also created a tmp folder in pre-test to
> avoid some tests failing because of filesystems permissions.

That works, no objections from me.

[...]

>  do-gen:
>       ${SUBST_CMD} ${WRKSRC}/kitty/child.py
>       ${SUBST_CMD} ${WRKSRC}/launcher.c

With patches for these files removed, do-gen target is now obsolete.

There are also 2 places of '-O3' in setup.py that I removed, too.

Updated diff below. I'm intending to update the port if no objections
are voiced. Comments/ok's are of course welcome!
 
Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/kitty/Makefile,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile
--- Makefile    23 Feb 2021 19:39:52 -0000      1.6
+++ Makefile    23 Aug 2021 12:55:24 -0000
@@ -5,7 +5,7 @@ ONLY_FOR_ARCHS =        aarch64 amd64 i386
 
 COMMENT =              fast, feature full, GPU-based terminal emulator
 
-MODPY_EGG_VERSION =    0.19.3
+MODPY_EGG_VERSION =    0.23.0
 DISTNAME =             kitty-${MODPY_EGG_VERSION}
 CATEGORIES =           x11
 HOMEPAGE =             https://sw.kovidgoyal.net/kitty/
@@ -14,6 +14,7 @@ MAINTAINER =          Thomas Frohwein <thfr@open
 # GPLv3+
 PERMIT_PACKAGE =       Yes
 
+# libcanberra is dlopen(3)'d in desktop.c
 WANTLIB += GL X11 X11-xcb Xcursor Xinerama Xrandr c canberra dbus-1
 WANTLIB += fontconfig freetype harfbuzz intl lcms2 m png pthread
 WANTLIB += util xcb xkbcommon xkbcommon-x11 z ${MODPY_WANTLIB}
@@ -26,7 +27,8 @@ COMPILER =            base-clang ports-gcc
 
 MODULES =              lang/python
 MODPY_DISTUTILS_BUILD =        linux-package
-MODPY_SETUP_ARGS +=    --verbose
+MODPY_SETUP_ARGS +=    --canberra-library=${LOCALBASE}/lib/libcanberra.so \
+                       --verbose
 # this disables checking upstream for updates
 MODPY_SETUP_ARGS +=    --update-check-interval=0
 
@@ -43,12 +45,15 @@ LIB_DEPENDS =               audio/libcanberra \
                        x11/dbus \
                        x11/xkbcommon
 
+TEST_ENV =             CI=true \
+                       TMPDIR=${WRKDIR}/tmp \
+                       KITTY_CACHE_DIRECTORY=${WRKDIR}/tmp/cache
+
 # needed for 'make test'
 USE_GMAKE =            Yes
 
-do-gen:
-       ${SUBST_CMD} ${WRKSRC}/kitty/child.py
-       ${SUBST_CMD} ${WRKSRC}/launcher.c
+pre-test:
+       mkdir -p ${WRKDIR}/tmp/cache
 
 do-install:
        ${INSTALL_PROGRAM} \
Index: distinfo
===================================================================
RCS file: /cvs/ports/x11/kitty/distinfo,v
retrieving revision 1.3
diff -u -p -r1.3 distinfo
--- distinfo    1 Jan 2021 16:00:46 -0000       1.3
+++ distinfo    23 Aug 2021 12:55:24 -0000
@@ -1,2 +1,2 @@
-SHA256 (kitty-0.19.3.tar.xz) = FthDNWsGl9srcXVLSv2NQxZqDwVh5gYQf2pLlRliTk8=
-SIZE (kitty-0.19.3.tar.xz) = 3269628
+SHA256 (kitty-0.23.0.tar.xz) = 9pWri1aNih8LtJSWcDbgSdIgoxOACYdqCsuBjCNoVOM=
+SIZE (kitty-0.23.0.tar.xz) = 4440508
Index: patches/patch-glfw_backend_utils_c
===================================================================
RCS file: patches/patch-glfw_backend_utils_c
diff -N patches/patch-glfw_backend_utils_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-glfw_backend_utils_c  23 Aug 2021 12:55:24 -0000
@@ -0,0 +1,37 @@
+$OpenBSD$
+
+We don't have posix_fallocate.
+
+Index: glfw/backend_utils.c
+--- glfw/backend_utils.c.orig
++++ glfw/backend_utils.c
+@@ -373,7 +373,7 @@ GLFWAPI char* utf_8_strndup(const char* source, size_t
+  * receive SIGBUS on accessing mmap()'ed file contents instead.
+  */
+ int createAnonymousFile(off_t size) {
+-    int ret, fd = -1, shm_anon = 0;
++    int ret, fd = -1;
+ #ifdef HAS_MEMFD_CREATE
+     fd = glfw_memfd_create("glfw-shared", MFD_CLOEXEC | MFD_ALLOW_SEALING);
+     if (fd < 0) return -1;
+@@ -383,10 +383,6 @@ int createAnonymousFile(off_t size) {
+     // There is also no need to check for the return value, we couldn’t do
+     // anything with it anyway.
+     fcntl(fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_SEAL);
+-#elif defined(SHM_ANON)
+-    fd = shm_open(SHM_ANON, O_RDWR | O_CLOEXEC, 0600);
+-    if (fd < 0) return -1;
+-    shm_anon = 1;
+ #else
+     static const char template[] = "/glfw-shared-XXXXXX";
+     const char* path;
+@@ -410,8 +406,7 @@ int createAnonymousFile(off_t size) {
+     if (fd < 0)
+         return -1;
+ #endif
+-    // posix_fallocate does not work on SHM descriptors
+-    ret = shm_anon ? ftruncate(fd, size) : posix_fallocate(fd, 0, size);
++    ret = ftruncate(fd, size);
+     if (ret != 0)
+     {
+         close(fd);
Index: patches/patch-kitty_child_py
===================================================================
RCS file: patches/patch-kitty_child_py
diff -N patches/patch-kitty_child_py
--- patches/patch-kitty_child_py        7 Sep 2020 12:19:52 -0000       1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,28 +0,0 @@
-$OpenBSD: patch-kitty_child_py,v 1.1.1.1 2020/09/07 12:19:52 thfr Exp $
-
-work around procfs
-hardcode ${PREFIX}/bin for "cwd_of_process()"
-
-Index: kitty/child.py
---- kitty/child.py.orig
-+++ kitty/child.py
-@@ -40,16 +40,13 @@ if is_macos:
- else:
- 
-     def cmdline_of_process(pid: int) -> List[str]:
--        with open('/proc/{}/cmdline'.format(pid), 'rb') as f:
--            return list(filter(None, f.read().decode('utf-8').split('\0')))
-+        return list( [ 'kitty' ] )
- 
-     def cwd_of_process(pid: int) -> str:
--        ans = '/proc/{}/cwd'.format(pid)
--        return os.path.realpath(ans)
-+        return "${PREFIX}/bin"
- 
-     def _environ_of_process(pid: int) -> str:
--        with open('/proc/{}/environ'.format(pid), 'rb') as f:
--            return f.read().decode('utf-8')
-+        return ""
- 
-     def process_group_map() -> DefaultDict[int, List[int]]:
-         ans: DefaultDict[int, List[int]] = defaultdict(list)
Index: patches/patch-kitty_desktop_c
===================================================================
RCS file: patches/patch-kitty_desktop_c
diff -N patches/patch-kitty_desktop_c
--- patches/patch-kitty_desktop_c       7 Sep 2020 12:19:52 -0000       1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,93 +0,0 @@
-$OpenBSD: patch-kitty_desktop_c,v 1.1.1.1 2020/09/07 12:19:52 thfr Exp $
-
-revert the use of dlopen(3) to load libcanberra
-see commit 8184ba246a63b05cd79e742c48f5527ac29c8a67 (23-Oct-2019)
-
-Index: kitty/desktop.c
---- kitty/desktop.c.orig
-+++ kitty/desktop.c
-@@ -7,6 +7,7 @@
- 
- #include "data-types.h"
- #include <dlfcn.h>
-+#include <canberra.h>
- 
- #define FUNC(name, restype, ...) typedef restype (*name##_func)(__VA_ARGS__); 
static name##_func name = NULL
- #define LOAD_FUNC(handle, name) {\
-@@ -97,64 +98,15 @@ static PyMethodDef module_methods[] = {
-     {NULL, NULL, 0, NULL}        /* Sentinel */
- };
- 
--static void* libcanberra_handle = NULL;
--static void *canberra_ctx = NULL;
--FUNC(ca_context_create, int, void**);
--FUNC(ca_context_destroy, int, void*);
--typedef int (*ca_context_play_func)(void*, uint32_t, ...); static 
ca_context_play_func ca_context_play = NULL;
-+static ca_context *canberra_ctx = NULL;
- 
--static PyObject*
--load_libcanberra_functions(void) {
--    LOAD_FUNC(libcanberra_handle, ca_context_create);
--    LOAD_FUNC(libcanberra_handle, ca_context_play);
--    LOAD_FUNC(libcanberra_handle, ca_context_destroy);
--    return NULL;
--}
--
--static void
--load_libcanberra(void) {
--    static bool done = false;
--    if (done) return;
--    done = true;
--    const char* libnames[] = {
--#if defined(_KITTY_CANBERRA_LIBRARY)
--        _KITTY_CANBERRA_LIBRARY,
--#else
--        "libcanberra.so",
--        // some installs are missing the .so symlink, so try the full name
--        "libcanberra.so.0",
--        "libcanberra.so.0.2.5",
--#endif
--        NULL
--    };
--    for (int i = 0; libnames[i]; i++) {
--        libcanberra_handle = dlopen(libnames[i], RTLD_LAZY);
--        if (libcanberra_handle) break;
--    }
--    if (libcanberra_handle == NULL) {
--        fprintf(stderr, "Failed to load %s, cannot play beep sound, with 
error: %s\n", libnames[0], dlerror());
--        return;
--    }
--    load_libcanberra_functions();
--    if (PyErr_Occurred()) {
--        PyErr_Print();
--        dlclose(libcanberra_handle); libcanberra_handle = NULL;
--    }
--    if (ca_context_create(&canberra_ctx) != 0) {
--        fprintf(stderr, "Failed to create libcanberra context, cannot play 
beep sound\n");
--        ca_context_destroy(canberra_ctx); canberra_ctx = NULL;
--        dlclose(libcanberra_handle); libcanberra_handle = NULL;
--    }
--}
--
- void
- play_canberra_sound(const char *which_sound, const char *event_id) {
--    load_libcanberra();
--    if (libcanberra_handle == NULL || canberra_ctx == NULL) return;
-+    if (canberra_ctx == NULL) ca_context_create(&canberra_ctx);
-     ca_context_play(
-         canberra_ctx, 0,
--        "event.id", which_sound,
--        "event.description", event_id,
-+        CA_PROP_EVENT_ID, which_sound,
-+        CA_PROP_EVENT_DESCRIPTION, event_id,
-         NULL
-     );
- }
-@@ -165,7 +117,6 @@ finalize(void) {
-     libsn_handle = NULL;
-     if (canberra_ctx) ca_context_destroy(canberra_ctx);
-     canberra_ctx = NULL;
--    if (libcanberra_handle) dlclose(libcanberra_handle);
- }
- 
- bool
Index: patches/patch-launcher_c
===================================================================
RCS file: patches/patch-launcher_c
diff -N patches/patch-launcher_c
--- patches/patch-launcher_c    17 Dec 2020 07:53:18 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-$OpenBSD: patch-launcher_c,v 1.2 2020/12/17 07:53:18 thfr Exp $
-
-disable procfs
-
-Index: launcher.c
---- launcher.c.orig
-+++ launcher.c
-@@ -30,7 +30,7 @@
- #define KITTY_LIB_DIR_NAME "lib"
- #endif
- 
--#ifndef __FreeBSD__
-+#if !defined(__FreeBSD__)
- static inline bool
- safe_realpath(const char* src, char *buf, size_t buf_sz) {
-     char* ans = realpath(src, NULL);
-@@ -166,7 +166,13 @@ read_exe_path(char *exe, size_t buf_sz) {
-     fprintf(stderr, "kitty not found in PATH aborting\n");
-     return false;
- }
-+#elif defined(__OpenBSD__)
- 
-+static inline bool
-+read_exe_path(char *exe, size_t buf_sz) {
-+    exe = "${PREFIX}/bin/kitty";
-+    return true;
-+}
- #else
- 
- static inline bool
-@@ -184,7 +190,7 @@ int main(int argc, char *argv[]) {
- #endif
-     if (!read_exe_path(exe, sizeof(exe))) return 1;
- 
--    char *exe_dir = dirname(exe);
-+    char *exe_dir = "${PREFIX}/bin";
-     int num, num_args, i, ret=0;
-     char lib[PATH_MAX+1] = {0};
-     char *final_argv[MAX_ARGC + 1] = {0};
Index: patches/patch-setup_py
===================================================================
RCS file: /cvs/ports/x11/kitty/patches/patch-setup_py,v
retrieving revision 1.3
diff -u -p -r1.3 patch-setup_py
--- patches/patch-setup_py      1 Jan 2021 16:00:46 -0000       1.3
+++ patches/patch-setup_py      23 Aug 2021 12:55:24 -0000
@@ -1,36 +1,35 @@
-$OpenBSD: patch-setup_py,v 1.3 2021/01/01 16:00:46 thfr Exp $
+$OpenBSD$
 
-remove libdl and librt linking
-disable -O3 optimization
+remove -O3 and -march=native optimizations
 fix man directory
-add linking of libcanberra
 
 Index: setup.py
 --- setup.py.orig
 +++ setup.py
-@@ -264,7 +264,6 @@ def init_env(
+@@ -293,7 +293,6 @@ def init_env(
          df += ' -Og'
          float_conversion = '-Wfloat-conversion'
-     fortify_source = '-D_FORTIFY_SOURCE=2'
+     fortify_source = '' if sanitize and is_macos else '-D_FORTIFY_SOURCE=2'
 -    optimize = df if debug or sanitize else '-O3'
      sanitize_args = get_sanitize_args(cc, ccver) if sanitize else set()
      cppflags_ = os.environ.get(
          'OVERRIDE_CPPFLAGS', '-D{}DEBUG'.format('' if debug else 'N'),
-@@ -279,11 +278,11 @@ def init_env(
-         ).format(
-             float_conversion,
-             '' if is_openbsd else '-std=c11',
--            optimize,
-+            '',
-             ' '.join(sanitize_args),
-             stack_protector,
-             missing_braces,
--            '-march=native' if native_optimizations else '',
-+            '',
-             fortify_source
+@@ -304,12 +303,11 @@ def init_env(
+     werror = '' if ignore_compiler_warnings else '-pedantic-errors -Werror'
+     std = '' if is_openbsd else '-std=c11'
+     sanitize_flag = ' '.join(sanitize_args)
+-    march = '-march=native' if native_optimizations else ''
+     cflags_ = os.environ.get(
+         'OVERRIDE_CFLAGS', (
+             f'-Wextra {float_conversion} -Wno-missing-field-initializers 
-Wall -Wstrict-prototypes {std}'
+-            f' {werror} {optimize} {sanitize_flag} -fwrapv {stack_protector} 
{missing_braces}'
+-            f' -pipe {march} -fvisibility=hidden {fortify_source}'
++            f' {werror} {sanitize_flag} -fwrapv {stack_protector} 
{missing_braces}'
++            f' -pipe -fvisibility=hidden {fortify_source}'
          )
      )
-@@ -292,7 +291,7 @@ def init_env(
+     cflags = shlex.split(cflags_) + shlex.split(
+@@ -317,7 +315,7 @@ def init_env(
      )
      ldflags_ = os.environ.get(
          'OVERRIDE_LDFLAGS',
@@ -39,16 +38,7 @@ Index: setup.py
      )
      ldflags = shlex.split(ldflags_)
      ldflags.append('-shared')
-@@ -344,6 +343,8 @@ def kitty_env() -> Env:
-     cppflags.append('-DSECONDARY_VERSION={}'.format(version[1]))
-     at_least_version('harfbuzz', 1, 5)
-     cflags.extend(pkg_config('libpng', '--cflags-only-I'))
-+    cflags.extend(pkg_config('libcanberra', '--cflags-only-I'))
-+    ans.ldpaths += pkg_config('libcanberra', '--libs')
-     cflags.extend(pkg_config('lcms2', '--cflags-only-I'))
-     if is_macos:
-         platform_libs = [
-@@ -762,8 +763,6 @@ def build_launcher(args: Options, launcher_dir: str = 
+@@ -805,8 +803,6 @@ def build_launcher(args: Options, launcher_dir: str = 
              cflags.append('-g')
          if args.profile:
              libs.append('-lprofiler')
@@ -57,12 +47,12 @@ Index: setup.py
      if bundle_type.endswith('-freeze'):
          cppflags.append('-DFOR_BUNDLE')
          cppflags.append('-DPYVER="{}"'.format(sysconfig.get_python_version()))
-@@ -800,7 +799,7 @@ def build_launcher(args: Options, launcher_dir: str = 
+@@ -845,7 +841,7 @@ def build_launcher(args: Options, launcher_dir: str = 
  
  
  def copy_man_pages(ddir: str) -> None:
 -    mandir = os.path.join(ddir, 'share', 'man')
 +    mandir = os.path.join(ddir, 'man')
      safe_makedirs(mandir)
+     man_levels = '15'
      with suppress(FileNotFoundError):
-         shutil.rmtree(os.path.join(mandir, 'man1'))
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/x11/kitty/pkg/PLIST,v
retrieving revision 1.3
diff -u -p -r1.3 PLIST
--- pkg/PLIST   1 Jan 2021 16:00:46 -0000       1.3
+++ pkg/PLIST   23 Aug 2021 12:55:24 -0000
@@ -44,7 +44,11 @@ lib/kitty/kittens/choose/${MODPY_PYCACHE
 
lib/kitty/kittens/choose/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kittens/choose/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kittens/choose/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/choose/${MODPY_PYCACHE}match.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/choose/${MODPY_PYCACHE}match.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/choose/${MODPY_PYCACHE}match.${MODPY_PYC_MAGIC_TAG}pyc
 lib/kitty/kittens/choose/main.py
+lib/kitty/kittens/choose/match.py
 @so lib/kitty/kittens/choose/subseq_matcher.so
 lib/kitty/kittens/clipboard/
 lib/kitty/kittens/clipboard/__init__.py
@@ -68,9 +72,6 @@ lib/kitty/kittens/diff/${MODPY_PYCACHE}c
 
lib/kitty/kittens/diff/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kittens/diff/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kittens/diff/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}pyc
-lib/kitty/kittens/diff/${MODPY_PYCACHE}config_data.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/kitty/kittens/diff/${MODPY_PYCACHE}config_data.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
-lib/kitty/kittens/diff/${MODPY_PYCACHE}config_data.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/kitty/kittens/diff/${MODPY_PYCACHE}highlight.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/kitty/kittens/diff/${MODPY_PYCACHE}highlight.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kittens/diff/${MODPY_PYCACHE}highlight.${MODPY_PYC_MAGIC_TAG}pyc
@@ -88,10 +89,31 @@ lib/kitty/kittens/diff/${MODPY_PYCACHE}s
 lib/kitty/kittens/diff/${MODPY_PYCACHE}search.${MODPY_PYC_MAGIC_TAG}pyc
 lib/kitty/kittens/diff/collect.py
 lib/kitty/kittens/diff/config.py
-lib/kitty/kittens/diff/config_data.py
 @so lib/kitty/kittens/diff/diff_speedup.so
 lib/kitty/kittens/diff/highlight.py
 lib/kitty/kittens/diff/main.py
+lib/kitty/kittens/diff/options/
+lib/kitty/kittens/diff/options/__init__.py
+${MODPY_COMMENT}lib/kitty/kittens/diff/options/${MODPY_PYCACHE}/
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}definition.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}definition.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}definition.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}parse.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}parse.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}parse.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/diff/options/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/diff/options/definition.py
+lib/kitty/kittens/diff/options/parse.py
+lib/kitty/kittens/diff/options/types.py
+lib/kitty/kittens/diff/options/utils.py
 lib/kitty/kittens/diff/patch.py
 lib/kitty/kittens/diff/render.py
 lib/kitty/kittens/diff/search.py
@@ -129,16 +151,6 @@ lib/kitty/kittens/icat/${MODPY_PYCACHE}m
 lib/kitty/kittens/icat/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kittens/icat/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}pyc
 lib/kitty/kittens/icat/main.py
-lib/kitty/kittens/key_demo/
-lib/kitty/kittens/key_demo/__init__.py
-${MODPY_COMMENT}lib/kitty/kittens/key_demo/${MODPY_PYCACHE}/
-lib/kitty/kittens/key_demo/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/kitty/kittens/key_demo/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
-lib/kitty/kittens/key_demo/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
-lib/kitty/kittens/key_demo/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/kitty/kittens/key_demo/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
-lib/kitty/kittens/key_demo/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}pyc
-lib/kitty/kittens/key_demo/main.py
 lib/kitty/kittens/panel/
 lib/kitty/kittens/panel/__init__.py
 ${MODPY_COMMENT}lib/kitty/kittens/panel/${MODPY_PYCACHE}/
@@ -190,16 +202,48 @@ lib/kitty/kittens/show_error/${MODPY_PYC
 
lib/kitty/kittens/show_error/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kittens/show_error/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}pyc
 lib/kitty/kittens/show_error/main.py
+lib/kitty/kittens/show_key/
+lib/kitty/kittens/show_key/__init__.py
+${MODPY_COMMENT}lib/kitty/kittens/show_key/${MODPY_PYCACHE}/
+lib/kitty/kittens/show_key/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/show_key/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/show_key/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/show_key/${MODPY_PYCACHE}kitty_mode.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/show_key/${MODPY_PYCACHE}kitty_mode.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/show_key/${MODPY_PYCACHE}kitty_mode.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/show_key/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/show_key/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/show_key/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/show_key/kitty_mode.py
+lib/kitty/kittens/show_key/main.py
 lib/kitty/kittens/ssh/
 lib/kitty/kittens/ssh/__init__.py
 ${MODPY_COMMENT}lib/kitty/kittens/ssh/${MODPY_PYCACHE}/
 
lib/kitty/kittens/ssh/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kittens/ssh/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kittens/ssh/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/ssh/${MODPY_PYCACHE}completion.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/ssh/${MODPY_PYCACHE}completion.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/ssh/${MODPY_PYCACHE}completion.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/kitty/kittens/ssh/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kittens/ssh/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kittens/ssh/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/ssh/completion.py
 lib/kitty/kittens/ssh/main.py
+lib/kitty/kittens/themes/
+lib/kitty/kittens/themes/__init__.py
+${MODPY_COMMENT}lib/kitty/kittens/themes/${MODPY_PYCACHE}/
+lib/kitty/kittens/themes/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/themes/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/themes/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/themes/${MODPY_PYCACHE}collection.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/themes/${MODPY_PYCACHE}collection.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/themes/${MODPY_PYCACHE}collection.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/themes/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kittens/themes/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kittens/themes/${MODPY_PYCACHE}main.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kittens/themes/collection.py
+lib/kitty/kittens/themes/main.py
 lib/kitty/kittens/tui/
 lib/kitty/kittens/tui/__init__.py
 ${MODPY_COMMENT}lib/kitty/kittens/tui/${MODPY_PYCACHE}/
@@ -259,6 +303,9 @@ ${MODPY_COMMENT}lib/kitty/kitty/${MODPY_
 
lib/kitty/kitty/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/${MODPY_PYCACHE}actions.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/${MODPY_PYCACHE}actions.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/${MODPY_PYCACHE}actions.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/kitty/kitty/${MODPY_PYCACHE}borders.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/${MODPY_PYCACHE}borders.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/${MODPY_PYCACHE}borders.${MODPY_PYC_MAGIC_TAG}pyc
@@ -286,12 +333,12 @@ lib/kitty/kitty/${MODPY_PYCACHE}complete
 
lib/kitty/kitty/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}pyc
-lib/kitty/kitty/${MODPY_PYCACHE}config_data.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/kitty/kitty/${MODPY_PYCACHE}config_data.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
-lib/kitty/kitty/${MODPY_PYCACHE}config_data.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/kitty/kitty/${MODPY_PYCACHE}constants.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/${MODPY_PYCACHE}constants.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/${MODPY_PYCACHE}constants.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/${MODPY_PYCACHE}debug_config.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/${MODPY_PYCACHE}debug_config.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/${MODPY_PYCACHE}debug_config.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/kitty/kitty/${MODPY_PYCACHE}guess_mime_type.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/${MODPY_PYCACHE}guess_mime_type.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/${MODPY_PYCACHE}guess_mime_type.${MODPY_PYC_MAGIC_TAG}pyc
@@ -322,9 +369,6 @@ lib/kitty/kitty/${MODPY_PYCACHE}notify.$
 
lib/kitty/kitty/${MODPY_PYCACHE}open_actions.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/${MODPY_PYCACHE}open_actions.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/${MODPY_PYCACHE}open_actions.${MODPY_PYC_MAGIC_TAG}pyc
-lib/kitty/kitty/${MODPY_PYCACHE}options_stub.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/kitty/kitty/${MODPY_PYCACHE}options_stub.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
-lib/kitty/kitty/${MODPY_PYCACHE}options_stub.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/kitty/kitty/${MODPY_PYCACHE}os_window_size.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/${MODPY_PYCACHE}os_window_size.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/${MODPY_PYCACHE}os_window_size.${MODPY_PYC_MAGIC_TAG}pyc
@@ -349,6 +393,9 @@ lib/kitty/kitty/${MODPY_PYCACHE}tabs.${M
 
lib/kitty/kitty/${MODPY_PYCACHE}terminfo.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/${MODPY_PYCACHE}terminfo.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/${MODPY_PYCACHE}terminfo.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/kitty/kitty/${MODPY_PYCACHE}typing.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/${MODPY_PYCACHE}typing.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/${MODPY_PYCACHE}typing.${MODPY_PYC_MAGIC_TAG}pyc
@@ -364,6 +411,7 @@ lib/kitty/kitty/${MODPY_PYCACHE}window.$
 
lib/kitty/kitty/${MODPY_PYCACHE}window_list.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/${MODPY_PYCACHE}window_list.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/${MODPY_PYCACHE}window_list.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/actions.py
 lib/kitty/kitty/bgimage_fragment.glsl
 lib/kitty/kitty/bgimage_vertex.glsl
 lib/kitty/kitty/blit_fragment.glsl
@@ -386,17 +434,21 @@ ${MODPY_COMMENT}lib/kitty/kitty/conf/${M
 
lib/kitty/kitty/conf/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/conf/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/conf/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
-lib/kitty/kitty/conf/${MODPY_PYCACHE}definition.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/kitty/kitty/conf/${MODPY_PYCACHE}definition.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
-lib/kitty/kitty/conf/${MODPY_PYCACHE}definition.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/conf/${MODPY_PYCACHE}generate.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/conf/${MODPY_PYCACHE}generate.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/conf/${MODPY_PYCACHE}generate.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/conf/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/conf/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/conf/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/kitty/kitty/conf/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/conf/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/conf/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
-lib/kitty/kitty/conf/definition.py
+lib/kitty/kitty/conf/generate.py
+lib/kitty/kitty/conf/types.py
 lib/kitty/kitty/conf/utils.py
 lib/kitty/kitty/config.py
-lib/kitty/kitty/config_data.py
 lib/kitty/kitty/constants.py
+lib/kitty/kitty/debug_config.py
 @so lib/kitty/kitty/fast_data_types.so
 lib/kitty/kitty/fonts/
 lib/kitty/kitty/fonts/__init__.py
@@ -473,7 +525,28 @@ lib/kitty/kitty/marks.py
 lib/kitty/kitty/multiprocessing.py
 lib/kitty/kitty/notify.py
 lib/kitty/kitty/open_actions.py
-lib/kitty/kitty/options_stub.py
+lib/kitty/kitty/options/
+lib/kitty/kitty/options/__init__.py
+${MODPY_COMMENT}lib/kitty/kitty/options/${MODPY_PYCACHE}/
+lib/kitty/kitty/options/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/options/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/options/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/options/${MODPY_PYCACHE}definition.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/options/${MODPY_PYCACHE}definition.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/options/${MODPY_PYCACHE}definition.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/options/${MODPY_PYCACHE}parse.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/options/${MODPY_PYCACHE}parse.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/options/${MODPY_PYCACHE}parse.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/options/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/options/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/options/${MODPY_PYCACHE}types.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/options/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/options/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/options/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/options/definition.py
+lib/kitty/kitty/options/parse.py
+lib/kitty/kitty/options/types.py
+lib/kitty/kitty/options/utils.py
 lib/kitty/kitty/os_window_size.py
 lib/kitty/kitty/rc/
 lib/kitty/kitty/rc/__init__.py
@@ -502,6 +575,9 @@ lib/kitty/kitty/rc/${MODPY_PYCACHE}detac
 
lib/kitty/kitty/rc/${MODPY_PYCACHE}disable_ligatures.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/kitty/kitty/rc/${MODPY_PYCACHE}disable_ligatures.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/rc/${MODPY_PYCACHE}disable_ligatures.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/rc/${MODPY_PYCACHE}env.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/rc/${MODPY_PYCACHE}env.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/rc/${MODPY_PYCACHE}env.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/kitty/kitty/rc/${MODPY_PYCACHE}focus_tab.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 lib/kitty/kitty/rc/${MODPY_PYCACHE}focus_tab.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/rc/${MODPY_PYCACHE}focus_tab.${MODPY_PYC_MAGIC_TAG}pyc
@@ -535,6 +611,9 @@ lib/kitty/kitty/rc/${MODPY_PYCACHE}new_w
 
lib/kitty/kitty/rc/${MODPY_PYCACHE}remove_marker.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/kitty/kitty/rc/${MODPY_PYCACHE}remove_marker.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/rc/${MODPY_PYCACHE}remove_marker.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/rc/${MODPY_PYCACHE}resize_os_window.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/rc/${MODPY_PYCACHE}resize_os_window.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/rc/${MODPY_PYCACHE}resize_os_window.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/kitty/kitty/rc/${MODPY_PYCACHE}resize_window.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/kitty/kitty/rc/${MODPY_PYCACHE}resize_window.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
 lib/kitty/kitty/rc/${MODPY_PYCACHE}resize_window.${MODPY_PYC_MAGIC_TAG}pyc
@@ -575,6 +654,7 @@ lib/kitty/kitty/rc/create_marker.py
 lib/kitty/kitty/rc/detach_tab.py
 lib/kitty/kitty/rc/detach_window.py
 lib/kitty/kitty/rc/disable_ligatures.py
+lib/kitty/kitty/rc/env.py
 lib/kitty/kitty/rc/focus_tab.py
 lib/kitty/kitty/rc/focus_window.py
 lib/kitty/kitty/rc/get_colors.py
@@ -586,6 +666,7 @@ lib/kitty/kitty/rc/launch.py
 lib/kitty/kitty/rc/ls.py
 lib/kitty/kitty/rc/new_window.py
 lib/kitty/kitty/rc/remove_marker.py
+lib/kitty/kitty/rc/resize_os_window.py
 lib/kitty/kitty/rc/resize_window.py
 lib/kitty/kitty/rc/scroll_window.py
 lib/kitty/kitty/rc/send_text.py
@@ -606,6 +687,7 @@ lib/kitty/kitty/tabs.py
 lib/kitty/kitty/terminfo.py
 lib/kitty/kitty/tint_fragment.glsl
 lib/kitty/kitty/tint_vertex.glsl
+lib/kitty/kitty/types.py
 lib/kitty/kitty/typing.py
 lib/kitty/kitty/update_check.py
 lib/kitty/kitty/utils.py
@@ -614,8 +696,8 @@ lib/kitty/kitty/window_list.py
 lib/kitty/logo/
 lib/kitty/logo/beam-cursor.png
 lib/kitty/logo/beam-cur...@2x.png
+lib/kitty/logo/kitty-128.png
 lib/kitty/logo/kitty.png
-lib/kitty/logo/kitty.rgba
 lib/kitty/terminfo/
 lib/kitty/terminfo/x/
 lib/kitty/terminfo/x/xterm-kitty
@@ -639,19 +721,25 @@ share/doc/kitty/html/_images/screenshot.
 share/doc/kitty/html/_images/splits.png
 share/doc/kitty/html/_images/unicode.png
 share/doc/kitty/html/_sources/
+share/doc/kitty/html/_sources/actions.rst.txt
 share/doc/kitty/html/_sources/binary.rst.txt
 share/doc/kitty/html/_sources/build.rst.txt
 share/doc/kitty/html/_sources/changelog.rst.txt
+share/doc/kitty/html/_sources/clipboard.rst.txt
+share/doc/kitty/html/_sources/color-stack.rst.txt
 share/doc/kitty/html/_sources/conf.rst.txt
+share/doc/kitty/html/_sources/deccara.rst.txt
+share/doc/kitty/html/_sources/desktop-notifications.rst.txt
 share/doc/kitty/html/_sources/faq.rst.txt
 share/doc/kitty/html/_sources/generated/
 share/doc/kitty/html/_sources/generated/launch.rst.txt
 share/doc/kitty/html/_sources/generated/rc.rst.txt
+share/doc/kitty/html/_sources/glossary.rst.txt
 share/doc/kitty/html/_sources/graphics-protocol.rst.txt
 share/doc/kitty/html/_sources/index.rst.txt
 share/doc/kitty/html/_sources/integrations.rst.txt
 share/doc/kitty/html/_sources/invocation.rst.txt
-share/doc/kitty/html/_sources/key-encoding.rst.txt
+share/doc/kitty/html/_sources/keyboard-protocol.rst.txt
 share/doc/kitty/html/_sources/kittens/
 share/doc/kitty/html/_sources/kittens/broadcast.rst.txt
 share/doc/kitty/html/_sources/kittens/clipboard.rst.txt
@@ -663,49 +751,78 @@ share/doc/kitty/html/_sources/kittens/ic
 share/doc/kitty/html/_sources/kittens/panel.rst.txt
 share/doc/kitty/html/_sources/kittens/query_terminal.rst.txt
 share/doc/kitty/html/_sources/kittens/remote_file.rst.txt
+share/doc/kitty/html/_sources/kittens/themes.rst.txt
 share/doc/kitty/html/_sources/kittens/unicode-input.rst.txt
+share/doc/kitty/html/_sources/kittens_intro.rst.txt
 share/doc/kitty/html/_sources/launch.rst.txt
 share/doc/kitty/html/_sources/layouts.rst.txt
 share/doc/kitty/html/_sources/marks.rst.txt
 share/doc/kitty/html/_sources/open_actions.rst.txt
+share/doc/kitty/html/_sources/overview.rst.txt
 share/doc/kitty/html/_sources/performance.rst.txt
 share/doc/kitty/html/_sources/pipe.rst.txt
 share/doc/kitty/html/_sources/protocol-extensions.rst.txt
+share/doc/kitty/html/_sources/quickstart.rst.txt
 share/doc/kitty/html/_sources/rc_protocol.rst.txt
 share/doc/kitty/html/_sources/remote-control.rst.txt
+share/doc/kitty/html/_sources/shell-integration.rst.txt
 share/doc/kitty/html/_sources/support.rst.txt
+share/doc/kitty/html/_sources/underlines.rst.txt
+share/doc/kitty/html/_sources/unscroll.rst.txt
 share/doc/kitty/html/_static/
-share/doc/kitty/html/_static/alabaster.css
 share/doc/kitty/html/_static/basic.css
+share/doc/kitty/html/_static/check-solid.svg
+share/doc/kitty/html/_static/clipboard.min.js
+share/doc/kitty/html/_static/copy-button.svg
+share/doc/kitty/html/_static/copybutton.css
+share/doc/kitty/html/_static/copybutton.js
+share/doc/kitty/html/_static/copybutton_funcs.js
 share/doc/kitty/html/_static/custom.css
+share/doc/kitty/html/_static/custom.js
 share/doc/kitty/html/_static/doctools.js
 share/doc/kitty/html/_static/documentation_options.js
 share/doc/kitty/html/_static/file.png
-share/doc/kitty/html/_static/jquery-3.4.1.js
 share/doc/kitty/html/_static/jquery-3.5.1.js
 share/doc/kitty/html/_static/jquery.js
-share/doc/kitty/html/_static/kitty.png
+share/doc/kitty/html/_static/kitty.svg
 share/doc/kitty/html/_static/language_data.js
 share/doc/kitty/html/_static/minus.png
 share/doc/kitty/html/_static/plus.png
 share/doc/kitty/html/_static/pygments.css
+share/doc/kitty/html/_static/pygments_dark.css
+share/doc/kitty/html/_static/scripts/
+share/doc/kitty/html/_static/scripts/main.js
+share/doc/kitty/html/_static/scripts/main.js.map
 share/doc/kitty/html/_static/searchtools.js
-share/doc/kitty/html/_static/underscore-1.3.1.js
+share/doc/kitty/html/_static/styles/
+share/doc/kitty/html/_static/styles/furo-extensions.css
+share/doc/kitty/html/_static/styles/furo-extensions.css.map
+share/doc/kitty/html/_static/styles/furo.css
+share/doc/kitty/html/_static/styles/furo.css.map
+share/doc/kitty/html/_static/tabs.css
+share/doc/kitty/html/_static/tabs.js
+share/doc/kitty/html/_static/underscore-1.13.1.js
 share/doc/kitty/html/_static/underscore.js
+share/doc/kitty/html/actions.html
 share/doc/kitty/html/binary.html
 share/doc/kitty/html/build.html
 share/doc/kitty/html/changelog.html
+share/doc/kitty/html/clipboard.html
+share/doc/kitty/html/color-stack.html
 share/doc/kitty/html/conf.html
+share/doc/kitty/html/deccara.html
+share/doc/kitty/html/desktop-notifications.html
 share/doc/kitty/html/faq.html
 share/doc/kitty/html/generated/
 share/doc/kitty/html/generated/launch.html
 share/doc/kitty/html/generated/rc.html
 share/doc/kitty/html/genindex.html
+share/doc/kitty/html/glossary.html
 share/doc/kitty/html/graphics-protocol.html
 share/doc/kitty/html/index.html
 share/doc/kitty/html/integrations.html
 share/doc/kitty/html/invocation.html
-share/doc/kitty/html/key-encoding.html
+share/doc/kitty/html/keyboard-protocol.html
 share/doc/kitty/html/kittens/
 share/doc/kitty/html/kittens/broadcast.html
 share/doc/kitty/html/kittens/clipboard.html
@@ -717,21 +834,29 @@ share/doc/kitty/html/kittens/icat.html
 share/doc/kitty/html/kittens/panel.html
 share/doc/kitty/html/kittens/query_terminal.html
 share/doc/kitty/html/kittens/remote_file.html
+share/doc/kitty/html/kittens/themes.html
 share/doc/kitty/html/kittens/unicode-input.html
+share/doc/kitty/html/kittens_intro.html
 share/doc/kitty/html/launch.html
 share/doc/kitty/html/layouts.html
 share/doc/kitty/html/marks.html
 share/doc/kitty/html/objects.inv
 share/doc/kitty/html/open_actions.html
+share/doc/kitty/html/overview.html
 share/doc/kitty/html/performance.html
 share/doc/kitty/html/pipe.html
 share/doc/kitty/html/protocol-extensions.html
+share/doc/kitty/html/quickstart.html
 share/doc/kitty/html/rc_protocol.html
 share/doc/kitty/html/remote-control.html
 share/doc/kitty/html/search.html
 share/doc/kitty/html/searchindex.js
+share/doc/kitty/html/shell-integration.html
 share/doc/kitty/html/support.html
+share/doc/kitty/html/underlines.html
+share/doc/kitty/html/unscroll.html
 share/icons/hicolor/256x256/apps/kitty.png
+share/icons/hicolor/scalable/apps/kitty.svg
 share/terminfo/
 share/terminfo/x/
 share/terminfo/x/xterm-kitty

Reply via email to