This commit is contained in:
Kovid Goyal 2022-09-29 09:17:02 +05:30
commit bbc9f588f1
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
9 changed files with 33427 additions and 31820 deletions

View File

@ -38,6 +38,8 @@ Detailed list of changes
0.26.4 [future]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Update to Unicode 15.0 (:pull:`5542`)
- macOS: Allow changing the kitty icon by placing a custom icon in the kitty config folder (:pull:`5464`)
- X11: Fix a regression in the previous release that caused pasting from GTK based applications to have extra newlines (:iss:`5528`)

View File

@ -205,13 +205,15 @@ fonts to be freely resizable, so it does not support bitmapped fonts.
.. note::
If you are trying to use a font patched with `Nerd Fonts
<https://nerdfonts.com/>`__ symbols, don't do that as patching destroys
fonts. There is no need, simply install the standalone ``Symbols Nerd Font``
fonts. There is no need, simply install the standalone ``Symbols Nerd Font Mono``
(the file :file:`NerdFontsSymbolsOnly.zip` from the `Nerd Fonts releases page
<https://github.com/ryanoasis/nerd-fonts/releases>`__). kitty should pick up
symbols from it automatically, and you can tell it to do so explicitly in
case it doesn't with the :opt:`symbol_map` directive::
symbol_map U+23FB-U+23FE,U+2665,U+26A1,U+2B58,U+E000-U+E00A,U+E0A0-U+E0A3,U+E0B0-U+E0C8,U+E0CA,U+E0CC-U+E0D2,U+E0D4,U+E200-U+E2A9,U+E300-U+E3E3,U+E5FA-U+E62F,U+E700-U+E7C5,U+F000-U+F2E0,U+F300-U+F31C,U+F400-U+F4A9,U+F500-U+F8FF Symbols Nerd Font
# Nerd Fonts v2.2.2
symbol_map U+23FB-U+23FE,U+2665,U+26A1,U+2B58,U+E000-U+E00A,U+E0A0-U+E0A3,U+E0B0-U+E0C8,U+E0CA,U+E0CC-U+E0D2,U+E0D4,U+E200-U+E2A9,U+E300-U+E3E3,U+E5FA-U+E634,U+E700-U+E7C5,U+EA60-U+EBEB,U+F000-U+F2E0,U+F300-U+F32F,U+F400-U+F4A9,U+F500-U+F8FF Symbols Nerd Font Mono
Those Unicode symbols beyond the ``E000-F8FF`` Unicode private use area are
not included.

View File

@ -1,3 +1,3 @@
# generated by gen-wcwidth.py, do not edit
url_delimiters = '\x00-\x09\x0b-\x0c\x0e-\x20\x7f-\xa0\xad\u0600-\u0605\u061c\u06dd\u070f\u0890-\u0891\u08e2\u1680\u180e\u2000-\u200f\u2028-\u202f\u205f-\u2064\u2066-\u206f\u3000\ud800-\uf8ff\ufeff\ufff9-\ufffb\U000110bd\U000110cd\U00013430-\U00013438\U0001bca0-\U0001bca3\U0001d173-\U0001d17a\U000e0001\U000e0020-\U000e007f\U000f0000-\U000ffffd\U00100000-\U0010fffd' # noqa
url_delimiters = '\x00-\x09\x0b-\x0c\x0e-\x20\x7f-\xa0\xad\u0600-\u0605\u061c\u06dd\u070f\u0890-\u0891\u08e2\u1680\u180e\u2000-\u200f\u2028-\u202f\u205f-\u2064\u2066-\u206f\u3000\ud800-\uf8ff\ufeff\ufff9-\ufffb\U000110bd\U000110cd\U00013430-\U0001343f\U0001bca0-\U0001bca3\U0001d173-\U0001d17a\U000e0001\U000e0020-\U000e007f\U000f0000-\U000ffffd\U00100000-\U0010fffd' # noqa

File diff suppressed because one or more lines are too long

26
kitty/emoji.h generated
View File

@ -1,4 +1,4 @@
// unicode data, built from the unicode standard on: 2022-01-05
// unicode data, built from the unicode standard on: 2022-09-29
// see gen-wcwidth.py
#pragma once
#include "data-types.h"
@ -739,13 +739,13 @@ is_symbol(char_type code) {
return true;
case 0x1f300 ... 0x1f6d7:
return true;
case 0x1f6dd ... 0x1f6ec:
case 0x1f6dc ... 0x1f6ec:
return true;
case 0x1f6f0 ... 0x1f6fc:
return true;
case 0x1f700 ... 0x1f773:
case 0x1f700 ... 0x1f776:
return true;
case 0x1f780 ... 0x1f7d8:
case 0x1f77b ... 0x1f7d9:
return true;
case 0x1f7e0 ... 0x1f7eb:
return true;
@ -767,23 +767,19 @@ is_symbol(char_type code) {
return true;
case 0x1fa60 ... 0x1fa6d:
return true;
case 0x1fa70 ... 0x1fa74:
case 0x1fa70 ... 0x1fa7c:
return true;
case 0x1fa78 ... 0x1fa7c:
case 0x1fa80 ... 0x1fa88:
return true;
case 0x1fa80 ... 0x1fa86:
case 0x1fa90 ... 0x1fabd:
return true;
case 0x1fa90 ... 0x1faac:
case 0x1fabf ... 0x1fac5:
return true;
case 0x1fab0 ... 0x1faba:
case 0x1face ... 0x1fadb:
return true;
case 0x1fac0 ... 0x1fac5:
case 0x1fae0 ... 0x1fae8:
return true;
case 0x1fad0 ... 0x1fad9:
return true;
case 0x1fae0 ... 0x1fae7:
return true;
case 0x1faf0 ... 0x1faf6:
case 0x1faf0 ... 0x1faf8:
return true;
case 0x1fb00 ... 0x1fb92:
return true;

550
kitty/unicode-data.c generated

File diff suppressed because one or more lines are too long

View File

@ -2,7 +2,7 @@
#include "data-types.h"
#include "state.h"
// START_KNOWN_MARKS
static const combining_type VS15 = 1362, VS16 = 1363;
static const combining_type VS15 = 1364, VS16 = 1365;
// END_KNOWN_MARKS
bool is_combining_char(char_type ch);

128
kitty/wcwidth-std.h generated
View File

@ -1,4 +1,4 @@
// unicode data, built from the unicode standard on: 2022-01-05
// unicode data, built from the unicode standard on: 2022-09-29
// see gen-wcwidth.py
#pragma once
#include "data-types.h"
@ -14,7 +14,7 @@ wcwidth_std(int32_t code) {
return 2;
// }}}
// Marks (6350 codepoints) {{{
// Marks (6399 codepoints) {{{
case 0x0:
return 0;
case 0xad:
@ -185,6 +185,8 @@ wcwidth_std(int32_t code) {
return 0;
case 0xce2 ... 0xce3:
return 0;
case 0xcf3:
return 0;
case 0xd00 ... 0xd03:
return 0;
case 0xd3b ... 0xd3c:
@ -221,7 +223,7 @@ wcwidth_std(int32_t code) {
return 0;
case 0xeb4 ... 0xebc:
return 0;
case 0xec8 ... 0xecd:
case 0xec8 ... 0xece:
return 0;
case 0xf18 ... 0xf19:
return 0;
@ -439,6 +441,8 @@ wcwidth_std(int32_t code) {
return 0;
case 0x10eab ... 0x10eac:
return 0;
case 0x10efd ... 0x10eff:
return 0;
case 0x10f46 ... 0x10f50:
return 0;
case 0x10f82 ... 0x10f85:
@ -481,6 +485,8 @@ wcwidth_std(int32_t code) {
return 0;
case 0x1123e:
return 0;
case 0x11241:
return 0;
case 0x112df ... 0x112ea:
return 0;
case 0x11300 ... 0x11303:
@ -575,7 +581,17 @@ wcwidth_std(int32_t code) {
return 0;
case 0x11ef3 ... 0x11ef6:
return 0;
case 0x13430 ... 0x13438:
case 0x11f00 ... 0x11f01:
return 0;
case 0x11f03:
return 0;
case 0x11f34 ... 0x11f3a:
return 0;
case 0x11f3e ... 0x11f42:
return 0;
case 0x13430 ... 0x13440:
return 0;
case 0x13447 ... 0x13455:
return 0;
case 0x16af0 ... 0x16af4:
return 0;
@ -631,12 +647,16 @@ wcwidth_std(int32_t code) {
return 0;
case 0x1e026 ... 0x1e02a:
return 0;
case 0x1e08f:
return 0;
case 0x1e130 ... 0x1e136:
return 0;
case 0x1e2ae:
return 0;
case 0x1e2ec ... 0x1e2ef:
return 0;
case 0x1e4ec ... 0x1e4ef:
return 0;
case 0x1e8d0 ... 0x1e8d6:
return 0;
case 0x1e944 ... 0x1e94a:
@ -1257,7 +1277,7 @@ wcwidth_std(int32_t code) {
return -2;
// }}}
// East Asian double width (182470 codepoints) {{{
// East Asian double width (182492 codepoints) {{{
case 0x1100 ... 0x115e:
return 2;
case 0x231a ... 0x231b:
@ -1402,8 +1422,12 @@ wcwidth_std(int32_t code) {
return 2;
case 0x1b000 ... 0x1b122:
return 2;
case 0x1b132:
return 2;
case 0x1b150 ... 0x1b152:
return 2;
case 0x1b155:
return 2;
case 0x1b164 ... 0x1b167:
return 2;
case 0x1b170 ... 0x1b2fb:
@ -1474,7 +1498,7 @@ wcwidth_std(int32_t code) {
return 2;
case 0x1f6d5 ... 0x1f6d7:
return 2;
case 0x1f6dd ... 0x1f6df:
case 0x1f6dc ... 0x1f6df:
return 2;
case 0x1f6eb ... 0x1f6ec:
return 2;
@ -1490,23 +1514,19 @@ wcwidth_std(int32_t code) {
return 2;
case 0x1f947 ... 0x1f9ff:
return 2;
case 0x1fa70 ... 0x1fa74:
case 0x1fa70 ... 0x1fa7c:
return 2;
case 0x1fa78 ... 0x1fa7c:
case 0x1fa80 ... 0x1fa88:
return 2;
case 0x1fa80 ... 0x1fa86:
case 0x1fa90 ... 0x1fabd:
return 2;
case 0x1fa90 ... 0x1faac:
case 0x1fabf ... 0x1fac5:
return 2;
case 0x1fab0 ... 0x1faba:
case 0x1face ... 0x1fadb:
return 2;
case 0x1fac0 ... 0x1fac5:
case 0x1fae0 ... 0x1fae8:
return 2;
case 0x1fad0 ... 0x1fad9:
return 2;
case 0x1fae0 ... 0x1fae7:
return 2;
case 0x1faf0 ... 0x1faf6:
case 0x1faf0 ... 0x1faf8:
return 2;
case 0x20000 ... 0x2fffd:
return 2;
@ -1517,7 +1537,7 @@ wcwidth_std(int32_t code) {
// Emoji Presentation (0 codepoints) {{{
// }}}
// Not assigned in the unicode character database (760767 codepoints) {{{
// Not assigned in the unicode character database (760471 codepoints) {{{
case 0x378 ... 0x379:
return -4;
case 0x380 ... 0x383:
@ -1760,7 +1780,7 @@ wcwidth_std(int32_t code) {
return -4;
case 0xcf0:
return -4;
case 0xcf3 ... 0xcff:
case 0xcf4 ... 0xcff:
return -4;
case 0xd0d:
return -4;
@ -1820,7 +1840,7 @@ wcwidth_std(int32_t code) {
return -4;
case 0xec7:
return -4;
case 0xece ... 0xecf:
case 0xecf:
return -4;
case 0xeda ... 0xedb:
return -4;
@ -2354,7 +2374,7 @@ wcwidth_std(int32_t code) {
return -4;
case 0x10eae ... 0x10eaf:
return -4;
case 0x10eb2 ... 0x10eff:
case 0x10eb2 ... 0x10efc:
return -4;
case 0x10f28 ... 0x10f2f:
return -4;
@ -2390,7 +2410,7 @@ wcwidth_std(int32_t code) {
return -4;
case 0x11212:
return -4;
case 0x1123f ... 0x1127f:
case 0x11242 ... 0x1127f:
return -4;
case 0x11287:
return -4;
@ -2494,7 +2514,9 @@ wcwidth_std(int32_t code) {
return -4;
case 0x11aa3 ... 0x11aaf:
return -4;
case 0x11af9 ... 0x11bff:
case 0x11af9 ... 0x11aff:
return -4;
case 0x11b0a ... 0x11bff:
return -4;
case 0x11c09:
return -4;
@ -2536,7 +2558,13 @@ wcwidth_std(int32_t code) {
return -4;
case 0x11daa ... 0x11edf:
return -4;
case 0x11ef9 ... 0x11faf:
case 0x11ef9 ... 0x11eff:
return -4;
case 0x11f11:
return -4;
case 0x11f3b ... 0x11f3d:
return -4;
case 0x11f5a ... 0x11faf:
return -4;
case 0x11fb1 ... 0x11fbf:
return -4;
@ -2552,9 +2580,7 @@ wcwidth_std(int32_t code) {
return -4;
case 0x12ff3 ... 0x12fff:
return -4;
case 0x1342f:
return -4;
case 0x13439 ... 0x143ff:
case 0x13456 ... 0x143ff:
return -4;
case 0x14647 ... 0x167ff:
return -4;
@ -2606,9 +2632,13 @@ wcwidth_std(int32_t code) {
return -4;
case 0x1afff:
return -4;
case 0x1b123 ... 0x1b14f:
case 0x1b123 ... 0x1b131:
return -4;
case 0x1b153 ... 0x1b163:
case 0x1b133 ... 0x1b14f:
return -4;
case 0x1b153 ... 0x1b154:
return -4;
case 0x1b156 ... 0x1b163:
return -4;
case 0x1b168 ... 0x1b16f:
return -4;
@ -2636,7 +2666,9 @@ wcwidth_std(int32_t code) {
return -4;
case 0x1d1eb ... 0x1d1ff:
return -4;
case 0x1d246 ... 0x1d2df:
case 0x1d246 ... 0x1d2bf:
return -4;
case 0x1d2d4 ... 0x1d2df:
return -4;
case 0x1d2f4 ... 0x1d2ff:
return -4;
@ -2690,7 +2722,9 @@ wcwidth_std(int32_t code) {
return -4;
case 0x1dab0 ... 0x1deff:
return -4;
case 0x1df1f ... 0x1dfff:
case 0x1df1f ... 0x1df24:
return -4;
case 0x1df2b ... 0x1dfff:
return -4;
case 0x1e007:
return -4;
@ -2700,7 +2734,11 @@ wcwidth_std(int32_t code) {
return -4;
case 0x1e025:
return -4;
case 0x1e02b ... 0x1e0ff:
case 0x1e02b ... 0x1e02f:
return -4;
case 0x1e06e ... 0x1e08e:
return -4;
case 0x1e090 ... 0x1e0ff:
return -4;
case 0x1e12d ... 0x1e12f:
return -4;
@ -2714,7 +2752,9 @@ wcwidth_std(int32_t code) {
return -4;
case 0x1e2fa ... 0x1e2fe:
return -4;
case 0x1e300 ... 0x1e7df:
case 0x1e300 ... 0x1e4cf:
return -4;
case 0x1e4fa ... 0x1e7df:
return -4;
case 0x1e7e7:
return -4;
@ -2830,15 +2870,15 @@ wcwidth_std(int32_t code) {
return -4;
case 0x1f266 ... 0x1f2ff:
return -4;
case 0x1f6d8 ... 0x1f6dc:
case 0x1f6d8 ... 0x1f6db:
return -4;
case 0x1f6ed ... 0x1f6ef:
return -4;
case 0x1f6fd ... 0x1f6ff:
return -4;
case 0x1f774 ... 0x1f77f:
case 0x1f777 ... 0x1f77a:
return -4;
case 0x1f7d9 ... 0x1f7df:
case 0x1f7da ... 0x1f7df:
return -4;
case 0x1f7ec ... 0x1f7ef:
return -4;
@ -2860,23 +2900,19 @@ wcwidth_std(int32_t code) {
return -4;
case 0x1fa6e ... 0x1fa6f:
return -4;
case 0x1fa75 ... 0x1fa77:
return -4;
case 0x1fa7d ... 0x1fa7f:
return -4;
case 0x1fa87 ... 0x1fa8f:
case 0x1fa89 ... 0x1fa8f:
return -4;
case 0x1faad ... 0x1faaf:
case 0x1fabe:
return -4;
case 0x1fabb ... 0x1fabf:
case 0x1fac6 ... 0x1facd:
return -4;
case 0x1fac6 ... 0x1facf:
case 0x1fadc ... 0x1fadf:
return -4;
case 0x1fada ... 0x1fadf:
case 0x1fae9 ... 0x1faef:
return -4;
case 0x1fae8 ... 0x1faef:
return -4;
case 0x1faf7 ... 0x1faff:
case 0x1faf9 ... 0x1faff:
return -4;
case 0x1fb93:
return -4;

File diff suppressed because it is too large Load Diff