On Mon, 23 Aug 2021, Thomas Frohwein wrote:
> 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.
Weird, I've been using it since I sent it and I got the bell sound.
But you know better the port so I'm ok with that.
> > 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!
ok paco@
If you don't commit it in a few days I'll do :-)
> 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/[email protected]
> +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
>
--
Paco Esteban.
0x5818130B8A6DBC03