mlterm

Tested Software version 3.9.4 on Linux. The homepage URL of this terminal is https://mlterm.sourceforge.net/. Full results available at ucs-detect repository path data/mlterm.yaml.

Score Breakdown

Detailed breakdown of how scores are calculated for mlterm:

#

Score Type

Raw Score

Final Scaled Score

1

WIDE

99.47%

99.3%

2

NARROW

100.00%

100.0%

3

ZWJ

0.00%

0.0%

4

LANG

90.95%

90.9%

5

VS16

50.00%

50.0%

6

VS15

0.00%

(excluded)

7

SRI

0.00%

0.0%

8

SFZ

100.00%

100.0%

9

RI

98.85%

98.9%

10

FEAT

37.50%

40.0%

11

Graphics

50%

50.0%

12

Resources

64.3%

64.3%

Score Comparison Plot:

The following plot shows how this terminal’s scores compare to all other terminals tested.

../_images/mlterm_scores_scaled.png

Scaled scores comparison across all metrics (normalized 0-100%)

Final Scaled Score Calculation:

  • Raw Final Score: 58.68% (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: 40.5% (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: 43362

  • Total codepoints tested: 43592

  • Formula: 43362 / 43592

  • Result: 99.47%

NARROW Score Details:

Narrow character support calculation:

  • Total successful codepoints: 36254

  • Total codepoints tested: 36254

  • Formula: 36254 / 36254

  • Result: 100.00%

ZWJ Score Details:

Emoji ZWJ (Zero-Width Joiner) support calculation:

  • Total successful sequences: 0

  • Total sequences tested: 1445

  • Formula: 0 / 1445

  • Result: 0.00%

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: 259

  • Total sequences tested: 262

  • Formula: 259 / 262

  • Result: 98.85%

Features Score Details:

Notable terminal features (6.0 / 16):

Raw score: 37.50%

Graphics Score Details:

Graphics protocol support (50%):

  • Sixel: yes

  • ReGIS: yes

  • iTerm2: no

  • Kitty: no

Scoring: 100% for modern (iTerm2/Kitty), 50% for legacy only (Sixel/ReGIS), 0% for none

Resource Score Details:

  • Duration: 29.3s

  • Mean CPU: 42.2%

  • Mean RSS: 23.9 MB

  • Resources Score: 64/100

  • Note: log-scale composite cost = log(CPU+1) + log(RSS+1) + log(time+1)

  • Scaled result: 64.3%

LANG Score Details (Geometric Mean):

Geometric mean calculation:

  • Formula: (p₁ × p₂ × … × pₙ)^(1/n) where n = 118 languages

  • About geometric mean

  • Result: 90.95%

Wide character support

Wide character support of mlterm is 99.5% (230 errors of 43592 codepoints tested).

Sequence of a WIDE character, from midpoint of alignment failure records:

#

Codepoint

Python

Category

wcwidth

Name

1

U+0001D323

‘\U0001d323’

So

2

TETRAGRAM FOR BOLD RESOLUTION

Total codepoints: 1

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xf0\x9d\x8c\xa3|\\n12|\\n"
    𝌣|
    12|
    
  • See Line 42270 of ucs_wide.txt for this sequence in the example file.

Screenshot:

Terminal screenshot of the rendering discrepancy

Narrow character support

Narrow character support of mlterm is 100.0% (0 errors of 36254 codepoints tested).

Emoji ZWJ support

Compatibility of mlterm with the Unicode Emoji ZWJ sequence table is 0.0% (1445 errors of 1445 sequences tested).

Sequence of an Emoji ZWJ Sequence, from midpoint of alignment failure records:

#

Codepoint

Python

Category

wcwidth

Name

1

U+0001F3C3

‘\U0001f3c3’

So

2

RUNNER

2

U+0001F3FF

‘\U0001f3ff’

Sk

2

EMOJI MODIFIER FITZPATRICK TYPE-6

3

U+200D

‘\u200d’

Cf

0

ZERO WIDTH JOINER

4

U+2640

‘\u2640’

So

1

FEMALE 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\x8f\x83\xf0\x9f\x8f\xbf\xe2\x80\x8d\xe2\x99\x80\xef\xb8\x8f|\\n12|\\n"
    🏃🏿‍♀️|
    12|
    

Screenshot:

Terminal screenshot of the rendering discrepancy

Variation Selector-16 support

Emoji VS-16 results for mlterm 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:

#

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:

Terminal screenshot of the rendering discrepancy

Variation Selector-15 support

Emoji VS-15 results for mlterm 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:

#

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:

Terminal screenshot of the rendering discrepancy

Standalone Regional Indicator support

Standalone Regional Indicator support of mlterm is 0.0% (26 errors of 26 codepoints tested).

Sequence of a standalone Regional Indicator, from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Standalone Fitzpatrick modifier support

Standalone Fitzpatrick skin tone modifier support of mlterm is 100.0% (0 errors of 5 codepoints tested).

Regional Indicator flag sequence support

Regional Indicator flag sequence support of mlterm is 98.9% (3 errors of 262 sequences tested).

Sequence of a Regional Indicator flag sequence, from midpoint of alignment failure records:

#

Codepoint

Python

Category

wcwidth

Name

1

U+0001F3F4

‘\U0001f3f4’

So

2

WAVING BLACK FLAG

2

U+000E0067

‘\U000e0067’

Cf

0

TAG LATIN SMALL LETTER G

3

U+000E0062

‘\U000e0062’

Cf

0

TAG LATIN SMALL LETTER B

4

U+000E0073

‘\U000e0073’

Cf

0

TAG LATIN SMALL LETTER S

5

U+000E0063

‘\U000e0063’

Cf

0

TAG LATIN SMALL LETTER C

6

U+000E0074

‘\U000e0074’

Cf

0

TAG LATIN SMALL LETTER T

7

U+000E007F

‘\U000e007f’

Cf

0

CANCEL TAG

Total codepoints: 7

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xf0\x9f\x8f\xb4\xf3\xa0\x81\xa7\xf3\xa0\x81\xa2\xf3\xa0\x81\xb3\xf3\xa0\x81\xa3\xf3\xa0\x81\xb4\xf3\xa0\x81\xbf|\\n12|\\n"
    🏴󠁧󠁢󠁳󠁣󠁴󠁿|
    12|
    

Screenshot:

Terminal screenshot of the rendering discrepancy

Graphics Protocol Support

mlterm supports the following graphics protocols: Sixel, ReGIS.

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, 3, 4, 6, 7, 15, 18, 22, 29

  • Sixel indicator (4): present

  • ReGIS indicator (3): present

Language Support

The following 90 languages were tested with 100% success:

(Jinan), (Yeonbyeon), Aja, Amarakaeri, Arabic, Standard, Assyrian Neo-Aramaic, Baatonum, Bamun, Belanda Viri, Bora, Catalan (2), Chickasaw, Chinantec, Chiltepec, Chinese, Gan, Chinese, Hakka, Chinese, Jinyu, Chinese, Mandarin (Beijing), Chinese, Mandarin (Guiyang), Chinese, Mandarin (Harbin), Chinese, Mandarin (Nanjing), Chinese, Mandarin (Simplified), Chinese, Mandarin (Tianjin), Chinese, Mandarin (Traditional), Chinese, Min Nan, Chinese, Wu, Chinese, Xiang, Chinese, Yue, Colorado, Dagaare, Southern, Dangme, Dendi, Dinka, Northeastern, Ditammari, Dzongkha, Evenki, Fon, French (Welche), Fur, Ga, Gen, Gilyak, Gumuz, Japanese, Japanese (Osaka), Japanese (Tokyo), Kabyle, Korean, Lamnso’, Lao, Lingala (tones), Maldivian, Maori (2), Mazahua Central, Mirandese, Mixtec, Metlatónoc, Mongolian, Halh (Mongolian), Mòoré, Nanai, Navajo, Nuosu, Orok, Otomi, Mezquital, Pashto, Northern, Picard, Pular (Adlam), Saint Lucian Creole French, Secoya, Seraiki, Shipibo-Conibo, Siona, South Azerbaijani, Tagalog (Tagalog), Tai Dam, Tamazight, Central Atlas, Tem, Thai, Thai (2), Tibetan, Central, Ticuna, Uduk, Urdu, Urdu (2), Veps, Vietnamese, Vietnamese (Han nom), Waama, Yaneshaʼ, Yiddish, Eastern, Yoruba, Éwé.

The following 28 languages are not fully supported:

lang

n_errors

n_total

pct_success

Sanskrit (Grantha)

197

293

32.8%

Tamil

106

175

39.4%

Tamil (Sri Lanka)

106

175

39.4%

Kannada

158

287

44.9%

Sinhala

112

258

56.6%

Malayalam

334

845

60.5%

Bengali

144

385

62.6%

Tamang, Eastern

26

70

62.9%

Gujarati

120

343

65.0%

Bhojpuri

108

313

65.5%

Panjabi, Eastern

103

302

65.9%

Magahi

102

314

67.5%

Marathi

126

391

67.8%

Hindi

121

390

69.0%

Nepali

103

352

70.7%

Burmese

76

268

71.6%

Maithili

101

357

71.7%

Sanskrit

138

493

72.0%

Khmer, Central

116

443

73.8%

Khün

93

396

76.5%

Telugu

86

384

77.6%

Mon

68

332

79.5%

Javanese (Javanese)

86

530

83.8%

Chakma

34

267

87.3%

Shan

18

181

90.1%

Farsi, Western

4

49

91.8%

Dari

4

54

92.6%

Panjabi, Western

1

62

98.4%

Sanskrit (Grantha)

Sequence of language Sanskrit (Grantha) from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Tamil

Sequence of language Tamil from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Tamil (Sri Lanka)

Sequence of language Tamil (Sri Lanka) from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Kannada

Sequence of language Kannada from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Sinhala

Sequence of language Sinhala from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Malayalam

Sequence of language Malayalam from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Bengali

Sequence of language Bengali from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Tamang, Eastern

Sequence of language Tamang, Eastern from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Gujarati

Sequence of language Gujarati from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Bhojpuri

Sequence of language Bhojpuri from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Panjabi, Eastern

Sequence of language Panjabi, Eastern from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Magahi

Sequence of language Magahi from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Marathi

Sequence of language Marathi from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Hindi

Sequence of language Hindi from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Nepali

Sequence of language Nepali from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Burmese

Sequence of language Burmese from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Maithili

Sequence of language Maithili from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Sanskrit

Sequence of language Sanskrit from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Khmer, Central

Sequence of language Khmer, Central from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Khün

Sequence of language Khün from midpoint of alignment failure records:

#

Codepoint

Python

Category

wcwidth

Name

1

U+1A20

‘\u1a20’

Lo

1

TAI THAM LETTER HIGH KA

2

U+1A6E

‘\u1a6e’

Mc

0

TAI THAM VOWEL SIGN E

3

U+1A60

‘\u1a60’

Mn

0

TAI THAM SIGN SAKOT

Total codepoints: 3

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe1\xa8\xa0\xe1\xa9\xae\xe1\xa9\xa0|\\n12|\\n"
    ᨠᩮ᩠|
    12|
    

Screenshot:

Terminal screenshot of the rendering discrepancy

Telugu

Sequence of language Telugu from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Mon

Sequence of language Mon from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Javanese (Javanese)

Sequence of language Javanese (Javanese) from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Chakma

Sequence of language Chakma from midpoint of alignment failure records:

#

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:

Terminal screenshot of the rendering discrepancy

Shan

Sequence of language Shan from midpoint of alignment failure records:

#

Codepoint

Python

Category

wcwidth

Name

1

U+1010

‘\u1010’

Lo

1

MYANMAR LETTER TA

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\x90\xe1\x80\xb1|\\n12|\\n"
    တေ|
    12|
    

Screenshot:

Terminal screenshot of the rendering discrepancy

Farsi, Western

Sequence of language Farsi, Western from midpoint of alignment failure records:

#

Codepoint

Python

Category

wcwidth

Name

1

U+062A

‘\u062a’

Lo

1

ARABIC LETTER TEH

2

U+200C

‘\u200c’

Cf

0

ZERO WIDTH NON-JOINER

Total codepoints: 2

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xd8\xaa\xe2\x80\x8c|\\n1|\\n"
    ت‌|
    1|
    

Screenshot:

Terminal screenshot of the rendering discrepancy

Dari

Sequence of language Dari from midpoint of alignment failure records:

#

Codepoint

Python

Category

wcwidth

Name

1

U+062A

‘\u062a’

Lo

1

ARABIC LETTER TEH

2

U+200C

‘\u200c’

Cf

0

ZERO WIDTH NON-JOINER

Total codepoints: 2

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xd8\xaa\xe2\x80\x8c|\\n1|\\n"
    ت‌|
    1|
    

Screenshot:

Terminal screenshot of the rendering discrepancy

Panjabi, Western

Sequence of language Panjabi, Western from midpoint of alignment failure records:

#

Codepoint

Python

Category

wcwidth

Name

1

U+06D2

‘\u06d2’

Lo

1

ARABIC LETTER YEH BARREE

2

U+200C

‘\u200c’

Cf

0

ZERO WIDTH NON-JOINER

Total codepoints: 2

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xdb\x92\xe2\x80\x8c|\\n1|\\n"
    ے‌|
    1|
    

Screenshot:

Terminal screenshot of the rendering discrepancy

DEC Private Modes Support

DEC private modes results for mlterm: 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:

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.

Kitty Keyboard Protocol

mlterm does not support the Kitty keyboard protocol.

XTGETTCAP (Terminfo Capabilities)

mlterm supports the XTGETTCAP sequence and reports 38 terminfo capabilities (Partial).

#

Capability

Description

Value

1

TN

Terminal name

mlterm

2

colors

Max colors on screen

256

3

kEND

Shifted end key

\E[1;2F

4

kHOM

Shifted home key

\E[1;2H

5

kLFT

Shifted left-arrow key

\E[1;2D

6

kNXT

Shifted next-page key

\E[6;2~

7

kPRV

Shifted previous-page key

\E[5;2~

8

kRIT

Shifted right-arrow key

\E[1;2C

9

ka1

Keypad upper left

\E[H

10

ka3

Keypad upper right

\E[5~

11

kbs

Backspace key

\b

12

kc1

Keypad lower left

\E[F

13

kc3

Keypad lower right

\E[6~

14

kcbt

Back-tab key

\E[Z

15

kcub1

Left arrow key

\E[D

16

kcud1

Down arrow key

\E[B

17

kcuf1

Right arrow key

\E[C

18

kcuu1

Up arrow key

\E[A

19

kdch1

Delete character key

\E[3~

20

kend

End key

\E[F

21

kf1

Function key F1

\EOP

22

kf10

Function key F10

\E[21~

23

kf11

Function key F11

\E[23~

24

kf12

Function key F12

\E[24~

25

kf2

Function key F2

\EOQ

26

kf3

Function key F3

\EOR

27

kf4

Function key F4

\EOS

28

kf5

Function key F5

\E[15~

29

kf6

Function key F6

\E[17~

30

kf7

Function key F7

\E[18~

31

kf8

Function key F8

\E[19~

32

kf9

Function key F9

\E[20~

33

khome

Home key

\E[H

34

kich1

Insert character key

\E[2~

35

kind

Scroll-down key

\E[1;2B

36

knp

Next page key

\E[6~

37

kpp

Previous page key

\E[5~

38

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.

Text Sizing Protocol (OSC 66)

mlterm does not support the Text Sizing protocol.

Truecolor Support

mlterm supports 24-bit truecolor, detectable via:

  • XTGETTCAP (RGB capability): no

  • DECRQSS (truecolor probe): no

  • COLORTERM: yes (truecolor)

Warning

COLORTERM is an environment variable, not a terminal query. It is not forwarded over SSH without SendEnv / AcceptEnv configuration, so detection via COLORTERM alone may be unreliable on remote hosts.

OSC 52 Clipboard Support

mlterm does not advertise OSC 52 clipboard support via DA1 extension 52 or XTGETTCAP Ms.

  • DA1 extension 52: no

  • XTGETTCAP Ms: no

Terminal Identification

mlterm is identified as mlterm version 3.9.4 (detected via XTVERSION + XTGETTCAP TN).

  • XTVERSION (raw): mlterm(3.9.4)

  • XTVERSION: yes

  • XTGETTCAP TN: yes (mlterm)

  • ENQ: no

  • TERM_PROGRAM: no

  • TERM: no (xterm)

Reproduction

To reproduce these results for mlterm, install and run ucs-detect with the following commands:

uvx ucs-detect --rerun data/mlterm.yaml

Test Performance

The test suite completed in 29.26 seconds (29s).

  • Mean CPU: 42.2%

  • Mean RSS: 23.9 MB

  • Total time: 29.3s

CPU usage over time

CPU usage during test execution for mlterm.

RSS memory over time

RSS memory usage during test execution for mlterm.

Duration comparison

Test duration for mlterm compared to all other terminals.

CPU % vs Duration

CPU % vs duration trade-off for mlterm.