kittypatch-flake/bold_is_bright.patch

850 lines
51 KiB
Diff

diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index c64877153..ed2930008 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,4 +1,2 @@
-github: kovidgoyal
-patreon: kovidgoyal
-liberapay: kovidgoyal
+custom: https://my.fsf.org/donate
custom: https://sw.kovidgoyal.net/kitty/support.html
diff --git a/README.asciidoc b/README.asciidoc
deleted file mode 100644
index 5a24555ee..000000000
--- a/README.asciidoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= kitty - the fast, feature-rich, cross-platform, GPU based terminal
-
-See https://sw.kovidgoyal.net/kitty/[the kitty website].
-
-image:https://github.com/kovidgoyal/kitty/workflows/CI/badge.svg["Build status", link="https://github.com/kovidgoyal/kitty/actions?query=workflow%3ACI"]
-
-https://sw.kovidgoyal.net/kitty/faq/[Frequently Asked Questions]
-
-To ask other questions about kitty usage, use either the https://github.com/kovidgoyal/kitty/discussions/[discussions on GitHub] or the
-https://www.reddit.com/r/KittyTerminal[Reddit community]
-
-Packaging status in various repositories:
-
-image:https://repology.org/badge/vertical-allrepos/kitty.svg["Packaging status", link="https://repology.org/project/kitty/versions"]
diff --git a/README.md b/README.md
new file mode 100644
index 000000000..d02f48469
--- /dev/null
+++ b/README.md
@@ -0,0 +1,49 @@
+<h2 align="center">
+<img width=250 src="https://user-images.githubusercontent.com/77276095/148646711-f28c04fe-a8ec-45d1-b292-50d60e507dad.png" alt="kittypatch-logo"/>
+
+KittyPatch
+
+<sup><sup><sup><sup>
+<i>forked from <a href="https://github.com/kovidgoyal/kitty/">kitty</a></i>
+</sup></sup></sup></sup>
+</h2>
+
+<p align="center">
+<br/>
+A blazingly fast <b>GPU based</b> terminal emulator.
+</p>
+
+<p align="center">
+<sup>(With added extras)</sup>
+</p>
+
+
+---
+<!-- <br/> -->
+<!-- <p align="center"> -->
+<!-- <a href="https://github.com/KittyPatch/kitty/actions?query=workflow%3ACI"> -->
+<!-- <img src="https://img.shields.io/github/workflow/status/KittyPatch/kitty/CI?style=flat&colorA=000000&colorB=555555"/> -->
+<!-- </a> -->
+<!-- </p> -->
+<!-- <br/> -->
+
+<h3 align="center">
+Sneak Peek &darr;
+</h3>
+
+<p align="center">
+<img width="700" src="https://user-images.githubusercontent.com/77276095/148646770-94747a3e-402a-4603-84d0-7062599c8bd3.png"/><br/>
+<sup>KittyPatch adds the <code>bold_is_bright</code> config option, which kitty <a href="https://github.com/kovidgoyal/kitty/issues/135#issuecomment-333373766">does not</a> <a href="https://github.com/kovidgoyal/kitty/issues/512#issuecomment-385871207">and will likely never</a> support!</sup>
+</p>
+
+---
+
+<h3 align="center">
+Instructions &darr;
+</h3>
+<br/>
+
+<p align="center">
+For now, you'll need to build the latest <code>master</code> branch from source.<br/>
+<br/>
+</p>
diff --git a/current-version.txt b/current-version.txt
new file mode 100644
index 000000000..918820be2
--- /dev/null
+++ b/current-version.txt
@@ -0,0 +1 @@
+0.19.3
\ No newline at end of file
diff --git a/docs/binary.rst b/docs/binary.rst
index 4b60736fe..1d8c4a667 100644
--- a/docs/binary.rst
+++ b/docs/binary.rst
@@ -31,7 +31,7 @@ Manually installing
If something goes wrong or you simply do not want to run the installer, you can
manually download and install |kitty| from the `GitHub releases page
-<https://github.com/kovidgoyal/kitty/releases>`__. If you are on macOS, download
+<https://github.com/KittyPatch/kitty/releases>`__. If you are on macOS, download
the :file:`.dmg` and install as normal. If you are on Linux, download the
tarball and extract it into a directory. The |kitty| executable will be in the
:file:`bin` sub-directory.
diff --git a/docs/build.rst b/docs/build.rst
index 6f515ea81..fcf25a94e 100644
--- a/docs/build.rst
+++ b/docs/build.rst
@@ -1,9 +1,9 @@
Build from source
==================
-.. image:: https://github.com/kovidgoyal/kitty/workflows/CI/badge.svg
+.. image:: https://github.com/KittyPatch/kitty/workflows/CI/badge.svg
:alt: Build status
- :target: https://github.com/kovidgoyal/kitty/actions?query=workflow%3ACI
+ :target: https://github.com/KittyPatch/kitty/actions?query=workflow%3ACI
.. highlight:: sh
@@ -154,7 +154,7 @@ Notes for Linux/macOS packagers
----------------------------------
The released |kitty| source code is available as a `tarball`_ from
-`the GitHub releases page <https://github.com/kovidgoyal/kitty/releases>`__.
+`the GitHub releases page <https://github.com/KittyPatch/kitty/releases>`__.
While |kitty| does use Python, it is not a traditional Python package, so please
do not install it in site-packages.
diff --git a/docs/conf.py b/docs/conf.py
index 721ce7d60..ac1a6c78e 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -33,8 +33,8 @@
# -- Project information -----------------------------------------------------
project = 'kitty'
-copyright = time.strftime('%Y, Kovid Goyal')
-author = 'Kovid Goyal'
+copyright = time.strftime('%Y, Kovid Goyal, KittyPatch')
+author = 'Kovid Goyal, KittyPatch'
building_man_pages = 'man' in sys.argv
# The short X.Y version
@@ -100,7 +100,7 @@
rst_prolog = '''
.. |kitty| replace:: *kitty*
.. |version| replace:: VERSION
-.. _tarball: https://github.com/kovidgoyal/kitty/releases/download/vVERSION/kitty-VERSION.tar.xz
+.. _tarball: https://github.com/KittyPatch/kitty/releases/download/vVERSION/kitty-VERSION.tar.xz
.. role:: italic
'''.replace('VERSION', str_version)
@@ -215,7 +215,7 @@ def commit_role(
f'GitHub commit id "{text}" not recognized.', line=lineno)
prb = inliner.problematic(rawtext, rawtext, msg)
return [prb], [msg]
- url = f'https://github.com/kovidgoyal/kitty/commit/{commit_id}'
+ url = f'https://github.com/KittyPatch/kitty/commit/{commit_id}'
set_classes(options)
short_id = subprocess.check_output(
f'git rev-list --max-count=1 --abbrev-commit --skip=# {commit_id}'.split()).decode('utf-8').strip()
diff --git a/docs/support.rst b/docs/support.rst
index 373714812..c0ff06981 100644
--- a/docs/support.rst
+++ b/docs/support.rst
@@ -1,5 +1,21 @@
+A message from us at KittyPatch
+===============================
+
+KittyPatch was created as a home for useful features that are unavailable
+in the kitty main branch. To this end, we do not accept donations directly.
+
+If you wish to support KittyPatch: share your ideas and spread the word.
+
+If you still wish to donate, please `support the Free Software Foundation
+<https://my.fsf.org/donate>`.
+
+
+
+A message from the maintainer of Kitty
+======================================
Support kitty development ❤️
==============================
+>>>>>>> upstream/master
My goal with |kitty| is to move the stagnant terminal ecosystem forward. To that
end kitty has many foundational features, such as: :doc:`image support
diff --git a/kitty/cell_vertex.glsl b/kitty/cell_vertex.glsl
index 0eda08295..aa84d4d7a 100644
--- a/kitty/cell_vertex.glsl
+++ b/kitty/cell_vertex.glsl
@@ -3,6 +3,7 @@
#define {WHICH_PROGRAM}
#define NOT_TRANSPARENT
+#define BOLD_SHIFT {BOLD_SHIFT}
#define DECORATION_SHIFT {DECORATION_SHIFT}
#define REVERSE_SHIFT {REVERSE_SHIFT}
#define STRIKE_SHIFT {STRIKE_SHIFT}
@@ -17,6 +18,7 @@ layout(std140) uniform CellRenderData {
float xstart, ystart, dx, dy, sprite_dx, sprite_dy, background_opacity, use_cell_bg_for_selection_fg, use_cell_fg_for_selection_fg, use_cell_for_selection_bg;
uint default_fg, default_bg, highlight_fg, highlight_bg, cursor_fg, cursor_bg, url_color, url_style, inverted;
+ uint bold_is_bright;
uint xnum, ynum, cursor_fg_sprite_idx;
float cursor_x, cursor_y, cursor_w;
@@ -93,6 +95,22 @@ vec3 color_to_vec(uint c) {
return vec3(gamma_lut[r], gamma_lut[g], gamma_lut[b]);
}
+uint byte_to_bool(uint n) {
+ uint n1 = (n >> 1) | n;
+ uint n2 = (n1 >> 2) | n1;
+ uint n3 = (n2 >> 4) | n2;
+ return n3 & 1u;
+}
+
+uint brighten_color(uint c, uint is_bold) {
+ uint table_idx = (c >> 8) & 0xFFu;
+ uint is_table_color = c & 1u;
+ uint is_rgb_color = byte_to_bool(c & 0xFEu);
+ uint is_8bit_color = byte_to_bool(table_idx & 0xF8u);
+ uint should_brighten = bold_is_bright * is_bold * (1u >> (is_rgb_color + is_8bit_color)) * is_table_color;
+ return c | (0x800u * should_brighten);
+}
+
uint resolve_color(uint c, uint defval) {
// Convert a cell color to an actual color based on the color table
int t = int(c & BYTE_MASK);
@@ -161,6 +179,7 @@ void main() {
// set cell color indices {{{
uvec2 default_colors = uvec2(default_fg, default_bg);
uint text_attrs = sprite_coords[3];
+ uint is_bold = ((text_attrs >> BOLD_SHIFT) & ONE);
uint is_reversed = ((text_attrs >> REVERSE_SHIFT) & ONE);
uint is_inverted = is_reversed + inverted;
int fg_index = fg_index_map[is_inverted];
@@ -170,10 +189,10 @@ void main() {
float cell_has_block_cursor = cell_has_cursor * is_block_cursor;
int mark = int(text_attrs >> MARK_SHIFT) & MARK_MASK;
uint has_mark = uint(step(1, float(mark)));
- uint bg_as_uint = resolve_color(colors[bg_index], default_colors[bg_index]);
+ uint bg_as_uint = resolve_color(brighten_color(colors[bg_index], is_bold), default_colors[bg_index]);
bg_as_uint = has_mark * color_table[NUM_COLORS + mark] + (ONE - has_mark) * bg_as_uint;
vec3 bg = color_to_vec(bg_as_uint);
- uint fg_as_uint = resolve_color(colors[fg_index], default_colors[fg_index]);
+ uint fg_as_uint = resolve_color(brighten_color(colors[fg_index], is_bold), default_colors[fg_index]);
// }}}
// Foreground {{{
diff --git a/kitty/fast_data_types.pyi b/kitty/fast_data_types.pyi
index 5d0b39bea..c4253a4b6 100644
--- a/kitty/fast_data_types.pyi
+++ b/kitty/fast_data_types.pyi
@@ -265,6 +265,7 @@ CELL_FG_PROGRAM: int
CELL_PROGRAM: int
CELL_SPECIAL_PROGRAM: int
CSI: int
+BOLD: int
DCS: int
DECORATION: int
DIM: int
diff --git a/kitty/options/definition.py b/kitty/options/definition.py
index 4a80eadb4..17e003dc2 100644
--- a/kitty/options/definition.py
+++ b/kitty/options/definition.py
@@ -1328,6 +1328,10 @@
)
egr() # }}}
+opt('bold_is_bright', 'no',
+ option_type='to_bool', ctype='bool',
+ long_text='Display bold text with bright colors'
+ )
# colors {{{
agr('colors', 'Color scheme')
diff --git a/kitty/options/parse.py b/kitty/options/parse.py
index d4a607f15..1ce4bfe5a 100644
--- a/kitty/options/parse.py
+++ b/kitty/options/parse.py
@@ -100,6 +100,9 @@ def bell_path(self, val: str, ans: typing.Dict[str, typing.Any]) -> None:
def bold_font(self, val: str, ans: typing.Dict[str, typing.Any]) -> None:
ans['bold_font'] = str(val)
+ def bold_is_bright(self, val: str, ans: typing.Dict[str, typing.Any]) -> None:
+ ans['bold_is_bright'] = to_bool(val)
+
def bold_italic_font(self, val: str, ans: typing.Dict[str, typing.Any]) -> None:
ans['bold_italic_font'] = str(val)
diff --git a/kitty/options/to-c-generated.h b/kitty/options/to-c-generated.h
index c1ea350a2..249ea38e9 100644
--- a/kitty/options/to-c-generated.h
+++ b/kitty/options/to-c-generated.h
@@ -837,6 +837,19 @@ convert_from_opts_dim_opacity(PyObject *py_opts, Options *opts) {
Py_DECREF(ret);
}
+static void
+convert_from_python_bold_is_bright(PyObject *val, Options *opts) {
+ opts->bold_is_bright = PyObject_IsTrue(val);
+}
+
+static void
+convert_from_opts_bold_is_bright(PyObject *py_opts, Options *opts) {
+ PyObject *ret = PyObject_GetAttrString(py_opts, "bold_is_bright");
+ if (ret == NULL) return;
+ convert_from_python_bold_is_bright(ret, opts);
+ Py_DECREF(ret);
+}
+
static void
convert_from_python_mark1_foreground(PyObject *val, Options *opts) {
opts->mark1_foreground = color_as_int(val);
@@ -1188,6 +1201,8 @@ convert_opts_from_python_opts(PyObject *py_opts, Options *opts) {
if (PyErr_Occurred()) return false;
convert_from_opts_dim_opacity(py_opts, opts);
if (PyErr_Occurred()) return false;
+ convert_from_opts_bold_is_bright(py_opts, opts);
+ if (PyErr_Occurred()) return false;
convert_from_opts_mark1_foreground(py_opts, opts);
if (PyErr_Occurred()) return false;
convert_from_opts_mark1_background(py_opts, opts);
diff --git a/kitty/options/types.py b/kitty/options/types.py
index dde02d82f..3ab3b0c65 100644
--- a/kitty/options/types.py
+++ b/kitty/options/types.py
@@ -71,6 +71,7 @@
'bell_on_tab',
'bell_path',
'bold_font',
+ 'bold_is_bright',
'bold_italic_font',
'box_drawing_scale',
'clear_all_mouse_actions',
@@ -490,6 +491,7 @@ class Options:
bell_on_tab: str = '🔔 '
bell_path: typing.Optional[str] = None
bold_font: str = 'auto'
+ bold_is_bright: bool = False
bold_italic_font: str = 'auto'
box_drawing_scale: typing.Tuple[float, float, float, float] = (0.001, 1.0, 1.5, 2.0)
clear_all_mouse_actions: bool = False
diff --git a/kitty/shaders.c b/kitty/shaders.c
index b5e86f479..cd0062975 100644
--- a/kitty/shaders.c
+++ b/kitty/shaders.c
@@ -303,6 +303,7 @@ cell_update_uniform_block(ssize_t vao_idx, Screen *screen, int uniform_buffer, c
GLfloat xstart, ystart, dx, dy, sprite_dx, sprite_dy, background_opacity, use_cell_bg_for_selection_fg, use_cell_fg_for_selection_color, use_cell_for_selection_bg;
GLuint default_fg, default_bg, highlight_fg, highlight_bg, cursor_fg, cursor_bg, url_color, url_style, inverted;
+ GLuint bold_is_bright;
GLuint xnum, ynum, cursor_fg_sprite_idx;
GLfloat cursor_x, cursor_y, cursor_w;
@@ -374,6 +375,7 @@ cell_update_uniform_block(ssize_t vao_idx, Screen *screen, int uniform_buffer, c
rd->sprite_dx = 1.0f / (float)x; rd->sprite_dy = 1.0f / (float)y;
rd->inverted = inverted ? 1 : 0;
rd->background_opacity = os_window->is_semi_transparent ? os_window->background_opacity : 1.0f;
+ rd->bold_is_bright = OPT(bold_is_bright) ? 1 : 0;
#undef COLOR
rd->url_color = OPT(url_color); rd->url_style = OPT(url_style);
diff --git a/kitty/state.c b/kitty/state.c
index d06767266..f08b8bd3e 100644
--- a/kitty/state.c
+++ b/kitty/state.c
@@ -1130,6 +1130,7 @@ PYWRAP1(patch_global_colors) {
P(background); P(url_color);
P(mark1_background); P(mark1_foreground); P(mark2_background); P(mark2_foreground);
P(mark3_background); P(mark3_foreground);
+ P(bold_is_bright);
}
if (PyErr_Occurred()) return NULL;
Py_RETURN_NONE;
diff --git a/kitty/state.h b/kitty/state.h
index 454aa90d0..7353f5197 100644
--- a/kitty/state.h
+++ b/kitty/state.h
@@ -39,6 +39,7 @@ typedef struct {
char_type *select_by_word_characters_forward;
color_type url_color, background, foreground, active_border_color, inactive_border_color, bell_border_color, tab_bar_background, tab_bar_margin_color;
color_type mark1_foreground, mark1_background, mark2_foreground, mark2_background, mark3_foreground, mark3_background;
+ bool bold_is_bright;
monotonic_t repaint_delay, input_delay;
bool focus_follows_mouse;
unsigned int hide_window_decorations;
diff --git a/kitty/window.py b/kitty/window.py
index 959931877..b2017423a 100644
--- a/kitty/window.py
+++ b/kitty/window.py
@@ -44,6 +44,7 @@
from .fast_data_types import (
BGIMAGE_PROGRAM,
BLIT_PROGRAM,
+ BOLD,
CELL_BG_PROGRAM,
CELL_FG_PROGRAM,
CELL_PROGRAM,
@@ -392,6 +393,7 @@ def __call__(self, semi_transparent: bool = False) -> None:
STRIKE_SHIFT=STRIKETHROUGH,
DIM_SHIFT=DIM,
DECORATION_SHIFT=DECORATION,
+ BOLD_SHIFT=BOLD,
MARK_SHIFT=MARK,
MARK_MASK=MARK_MASK,
DECORATION_MASK=DECORATION_MASK,
diff --git a/logo/kitty-framed.svg b/logo/kitty-framed.svg
index 310ea8a29..461f08320 100644
--- a/logo/kitty-framed.svg
+++ b/logo/kitty-framed.svg
@@ -1 +1,195 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" fill="none" viewBox="0 0 1024 1024"><g filter="url(#filter0_d)"><rect width="824" height="824" x="100" y="100" fill="#fff" rx="184"/><rect width="824" height="824" x="100" y="100" fill="url(#paint0_linear)" rx="184"/></g><path fill="#DDD" d="M681.218 251.015H362.14V764.198H681.218V251.015Z"/><path fill="#000" d="M346.486 821.466H677.514C680.462 821.466 683.38 820.885 686.103 819.757C688.826 818.63 691.3 816.977 693.384 814.893C695.468 812.809 697.121 810.334 698.249 807.611C699.377 804.889 699.957 801.97 699.957 799.023V467.995C699.957 465.047 699.377 462.129 698.249 459.406C697.121 456.683 695.468 454.209 693.384 452.125C691.3 450.041 688.826 448.388 686.103 447.26C683.38 446.133 680.462 445.552 677.514 445.552H346.486C343.539 445.552 340.62 446.133 337.897 447.26C335.175 448.388 332.7 450.041 330.616 452.125C328.533 454.209 326.879 456.683 325.752 459.406C324.624 462.129 324.043 465.047 324.043 467.995V799.023C324.043 801.97 324.624 804.889 325.752 807.611C326.879 810.334 328.532 812.809 330.616 814.893C332.7 816.977 335.175 818.63 337.897 819.757C340.62 820.885 343.539 821.466 346.486 821.466V821.466ZM523.782 699.647H642.728C646.3 699.647 649.725 701.066 652.25 703.591C654.775 706.117 656.194 709.542 656.194 713.113C656.194 716.684 654.775 720.109 652.25 722.634C649.725 725.16 646.3 726.578 642.728 726.578H523.782C520.211 726.578 516.786 725.16 514.261 722.634C511.736 720.109 510.317 716.684 510.317 713.113C510.317 709.542 511.736 706.117 514.261 703.591C516.786 701.066 520.211 699.647 523.782 699.647V699.647ZM380.733 554.444C378.355 551.891 377.06 548.515 377.121 545.026C377.183 541.538 378.596 538.209 381.063 535.742C383.53 533.275 386.859 531.862 390.347 531.8C393.836 531.739 397.212 533.034 399.765 535.412L483.879 619.482C486.401 622.007 487.818 625.43 487.818 628.998C487.818 632.566 486.401 635.989 483.879 638.514L399.765 722.629C397.212 725.007 393.836 726.302 390.347 726.24C386.859 726.179 383.53 724.766 381.063 722.298C378.596 719.831 377.183 716.503 377.121 713.015C377.06 709.526 378.355 706.15 380.733 703.597L455.332 628.998L380.733 554.444Z"/><path fill="#C0C81F" fill-rule="evenodd" d="M436.033 403.534C442.009 403.534 446.789 392.18 446.789 377.582C446.789 362.984 442.009 351.63 436.033 351.63C430.058 351.63 425.278 362.984 425.278 377.582C425.278 392.18 430.058 403.534 436.033 403.534Z" clip-rule="evenodd"/><path fill="#784421" fill-rule="evenodd" d="M744.298 208.945C729.7 193.536 663.199 212.189 622.65 237.329C591.021 221.11 552.905 211.378 512.355 211.378C470.995 211.378 432.878 221.11 401.249 237.329C360.7 212.189 293.388 192.725 279.601 208.945C265.003 225.165 290.144 292.477 320.151 329.782C317.718 339.514 316.096 349.246 316.096 359.789C316.096 392.228 329.882 422.235 353.401 446.565H487.214C483.159 438.455 488.836 433.589 513.166 433.589C537.496 434.4 542.362 438.455 539.118 446.565H672.931C696.45 422.235 710.236 391.417 710.236 359.789C710.236 349.246 708.615 339.514 706.182 329.782C734.566 292.477 758.896 224.354 744.298 208.945V208.945ZM436.122 423.046C407.737 423.046 384.219 399.527 384.219 371.143C384.219 342.758 407.737 319.239 436.122 319.239C464.507 319.239 488.025 342.758 488.025 371.143C488.025 399.527 464.507 423.046 436.122 423.046ZM588.588 423.046C560.203 423.046 536.685 399.527 536.685 371.143C536.685 342.758 560.203 319.239 588.588 319.239C616.973 319.239 640.491 342.758 640.491 371.143C640.491 399.527 617.784 423.046 588.588 423.046Z" clip-rule="evenodd"/><path fill="#2B1100" fill-rule="evenodd" d="M666.088 419.802C714.747 358.978 814.499 329.782 881 371.954C803.145 359.789 732.589 380.063 666.088 419.802Z" clip-rule="evenodd"/><path fill="#2B1100" fill-rule="evenodd" d="M662.844 405.204C690.418 340.325 772.328 298.153 838.018 320.861C769.084 329.782 713.125 356.545 662.844 405.204Z" clip-rule="evenodd"/><path fill="#2B1100" fill-rule="evenodd" d="M662.033 436.833C712.314 388.984 823.42 372.765 857.482 423.046C788.547 401.149 728.534 410.881 662.033 436.833Z" clip-rule="evenodd"/><path fill="#2B1100" fill-rule="evenodd" d="M357.912 419.802C309.253 358.978 209.501 329.782 143 371.954C220.855 359.789 291.411 380.063 357.912 419.802Z" clip-rule="evenodd"/><path fill="#2B1100" fill-rule="evenodd" d="M361.156 405.204C333.583 340.325 251.673 298.153 185.982 320.861C254.917 329.782 310.875 356.545 361.156 405.204Z" clip-rule="evenodd"/><path fill="#2B1100" fill-rule="evenodd" d="M361.967 436.833C311.686 388.984 200.58 372.765 166.519 423.046C235.453 401.149 295.466 410.881 361.967 436.833Z" clip-rule="evenodd"/><path fill="#483737" fill-rule="evenodd" d="M297.899 388.984C277.624 388.984 260.593 399.527 252.484 415.747C251.673 415.747 250.862 415.747 250.051 415.747C228.154 415.747 209.501 431.967 209.501 452.241C209.501 480.626 238.697 496.035 265.459 486.303C281.679 509.822 316.552 511.444 329.528 486.303C348.991 485.492 380.62 482.248 385.486 452.241C388.73 431.967 367.644 415.747 344.936 415.747C344.125 415.747 343.314 415.747 342.503 415.747C336.015 399.527 318.174 388.984 297.899 388.984ZM726.101 388.984C746.376 388.984 763.407 399.527 771.517 415.747C772.328 415.747 762.596 415.747 773.95 415.747C785.303 415.747 814.499 431.967 814.499 452.241C814.499 480.626 785.303 496.035 758.541 486.303C742.321 509.822 707.448 511.444 694.473 486.303C675.009 485.492 643.38 482.248 638.514 452.241C635.27 431.967 667.71 415.747 679.064 415.747C690.418 415.747 680.686 415.747 681.497 415.747C687.985 399.527 705.827 388.984 726.101 388.984Z" clip-rule="evenodd"/><path fill="#C0C81F" fill-rule="evenodd" d="M586.784 403.534C592.759 403.534 597.54 392.18 597.54 377.582C597.54 362.984 592.759 351.63 586.784 351.63C580.809 351.63 576.029 362.984 576.029 377.582C576.029 392.18 580.809 403.534 586.784 403.534Z" clip-rule="evenodd"/><defs><filter id="filter0_d" width="868" height="868" x="78" y="89" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy="11"/><feGaussianBlur stdDeviation="11"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28 0"/><feBlend in2="BackgroundImageFix" mode="normal" result="effect1_dropShadow"/><feBlend in="SourceGraphic" in2="effect1_dropShadow" mode="normal" result="shape"/></filter><linearGradient id="paint0_linear" x1="512" x2="512" y1="100" y2="924" gradientUnits="userSpaceOnUse"><stop stop-opacity="0"/><stop offset="1" stop-opacity=".2"/></linearGradient></defs></svg>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1024"
+ height="1024"
+ viewBox="0 0 1024 1024"
+ fill="none"
+ version="1.1"
+ id="svg443"
+ sodipodi:docname="kitty-framed.svg"
+ inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview445"
+ pagecolor="#505050"
+ bordercolor="#ffffff"
+ borderopacity="1"
+ inkscape:pageshadow="0"
+ inkscape:pageopacity="0"
+ inkscape:pagecheckerboard="1"
+ showgrid="false"
+ inkscape:zoom="0.56148336"
+ inkscape:cx="570.80943"
+ inkscape:cy="425.65821"
+ inkscape:window-width="1800"
+ inkscape:window-height="1028"
+ inkscape:window-x="0"
+ inkscape:window-y="44"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg443" />
+ <g
+ filter="url(#filter0_d)"
+ id="g395">
+ <rect
+ x="100"
+ y="100"
+ width="824"
+ height="824"
+ rx="184"
+ fill="white"
+ id="rect391" />
+ <rect
+ x="100"
+ y="100"
+ width="824"
+ height="824"
+ rx="184"
+ fill="url(#paint0_linear)"
+ id="rect393" />
+ </g>
+ <defs
+ id="defs441">
+ <rect
+ x="477.29936"
+ y="552.66242"
+ width="135.11035"
+ height="215.22603"
+ id="rect2197" />
+ <filter
+ id="filter0_d"
+ x="78"
+ y="89"
+ width="868"
+ height="868"
+ filterUnits="userSpaceOnUse"
+ color-interpolation-filters="sRGB">
+ <feFlood
+ flood-opacity="0"
+ result="BackgroundImageFix"
+ id="feFlood421" />
+ <feColorMatrix
+ in="SourceAlpha"
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
+ id="feColorMatrix423" />
+ <feOffset
+ dy="11"
+ id="feOffset425" />
+ <feGaussianBlur
+ stdDeviation="11"
+ id="feGaussianBlur427" />
+ <feColorMatrix
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28 0"
+ id="feColorMatrix429" />
+ <feBlend
+ mode="normal"
+ in2="BackgroundImageFix"
+ result="effect1_dropShadow"
+ id="feBlend431" />
+ <feBlend
+ mode="normal"
+ in="SourceGraphic"
+ in2="effect1_dropShadow"
+ result="shape"
+ id="feBlend433" />
+ </filter>
+ <linearGradient
+ id="paint0_linear"
+ x1="512"
+ y1="100"
+ x2="512"
+ y2="924"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ stop-opacity="0"
+ id="stop436" />
+ <stop
+ offset="1"
+ stop-opacity="0.2"
+ id="stop438" />
+ </linearGradient>
+ </defs>
+ <g
+ id="g33546"
+ transform="matrix(1.1740137,0,0,1.134103,-91.307538,-64.234096)">
+ <g
+ id="g25744"
+ transform="translate(2.8452301,-4.3005471)">
+ <g
+ id="g25802">
+ <g
+ id="g25786">
+ <path
+ id="path22120"
+ style="fill:#000000;stroke-width:0.566559"
+ d="m 426.98211,506.06021 c 5.84333,88.06513 29.62681,120.49692 5.25211,134.06735 -24.37471,13.57042 -89.68492,-6.9649 -104.78336,-94.10452 -15.09845,-87.13962 -12.1986,-213.28087 12.17611,-226.85131 24.37471,-13.57041 81.49994,98.64454 87.35514,186.88848 z"
+ sodipodi:nodetypes="sssss" />
+ <path
+ id="path22120-6"
+ style="fill:#000000;stroke-width:0.544396"
+ transform="matrix(0.89910957,-0.43772363,0.03633347,0.99933972,0,0)"
+ d="m 744.24025,741.9231 c 9.99148,56.69384 8.85754,142.44031 -22.347,171.06436 -12.88651,11.82084 -13.49832,34.19727 -27.58632,25.66248 -25.90658,-15.69471 -41.73334,-122.96726 -44.95159,-195.01198 -3.42109,-76.5854 25.6488,-120.64348 41.89397,-133.34904 20.88238,-16.33237 38.91785,51.78044 52.99094,131.63418 z"
+ sodipodi:nodetypes="ssssss" />
+ </g>
+ <path
+ id="path23041"
+ style="fill:#000000;stroke-width:1.71035"
+ d="m 701.53741,523.37649 c 0,54.26633 -19.71736,109.20526 -72.91345,135.06929 -27.22483,13.23676 -66.24294,18.05953 -113.57702,20.87934 -48.25981,2.87496 -95.01693,-10.39029 -127.72538,-35.95138 -35.59095,-27.8137 -55.06306,-69.84254 -55.06306,-112.59316 0,-26.34097 8.7253,-48.57974 23.91444,-66.63502 32.11737,-38.17785 88.47004,-82.84254 157.00796,-82.84254 72.83114,0 114.35316,45.24262 145.3487,93.45659 8.29292,12.89974 24.01422,-21.80081 33.94914,-10.87238 4.40202,4.84222 9.05867,52.47276 9.05867,59.48926 z"
+ sodipodi:nodetypes="ssssssssss" />
+ <path
+ id="rect24332"
+ style="fill:#000000;stroke-width:0.920189"
+ d="m 603.98645,564.62193 c 0,0 22.73403,-0.59903 33.98631,0.7381 46.65959,5.54466 138.52023,11.43386 138.52023,11.43386 0,0 10.83935,1.21152 12.22084,17.24249 1.33441,15.48485 -13.78344,13.77385 -13.78344,13.77385 0,0 -61.9486,-0.72794 -148.76379,-14.8072 -7.83161,-1.2701 -24.91835,-15.39059 -24.91835,-15.39059 z"
+ sodipodi:nodetypes="cscscscc" />
+ <path
+ id="rect24332-3"
+ style="fill:#000000;stroke-width:0.920189"
+ d="m 609.65927,563.2842 c 0,0 20.72205,-9.32758 31.56343,-12.62398 14.93321,-4.54056 131.94306,-43.6991 131.94306,-43.6991 0,0 11.85513,-6.3141 17.21119,5.20514 8.72263,18.75971 -6.50844,24.33989 -6.50844,24.33989 0,0 -56.11499,22.01107 -142.68972,44.21266 -7.68526,1.97084 -28.95439,-4.40882 -28.95439,-4.40882 z"
+ sodipodi:nodetypes="cscscscc" />
+ <path
+ id="rect24332-9"
+ style="fill:#000000;stroke-width:0.920189"
+ d="m 595.02402,571.79779 c 0,0 22.26011,5.32047 32.32116,10.5336 86.95228,45.0543 130.86471,49.82252 130.86471,49.82252 0,0 8.45858,3.11835 7.88881,16.51281 -0.66053,15.52819 -16.78547,14.29432 -16.78547,14.29432 0,0 -61.44316,-12.33922 -141.26278,-57.58114 -6.90229,-3.91223 -19.40383,-21.93823 -19.40383,-21.93823 z"
+ sodipodi:nodetypes="cscscscc" />
+ <path
+ id="rect24332-7"
+ style="fill:#000000;stroke-width:0.920189"
+ d="m 416.10713,571.3888 c 0,0 -22.61258,1.85999 -33.78984,3.72297 -50.6939,8.44944 -136.97879,23.5669 -136.97879,23.5669 0,0 -10.69088,2.15972 -10.65774,18.25007 0.032,15.54221 14.94094,12.50882 14.94094,12.50882 0,0 126.30264,-19.10259 146.88614,-27.82769 7.30476,-3.0964 23.46889,-17.52157 23.46889,-17.52157 z"
+ sodipodi:nodetypes="cscscscc" />
+ <path
+ id="rect24332-3-0"
+ style="fill:#000000;stroke-width:0.941521"
+ d="m 419.13475,549.17346 c 0,0 -22.71807,-4.24683 -34.2203,-4.88479 -15.84349,-0.87875 -140.85287,-11.34566 -140.85287,-11.34566 0,0 -13.23378,-3.40755 -15.73301,9.42743 -4.07012,20.90248 12.31917,22.74797 12.31917,22.74797 0,0 60.73379,8.25188 151.5878,9.22351 8.06513,0.0863 27.52034,-11.51118 27.52034,-11.51118 z"
+ sodipodi:nodetypes="cscscscc" />
+ <path
+ id="rect24332-9-0"
+ style="fill:#000000;stroke-width:0.966127"
+ d="m 450.89192,569.8048 c 0,0 -22.42027,6.91381 -32.28396,13.25973 -73.79501,47.4769 -131.49948,64.18633 -131.49948,64.18633 0,0 -7.25356,1.11812 -5.9457,15.56811 1.51621,16.75186 17.84134,14.48471 17.84134,14.48471 0,0 61.79052,-16.89712 140.47226,-70.43403 6.80389,-4.62953 18.53208,-24.84375 18.53208,-24.84375 z"
+ sodipodi:nodetypes="cscscscc" />
+ </g>
+ </g>
+ <g
+ aria-label="$"
+ transform="matrix(2.3047985,0,0,2.3047985,-700.96014,-871.99931)"
+ id="text2195"
+ style="font-size:85.3333px;line-height:1.25;font-family:'Academy Engraved LET';-inkscape-font-specification:'Academy Engraved LET';white-space:pre;shape-inside:url(#rect2197);fill:#f2f2f2">
+ <path
+ d="m 507.59048,582.73322 q 1,0.16667 2.04167,0.45834 1.08333,0.29166 2.29166,0.70833 0.45834,-0.91667 1.20834,-1.375 0.79166,-0.5 1.95833,-0.5 2.04166,0 2.875,1.04167 0.83333,0.99999 0.875,3.66666 l 0.0833,5.125 v 0.25 q 0,2.08333 -1.16667,3.16666 -1.12499,1.08334 -3.33333,1.08334 -1.375,0 -2.16666,-0.54167 -0.75,-0.54167 -1.66667,-2.33333 -1.08333,-2.125 -3,-3.25 -1.875,-1.125 -4.25,-1.125 -3.41666,0 -5.33333,1.45833 -1.91666,1.41667 -1.91666,3.91667 0,1.91666 1.125,3.125 1.125,1.16666 5.16666,2.79166 l 7.75,2.95833 q 5.75,2.29167 8.12499,5.29167 2.375,2.95833 2.375,7.79166 0,6.875 -3.95833,10.54166 -3.91666,3.625 -11.37499,3.625 h -0.25 l -0.54167,9.125 q -0.125,1.875 -1.08333,2.70833 -0.95834,0.875 -3,0.875 -1.70833,0 -2.5,-0.79167 -0.75,-0.79166 -0.75,-2.625 v -0.66666 l 0.625,-9.66666 q -1.41667,-0.25 -2.83333,-0.70834 -1.41667,-0.5 -2.91667,-1.25 -0.625,0.83334 -1.41666,1.20834 -0.75,0.33333 -2.25,0.33333 -2.25,0 -3.08334,-1.08333 -0.83333,-1.125 -0.83333,-4.04167 v -5.04166 q 0,-2.70834 1,-3.91667 1,-1.20833 3.16667,-1.20833 3.25,0 4.54166,3.5 0.33333,0.875 0.5,1.29166 0.91667,1.95834 3.54167,3.16667 2.625,1.16667 6.04166,1.16667 3.08333,0 4.79167,-1.375 1.74999,-1.41667 1.74999,-3.91667 0,-3.33333 -7.24999,-6.125 l -0.25,-0.0833 -7.66667,-3 q -4.54166,-1.70833 -6.79166,-4.875 -2.25,-3.20833 -2.25,-7.83333 0,-6.24999 3.625,-9.62499 3.66666,-3.41667 10.875,-3.83333 l 0.33333,-3.33334 q 0.125,-1.66666 1.125,-2.54166 1,-0.875 2.70833,-0.875 1.75,0 2.70833,0.79166 0.95834,0.75 0.95834,2.16667 v 0.54167 z"
+ style="font-weight:bold;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
+ id="path34610" />
+ </g>
+ <rect
+ style="fill:#f2f2f2"
+ id="rect32812"
+ width="93.641006"
+ height="17.167505"
+ x="489.03275"
+ y="613.38745"
+ ry="5.8525572"
+ transform="rotate(-2.0632072)" />
+ </g>
+</svg>
diff --git a/logo/kitty.svg b/logo/kitty.svg
index dc4b6e42c..32d06f031 100644
--- a/logo/kitty.svg
+++ b/logo/kitty.svg
@@ -1 +1,206 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg2" width="256" height="256" version="1.1" viewBox="0 0 240 240"><metadata id="metadata7"/><g id="layer1" transform="translate(0,-812.36217)"><rect style="fill:#ddd;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.86876726;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect4496" width="100.446" height="161.551" x="72.824" y="850.13" ry="0"/><path id="path4" d="M 67.895761,1029.7093 H 172.10422 a 7.0649814,7.0649814 0 0 0 7.06499,-7.065 V 918.43587 a 7.0649814,7.0649814 0 0 0 -7.06499,-7.06499 H 67.895761 a 7.0649814,7.0649814 0 0 0 -7.064982,7.06499 v 104.20843 a 7.0649814,7.0649814 0 0 0 7.064982,7.065 z m 55.813329,-38.3487 h 37.4444 a 4.23899,4.23899 0 0 1 0,8.47798 h -37.4444 a 4.23899,4.23899 0 0 1 0,-8.47798 z M 78.676916,945.65018 a 4.2389889,4.2389889 0 0 1 5.991104,-5.99111 l 26.47954,26.46541 a 4.2389889,4.2389889 0 0 1 0,5.99111 l -26.47954,26.47955 a 4.2389889,4.2389889 0 0 1 -5.991104,-5.9911 l 23.483984,-23.484 z" style="stroke-width:1.41299629"/><path id="path4-3" d="m 96.085398,898.14342 c 1.881045,0 3.385879,-3.57421 3.385879,-8.16963 0,-4.59543 -1.504834,-8.16964 -3.385879,-8.16964 -1.881044,0 -3.385879,3.57421 -3.385879,8.16964 0,4.59542 1.504835,8.16963 3.385879,8.16963 z" style="clip-rule:evenodd;fill:#c0c81f;fill-opacity:1;fill-rule:evenodd;stroke-width:3.09913683"/><path id="path6" d="m 193.12782,836.88644 c -4.59543,-4.85071 -25.53011,1.0212 -38.29517,8.93554 -9.95674,-5.10602 -21.95589,-8.16962 -34.72093,-8.16962 -13.02037,0 -25.01952,3.0636 -34.976266,8.16962 -12.765052,-7.91434 -33.95504,-14.04156 -38.295158,-8.93554 -4.595418,5.10602 3.318914,26.29601 12.765053,38.03987 0,0 0,0 0,0 -0.765903,3.0636 -1.276505,6.12722 -1.276505,9.44614 0,10.21204 4.340118,19.65818 11.743848,27.31721 h 42.124678 c -1.27651,-2.55301 0.51061,-4.08482 8.16963,-4.08482 7.65905,0.2553 9.19084,1.53181 8.16964,4.08482 h 42.12467 c 7.40374,-7.65903 11.74386,-17.36048 11.74386,-27.31721 0,-3.31892 -0.51061,-6.38254 -1.2765,-9.44614 8.93553,-11.74386 16.59456,-33.18914 11.99915,-38.03987 z m -97.014419,67.39949 c -8.935538,0 -16.339269,-7.40374 -16.339269,-16.33927 0,-8.93553 7.403731,-16.33927 16.339269,-16.33927 8.935529,0 16.339269,7.40374 16.339269,16.33927 0,8.93553 -7.40374,16.33927 -16.339269,16.33927 z m 47.996599,0 c -8.93553,0 -16.33926,-7.40374 -16.33926,-16.33927 0,-8.93553 7.40373,-16.33927 16.33926,-16.33927 8.93555,0 16.33927,7.40374 16.33927,16.33927 0,8.93553 -7.14842,16.33927 -16.33927,16.33927 z" style="clip-rule:evenodd;fill:#784421;fill-opacity:1;fill-rule:evenodd;stroke-width:2.55301046"/><g id="g4541" style="fill:#2b1100;fill-opacity:1"><path style="clip-rule:evenodd;fill-rule:evenodd;stroke-width:2.55301046;fill:#2b1100;fill-opacity:1" id="path10" d="m 168.5072,903.26472 c 15.31805,-19.14757 46.72009,-28.33841 67.65477,-15.06276 -24.50889,-3.82951 -46.72009,2.55301 -67.65477,15.06276 z"/><path style="clip-rule:evenodd;fill-rule:evenodd;stroke-width:2.55301046;fill:#2b1100;fill-opacity:1" id="path12" d="m 167.486,898.66931 c 8.68022,-20.42409 34.46564,-33.69975 55.14502,-26.55131 -21.70058,2.80831 -39.31636,11.23323 -55.14502,26.55131 z"/><path style="clip-rule:evenodd;fill-rule:evenodd;stroke-width:2.55301046;fill:#2b1100;fill-opacity:1" id="path14" d="m 167.23069,908.62604 c 15.82867,-15.06275 50.80491,-20.16879 61.52756,-4.34011 -21.70059,-6.89313 -40.59288,-3.82953 -61.52756,4.34011 z"/></g><g id="g4536" style="fill:#2b1100;fill-opacity:1"><path style="clip-rule:evenodd;fill-rule:evenodd;stroke-width:2.55301046;fill:#2b1100;fill-opacity:1" id="path16" d="M 71.492797,903.26472 C 56.174733,884.11715 24.772703,874.92631 3.8380177,888.20196 28.346918,884.37245 50.55811,890.75497 71.492797,903.26472 Z"/><path style="clip-rule:evenodd;fill-rule:evenodd;stroke-width:2.55301046;fill:#2b1100;fill-opacity:1" id="path18" d="M 72.514,898.66931 C 63.833764,878.24522 38.048358,864.96956 17.368973,872.118 c 21.70059,2.80831 39.316362,11.23323 55.145027,26.55131 z"/><path style="clip-rule:evenodd;fill-rule:evenodd;stroke-width:2.55301046;fill:#2b1100;fill-opacity:1" id="path20" d="m 72.769301,908.62604 c -15.828665,-15.06275 -50.80491,-20.16879 -61.527553,-4.34011 21.70059,-6.89313 40.592868,-3.82953 61.527553,4.34011 z"/></g><path id="path8" d="m 52.600515,893.56329 c -6.382526,0 -11.743849,3.3189 -14.29686,8.42492 -0.255301,0 -0.510602,0 -0.765903,0 -6.893128,0 -12.765052,5.10602 -12.765052,11.48856 0,8.93553 9.190838,13.78625 17.615773,10.72264 5.10602,7.40373 16.083966,7.91434 20.168783,0 6.127225,-0.2553 16.083966,-1.2765 17.615773,-10.72264 1.021204,-6.38254 -5.616623,-11.48856 -12.765052,-11.48856 -0.255303,0 -0.510604,0 -0.765905,0 -2.042407,-5.10602 -7.659031,-8.42492 -14.041557,-8.42492 z m 134.798965,0 c 6.38252,0 11.74384,3.3189 14.29685,8.42492 0.2553,0 -2.80831,0 0.7659,0 3.57422,0 12.76506,5.10602 12.76506,11.48856 0,8.93553 -9.19084,13.78625 -17.61578,10.72264 -5.10602,7.40373 -16.08397,7.91434 -20.16878,0 -6.12722,-0.2553 -16.08397,-1.2765 -17.61576,-10.72264 -1.02122,-6.38254 9.19083,-11.48856 12.76504,-11.48856 3.57421,0 0.51061,0 0.7659,0 2.04242,-5.10602 7.65904,-8.42492 14.04157,-8.42492 z" style="clip-rule:evenodd;fill:#483737;fill-opacity:1;fill-rule:evenodd;stroke-width:2.55301046"/><path id="path4-3-3" d="m 143.54212,898.14341 c 1.88105,0 3.38588,-3.57421 3.38588,-8.16963 0,-4.59543 -1.50483,-8.16964 -3.38588,-8.16964 -1.88104,0 -3.38588,3.57421 -3.38588,8.16964 0,4.59542 1.50484,8.16963 3.38588,8.16963 z" style="clip-rule:evenodd;fill:#c0c81f;fill-opacity:1;fill-rule:evenodd;stroke-width:3.09913683"/></g></svg>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="256"
+ height="256"
+ viewBox="0 0 239.99999 239.99999"
+ id="svg2"
+ version="1.1"
+ inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
+ sodipodi:docname="kitty.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <defs
+ id="defs4">
+ <rect
+ x="477.29935"
+ y="552.66241"
+ width="135.11035"
+ height="215.22603"
+ id="rect2197" />
+ <rect
+ x="477.29935"
+ y="552.66241"
+ width="135.11035"
+ height="215.22603"
+ id="rect2197-6" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.1165578"
+ inkscape:cx="151.80585"
+ inkscape:cy="134.34146"
+ inkscape:document-units="px"
+ inkscape:current-layer="g33546"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="1800"
+ inkscape:window-height="1028"
+ inkscape:window-x="0"
+ inkscape:window-y="44"
+ inkscape:window-maximized="0"
+ inkscape:pagecheckerboard="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Kovid Goyal</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-812.36217)">
+ <g
+ id="g33546"
+ transform="matrix(0.34010002,0,0,0.34010002,-54.570555,756.96102)">
+ <g
+ id="g33546-3"
+ transform="matrix(1.0442425,0,0,1.0087434,-21.920955,-4.6424239)">
+ <g
+ id="g25744-5"
+ transform="translate(2.8452301,-4.3005471)">
+ <g
+ id="g25802-2">
+ <g
+ id="g25786-2">
+ <path
+ id="path22120-66"
+ style="fill:#000000;stroke-width:0.566559"
+ d="m 426.98211,506.06021 c 5.84333,88.06513 29.62681,120.49692 5.25211,134.06735 -24.37471,13.57042 -89.68492,-6.9649 -104.78336,-94.10452 -15.09845,-87.13962 -12.1986,-213.28087 12.17611,-226.85131 24.37471,-13.57041 81.49994,98.64454 87.35514,186.88848 z"
+ sodipodi:nodetypes="sssss" />
+ <path
+ id="path22120-6-7"
+ style="fill:#000000;stroke-width:0.544396"
+ transform="matrix(0.89910957,-0.43772363,0.03633347,0.99933972,0,0)"
+ d="m 744.24025,741.9231 c 9.99148,56.69384 8.85754,142.44031 -22.347,171.06436 -12.88651,11.82084 -13.49832,34.19727 -27.58632,25.66248 -25.90658,-15.69471 -41.73334,-122.96726 -44.95159,-195.01198 -3.42109,-76.5854 25.6488,-120.64348 41.89397,-133.34904 20.88238,-16.33237 38.91785,51.78044 52.99094,131.63418 z"
+ sodipodi:nodetypes="ssssss" />
+ </g>
+ <path
+ id="path23041-8"
+ style="fill:#000000;stroke-width:1.71035"
+ d="m 701.53741,523.37649 c 0,54.26633 -19.71736,109.20526 -72.91345,135.06929 -27.22483,13.23676 -66.24294,18.05953 -113.57702,20.87934 -48.25981,2.87496 -95.01693,-10.39029 -127.72538,-35.95138 -35.59095,-27.8137 -55.06306,-69.84254 -55.06306,-112.59316 0,-26.34097 8.7253,-48.57974 23.91444,-66.63502 32.11737,-38.17785 88.47004,-82.84254 157.00796,-82.84254 72.83114,0 114.35316,45.24262 145.3487,93.45659 8.29292,12.89974 24.01422,-21.80081 33.94914,-10.87238 4.40202,4.84222 9.05867,52.47276 9.05867,59.48926 z"
+ sodipodi:nodetypes="ssssssssss" />
+ <path
+ id="rect24332-4"
+ style="fill:#000000;stroke-width:0.920189"
+ d="m 603.98645,564.62193 c 0,0 22.73403,-0.59903 33.98631,0.7381 46.65959,5.54466 138.52023,11.43386 138.52023,11.43386 0,0 10.83935,1.21152 12.22084,17.24249 1.33441,15.48485 -13.78344,13.77385 -13.78344,13.77385 0,0 -61.9486,-0.72794 -148.76379,-14.8072 -7.83161,-1.2701 -24.91835,-15.39059 -24.91835,-15.39059 z"
+ sodipodi:nodetypes="cscscscc" />
+ <path
+ id="rect24332-3-1"
+ style="fill:#000000;stroke-width:0.920189"
+ d="m 609.65927,563.2842 c 0,0 20.72205,-9.32758 31.56343,-12.62398 14.93321,-4.54056 131.94306,-43.6991 131.94306,-43.6991 0,0 11.85513,-6.3141 17.21119,5.20514 8.72263,18.75971 -6.50844,24.33989 -6.50844,24.33989 0,0 -56.11499,22.01107 -142.68972,44.21266 -7.68526,1.97084 -28.95439,-4.40882 -28.95439,-4.40882 z"
+ sodipodi:nodetypes="cscscscc" />
+ <path
+ id="rect24332-9-7"
+ style="fill:#000000;stroke-width:0.920189"
+ d="m 595.02402,571.79779 c 0,0 22.26011,5.32047 32.32116,10.5336 86.95228,45.0543 130.86471,49.82252 130.86471,49.82252 0,0 8.45858,3.11835 7.88881,16.51281 -0.66053,15.52819 -16.78547,14.29432 -16.78547,14.29432 0,0 -61.44316,-12.33922 -141.26278,-57.58114 -6.90229,-3.91223 -19.40383,-21.93823 -19.40383,-21.93823 z"
+ sodipodi:nodetypes="cscscscc" />
+ <path
+ id="rect24332-7-1"
+ style="fill:#000000;stroke-width:0.920189"
+ d="m 416.10713,571.3888 c 0,0 -22.61258,1.85999 -33.78984,3.72297 -50.6939,8.44944 -136.97879,23.5669 -136.97879,23.5669 0,0 -10.69088,2.15972 -10.65774,18.25007 0.032,15.54221 14.94094,12.50882 14.94094,12.50882 0,0 126.30264,-19.10259 146.88614,-27.82769 7.30476,-3.0964 23.46889,-17.52157 23.46889,-17.52157 z"
+ sodipodi:nodetypes="cscscscc" />
+ <path
+ id="rect24332-3-0-8"
+ style="fill:#000000;stroke-width:0.941521"
+ d="m 419.13475,549.17346 c 0,0 -22.71807,-4.24683 -34.2203,-4.88479 -15.84349,-0.87875 -140.85287,-11.34566 -140.85287,-11.34566 0,0 -13.23378,-3.40755 -15.73301,9.42743 -4.07012,20.90248 12.31917,22.74797 12.31917,22.74797 0,0 60.73379,8.25188 151.5878,9.22351 8.06513,0.0863 27.52034,-11.51118 27.52034,-11.51118 z"
+ sodipodi:nodetypes="cscscscc" />
+ <path
+ id="rect24332-9-0-7"
+ style="fill:#000000;stroke-width:0.966127"
+ d="m 450.89192,569.8048 c 0,0 -22.42027,6.91381 -32.28396,13.25973 -73.79501,47.4769 -131.49948,64.18633 -131.49948,64.18633 0,0 -7.25356,1.11812 -5.9457,15.56811 1.51621,16.75186 17.84134,14.48471 17.84134,14.48471 0,0 61.79052,-16.89712 140.47226,-70.43403 6.80389,-4.62953 18.53208,-24.84375 18.53208,-24.84375 z"
+ sodipodi:nodetypes="cscscscc" />
+ </g>
+ </g>
+ <g
+ aria-label="$"
+ transform="matrix(2.3047985,0,0,2.3047985,-700.96014,-871.99931)"
+ id="text2195-8"
+ style="font-size:85.3333px;line-height:1.25;font-family:'Academy Engraved LET';-inkscape-font-specification:'Academy Engraved LET';white-space:pre;shape-inside:url(#rect2197);fill:#f2f2f2">
+ <path
+ d="m 507.59048,582.73322 q 1,0.16667 2.04167,0.45834 1.08333,0.29166 2.29166,0.70833 0.45834,-0.91667 1.20834,-1.375 0.79166,-0.5 1.95833,-0.5 2.04166,0 2.875,1.04167 0.83333,0.99999 0.875,3.66666 l 0.0833,5.125 v 0.25 q 0,2.08333 -1.16667,3.16666 -1.12499,1.08334 -3.33333,1.08334 -1.375,0 -2.16666,-0.54167 -0.75,-0.54167 -1.66667,-2.33333 -1.08333,-2.125 -3,-3.25 -1.875,-1.125 -4.25,-1.125 -3.41666,0 -5.33333,1.45833 -1.91666,1.41667 -1.91666,3.91667 0,1.91666 1.125,3.125 1.125,1.16666 5.16666,2.79166 l 7.75,2.95833 q 5.75,2.29167 8.12499,5.29167 2.375,2.95833 2.375,7.79166 0,6.875 -3.95833,10.54166 -3.91666,3.625 -11.37499,3.625 h -0.25 l -0.54167,9.125 q -0.125,1.875 -1.08333,2.70833 -0.95834,0.875 -3,0.875 -1.70833,0 -2.5,-0.79167 -0.75,-0.79166 -0.75,-2.625 v -0.66666 l 0.625,-9.66666 q -1.41667,-0.25 -2.83333,-0.70834 -1.41667,-0.5 -2.91667,-1.25 -0.625,0.83334 -1.41666,1.20834 -0.75,0.33333 -2.25,0.33333 -2.25,0 -3.08334,-1.08333 -0.83333,-1.125 -0.83333,-4.04167 v -5.04166 q 0,-2.70834 1,-3.91667 1,-1.20833 3.16667,-1.20833 3.25,0 4.54166,3.5 0.33333,0.875 0.5,1.29166 0.91667,1.95834 3.54167,3.16667 2.625,1.16667 6.04166,1.16667 3.08333,0 4.79167,-1.375 1.74999,-1.41667 1.74999,-3.91667 0,-3.33333 -7.24999,-6.125 l -0.25,-0.0833 -7.66667,-3 q -4.54166,-1.70833 -6.79166,-4.875 -2.25,-3.20833 -2.25,-7.83333 0,-6.24999 3.625,-9.62499 3.66666,-3.41667 10.875,-3.83333 l 0.33333,-3.33334 q 0.125,-1.66666 1.125,-2.54166 1,-0.875 2.70833,-0.875 1.75,0 2.70833,0.79166 0.95834,0.75 0.95834,2.16667 v 0.54167 z"
+ style="font-weight:bold;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
+ id="path34610" />
+ </g>
+ <rect
+ style="fill:#f2f2f2"
+ id="rect32812-7"
+ width="93.641006"
+ height="17.167505"
+ x="489.03275"
+ y="613.38745"
+ ry="5.8525572"
+ transform="rotate(-2.0632072)" />
+ </g>
+ <g
+ aria-label="$"
+ transform="matrix(2.3047985,0,0,2.3047985,-700.96014,-871.99931)"
+ id="text2195"
+ style="font-size:85.3333px;line-height:1.25;font-family:'Academy Engraved LET';-inkscape-font-specification:'Academy Engraved LET';white-space:pre;shape-inside:url(#rect2197-6);fill:#f2f2f2">
+ <path
+ d="m 507.59048,582.73322 q 1,0.16667 2.04167,0.45834 1.08333,0.29166 2.29166,0.70833 0.45834,-0.91667 1.20834,-1.375 0.79166,-0.5 1.95833,-0.5 2.04166,0 2.875,1.04167 0.83333,0.99999 0.875,3.66666 l 0.0833,5.125 v 0.25 q 0,2.08333 -1.16667,3.16666 -1.12499,1.08334 -3.33333,1.08334 -1.375,0 -2.16666,-0.54167 -0.75,-0.54167 -1.66667,-2.33333 -1.08333,-2.125 -3,-3.25 -1.875,-1.125 -4.25,-1.125 -3.41666,0 -5.33333,1.45833 -1.91666,1.41667 -1.91666,3.91667 0,1.91666 1.125,3.125 1.125,1.16666 5.16666,2.79166 l 7.75,2.95833 q 5.75,2.29167 8.12499,5.29167 2.375,2.95833 2.375,7.79166 0,6.875 -3.95833,10.54166 -3.91666,3.625 -11.37499,3.625 h -0.25 l -0.54167,9.125 q -0.125,1.875 -1.08333,2.70833 -0.95834,0.875 -3,0.875 -1.70833,0 -2.5,-0.79167 -0.75,-0.79166 -0.75,-2.625 v -0.66666 l 0.625,-9.66666 q -1.41667,-0.25 -2.83333,-0.70834 -1.41667,-0.5 -2.91667,-1.25 -0.625,0.83334 -1.41666,1.20834 -0.75,0.33333 -2.25,0.33333 -2.25,0 -3.08334,-1.08333 -0.83333,-1.125 -0.83333,-4.04167 v -5.04166 q 0,-2.70834 1,-3.91667 1,-1.20833 3.16667,-1.20833 3.25,0 4.54166,3.5 0.33333,0.875 0.5,1.29166 0.91667,1.95834 3.54167,3.16667 2.625,1.16667 6.04166,1.16667 3.08333,0 4.79167,-1.375 1.74999,-1.41667 1.74999,-3.91667 0,-3.33333 -7.24999,-6.125 l -0.25,-0.0833 -7.66667,-3 q -4.54166,-1.70833 -6.79166,-4.875 -2.25,-3.20833 -2.25,-7.83333 0,-6.24999 3.625,-9.62499 3.66666,-3.41667 10.875,-3.83333 l 0.33333,-3.33334 q 0.125,-1.66666 1.125,-2.54166 1,-0.875 2.70833,-0.875 1.75,0 2.70833,0.79166 0.95834,0.75 0.95834,2.16667 v 0.54167 z"
+ style="font-weight:bold;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
+ id="path34989" />
+ </g>
+ <rect
+ style="fill:#f2f2f2"
+ id="rect32812"
+ width="93.641006"
+ height="17.167505"
+ x="489.03275"
+ y="613.38745"
+ ry="5.8525572"
+ transform="rotate(-2.0632072)" />
+ </g>
+ </g>
+</svg>
diff --git a/publish.py b/publish.py
index 20e082760..f555246be 100755
--- a/publish.py
+++ b/publish.py
@@ -25,7 +25,7 @@
os.chdir(os.path.dirname(os.path.abspath(__file__)))
docs_dir = os.path.abspath('docs')
-publish_dir = os.path.abspath(os.path.join('..', 'kovidgoyal.github.io', 'kitty'))
+publish_dir = os.path.abspath(os.path.join('..', 'kittypatch.github.io', 'kitty'))
building_nightly = False
with open('kitty/constants.py') as f:
raw = f.read()
@@ -101,7 +101,7 @@ def run_man(args: Any) -> None:
def run_html(args: Any) -> None:
- call('make FAIL_WARN=1 "OPTS=-D analytics_id=G-XTJK3R7GF2" dirhtml', cwd=docs_dir)
+ call('make FAIL_WARN=1 "OPTS=-D analytics_id=UA-XXXXXXXX-X" dirhtml', cwd=docs_dir)
add_old_redirects('docs/_build/dirhtml')