.. _kitty: kitty ----- Tested Software version 0.46.2 on Linux. The homepage URL of this terminal is https://sw.kovidgoyal.net/kitty/. Full results available at ucs-detect_ repository path `data/kitty.yaml `_. .. _kittyscores: Score Breakdown +++++++++++++++ Detailed breakdown of how scores are calculated for *kitty*: .. table:: :class: sphinx-datatable === ================================== =========== ==================== # Score Type Raw Score Final Scaled Score === ================================== =========== ==================== 1 :ref:`WIDE ` 100.00% 100.0% 2 :ref:`NARROW ` 100.00% 100.0% 3 :ref:`ZWJ ` 100.00% 100.0% 4 :ref:`LANG ` 100.00% 100.0% 5 :ref:`VS16 ` 100.00% 100.0% 6 :ref:`VS15 ` 100.00% *(excluded)* 7 :ref:`SRI ` 100.00% 100.0% 8 :ref:`SFZ ` 100.00% 100.0% 9 :ref:`RI ` 100.00% 100.0% 10 :ref:`FEAT ` 93.75% 100.0% 11 :ref:`Graphics ` 100% 100.0% 12 :ref:`Resources ` 15.2% 15.2% === ================================== =========== ==================== **Score Comparison Plot:** The following plot shows how this terminal's scores compare to all other terminals tested. .. figure:: ../_static/plots/kitty_scores_scaled.png :align: center :width: 800px Scaled scores comparison across all metrics (normalized 0-100%) **Final Scaled Score Calculation:** - Raw Final Score: 94.97% (weighted average: WIDE + NARROW + ZWJ + LANG + VS16 + 0.33 * SRI + 0.33 * SFZ + RI + CAP + 0.5 * GFX + 0.5 * RSC) the categorized 'average' absolute support level of this terminal. .. note:: RSC (Resources) is a composite CPU, memory, and runtime score. RSC is weighted at 0.5 (half as powerful as other metrics). FEAT (Features) is the fraction of notable features supported. GFX (Graphics) scores 100% for modern protocols (iTerm2, Kitty), 50% for legacy only (Sixel, ReGIS), 0% for none. - Final Scaled Score: 100.0% (normalized across all terminals tested). *Final Scaled scores* are normalized (0-100%) relative to all terminals tested **WIDE Score Details:** Wide character support calculation: - Total successful codepoints: 501 - Total codepoints tested: 506 - Formula: 501 / 506 - Result: 100.00% **NARROW Score Details:** Narrow character support calculation: - Total successful codepoints: 162 - Total codepoints tested: 187 - Formula: 162 / 187 - Result: 100.00% **ZWJ Score Details:** Emoji ZWJ (Zero-Width Joiner) support calculation: - Total successful sequences: 1445 - Total sequences tested: 1445 - Formula: 1445 / 1445 - Result: 100.00% **VS16 Score Details:** Variation Selector-16 support calculation: - Errors: 9 of 426 codepoints tested - Success rate: 97.9% - Formula: 97.9 / 100 - Result: 100.00% **VS15 Score Details** *(excluded from final score)*: Variation Selector-15 support calculation: - Errors: 0 of 158 codepoints tested - Success rate: 100.0% - Formula: 100.0 / 100 - Result: 100.00% **SRI Score Details:** Standalone Regional Indicator support calculation: - Total successful codepoints: 26 - Total codepoints tested: 26 - Formula: 26 / 26 - Result: 100.00% **SFZ Score Details:** Standalone Fitzpatrick skin tone modifier support calculation: - Total successful codepoints: 0 - Total codepoints tested: 5 - Formula: 0 / 5 - Result: 100.00% **RI Score Details:** Regional Indicator flag sequence support calculation: - Total successful sequences: 262 - Total sequences tested: 262 - Formula: 262 / 262 - Result: 100.00% .. _kittyfeaturesdetails: **Features Score Details:** Notable terminal features (15.0 / 16): - :ref:`Set bracketed paste mode (2004) `: **yes** - :ref:`Synchronized Output (2026) `: **yes** - :ref:`Send FocusIn/FocusOut events (1004) `: **yes** - :ref:`Enable SGR Mouse Mode (1006) `: **yes** - :ref:`Grapheme Clustering (2027) `: **no** - :ref:`Bracketed Paste MIME (5522) `: **yes** - :ref:`Kitty Keyboard `: **yes** - :ref:`XTGETTCAP (Full) `: **yes** - :ref:`Text Sizing (OSC 66) `: **yes** - :ref:`Kitty Clipboard Protocol `: **yes** - :ref:`OSC 52 Clipboard `: **yes** - :ref:`Kitty Pointer Shapes (OSC 22) `: **yes** - :ref:`Kitty Notifications (OSC 99) `: **yes** - :ref:`Color Report (OSC 10/11) `: **yes** - :ref:`Terminal Identification (XTVERSION) `: **yes** - :ref:`Truecolor Detection `: **yes** Raw score: 93.75% **Graphics Score Details:** Graphics protocol support (100%): - Sixel: **no** - ReGIS: **no** - iTerm2: **no** - Kitty: **yes** Scoring: 100% for modern (iTerm2/Kitty), 50% for legacy only (Sixel/ReGIS), 0% for none **Resource Score Details:** - Duration: 73.2s - Mean CPU: 115.5% - Mean RSS: 704.4 MB - Resources Score: 15/100 - Note: log-scale composite cost = log(CPU+1) + log(RSS+1) + log(time+1) - Scaled result: 15.2% **LANG Score Details (Geometric Mean):** Geometric mean calculation: - Formula: (p₁ × p₂ × ... × pₙ)^(1/n) where n = 85 languages - About `geometric mean `_ - Result: 100.00% .. _kittywide: Wide character support ++++++++++++++++++++++ Wide character support of *kitty* is **99.0%** (5 errors of 506 codepoints tested). Sequence of a WIDE character, from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ================================================= ============= ========== ========= ================================= # Codepoint Python Category wcwidth Name === ================================================= ============= ========== ========= ================================= 1 `U+0001F3FD `_ '\\U0001f3fd' Sk 2 EMOJI MODIFIER FITZPATRICK TYPE-4 === ================================================= ============= ========== ========= ================================= Total codepoints: 1 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xf0\x9f\x8f\xbd|\\n12|\\n" 🏽| 12| - See Line 42653 of `ucs_wide.txt `_ for this sequence in the example file. Screenshot: .. image:: ../_static/screenshots/kitty/wide.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 0. .. _kittynarrow: Narrow character support ++++++++++++++++++++++++ Narrow character support of *kitty* is **86.6%** (25 errors of 187 codepoints tested). Sequence of a NARROW character, from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ======================= # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ======================= 1 `U+261D `_ '\\u261d' So 1 WHITE UP POINTING INDEX === ========================================= ========= ========== ========= ======================= Total codepoints: 1 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe2\x98\x9d|\\n1|\\n" ☝| 1| - python `wcwidth.wcswidth()`_ measures width 1, while *kitty* measures width 2. .. _kittyzwj: Emoji ZWJ support +++++++++++++++++ Compatibility of *kitty* with the Unicode Emoji ZWJ sequence table is **100.0%** (0 errors of 1445 sequences tested). .. _kittyvs16: Variation Selector-16 support +++++++++++++++++++++++++++++ Emoji VS-16 results for *kitty* is 9 errors out of 426 total codepoints tested, 97.9% success. Sequence of a NARROW Emoji made WIDE by *Variation Selector-16*, from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ================================================= ============= ========== ========= ============= # Codepoint Python Category wcwidth Name === ================================================= ============= ========== ========= ============= 1 `U+0001F3CB `_ '\\U0001f3cb' So 1 WEIGHT LIFTER === ================================================= ============= ========== ========= ============= Total codepoints: 1 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xf0\x9f\x8f\x8b|\\n1|\\n" 🏋| 1| Screenshot: .. image:: ../_static/screenshots/kitty/vs16.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 198px - python `wcwidth.wcswidth()`_ measures width 1, while *kitty* measures width 2. .. _kittyvs15: Variation Selector-15 support +++++++++++++++++++++++++++++ Emoji VS-15 results for *kitty* is 0 errors out of 158 total codepoints tested, 100.0% success. All codepoint combinations with Variation Selector-15 tested were successful. .. _kittysri: Standalone Regional Indicator support +++++++++++++++++++++++++++++++++++++ Standalone Regional Indicator support of *kitty* is **100.0%** (0 errors of 26 codepoints tested). .. _kittysfz: Standalone Fitzpatrick modifier support +++++++++++++++++++++++++++++++++++++++ Standalone Fitzpatrick skin tone modifier support of *kitty* is **0.0%** (5 errors of 5 codepoints tested). Sequence of a standalone Fitzpatrick modifier, from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ================================================= ============= ========== ========= ================================= # Codepoint Python Category wcwidth Name === ================================================= ============= ========== ========= ================================= 1 `U+0001F3FD `_ '\\U0001f3fd' Sk 2 EMOJI MODIFIER FITZPATRICK TYPE-4 === ================================================= ============= ========== ========= ================================= Total codepoints: 1 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xf0\x9f\x8f\xbd|\\n12|\\n" 🏽| 12| Screenshot: .. image:: ../_static/screenshots/kitty/sfz.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 0. .. _kittyri: Regional Indicator flag sequence support ++++++++++++++++++++++++++++++++++++++++ Regional Indicator flag sequence support of *kitty* is **100.0%** (0 errors of 262 sequences tested). .. _kittygraphics: Graphics Protocol Support +++++++++++++++++++++++++ *kitty* supports the following graphics protocols: `Kitty graphics`_. **Detection Methods:** - **Sixel** and **ReGIS**: Detected via the Device Attributes (DA1) query ``CSI c`` (``\x1b[c``). Extension code ``4`` indicates Sixel_ support, ``3`` ReGIS_. - **Kitty graphics**: Detected by sending a Kitty graphics query and checking for an ``OK`` response. - **iTerm2 inline images**: Detected via the iTerm2 capabilities query ``OSC 1337 ; Capabilities``. .. _Sixel: https://en.wikipedia.org/wiki/Sixel .. _ReGIS: https://en.wikipedia.org/wiki/ReGIS .. _`iTerm2 inline images`: https://iterm2.com/documentation-images.html .. _kittylang: Language Support ++++++++++++++++ The following 57 languages were tested with 100% success: Aja, Amarakaeri, Arabic, Standard, Assyrian Neo-Aramaic, Baatonum, Bamun, Belanda Viri, Bora, Catalan (2), Chickasaw, Chinantec, Chiltepec, Dagaare, Southern, Dari, Dendi, Dinka, Northeastern, Dzongkha, Evenki, Farsi, Western, Fon, French (Welche), Fur, Ga, Gen, Gilyak, Gumuz, Kabyle, Lamnso', Lingala (tones), Maldivian, Maori (2), Mazahua Central, Mòoré, Nanai, Navajo, Orok, Otomi, Mezquital, Panjabi, Western, Pashto, Northern, Picard, Pular (Adlam), Secoya, Seraiki, Shipibo-Conibo, Siona, South Azerbaijani, Tagalog (Tagalog), Tai Dam, Tamazight, Central Atlas, Tem, Tibetan, Central, Ticuna, Uduk, Urdu (2), Vietnamese, Yaneshaʼ, Yiddish, Eastern, Yoruba. The following 28 languages are not fully supported: .. table:: :class: sphinx-datatable ====================================================== ========== ========= ============= lang n_errors n_total pct_success ====================================================== ========== ========= ============= :ref:`Sanskrit ` 146 155 5.8% :ref:`Tamang, Eastern ` 10 11 9.1% :ref:`Malayalam ` 345 382 9.7% :ref:`Bengali ` 299 335 10.7% :ref:`Sanskrit (Grantha) ` 197 237 16.9% :ref:`Marathi ` 85 103 17.5% :ref:`Magahi ` 18 22 18.2% :ref:`Hindi ` 134 164 18.3% :ref:`Nepali ` 58 71 18.3% :ref:`Tamil ` 106 132 19.7% :ref:`Gujarati ` 216 290 25.5% :ref:`Javanese (Javanese) ` 362 488 25.8% :ref:`Bhojpuri ` 186 252 26.2% :ref:`Khmer, Central ` 287 390 26.4% :ref:`Maithili ` 46 66 30.3% :ref:`Telugu ` 231 335 31.0% :ref:`Khün ` 242 354 31.6% :ref:`Kannada ` 157 236 33.5% :ref:`Sinhala ` 101 198 49.0% :ref:`Panjabi, Eastern ` 103 236 56.4% :ref:`Burmese ` 89 223 60.1% :ref:`Chakma ` 84 225 62.7% :ref:`Mon ` 68 208 67.3% :ref:`Shan ` 11 106 89.6% :ref:`Thai (2) ` 1 14 92.9% :ref:`Thai ` 14 206 93.2% :ref:`Lao ` 10 227 95.6% :ref:`Urdu ` 1 23 95.7% ====================================================== ========== ========= ============= .. _kittylangsanskrit: Sanskrit ^^^^^^^^ Sequence of language *Sanskrit* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ======================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ======================== 1 `U+0915 `_ '\\u0915' Lo 1 DEVANAGARI LETTER KA 2 `U+094D `_ '\\u094d' Mn 0 DEVANAGARI SIGN VIRAMA 3 `U+0915 `_ '\\u0915' Lo 1 DEVANAGARI LETTER KA 4 `U+093E `_ '\\u093e' Mc 0 DEVANAGARI VOWEL SIGN AA === ========================================= ========= ========== ========= ======================== Total codepoints: 4 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa4\x95\xe0\xa5\x8d\xe0\xa4\x95\xe0\xa4\xbe|\\n12|\\n" क्का| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Sanskrit.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangtamangeastern: Tamang, Eastern ^^^^^^^^^^^^^^^ Sequence of language *Tamang, Eastern* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ======================= # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ======================= 1 `U+0915 `_ '\\u0915' Lo 1 DEVANAGARI LETTER KA 2 `U+094D `_ '\\u094d' Mn 0 DEVANAGARI SIGN VIRAMA 3 `U+0915 `_ '\\u0915' Lo 1 DEVANAGARI LETTER KA 4 `U+094B `_ '\\u094b' Mc 0 DEVANAGARI VOWEL SIGN O === ========================================= ========= ========== ========= ======================= Total codepoints: 4 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa4\x95\xe0\xa5\x8d\xe0\xa4\x95\xe0\xa5\x8b|\\n12|\\n" क्को| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Tamang__Eastern.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangmalayalam: Malayalam ^^^^^^^^^ Sequence of language *Malayalam* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ======================= # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ======================= 1 `U+0D05 `_ '\\u0d05' Lo 1 MALAYALAM LETTER A 2 `U+0D02 `_ '\\u0d02' Mc 0 MALAYALAM SIGN ANUSVARA === ========================================= ========= ========== ========= ======================= Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xb4\x85\xe0\xb4\x82|\\n12|\\n" അം| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Malayalam.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangbengali: Bengali ^^^^^^^ Sequence of language *Bengali* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ===================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ===================== 1 `U+0985 `_ '\\u0985' Lo 1 BENGALI LETTER A 2 `U+0982 `_ '\\u0982' Mc 0 BENGALI SIGN ANUSVARA === ========================================= ========= ========== ========= ===================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa6\x85\xe0\xa6\x82|\\n12|\\n" অং| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Bengali.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangsanskritgrantha: Sanskrit (Grantha) ^^^^^^^^^^^^^^^^^^ Sequence of language *Sanskrit (Grantha)* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ================================================= ============= ========== ========= ===================== # Codepoint Python Category wcwidth Name === ================================================= ============= ========== ========= ===================== 1 `U+00011305 `_ '\\U00011305' Lo 1 GRANTHA LETTER A 2 `U+00011302 `_ '\\U00011302' Mc 0 GRANTHA SIGN ANUSVARA === ================================================= ============= ========== ========= ===================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xf0\x91\x8c\x85\xf0\x91\x8c\x82|\\n12|\\n" 𑌅𑌂| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Sanskrit__Grantha_.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangmarathi: Marathi ^^^^^^^ Sequence of language *Marathi* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ======================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ======================== 1 `U+0915 `_ '\\u0915' Lo 1 DEVANAGARI LETTER KA 2 `U+094D `_ '\\u094d' Mn 0 DEVANAGARI SIGN VIRAMA 3 `U+0915 `_ '\\u0915' Lo 1 DEVANAGARI LETTER KA 4 `U+093E `_ '\\u093e' Mc 0 DEVANAGARI VOWEL SIGN AA 5 `U+0902 `_ '\\u0902' Mn 0 DEVANAGARI SIGN ANUSVARA === ========================================= ========= ========== ========= ======================== Total codepoints: 5 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa4\x95\xe0\xa5\x8d\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\x82|\\n12|\\n" क्कां| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Marathi.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangmagahi: Magahi ^^^^^^ Sequence of language *Magahi* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ======================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ======================== 1 `U+0915 `_ '\\u0915' Lo 1 DEVANAGARI LETTER KA 2 `U+094D `_ '\\u094d' Mn 0 DEVANAGARI SIGN VIRAMA 3 `U+0930 `_ '\\u0930' Lo 1 DEVANAGARI LETTER RA 4 `U+0942 `_ '\\u0942' Mn 0 DEVANAGARI VOWEL SIGN UU === ========================================= ========= ========== ========= ======================== Total codepoints: 4 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa4\x95\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa5\x82|\\n12|\\n" क्रू| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Magahi.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylanghindi: Hindi ^^^^^ Sequence of language *Hindi* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ======================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ======================== 1 `U+0915 `_ '\\u0915' Lo 1 DEVANAGARI LETTER KA 2 `U+093E `_ '\\u093e' Mc 0 DEVANAGARI VOWEL SIGN AA 3 `U+0902 `_ '\\u0902' Mn 0 DEVANAGARI SIGN ANUSVARA === ========================================= ========= ========== ========= ======================== Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\x82|\\n12|\\n" कां| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Hindi.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangnepali: Nepali ^^^^^^ Sequence of language *Nepali* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ====================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ====================== 1 `U+0915 `_ '\\u0915' Lo 1 DEVANAGARI LETTER KA 2 `U+094D `_ '\\u094d' Mn 0 DEVANAGARI SIGN VIRAMA 3 `U+091B `_ '\\u091b' Lo 1 DEVANAGARI LETTER CHA === ========================================= ========= ========== ========= ====================== Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa4\x95\xe0\xa5\x8d\xe0\xa4\x9b|\\n12|\\n" क्छ| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Nepali.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangtamil: Tamil ^^^^^ Sequence of language *Tamil* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= =================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= =================== 1 `U+0B95 `_ '\\u0b95' Lo 1 TAMIL LETTER KA 2 `U+0BBE `_ '\\u0bbe' Mc 0 TAMIL VOWEL SIGN AA === ========================================= ========= ========== ========= =================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xae\x95\xe0\xae\xbe|\\n12|\\n" கா| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Tamil.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylanggujarati: Gujarati ^^^^^^^^ Sequence of language *Gujarati* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ===================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ===================== 1 `U+0A95 `_ '\\u0a95' Lo 1 GUJARATI LETTER KA 2 `U+0A83 `_ '\\u0a83' Mc 0 GUJARATI SIGN VISARGA === ========================================= ========= ========== ========= ===================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xaa\x95\xe0\xaa\x83|\\n12|\\n" કઃ| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Gujarati.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangjavanesejavanese: Javanese (Javanese) ^^^^^^^^^^^^^^^^^^^ Sequence of language *Javanese (Javanese)* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ===================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ===================== 1 `U+A98F `_ '\\ua98f' Lo 1 JAVANESE LETTER KA 2 `U+A983 `_ '\\ua983' Mc 0 JAVANESE SIGN WIGNYAN === ========================================= ========= ========== ========= ===================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xea\xa6\x8f\xea\xa6\x83|\\n12|\\n" ꦏꦃ| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Javanese__Javanese_.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangbhojpuri: Bhojpuri ^^^^^^^^ Sequence of language *Bhojpuri* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ======================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ======================== 1 `U+0915 `_ '\\u0915' Lo 1 DEVANAGARI LETTER KA 2 `U+093E `_ '\\u093e' Mc 0 DEVANAGARI VOWEL SIGN AA === ========================================= ========= ========== ========= ======================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa4\x95\xe0\xa4\xbe|\\n12|\\n" का| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Bhojpuri.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangkhmercentral: Khmer, Central ^^^^^^^^^^^^^^ Sequence of language *Khmer, Central* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= =================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= =================== 1 `U+1780 `_ '\\u1780' Lo 1 KHMER LETTER KA 2 `U+17B6 `_ '\\u17b6' Mc 0 KHMER VOWEL SIGN AA === ========================================= ========= ========== ========= =================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe1\x9e\x80\xe1\x9e\xb6|\\n12|\\n" កា| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Khmer__Central.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangmaithili: Maithili ^^^^^^^^ Sequence of language *Maithili* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ======================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ======================== 1 `U+0915 `_ '\\u0915' Lo 1 DEVANAGARI LETTER KA 2 `U+093F `_ '\\u093f' Mc 0 DEVANAGARI VOWEL SIGN I 3 `U+0902 `_ '\\u0902' Mn 0 DEVANAGARI SIGN ANUSVARA === ========================================= ========= ========== ========= ======================== Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa4\x95\xe0\xa4\xbf\xe0\xa4\x82|\\n12|\\n" किं| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Maithili.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangtelugu: Telugu ^^^^^^ Sequence of language *Telugu* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ==================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ==================== 1 `U+0C05 `_ '\\u0c05' Lo 1 TELUGU LETTER A 2 `U+0C02 `_ '\\u0c02' Mc 0 TELUGU SIGN ANUSVARA === ========================================= ========= ========== ========= ==================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xb0\x85\xe0\xb0\x82|\\n12|\\n" అం| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Telugu.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangkhn: Khün ^^^^ Sequence of language *Khün* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ======================= # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ======================= 1 `U+1A20 `_ '\\u1a20' Lo 1 TAI THAM LETTER HIGH KA 2 `U+1A60 `_ '\\u1a60' Mn 0 TAI THAM SIGN SAKOT 3 `U+1A20 `_ '\\u1a20' Lo 1 TAI THAM LETTER HIGH KA === ========================================= ========= ========== ========= ======================= Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe1\xa8\xa0\xe1\xa9\xa0\xe1\xa8\xa0|\\n12|\\n" ᨠ᩠ᨠ| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Khün.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangkannada: Kannada ^^^^^^^ Sequence of language *Kannada* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ===================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ===================== 1 `U+0C85 `_ '\\u0c85' Lo 1 KANNADA LETTER A 2 `U+0C82 `_ '\\u0c82' Mc 0 KANNADA SIGN ANUSVARA === ========================================= ========= ========== ========= ===================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xb2\x85\xe0\xb2\x82|\\n12|\\n" ಅಂ| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Kannada.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangsinhala: Sinhala ^^^^^^^ Sequence of language *Sinhala* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ================================= # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ================================= 1 `U+0D9A `_ '\\u0d9a' Lo 1 SINHALA LETTER ALPAPRAANA KAYANNA 2 `U+0DCF `_ '\\u0dcf' Mc 0 SINHALA VOWEL SIGN AELA-PILLA === ========================================= ========= ========== ========= ================================= Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xb6\x9a\xe0\xb7\x8f|\\n12|\\n" කා| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Sinhala.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangpanjabieastern: Panjabi, Eastern ^^^^^^^^^^^^^^^^ Sequence of language *Panjabi, Eastern* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ====================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ====================== 1 `U+0A15 `_ '\\u0a15' Lo 1 GURMUKHI LETTER KA 2 `U+0A3E `_ '\\u0a3e' Mc 0 GURMUKHI VOWEL SIGN AA === ========================================= ========= ========== ========= ====================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa8\x95\xe0\xa8\xbe|\\n12|\\n" ਕਾ| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Panjabi__Eastern.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangburmese: Burmese ^^^^^^^ Sequence of language *Burmese* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ==================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ==================== 1 `U+1000 `_ '\\u1000' Lo 1 MYANMAR LETTER KA 2 `U+1031 `_ '\\u1031' Mc 0 MYANMAR VOWEL SIGN E === ========================================= ========= ========== ========= ==================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe1\x80\x80\xe1\x80\xb1|\\n12|\\n" ကေ| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Burmese.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangchakma: Chakma ^^^^^^ Sequence of language *Chakma* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ================================================= ============= ========== ========= =================== # Codepoint Python Category wcwidth Name === ================================================= ============= ========== ========= =================== 1 `U+00011103 `_ '\\U00011103' Lo 1 CHAKMA LETTER AA 2 `U+0001112C `_ '\\U0001112c' Mc 0 CHAKMA VOWEL SIGN E === ================================================= ============= ========== ========= =================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xf0\x91\x84\x83\xf0\x91\x84\xac|\\n12|\\n" 𑄃𑄬| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Chakma.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangmon: Mon ^^^ Sequence of language *Mon* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ==================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ==================== 1 `U+1000 `_ '\\u1000' Lo 1 MYANMAR LETTER KA 2 `U+1031 `_ '\\u1031' Mc 0 MYANMAR VOWEL SIGN E 3 `U+102F `_ '\\u102f' Mn 0 MYANMAR VOWEL SIGN U === ========================================= ========= ========== ========= ==================== Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe1\x80\x80\xe1\x80\xb1\xe1\x80\xaf|\\n12|\\n" ကေု| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Mon.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangshan: Shan ^^^^ Sequence of language *Shan* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ========================= # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ========================= 1 `U+1004 `_ '\\u1004' Lo 1 MYANMAR LETTER NGA 2 `U+1084 `_ '\\u1084' Mc 0 MYANMAR VOWEL SIGN SHAN E === ========================================= ========= ========== ========= ========================= Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe1\x80\x84\xe1\x82\x84|\\n12|\\n" ငႄ| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Shan.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangthai2: Thai (2) ^^^^^^^^ Sequence of language *Thai (2)* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ====================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ====================== 1 `U+0E22 `_ '\\u0e22' Lo 1 THAI CHARACTER YO YAK 2 `U+0E48 `_ '\\u0e48' Mn 0 THAI CHARACTER MAI EK 3 `U+0E33 `_ '\\u0e33' Lo 1 THAI CHARACTER SARA AM === ========================================= ========= ========== ========= ====================== Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xb8\xa2\xe0\xb9\x88\xe0\xb8\xb3|\\n12|\\n" ย่ำ| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Thai__2_.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangthai: Thai ^^^^ Sequence of language *Thai* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ====================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ====================== 1 `U+0E01 `_ '\\u0e01' Lo 1 THAI CHARACTER KO KAI 2 `U+0E33 `_ '\\u0e33' Lo 1 THAI CHARACTER SARA AM === ========================================= ========= ========== ========= ====================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xb8\x81\xe0\xb8\xb3|\\n12|\\n" กำ| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Thai.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylanglao: Lao ^^^ Sequence of language *Lao* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ================= # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ================= 1 `U+0E81 `_ '\\u0e81' Lo 1 LAO LETTER KO 2 `U+0EB3 `_ '\\u0eb3' Lo 1 LAO VOWEL SIGN AM === ========================================= ========= ========== ========= ================= Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xba\x81\xe0\xba\xb3|\\n12|\\n" ກຳ| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Lao.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 1. .. _kittylangurdu: Urdu ^^^^ Sequence of language *Urdu* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= =============================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= =============================== 1 `U+0601 `_ '\\u0601' Cf 1 ARABIC SIGN SANAH 2 `U+06F1 `_ '\\u06f1' Nd 1 EXTENDED ARABIC-INDIC DIGIT ONE === ========================================= ========= ========== ========= =============================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xd8\x81\xdb\xb1|\\n12|\\n" ؁۱| 12| Screenshot: .. image:: ../_static/screenshots/kitty/lang_Urdu.png :alt: Terminal screenshot of the rendering discrepancy :width: 1024px :height: 258px - python `wcwidth.wcswidth()`_ measures width 2, while *kitty* measures width 0. .. _kittydecmodes: DEC Private Modes Support +++++++++++++++++++++++++ DEC private modes results for *kitty*: 7 changeable modes of 7 supported out of 8 total modes tested (87.5% support, 87.5% changeable). Complete list of DEC private modes tested: .. table:: :class: sphinx-datatable ====== ===================== =================================== =========== ============ ========= Mode Name Description Supported Changeable Enabled ====== ===================== =================================== =========== ============ ========= 1004 FOCUS_IN_OUT_EVENTS Send FocusIn/FocusOut events Yes Yes No 1006 MOUSE_EXTENDED_SGR Enable SGR Mouse Mode Yes Yes No 2004 BRACKETED_PASTE Set bracketed paste mode Yes Yes No 2026 SYNCHRONIZED_OUTPUT Synchronized Output Yes Yes No 2027 GRAPHEME_CLUSTERING Grapheme Clustering No No No 2031 COLOR_PALETTE_UPDATES Color palette updates Yes Yes No 2048 IN_BAND_WINDOW_RESIZE In-Band Window Resize Notifications Yes Yes No 5522 BRACKETED_PASTE_MIME Bracketed Paste MIME Yes Yes No ====== ===================== =================================== =========== ============ ========= **Summary**: 7 changeable, 1 not changeable. .. _kittykittykbd: Kitty Keyboard Protocol +++++++++++++++++++++++ *kitty* supports the `Kitty keyboard protocol`_. .. table:: :class: sphinx-datatable === =============================== ===================== ======= # Flag Key State === =============================== ===================== ======= 1 Disambiguate escape codes ``disambiguate`` No 2 Report event types ``report_events`` No 3 Report alternate keys ``report_alternates`` No 4 Report all keys as escape codes ``report_all_keys`` No 5 Report associated text ``report_text`` No === =============================== ===================== ======= Detection is performed by sending ``CSI ? u`` to query the current progressive enhancement flags. A terminal that supports this protocol responds with the active flags value. .. _`Kitty keyboard protocol`: https://sw.kovidgoyal.net/kitty/keyboard-protocol/ .. _kittyxtgettcap: XTGETTCAP (Terminfo Capabilities) +++++++++++++++++++++++++++++++++ *kitty* supports the ``XTGETTCAP`` sequence and reports **220** terminfo capabilities (Full). .. table:: :class: sphinx-datatable === ============================== ============================ ================================================================ # Capability Description Value === ============================== ============================ ================================================================ 1 BD Enter bold mode (kitty) ``\E[?2004l`` 2 BE Exit bold mode (kitty) ``\E[?2004h`` 3 Cr Set cursor color ``\E]112\a`` 4 Cs Reset cursor color ``\E]12;%p1%s\a`` 5 Ms Clipboard set ``\E]52;%p1%s;%p2%s\E\`` 6 PE Presentation end (kitty) ``\E[201~`` 7 PS Presentation start (kitty) ``\E[200~`` 8 RV Enter reverse mode (kitty) ``\E[>c`` 9 Se Reset underline style ``\E[0\sq`` 10 Setulc Set underline color ``\E[58:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&...`` 11 Smulx Styled underline ``\E[4:%p1%dm`` 12 Ss Set underline style ``\E[%p1%d\sq`` 13 Su Colored underlines *(empty)* 14 Sync Synchronized output ``\EP=%p1%ds\E\`` 15 TN Terminal name ``xterm-kitty`` 16 Tc Truecolor (24-bit RGB) *(empty)* 17 XF Extended functionality *(empty)* 18 XR Enter reset mode (kitty) ``\E[>0q`` 19 acsc Alternate character set ``++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyz...`` 20 am Auto right margin *(empty)* 21 bel Bell ``\a`` 22 blink Enter blink mode ``\E[5m`` 23 bold Enter bold mode ``\E[1m`` 24 bw Auto left margin *(empty)* 25 ccc Can redefine colors *(empty)* 26 civis Hide cursor ``\E[?25l`` 27 clear Clear screen ``\E[H\E[2J`` 28 cnorm Normal cursor ``\E[?12h\E[?25h`` 29 colors Max colors on screen ``256`` 30 cols Columns ``80`` 31 cr Carriage return ``\r`` 32 csr Change scroll region ``\E[%i%p1%d;%p2%dr`` 33 cub Cursor left n ``\E[%p1%dD`` 34 cub1 Cursor left ``\b`` 35 cud Cursor down n ``\E[%p1%dB`` 36 cud1 Cursor down ``\n`` 37 cuf Cursor right n ``\E[%p1%dC`` 38 cuf1 Cursor right ``\E[C`` 39 cup Cursor address ``\E[%i%p1%d;%p2%dH`` 40 cuu Cursor up n ``\E[%p1%dA`` 41 cuu1 Cursor up ``\E[A`` 42 cvvis Very visible cursor ``\E[?12;25h`` 43 dch Delete n characters ``\E[%p1%dP`` 44 dch1 Delete character ``\E[P`` 45 dim Enter dim mode ``\E[2m`` 46 dl Delete n lines ``\E[%p1%dM`` 47 dl1 Delete line ``\E[M`` 48 dsl Disable status line ``\E]2;\E\`` 49 ech Erase characters ``\E[%p1%dX`` 50 ed Clear to end of screen ``\E[J`` 51 el Clear to end of line ``\E[K`` 52 el1 Clear to start of line ``\E[1K`` 53 fd Enter font mode (kitty) ``\E[?1004l`` 54 fe Exit font mode (kitty) ``\E[?1004h`` 55 flash Flash screen ``\E[?5h$<100/>\E[?5l`` 56 fsl From status line ``\a`` 57 fullkbd Full Kitty keyboard protocol *(empty)* 58 home Cursor home ``\E[H`` 59 hpa Horizontal position ``\E[%i%p1%dG`` 60 hs Has status line *(empty)* 61 ht Horizontal tab ``\t`` 62 hts Set tab stop ``\EH`` 63 ich Insert n characters ``\E[%p1%d@`` 64 il Insert n lines ``\E[%p1%dL`` 65 il1 Insert line ``\E[L`` 66 ind Scroll forward ``\n`` 67 indn Scroll forward n ``\E[%p1%dS`` 68 initc Initialize color ``\E]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{100...`` 69 it Init tabs ``8`` 70 kDC Shifted delete-char key ``\E[3;2~`` 71 kDC3 Alt delete-char key ``\E[3;3~`` 72 kDC4 Alt-Shift delete-char key ``\E[3;4~`` 73 kDC5 Ctrl delete-char key ``\E[3;5~`` 74 kDC6 Ctrl-Shift delete-char key ``\E[3;6~`` 75 kDC7 Ctrl-Alt delete-char key ``\E[3;7~`` 76 kDN Shifted down-arrow key ``\E[1;2B`` 77 kDN3 Alt down-arrow key ``\E[1;3B`` 78 kDN4 Alt-Shift down-arrow key ``\E[1;4B`` 79 kDN5 Ctrl down-arrow key ``\E[1;5B`` 80 kDN6 Ctrl-Shift down-arrow key ``\E[1;6B`` 81 kDN7 Ctrl-Alt down-arrow key ``\E[1;7B`` 82 kEND Shifted end key ``\E[1;2F`` 83 kEND3 Alt end key ``\E[1;3F`` 84 kEND4 Alt-Shift end key ``\E[1;4F`` 85 kEND5 Ctrl end key ``\E[1;5F`` 86 kEND6 Ctrl-Shift end key ``\E[1;6F`` 87 kEND7 Ctrl-Alt end key ``\E[1;7F`` 88 kHOM Shifted home key ``\E[1;2H`` 89 kHOM3 Alt home key ``\E[1;3H`` 90 kHOM4 Alt-Shift home key ``\E[1;4H`` 91 kHOM5 Ctrl home key ``\E[1;5H`` 92 kHOM6 Ctrl-Shift home key ``\E[1;6H`` 93 kHOM7 Ctrl-Alt home key ``\E[1;7H`` 94 kIC Shifted insert-char key ``\E[2;2~`` 95 kIC3 Alt insert-char key ``\E[2;3~`` 96 kIC4 Alt-Shift insert-char key ``\E[2;4~`` 97 kIC5 Ctrl insert-char key ``\E[2;5~`` 98 kIC6 Ctrl-Shift insert-char key ``\E[2;6~`` 99 kIC7 Ctrl-Alt insert-char key ``\E[2;7~`` 100 kLFT Shifted left-arrow key ``\E[1;2D`` 101 kLFT3 Alt left-arrow key ``\E[1;3D`` 102 kLFT4 Alt-Shift left-arrow key ``\E[1;4D`` 103 kLFT5 Ctrl left-arrow key ``\E[1;5D`` 104 kLFT6 Ctrl-Shift left-arrow key ``\E[1;6D`` 105 kLFT7 Ctrl-Alt left-arrow key ``\E[1;7D`` 106 kNXT Shifted next-page key ``\E[6;2~`` 107 kNXT3 Alt next-page key ``\E[6;3~`` 108 kNXT4 Alt-Shift next-page key ``\E[6;4~`` 109 kNXT5 Ctrl next-page key ``\E[6;5~`` 110 kNXT6 Ctrl-Shift next-page key ``\E[6;6~`` 111 kNXT7 Ctrl-Alt next-page key ``\E[6;7~`` 112 kPRV Shifted previous-page key ``\E[5;2~`` 113 kPRV3 Alt previous-page key ``\E[5;3~`` 114 kPRV4 Alt-Shift previous-page key ``\E[5;4~`` 115 kPRV5 Ctrl previous-page key ``\E[5;5~`` 116 kPRV6 Ctrl-Shift previous-page key ``\E[5;6~`` 117 kPRV7 Ctrl-Alt previous-page key ``\E[5;7~`` 118 kRIT Shifted right-arrow key ``\E[1;2C`` 119 kRIT3 Alt right-arrow key ``\E[1;3C`` 120 kRIT4 Alt-Shift right-arrow key ``\E[1;4C`` 121 kRIT5 Ctrl right-arrow key ``\E[1;5C`` 122 kRIT6 Ctrl-Shift right-arrow key ``\E[1;6C`` 123 kRIT7 Ctrl-Alt right-arrow key ``\E[1;7C`` 124 kUP Shifted up-arrow key ``\E[1;2A`` 125 kUP3 Alt up-arrow key ``\E[1;3A`` 126 kUP4 Alt-Shift up-arrow key ``\E[1;4A`` 127 kUP5 Ctrl up-arrow key ``\E[1;5A`` 128 kUP6 Ctrl-Shift up-arrow key ``\E[1;6A`` 129 kUP7 Ctrl-Alt up-arrow key ``\E[1;7A`` 130 kbs Backspace key ```` 131 kcbt Back-tab key ``\E[Z`` 132 kcub1 Left arrow key ``\EOD`` 133 kcud1 Down arrow key ``\EOB`` 134 kcuf1 Right arrow key ``\EOC`` 135 kcuu1 Up arrow key ``\EOA`` 136 kdch1 Delete character key ``\E[3~`` 137 kend End key ``\EOF`` 138 kf1 Function key F1 ``\EOP`` 139 kf10 Function key F10 ``\E[21~`` 140 kf11 Function key F11 ``\E[23~`` 141 kf12 Function key F12 ``\E[24~`` 142 kf2 Function key F2 ``\EOQ`` 143 kf3 Function key F3 ``\EOR`` 144 kf4 Function key F4 ``\EOS`` 145 kf5 Function key F5 ``\E[15~`` 146 kf6 Function key F6 ``\E[17~`` 147 kf7 Function key F7 ``\E[18~`` 148 kf8 Function key F8 ``\E[19~`` 149 kf9 Function key F9 ``\E[20~`` 150 khome Home key ``\EOH`` 151 kich1 Insert character key ``\E[2~`` 152 kind Scroll-down key ``\E[1;2B`` 153 kitty-query-allow_hyperlinks hyperlink support ``yes`` 154 kitty-query-background background color ``#000000`` 155 kitty-query-background_opacity background opacity ``1`` 156 kitty-query-bold_font bold font ``FreeMonoBold`` 157 kitty-query-bold_italic_font bold-italic font ``FreeMonoBoldOblique`` 158 kitty-query-clipboard_control clipboard control ``write-clipboard write-primary read-clipboard-ask read-pri...`` 159 kitty-query-dpi_x DPI X ``96`` 160 kitty-query-dpi_y DPI Y ``96`` 161 kitty-query-font_family font family ``FreeMono`` 162 kitty-query-font_size font size ``11`` 163 kitty-query-foreground foreground color ``#dddddd`` 164 kitty-query-italic_font italic font ``FreeMonoOblique`` 165 kitty-query-name terminal name ``kitty`` 166 kitty-query-os_name OS name ``linux`` 167 kitty-query-version version ``0.47.1`` 168 km Has meta key *(empty)* 169 kmous Mouse key ``\E[M`` 170 knp Next page key ``\E[6~`` 171 kpp Previous page key ``\E[5~`` 172 kri Scroll-up key ``\E[1;2A`` 173 kxIN Keyboard in (kitty) ``\E[I`` 174 kxOUT Keyboard out (kitty) ``\E[O`` 175 lines Lines ``24`` 176 mc5i Will not echo input *(empty)* 177 mir Move in insert mode *(empty)* 178 msgr Move in standout mode *(empty)* 179 npc No pad character *(empty)* 180 oc Original colors ``\E]104\a`` 181 op Original pair ``\E[39;49m`` 182 pairs Max color pairs ``32767`` 183 query-os-name OS name query ``Linux`` 184 rc Restore cursor ``\E8`` 185 rep Repeat character ``%p1%c\E[%p2%{1}%-%db`` 186 rev Enter reverse mode ``\E[7m`` 187 ri Reverse index ``\EM`` 188 rin Scroll reverse n ``\E[%p1%dT`` 189 ritm Exit italics mode ``\E[23m`` 190 rmacs Exit alternate charset mode ``\E(B`` 191 rmam Disable line wrap ``\E[?7l`` 192 rmcup Exit alt screen ``\E[?1049l`` 193 rmir Exit insert mode ``\E[4l`` 194 rmkx Keypad local mode ``\E[?1l`` 195 rmso Exit standout mode ``\E[27m`` 196 rmul Exit underline mode ``\E[24m`` 197 rs1 Reset string 1 ``\E]\E\\Ec`` 198 sc Save cursor ``\E7`` 199 setab Set background color ``\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%...`` 200 setaf Set foreground color ``\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p...`` 201 setrgbb Set RGB background ``\E[48:2:%p1%d:%p2%d:%p3%dm`` 202 setrgbf Set RGB foreground ``\E[38:2:%p1%d:%p2%d:%p3%dm`` 203 sgr Set attributes ``%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t...`` 204 sgr0 Reset attributes ``\E(B\E[m`` 205 sitm Enter italics mode ``\E[3m`` 206 smacs Enter alternate charset mode ``\E(0`` 207 smam Enable line wrap ``\E[?7h`` 208 smcup Enter alt screen ``\E[?1049h`` 209 smir Enter insert mode ``\E[4h`` 210 smkx Keypad transmit mode ``\E[?1h`` 211 smso Enter standout mode ``\E[7m`` 212 smul Enter underline mode ``\E[4m`` 213 tbc Clear all tabs ``\E[3g`` 214 tsl To status line ``\E]2;`` 215 u6 CPR response format ``\E[%i%d;%dR`` 216 u7 CPR request ``\E[6n`` 217 u8 DA response format ``\E[?%[;0123456789]c`` 218 u9 DA request ``\E[c`` 219 vpa Vertical position ``\E[%i%p1%dd`` 220 xenl Newline glitch *(empty)* === ============================== ============================ ================================================================ The ``XTGETTCAP`` sequence (``DCS + q Pt ST``) allows applications to query terminfo capabilities directly from the terminal emulator, rather than relying on the system terminfo database. .. _kittytextsizing: Text Sizing Protocol (OSC 66) +++++++++++++++++++++++++++++ *kitty* supports the `Text Sizing protocol`_: explicit width (``w``), scale (``s``). The Text Sizing protocol (OSC 66) allows terminal programs to display text at different sizes and to explicitly specify the cell width of characters. Detection is performed by measuring cursor movement after sending ``ESC ] 66 ; w=2 ; BEL`` and ``ESC ] 66 ; s=2 ; BEL``. Because this terminal supports the `Text Sizing protocol`_, any application can programmatically set the displayed cell width of any character. This means that width errors for complex languages, emoji, variation selectors (VS15, VS16), standalone regional indicators and Fitzpatrick modifiers, and other problematic codepoints can be fully remediated at the application level. For this reason, *kitty* scores **100%** on the WIDE, LANG, ZWJ, VS16, VS15, SRI, SFZ, and RI width tests. .. _`Text Sizing protocol`: https://sw.kovidgoyal.net/kitty/text-sizing-protocol/ .. _kittytruecolor: Truecolor Support +++++++++++++++++ *kitty* supports 24-bit truecolor, detectable via: - XTGETTCAP (RGB capability): **no** - DECRQSS (truecolor probe): **yes (probe)** - COLORTERM: **yes (truecolor)** .. _kittyosc52: OSC 52 Clipboard Support ++++++++++++++++++++++++ *kitty* supports OSC 52 clipboard operations (detected via XTGETTCAP Ms). - DA1 extension 52: **no** - XTGETTCAP Ms: **yes** .. _kittyidentification: Terminal Identification +++++++++++++++++++++++ *kitty* is identified as **kitty** version **0.46.2** (detected via XTVERSION + XTGETTCAP TN). - XTVERSION (raw): **kitty(0.47.1)** - XTVERSION: **yes** - XTGETTCAP TN: **yes** (xterm-kitty) - ENQ: **no** - TERM_PROGRAM: **no** - TERM: **yes** (xterm-kitty) .. _kittyreproduce: Reproduction ++++++++++++ To reproduce these results for *kitty*, install and run ucs-detect_ with the following commands:: uvx ucs-detect --rerun data/kitty.yaml .. _kittytime: .. _kittyresources: Test Performance ++++++++++++++++ The test suite completed in **73.15 seconds** (73s). - **Mean CPU**: 115.5% - **Mean RSS**: 704.4 MB - **Total time**: 73.2s .. figure:: ../_static/profiles/kitty_cpu.png :alt: CPU usage over time :width: 600px CPU usage during test execution for *kitty*. .. figure:: ../_static/profiles/kitty_rss.png :alt: RSS memory over time :width: 600px RSS memory usage during test execution for *kitty*. .. figure:: ../_static/profiles/kitty_time.png :alt: Duration comparison :width: 600px Test duration for *kitty* compared to all other terminals. .. figure:: ../_static/profiles/kitty_cpu_vs_time.png :alt: CPU % vs Duration :width: 600px CPU % vs duration trade-off for *kitty*. .. _`printf(1)`: https://www.man7.org/linux/man-pages/man1/printf.1.html .. _`wcwidth.wcswidth()`: https://wcwidth.readthedocs.io/en/latest/intro.html .. _`ucs-detect`: https://github.com/jquast/ucs-detect .. _`ttyscan`: https://github.com/jquast/ttyscan .. _`DEC Private Modes`: https://blessed.readthedocs.io/en/latest/dec_modes.html .. _`OSC 52`: https://dev.to/djmitche/clipboards-terminals-and-linux-3pk5 .. _`XTGETTCAP`: https://codeberg.org/dnkl/foot#xtgettcap .. _`Truecolor`: https://github.com/termstandard/colors/blob/master/README.md .. _`Kitty graphics`: https://sw.kovidgoyal.net/kitty/graphics-protocol/