.. _xterm: XTerm ----- Tested Software version 410 on Linux. The homepage URL of this terminal is https://invisible-island.net/xterm/. Full results available at ucs-detect_ repository path `data/xterm.yaml `_. .. _xtermscores: Score Breakdown +++++++++++++++ Detailed breakdown of how scores are calculated for *XTerm*: .. table:: :class: sphinx-datatable === ================================== =========== ==================== # Score Type Raw Score Final Scaled Score === ================================== =========== ==================== 1 :ref:`WIDE ` 94.86% 92.7% 2 :ref:`NARROW ` 95.72% 95.7% 3 :ref:`ZWJ ` 0.69% 0.7% 4 :ref:`LANG ` 92.35% 92.3% 5 :ref:`VS16 ` 50.00% 50.0% 6 :ref:`VS15 ` 0.00% *(excluded)* 7 :ref:`SRI ` 0.00% 0.0% 8 :ref:`SFZ ` 100.00% 100.0% 9 :ref:`RI ` 100.00% 100.0% 10 :ref:`FEAT ` 40.62% 43.3% 11 :ref:`Graphics ` 0% 0.0% 12 :ref:`Resources ` 90.8% 90.8% === ================================== =========== ==================== **Score Comparison Plot:** The following plot shows how this terminal's scores compare to all other terminals tested. .. figure:: ../_static/plots/xterm_scores_scaled.png :align: center :width: 800px Scaled scores comparison across all metrics (normalized 0-100%) **Final Scaled Score Calculation:** - Raw Final Score: 57.21% (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: 38.1% (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: 480 - Total codepoints tested: 506 - Formula: 480 / 506 - Result: 94.86% **NARROW Score Details:** Narrow character support calculation: - Total successful codepoints: 179 - Total codepoints tested: 187 - Formula: 179 / 187 - Result: 95.72% **ZWJ Score Details:** Emoji ZWJ (Zero-Width Joiner) support calculation: - Total successful sequences: 10 - Total sequences tested: 1445 - Formula: 10 / 1445 - Result: 0.69% **VS16 Score Details:** Variation Selector-16 support calculation: - Errors: 213 of 426 codepoints tested - Success rate: 50.0% - Formula: 50.0 / 100 - Result: 50.00% **VS15 Score Details** *(excluded from final score)*: Variation Selector-15 support calculation: - Errors: 158 of 158 codepoints tested - Success rate: 0.0% - Formula: 0.0 / 100 - Result: 0.00% **SRI Score Details:** Standalone Regional Indicator support calculation: - Total successful codepoints: 0 - Total codepoints tested: 26 - Formula: 0 / 26 - Result: 0.00% **SFZ Score Details:** Standalone Fitzpatrick skin tone modifier support calculation: - Total successful codepoints: 5 - Total codepoints tested: 5 - Formula: 5 / 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% .. _xtermfeaturesdetails: **Features Score Details:** Notable terminal features (6.5 / 16): - :ref:`Set bracketed paste mode (2004) `: **yes** - :ref:`Synchronized Output (2026) `: **no** - :ref:`Send FocusIn/FocusOut events (1004) `: **yes** - :ref:`Enable SGR Mouse Mode (1006) `: **yes** - :ref:`Grapheme Clustering (2027) `: **no** - :ref:`Bracketed Paste MIME (5522) `: **no** - :ref:`Kitty Keyboard `: **no** - :ref:`XTGETTCAP (Partial) `: **partial** - :ref:`Text Sizing (OSC 66) `: **no** - :ref:`Kitty Clipboard Protocol `: **no** - :ref:`OSC 52 Clipboard `: **no** - :ref:`Kitty Pointer Shapes (OSC 22) `: **no** - :ref:`Kitty Notifications (OSC 99) `: **no** - :ref:`Color Report (OSC 10/11) `: **yes** - :ref:`Terminal Identification (XTVERSION) `: **yes** - :ref:`Truecolor Detection `: **yes** Raw score: 40.62% **Graphics Score Details:** Graphics protocol support (0%): - Sixel: **no** - ReGIS: **no** - iTerm2: **no** - Kitty: **no** Scoring: 100% for modern (iTerm2/Kitty), 50% for legacy only (Sixel/ReGIS), 0% for none **Resource Score Details:** - Duration: 3.0s - Mean CPU: 17.0% - Mean RSS: 25.6 MB - Resources Score: 91/100 - Note: log-scale composite cost = log(CPU+1) + log(RSS+1) + log(time+1) - Scaled result: 90.8% **LANG Score Details (Geometric Mean):** Geometric mean calculation: - Formula: (p₁ × p₂ × ... × pₙ)^(1/n) where n = 85 languages - About `geometric mean `_ - Result: 92.35% .. _xtermwide: Wide character support ++++++++++++++++++++++ Wide character support of *XTerm* is **94.9%** (26 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+0001F1F3 `_ '\\U0001f1f3' So 2 REGIONAL INDICATOR SYMBOL LETTER N === ================================================= ============= ========== ========= ================================== Total codepoints: 1 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xf0\x9f\x87\xb3|\\n12|\\n" 🇳| 12| - See Line 42371 of `ucs_wide.txt `_ for this sequence in the example file. Screenshot: .. image:: ../_static/screenshots/XTerm/wide.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 1. .. _xtermnarrow: Narrow character support ++++++++++++++++++++++++ Narrow character support of *XTerm* is **95.7%** (8 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+324C `_ '\\u324c' No 1 CIRCLED NUMBER FIFTY ON BLACK SQUARE === ========================================= ========= ========== ========= ==================================== Total codepoints: 1 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe3\x89\x8c|\\n1|\\n" ㉌| 1| - python `wcwidth.wcswidth()`_ measures width 1, while *XTerm* measures width 2. .. _xtermzwj: Emoji ZWJ support +++++++++++++++++ Compatibility of *XTerm* with the Unicode Emoji ZWJ sequence table is **0.7%** (1435 errors of 1445 sequences tested). Sequence of an Emoji ZWJ Sequence, from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ================================================= ============= ========== ========= ================================= # Codepoint Python Category wcwidth Name === ================================================= ============= ========== ========= ================================= 1 `U+0001F482 `_ '\\U0001f482' So 2 GUARDSMAN 2 `U+0001F3FE `_ '\\U0001f3fe' Sk 2 EMOJI MODIFIER FITZPATRICK TYPE-5 3 `U+200D `_ '\\u200d' Cf 0 ZERO WIDTH JOINER 4 `U+2642 `_ '\\u2642' So 1 MALE SIGN 5 `U+FE0F `_ '\\ufe0f' Mn 0 VARIATION SELECTOR-16 === ================================================= ============= ========== ========= ================================= Total codepoints: 5 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xf0\x9f\x92\x82\xf0\x9f\x8f\xbe\xe2\x80\x8d\xe2\x99\x82\xef\xb8\x8f|\\n12|\\n" 💂🏾‍♂️| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/zwj.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 5. .. _xtermvs16: Variation Selector-16 support +++++++++++++++++++++++++++++ Emoji VS-16 results for *XTerm* is 213 errors out of 426 total codepoints tested, 50.0% 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+2733 `_ '\\u2733' So 1 EIGHT SPOKED ASTERISK 2 `U+FE0F `_ '\\ufe0f' Mn 0 VARIATION SELECTOR-16 === ========================================= ========= ========== ========= ===================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe2\x9c\xb3\xef\xb8\x8f|\\n12|\\n" ✳️| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/vs16.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 1. .. _xtermvs15: Variation Selector-15 support +++++++++++++++++++++++++++++ Emoji VS-15 results for *XTerm* is 158 errors out of 158 total codepoints tested, 0.0% success. Sequence of a WIDE Emoji made NARROW by *Variation Selector-15*, from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ================================================= ============= ========== ========= ===================== # Codepoint Python Category wcwidth Name === ================================================= ============= ========== ========= ===================== 1 `U+0001F3AE `_ '\\U0001f3ae' So 2 VIDEO GAME 2 `U+FE0E `_ '\\ufe0e' Mn 0 VARIATION SELECTOR-15 === ================================================= ============= ========== ========= ===================== Total codepoints: 2 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xf0\x9f\x8e\xae\xef\xb8\x8e|\\n1|\\n" 🎮︎| 1| Screenshot: .. image:: ../_static/screenshots/XTerm/vs15.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 1, while *XTerm* measures width 2. .. _xtermsri: Standalone Regional Indicator support +++++++++++++++++++++++++++++++++++++ Standalone Regional Indicator support of *XTerm* is **0.0%** (26 errors of 26 codepoints tested). Sequence of a standalone Regional Indicator, from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ================================================= ============= ========== ========= ================================== # Codepoint Python Category wcwidth Name === ================================================= ============= ========== ========= ================================== 1 `U+0001F1F3 `_ '\\U0001f1f3' So 2 REGIONAL INDICATOR SYMBOL LETTER N === ================================================= ============= ========== ========= ================================== Total codepoints: 1 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xf0\x9f\x87\xb3|\\n12|\\n" 🇳| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/sri.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 1. .. _xtermsfz: Standalone Fitzpatrick modifier support +++++++++++++++++++++++++++++++++++++++ Standalone Fitzpatrick skin tone modifier support of *XTerm* is **100.0%** (0 errors of 5 codepoints tested). .. _xtermri: Regional Indicator flag sequence support ++++++++++++++++++++++++++++++++++++++++ Regional Indicator flag sequence support of *XTerm* is **100.0%** (0 errors of 262 sequences tested). .. _xtermgraphics: Graphics Protocol Support +++++++++++++++++++++++++ *XTerm* does not report support for any graphics protocols. **Note:** Sixel support can be enabled with argument ``-ti 340``. **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``. **Device Attributes Response:** - Extensions reported: 1, 2, 6, 9, 15, 17, 18, 21, 22, 28 - Sixel_ indicator (``4``): not present - ReGIS_ indicator (``3``): not present .. _Sixel: https://en.wikipedia.org/wiki/Sixel .. _ReGIS: https://en.wikipedia.org/wiki/ReGIS .. _`iTerm2 inline images`: https://iterm2.com/documentation-images.html .. _xtermlang: Language Support ++++++++++++++++ The following 65 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', Lao, Lingala (tones), Maldivian, Maori (2), Mazahua Central, Mòoré, Nanai, Navajo, Orok, Otomi, Mezquital, Panjabi, Eastern, Panjabi, Western, Pashto, Northern, Picard, Pular (Adlam), Secoya, Seraiki, Shan, Shipibo-Conibo, Sinhala, Siona, South Azerbaijani, Tagalog (Tagalog), Tai Dam, Tamazight, Central Atlas, Tamil, Tem, Thai, Thai (2), Tibetan, Central, Ticuna, Uduk, Urdu, Urdu (2), Vietnamese, Yaneshaʼ, Yiddish, Eastern, Yoruba. The following 20 languages are not fully supported: .. table:: :class: sphinx-datatable ====================================================== ========== ========= ============= lang n_errors n_total pct_success ====================================================== ========== ========= ============= :ref:`Javanese (Javanese) ` 321 488 34.2% :ref:`Tamang, Eastern ` 6 11 45.5% :ref:`Sanskrit ` 81 155 47.7% :ref:`Marathi ` 46 103 55.3% :ref:`Malayalam ` 139 382 63.6% :ref:`Hindi ` 56 164 65.9% :ref:`Magahi ` 7 22 68.2% :ref:`Nepali ` 22 71 69.0% :ref:`Maithili ` 19 66 71.2% :ref:`Bengali ` 96 335 71.3% :ref:`Sanskrit (Grantha) ` 61 237 74.3% :ref:`Khmer, Central ` 90 390 76.9% :ref:`Gujarati ` 50 290 82.8% :ref:`Bhojpuri ` 41 252 83.7% :ref:`Telugu ` 42 335 87.5% :ref:`Kannada ` 14 236 94.1% :ref:`Chakma ` 13 225 94.2% :ref:`Burmese ` 10 223 95.5% :ref:`Mon ` 7 208 96.6% :ref:`Khün ` 4 354 98.9% ====================================================== ========== ========= ============= .. _xtermlangjavanesejavanese: 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+A9BA `_ '\\ua9ba' Mc 0 JAVANESE VOWEL SIGN TALING 3 `U+A9B4 `_ '\\ua9b4' Mc 0 JAVANESE VOWEL SIGN TARUNG === ========================================= ========= ========== ========= ========================== Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xea\xa6\x8f\xea\xa6\xba\xea\xa6\xb4|\\n12|\\n" ꦏꦺꦴ| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Javanese__Javanese_.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangtamangeastern: 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/XTerm/lang_Tamang__Eastern.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangsanskrit: 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/XTerm/lang_Sanskrit.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangmarathi: 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/XTerm/lang_Marathi.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangmalayalam: Malayalam ^^^^^^^^^ Sequence of language *Malayalam* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ======================= # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ======================= 1 `U+0D15 `_ '\\u0d15' Lo 1 MALAYALAM LETTER KA 2 `U+0D4D `_ '\\u0d4d' Mn 0 MALAYALAM SIGN VIRAMA 3 `U+0D15 `_ '\\u0d15' Lo 1 MALAYALAM LETTER KA 4 `U+0D3E `_ '\\u0d3e' Mc 0 MALAYALAM VOWEL SIGN AA === ========================================= ========= ========== ========= ======================= Total codepoints: 4 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xb4\x95\xe0\xb5\x8d\xe0\xb4\x95\xe0\xb4\xbe|\\n12|\\n" ക്കാ| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Malayalam.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlanghindi: 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+094D `_ '\\u094d' Mn 0 DEVANAGARI SIGN VIRAMA 3 `U+0928 `_ '\\u0928' Lo 1 DEVANAGARI LETTER NA 4 `U+093F `_ '\\u093f' Mc 0 DEVANAGARI VOWEL SIGN I === ========================================= ========= ========== ========= ======================= Total codepoints: 4 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa4\x95\xe0\xa5\x8d\xe0\xa4\xa8\xe0\xa4\xbf|\\n12|\\n" क्नि| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Hindi.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangmagahi: 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+0937 `_ '\\u0937' Lo 1 DEVANAGARI LETTER SSA 4 `U+094D `_ '\\u094d' Mn 0 DEVANAGARI SIGN VIRAMA 5 `U+0923 `_ '\\u0923' Lo 1 DEVANAGARI LETTER NNA === ========================================= ========= ========== ========= ====================== Total codepoints: 5 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa4\x95\xe0\xa5\x8d\xe0\xa4\xb7\xe0\xa5\x8d\xe0\xa4\xa3|\\n12|\\n" क्ष्ण| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Magahi.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangnepali: 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+0924 `_ '\\u0924' Lo 1 DEVANAGARI LETTER TA 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\xa4\xe0\xa4\xbe|\\n12|\\n" क्ता| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Nepali.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangmaithili: 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+094D `_ '\\u094d' Mn 0 DEVANAGARI SIGN VIRAMA 3 `U+0937 `_ '\\u0937' Lo 1 DEVANAGARI LETTER SSA 4 `U+094D `_ '\\u094d' Mn 0 DEVANAGARI SIGN VIRAMA 5 `U+092F `_ '\\u092f' Lo 1 DEVANAGARI LETTER YA === ========================================= ========= ========== ========= ====================== Total codepoints: 5 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa4\x95\xe0\xa5\x8d\xe0\xa4\xb7\xe0\xa5\x8d\xe0\xa4\xaf|\\n12|\\n" क्ष्य| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Maithili.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangbengali: Bengali ^^^^^^^ Sequence of language *Bengali* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ===================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ===================== 1 `U+0995 `_ '\\u0995' Lo 1 BENGALI LETTER KA 2 `U+09BF `_ '\\u09bf' Mc 0 BENGALI VOWEL SIGN I 3 `U+0982 `_ '\\u0982' Mc 0 BENGALI SIGN ANUSVARA === ========================================= ========= ========== ========= ===================== Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa6\x95\xe0\xa6\xbf\xe0\xa6\x82|\\n12|\\n" কিং| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Bengali.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangsanskritgrantha: Sanskrit (Grantha) ^^^^^^^^^^^^^^^^^^ Sequence of language *Sanskrit (Grantha)* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ================================================= ============= ========== ========= ===================== # Codepoint Python Category wcwidth Name === ================================================= ============= ========== ========= ===================== 1 `U+00011315 `_ '\\U00011315' Lo 1 GRANTHA LETTER KA 2 `U+0001133E `_ '\\U0001133e' Mc 0 GRANTHA VOWEL SIGN AA 3 `U+00011302 `_ '\\U00011302' Mc 0 GRANTHA SIGN ANUSVARA === ================================================= ============= ========== ========= ===================== Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xf0\x91\x8c\x95\xf0\x91\x8c\xbe\xf0\x91\x8c\x82|\\n12|\\n" 𑌕𑌾𑌂| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Sanskrit__Grantha_.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangkhmercentral: 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+17D2 `_ '\\u17d2' Mn 0 KHMER SIGN COENG 3 `U+178A `_ '\\u178a' Lo 1 KHMER LETTER DA 4 `U+17C5 `_ '\\u17c5' Mc 0 KHMER VOWEL SIGN AU === ========================================= ========= ========== ========= =================== Total codepoints: 4 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe1\x9e\x80\xe1\x9f\x92\xe1\x9e\x8a\xe1\x9f\x85|\\n12|\\n" ក្ដៅ| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Khmer__Central.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlanggujarati: 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+0ACD `_ '\\u0acd' Mn 0 GUJARATI SIGN VIRAMA 3 `U+0A95 `_ '\\u0a95' Lo 1 GUJARATI LETTER KA 4 `U+0ABE `_ '\\u0abe' Mc 0 GUJARATI VOWEL SIGN AA === ========================================= ========= ========== ========= ====================== Total codepoints: 4 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xaa\x95\xe0\xab\x8d\xe0\xaa\x95\xe0\xaa\xbe|\\n12|\\n" ક્કા| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Gujarati.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangbhojpuri: 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+094D `_ '\\u094d' Mn 0 DEVANAGARI SIGN VIRAMA 3 `U+0918 `_ '\\u0918' Lo 1 DEVANAGARI LETTER GHA 4 `U+094D `_ '\\u094d' Mn 0 DEVANAGARI SIGN VIRAMA 5 `U+0918 `_ '\\u0918' Lo 1 DEVANAGARI LETTER GHA 6 `U+093F `_ '\\u093f' Mc 0 DEVANAGARI VOWEL SIGN I 7 `U+094D `_ '\\u094d' Mn 0 DEVANAGARI SIGN VIRAMA === ========================================= ========= ========== ========= ======================= Total codepoints: 7 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xa4\x95\xe0\xa5\x8d\xe0\xa4\x98\xe0\xa5\x8d\xe0\xa4\x98\xe0\xa4\xbf\xe0\xa5\x8d|\\n12|\\n" क्घ्घि्| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Bhojpuri.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 4. .. _xtermlangtelugu: Telugu ^^^^^^ Sequence of language *Telugu* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ==================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ==================== 1 `U+0C15 `_ '\\u0c15' Lo 1 TELUGU LETTER KA 2 `U+0C41 `_ '\\u0c41' Mc 0 TELUGU VOWEL SIGN U 3 `U+0C02 `_ '\\u0c02' Mc 0 TELUGU SIGN ANUSVARA === ========================================= ========= ========== ========= ==================== Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xb0\x95\xe0\xb1\x81\xe0\xb0\x82|\\n12|\\n" కుం| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Telugu.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangkannada: Kannada ^^^^^^^ Sequence of language *Kannada* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ===================== # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ===================== 1 `U+0C95 `_ '\\u0c95' Lo 1 KANNADA LETTER KA 2 `U+0CBE `_ '\\u0cbe' Mc 0 KANNADA VOWEL SIGN AA 3 `U+0C82 `_ '\\u0c82' Mc 0 KANNADA SIGN ANUSVARA === ========================================= ========= ========== ========= ===================== Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe0\xb2\x95\xe0\xb2\xbe\xe0\xb2\x82|\\n12|\\n" ಕಾಂ| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Kannada.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangchakma: Chakma ^^^^^^ Sequence of language *Chakma* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ================================================= ============= ========== ========= =================== # Codepoint Python Category wcwidth Name === ================================================= ============= ========== ========= =================== 1 `U+00011107 `_ '\\U00011107' Lo 1 CHAKMA LETTER KAA 2 `U+00011133 `_ '\\U00011133' Mn 0 CHAKMA VIRAMA 3 `U+00011120 `_ '\\U00011120' Lo 1 CHAKMA LETTER YYAA 4 `U+0001112C `_ '\\U0001112c' Mc 0 CHAKMA VOWEL SIGN E === ================================================= ============= ========== ========= =================== Total codepoints: 4 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xf0\x91\x84\x87\xf0\x91\x84\xb3\xf0\x91\x84\xa0\xf0\x91\x84\xac|\\n12|\\n" 𑄇𑄳𑄠𑄬| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Chakma.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangburmese: 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+103B `_ '\\u103b' Mc 0 MYANMAR CONSONANT SIGN MEDIAL YA 3 `U+1031 `_ '\\u1031' Mc 0 MYANMAR VOWEL SIGN E === ========================================= ========= ========== ========= ================================ Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xb1|\\n12|\\n" ကျေ| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Burmese.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangmon: Mon ^^^ Sequence of language *Mon* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ================================ # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ================================ 1 `U+1007 `_ '\\u1007' Lo 1 MYANMAR LETTER JA 2 `U+103C `_ '\\u103c' Mc 0 MYANMAR CONSONANT SIGN MEDIAL RA 3 `U+1031 `_ '\\u1031' Mc 0 MYANMAR VOWEL SIGN E === ========================================= ========= ========== ========= ================================ Total codepoints: 3 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe1\x80\x87\xe1\x80\xbc\xe1\x80\xb1|\\n12|\\n" ဇြေ| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Mon.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermlangkhn: Khün ^^^^ Sequence of language *Khün* from midpoint of alignment failure records: .. table:: :class: sphinx-datatable === ========================================= ========= ========== ========= ================================= # Codepoint Python Category wcwidth Name === ========================================= ========= ========== ========= ================================= 1 `U+1A23 `_ '\\u1a23' Lo 1 TAI THAM LETTER LOW KA 2 `U+1A55 `_ '\\u1a55' Mc 0 TAI THAM CONSONANT SIGN MEDIAL RA 3 `U+1A6E `_ '\\u1a6e' Mc 0 TAI THAM VOWEL SIGN E 4 `U+1A60 `_ '\\u1a60' Mn 0 TAI THAM SIGN SAKOT === ========================================= ========= ========== ========= ================================= Total codepoints: 4 - Shell test using `printf(1)`_, ``'|'`` should align in output:: $ printf "\xe1\xa8\xa3\xe1\xa9\x95\xe1\xa9\xae\xe1\xa9\xa0|\\n12|\\n" ᨣᩕᩮ᩠| 12| Screenshot: .. image:: ../_static/screenshots/XTerm/lang_Khün.png :alt: Terminal screenshot of the rendering discrepancy :width: 964px :height: 302px - python `wcwidth.wcswidth()`_ measures width 2, while *XTerm* measures width 3. .. _xtermdecmodes: DEC Private Modes Support +++++++++++++++++++++++++ DEC private modes results for *XTerm*: 3 changeable modes of 3 supported out of 8 total modes tested (37.5% support, 37.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 No No No 2027 GRAPHEME_CLUSTERING Grapheme Clustering No No No 2031 COLOR_PALETTE_UPDATES Color palette updates No No No 2048 IN_BAND_WINDOW_RESIZE In-Band Window Resize Notifications No No No 5522 BRACKETED_PASTE_MIME Bracketed Paste MIME No No No ====== ===================== =================================== =========== ============ ========= **Summary**: 3 changeable, 5 not changeable. .. _xtermkittykbd: Kitty Keyboard Protocol +++++++++++++++++++++++ *XTerm* does not support the `Kitty keyboard protocol`_. .. _`Kitty keyboard protocol`: https://sw.kovidgoyal.net/kitty/keyboard-protocol/ .. _xtermxtgettcap: XTGETTCAP (Terminfo Capabilities) +++++++++++++++++++++++++++++++++ *XTerm* supports the ``XTGETTCAP`` sequence and reports **40** terminfo capabilities (Partial). .. table:: :class: sphinx-datatable === ============ ============================================= =========== # Capability Description Value === ============ ============================================= =========== 1 RGB Bits per color channel (8 = 24-bit truecolor) ``8`` 2 TN Terminal name ``xterm`` 3 colors Max colors on screen ``256`` 4 kEND Shifted end key ``\E[1;2F`` 5 kHOM Shifted home key ``\E[1;2H`` 6 kLFT Shifted left-arrow key ``\E[1;2D`` 7 kNXT Shifted next-page key ``\E[6;2~`` 8 kPRV Shifted previous-page key ``\E[5;2~`` 9 kRIT Shifted right-arrow key ``\E[1;2C`` 10 ka1 Keypad upper left ``\E[H`` 11 ka3 Keypad upper right ``\E[5~`` 12 kbs Backspace key ``\b`` 13 kc1 Keypad lower left ``\E[F`` 14 kc3 Keypad lower right ``\E[6~`` 15 kcbt Back-tab key ``\E[Z`` 16 kcub1 Left arrow key ``\E[D`` 17 kcud1 Down arrow key ``\E[B`` 18 kcuf1 Right arrow key ``\E[C`` 19 kcuu1 Up arrow key ``\E[A`` 20 kdch1 Delete character key ``\E[3~`` 21 kend End key ``\E[F`` 22 kent Enter/send key ``\r`` 23 kf1 Function key F1 ``\EOP`` 24 kf10 Function key F10 ``\E[21~`` 25 kf11 Function key F11 ``\E[23~`` 26 kf12 Function key F12 ``\E[24~`` 27 kf2 Function key F2 ``\EOQ`` 28 kf3 Function key F3 ``\EOR`` 29 kf4 Function key F4 ``\EOS`` 30 kf5 Function key F5 ``\E[15~`` 31 kf6 Function key F6 ``\E[17~`` 32 kf7 Function key F7 ``\E[18~`` 33 kf8 Function key F8 ``\E[19~`` 34 kf9 Function key F9 ``\E[20~`` 35 khome Home key ``\E[H`` 36 kich1 Insert character key ``\E[2~`` 37 kind Scroll-down key ``\E[1;2B`` 38 knp Next page key ``\E[6~`` 39 kpp Previous page key ``\E[5~`` 40 kri Scroll-up key ``\E[1;2A`` === ============ ============================================= =========== 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. .. _xtermtextsizing: Text Sizing Protocol (OSC 66) +++++++++++++++++++++++++++++ *XTerm* does not support the `Text Sizing protocol`_. .. _`Text Sizing protocol`: https://sw.kovidgoyal.net/kitty/text-sizing-protocol/ .. _xtermtruecolor: Truecolor Support +++++++++++++++++ *XTerm* supports 24-bit truecolor, detectable via: - XTGETTCAP (RGB capability): **yes (RGB)** - DECRQSS (truecolor probe): **yes (probe)** - COLORTERM: **N/A** .. _xtermosc52: OSC 52 Clipboard Support ++++++++++++++++++++++++ *XTerm* does **not** advertise OSC 52 clipboard support via DA1 extension 52 or XTGETTCAP Ms. - DA1 extension 52: **no** - XTGETTCAP Ms: **no** .. _xtermidentification: Terminal Identification +++++++++++++++++++++++ *XTerm* is identified as **XTerm** version **410** (detected via XTVERSION). - XTVERSION (raw): **XTerm(410)** - XTVERSION: **yes** - XTGETTCAP TN: **yes** (xterm) - ENQ: **no** - TERM_PROGRAM: **no** - TERM: **no** (xterm) .. _xtermreproduce: Reproduction ++++++++++++ To reproduce these results for *XTerm*, install and run ucs-detect_ with the following commands:: uvx ucs-detect --rerun data/xterm.yaml .. _xtermtime: .. _xtermresources: Test Performance ++++++++++++++++ The test suite completed in **3.00 seconds** (3s). - **Mean CPU**: 17.0% - **Mean RSS**: 25.6 MB - **Total time**: 3.0s .. figure:: ../_static/profiles/XTerm_cpu.png :alt: CPU usage over time :width: 600px CPU usage during test execution for *XTerm*. .. figure:: ../_static/profiles/XTerm_rss.png :alt: RSS memory over time :width: 600px RSS memory usage during test execution for *XTerm*. .. figure:: ../_static/profiles/XTerm_time.png :alt: Duration comparison :width: 600px Test duration for *XTerm* compared to all other terminals. .. figure:: ../_static/profiles/XTerm_cpu_vs_time.png :alt: CPU % vs Duration :width: 600px CPU % vs duration trade-off for *XTerm*. .. _`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/