XTerm.NET

Tested Software version 3.0.2 on Linux. XTerm.NET is a headless emulator library; tested through the Example desktop application of its Avalonia host, Iciclecreek.Avalonia.Terminal. The homepage URL of this terminal is https://github.com/tomlm/XTerm.NET. Full results available at ucs-detect repository path data/xtermnet.yaml.

Score Breakdown

Detailed breakdown of how scores are calculated for XTerm.NET:

#

Score Type

Raw Score

Final Scaled Score

1

WIDE

100.00%

100.0%

2

NARROW

100.00%

100.0%

3

ZWJ

100.00%

100.0%

4

LANG

100.00%

100.0%

5

VS16

100.00%

100.0%

6

VS15

100.00%

(excluded)

7

SRI

100.00%

100.0%

8

SFZ

100.00%

100.0%

9

RI

100.00%

100.0%

10

FEAT

94.44%

94.4%

11

Graphics

100%

100.0%

12

Resources

44.1%

44.1%

Score Comparison Plot:

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

../_images/xtermnet_scores_scaled.png

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

Final Scaled Score Calculation:

  • Raw Final Score: 99.32% (weighted average: WIDE + NARROW + ZWJ + LANG + VS16 + 0.33 * SRI + 0.33 * SFZ + RI + CAP + 0.5 * GFX) the categorized ‘average’ absolute support level of this terminal.

    Note

    RSC (Resources) is a composite CPU, memory, and runtime score, displayed for comparison but excluded from the final score 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: 99.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 contested codepoints: 553

  • Total contested codepoints tested: 1529

  • Formula: 553 / 1529

  • Result: 100.00% † (Text Sizing protocol)

NARROW Score Details:

Narrow character support calculation:

  • Total successful contested codepoints: 6589

  • Total contested codepoints tested: 6589

  • Formula: 6589 / 6589

  • 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: 0 of 426 codepoints tested

  • Success rate: 100.0%

  • Formula: 100.0 / 100

  • Result: 100.00%

Variation Selector-15 support:

Note

Interpretation of VS-15 is contested. Its width behavior is not consistently implemented across terminals; this measurement is informational and excluded from final scoring.

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

Features Score Details:

Notable terminal features (17.0 / 18):

Raw score: 94.44%

Graphics Score Details:

Graphics protocol support (100%):

  • Sixel: yes

  • 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: 2.0s

  • Mean CPU: 164.2%

  • Mean RSS: 202.3 MB

  • Resources Score: 44/100

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

  • Scaled result: 44.1%

LANG Score Details (Geometric Mean):

Geometric mean calculation:

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

  • About geometric mean

  • Result: 100.00% † (Text Sizing protocol)

Wide character support

Wide character support of XTerm.NET is 36.2% (976 errors of 1529 codepoints tested).

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

#

Codepoint

Python

Category

wcwidth

Name

1

U+00018FE8

‘\U00018fe8’

Cn

2

na

Total codepoints: 1

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

    $ printf "\xf0\x98\xbf\xa8|\\n12|\\n"
    𘿨|
    12|
    

Screenshot:

Terminal screenshot of the rendering discrepancy

Narrow character support

Narrow character support of XTerm.NET is 100.0% (0 errors of 6589 codepoints tested).

Emoji ZWJ support

Compatibility of XTerm.NET with the Unicode Emoji ZWJ sequence table is 100.0% (0 errors of 1445 sequences tested).

Variation Selector-16 support

Emoji VS-16 results for XTerm.NET is 0 errors out of 426 total codepoints tested, 100.0% success. All codepoint combinations with Variation Selector-16 tested were successful.

Variation Selector-15 support

Emoji VS-15 results for XTerm.NET is 0 errors out of 158 total codepoints tested, 100.0% success. All codepoint combinations with Variation Selector-15 tested were successful.

Standalone Regional Indicator support

Standalone Regional Indicator support of XTerm.NET is 100.0% (0 errors of 26 codepoints tested).

Standalone Fitzpatrick modifier support

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

Regional Indicator flag sequence support

Regional Indicator flag sequence support of XTerm.NET is 100.0% (0 errors of 262 sequences tested).

Graphics Protocol Support

XTerm.NET supports the following graphics protocols: Sixel, Kitty graphics.

Detection Methods:

  • Sixel and ReGIS: Sixel: Detected; ReGIS: Not detected via the Device Attributes (DA1) query CSI c (\x1b[c). Sixel indicator (4): present, ReGIS indicator (3): not present.

  • Kitty graphics: Detected by sending a Kitty graphics query and checking for an OK response.

  • iTerm2 inline images: Not detected by drawing a 1x1 transparent image, OSC 1337 ; File=inline=1, and checking that the cursor advanced a single column.

  • iTerm2 capabilities: Detected via the OSC 1337 ; Capabilities query, which does not describe image support, and does not contribute to this score.

Device Attributes

  • Raw response: '\x1b[?65;4;1;2;6;9;15;16;17;18;21;22;28;29c'

  • Service class: 65 (VT525)

Detected Extensions:

Code

Description

1

132-column mode

2

Printer port

4

Sixel graphics

6

Selective erase

9

National replacement charsets

15

Technical character set

16

unknown

17

Terminal state reports (16-bit)

18

User windows

21

Horizontal scrolling

22

ANSI color

28

Rectangular area operations

29

Text locator (mouse)

Language Support

The following 84 languages were tested with 100% success:

Aja, Amarakaeri, Arabic, Standard, Assyrian Neo-Aramaic, Baatonum, Bamun, Belanda Viri, Bengali, Bhojpuri, Bora, Burmese, Catalan (2), Chakma, Chickasaw, Chinantec, Chiltepec, Dagaare, Southern, Dari, Dendi, Dinka, Northeastern, Dzongkha, Evenki, Farsi, Western, Fon, French (Welche), Fur, Ga, Gen, Gilyak, Gujarati, Gumuz, Hindi, Javanese (Javanese), Kabyle, Kannada, Khmer, Central, Lamnso’, Lao, Lingala (tones), Magahi, Maithili, Malayalam, Maldivian, Maori (2), Marathi, Mazahua Central, Mon, Mòoré, Nanai, Navajo, Nepali, Orok, Otomi, Mezquital, Panjabi, Eastern, Panjabi, Western, Pashto, Northern, Picard, Pular (Adlam), Sanskrit, Sanskrit (Grantha), Secoya, Seraiki, Shan, Shipibo-Conibo, Sinhala, Siona, South Azerbaijani, Tagalog (Tagalog), Tai Dam, Tamang, Eastern, Tamazight, Central Atlas, Tamil, Telugu, Tem, Thai, Thai (2), Tibetan, Central, Ticuna, Uduk, Urdu, Urdu (2), Vietnamese, Yaneshaʼ, Yiddish, Eastern, Yoruba.

The following 1 languages are not fully supported:

lang

n_errors

n_total

pct_success

Khün

17

421

96.0%

Khün

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

#

Codepoint

Python

Category

wcwidth

Name

1

U+1A63

‘\u1a63’

Mc

0

TAI THAM VOWEL SIGN AA

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\xa9\xa3\xe1\xa9\xa0\xe1\xa8\xa0|\\n12|\\n"
    ᩣ᩠ᨠ|
    12|
    

Screenshot:

Terminal screenshot of the rendering discrepancy

DEC Private Modes Support

DEC private modes results for XTerm.NET: 6 changeable modes of 7 supported out of 8 total modes tested (87.5% support, 75.0% 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

Yes

Yes

No

2027

GRAPHEME_CLUSTERING

Grapheme Clustering

Yes

No

Yes

2031

COLOR_PALETTE_UPDATES

Color palette updates

No

No

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: 6 changeable, 2 not changeable.

DECRQCRA

Request Checksum of Rectangular Area (DECRQCRA) allows an application running in the terminal to read a checksum of any rectangular region of the screen.

XTerm.NET answers DECRQCRA queries.

Error

Any program that can write to the terminal, including a compromised remote host, can read the contents of the primary and alternate terminal screen contents through ‘screen scraping’. Though useful for compliance testing with tools like esctest, release builds of terminals should disable it by default: see wezterm PR 7701 and ANSI terminal security in 2023: cursor checksum for details.

Kitty Keyboard Protocol

XTerm.NET supports the Kitty keyboard protocol.

#

Flag

Key

Supported

1

Disambiguate escape codes

disambiguate

Yes

2

Report event types

report_events

Yes

3

Report alternate keys

report_alternates

Yes

4

Report all keys as escape codes

report_all_keys

Yes

5

Report associated text

report_text

Yes

Detection is performed by enabling all progressive enhancement modes by set (CSI = 31 ; 1 u) and re-querying with CSI ? u to confirm which modes the terminal honors, before restoring its original flags.

XTGETTCAP (Terminfo Capabilities)

XTerm.NET supports the XTGETTCAP sequence and reports 88 terminfo capabilities (Full).

#

Capability

Description

Value

1

Ms

Clipboard set

\E]52;%p1%s;%p2%s\a

2

RGB

Bits per color channel (8 = 24-bit truecolor)

8/8/8

3

Setulc

Set underline color

\E[58:2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%...

4

Smulx

Styled underline

\E[4:%p1%dm

5

Su

Colored underlines

(empty)

6

TN

Terminal name

xterm

7

Tc

Truecolor (24-bit RGB)

(empty)

8

bel

Bell

\a

9

blink

Enter blink mode

\E[5m

10

bold

Enter bold mode

\E[1m

11

civis

Hide cursor

\E[?25l

12

clear

Clear screen

\E[H\E[2J

13

cnorm

Normal cursor

\E[?25h

14

colors

Max colors on screen

256

15

cols

Columns

76

16

cr

Carriage return

\r

17

csr

Change scroll region

\E[%i%p1%d;%p2%dr

18

cub

Cursor left n

\E[%p1%dD

19

cub1

Cursor left

\b

20

cud

Cursor down n

\E[%p1%dB

21

cud1

Cursor down

\n

22

cuf

Cursor right n

\E[%p1%dC

23

cuf1

Cursor right

\E[C

24

cup

Cursor address

\E[%i%p1%d;%p2%dH

25

cuu

Cursor up n

\E[%p1%dA

26

cuu1

Cursor up

\E[A

27

dch

Delete n characters

\E[%p1%dP

28

dch1

Delete character

\E[P

29

dim

Enter dim mode

\E[2m

30

dl

Delete n lines

\E[%p1%dM

31

dl1

Delete line

\E[M

32

ech

Erase characters

\E[%p1%dX

33

ed

Clear to end of screen

\E[J

34

el

Clear to end of line

\E[K

35

el1

Clear to start of line

\E[1K

36

home

Cursor home

\E[H

37

hpa

Horizontal position

\E[%i%p1%dG

38

ht

Horizontal tab

\t

39

ich

Insert n characters

\E[%p1%d@

40

ich1

Insert character

\E[@

41

il

Insert n lines

\E[%p1%dL

42

il1

Insert line

\E[L

43

ind

Scroll forward

\n

44

invis

Invisible cursor

\E[8m

45

kbs

Backspace key



46

kcbt

Back-tab key

\E[Z

47

kcub1

Left arrow key

\EOD

48

kcud1

Down arrow key

\EOB

49

kcuf1

Right arrow key

\EOC

50

kcuu1

Up arrow key

\EOA

51

kdch1

Delete character key

\E[3~

52

kend

End key

\E[F

53

kf1

Function key F1

\EOP

54

kf10

Function key F10

\E[21~

55

kf11

Function key F11

\E[23~

56

kf12

Function key F12

\E[24~

57

kf2

Function key F2

\EOQ

58

kf3

Function key F3

\EOR

59

kf4

Function key F4

\EOS

60

kf5

Function key F5

\E[15~

61

kf6

Function key F6

\E[17~

62

kf7

Function key F7

\E[18~

63

kf8

Function key F8

\E[19~

64

kf9

Function key F9

\E[20~

65

khome

Home key

\E[H

66

kich1

Insert character key

\E[2~

67

knp

Next page key

\E[6~

68

kpp

Previous page key

\E[5~

69

lines

Lines

21

70

rc

Restore cursor

\E8

71

rep

Repeat character

%p1%c\E[%p2%{1}%-%db

72

rev

Enter reverse mode

\E[7m

73

ri

Reverse index

\EM

74

ritm

Exit italics mode

\E[23m

75

rmcup

Exit alt screen

\E[?1049l

76

rmkx

Keypad local mode

\E[?1l\E>

77

rmso

Exit standout mode

\E[27m

78

rmul

Exit underline mode

\E[24m

79

sc

Save cursor

\E7

80

setrgbb

Set RGB background

\E[48:2:%p1%d:%p2%d:%p3%dm

81

setrgbf

Set RGB foreground

\E[38:2:%p1%d:%p2%d:%p3%dm

82

sgr0

Reset attributes

\E(B\E[m

83

sitm

Enter italics mode

\E[3m

84

smcup

Enter alt screen

\E[?1049h

85

smkx

Keypad transmit mode

\E[?1h\E=

86

smso

Enter standout mode

\E[7m

87

smul

Enter underline mode

\E[4m

88

vpa

Vertical position

\E[%i%p1%dd

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)

XTerm.NET 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 ; <space> BEL and ESC ] 66 ; s=2 ; <space> 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, XTerm.NET is credited 100% on the WIDE and LANG width tests, where it measured below 100% or was not measured at all. Every other width score was measured directly.

Tofu Detection

A tofu is the □ U+25A1 WHITE SQUARE placeholder box drawn in place of a codepoint the terminal’s font has no glyph for. Two protocols allow a program to ask which codepoints may ‘tofu’: mintty’s Font Glyph Coverage Enquiry and the Glyph Protocol implemented first by Rio.

XTerm.NET does not answer a font glyph coverage enquiry by either protocol, ‘tofus’ cannot be determined by automatic code.

Truecolor Support

XTerm.NET supports 24-bit truecolor, detectable via:

  • XTGETTCAP (RGB capability): yes (RGB)

  • DECRQSS (truecolor probe): yes (probe)

  • COLORTERM: yes (truecolor)

OSC 52 Clipboard Support

XTerm.NET supports OSC 52 clipboard operations (detected via XTGETTCAP Ms).

  • DA1 extension 52: no

  • XTGETTCAP Ms: yes

Terminal Identification

XTerm.NET is identified as XTerm.NET version 3.0.2 (detected via XTVERSION).

  • XTVERSION (raw): XTerm.NET(3.0.2)

  • XTVERSION: yes

  • XTGETTCAP TN: yes (xterm)

  • ENQ: no

  • TERM_PROGRAM: no

  • TERM: no (xterm-256color)

Reproduction

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

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

Test Performance

The test suite completed in 2.01 seconds (2s).

  • Mean CPU: 164.2%

  • Mean RSS: 202.3 MB

  • Total time: 2.0s

CPU usage over time

CPU usage during test execution for XTerm.NET.

RSS memory over time

RSS memory usage during test execution for XTerm.NET.

Duration comparison

Test duration for XTerm.NET compared to all other terminals.

CPU % vs Duration

CPU % vs duration trade-off for XTerm.NET.