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 |
100.00% |
100.0% |
|
2 |
100.00% |
100.0% |
|
3 |
100.00% |
100.0% |
|
4 |
100.00% |
100.0% |
|
5 |
100.00% |
100.0% |
|
6 |
100.00% |
(excluded) |
|
7 |
100.00% |
100.0% |
|
8 |
100.00% |
100.0% |
|
9 |
100.00% |
100.0% |
|
10 |
94.44% |
94.4% |
|
11 |
100% |
100.0% |
|
12 |
44.1% |
44.1% |
Score Comparison Plot:
The following plot shows how this terminal’s scores compare to all other terminals tested.
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):
XTGETTCAP (Full): yes
Text Sizing (OSC 66): yes
Tofu Detection: no
OSC 52 Clipboard: yes
Truecolor Detection: yes
DECRQCRA: yes
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 |
‘\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:
python wcwidth.wcswidth() measures width 2, while XTerm.NET measures width 1.
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
OKresponse.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 ; Capabilitiesquery, 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 |
|---|---|---|---|
17 |
421 |
96.0% |
Khün
Sequence of language Khün from midpoint of alignment failure records:
# |
Codepoint |
Python |
Category |
wcwidth |
Name |
|---|---|---|---|---|---|
1 |
‘\u1a63’ |
Mc |
0 |
TAI THAM VOWEL SIGN AA |
|
2 |
‘\u1a60’ |
Mn |
0 |
TAI THAM SIGN SAKOT |
|
3 |
‘\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:
python wcwidth.wcswidth() measures width 2, while XTerm.NET measures width 1.
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 |
|
Yes |
2 |
Report event types |
|
Yes |
3 |
Report alternate keys |
|
Yes |
4 |
Report all keys as escape codes |
|
Yes |
5 |
Report associated 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 |
|
2 |
RGB |
Bits per color channel (8 = 24-bit truecolor) |
|
3 |
Setulc |
Set underline color |
|
4 |
Smulx |
Styled underline |
|
5 |
Su |
Colored underlines |
(empty) |
6 |
TN |
Terminal name |
|
7 |
Tc |
Truecolor (24-bit RGB) |
(empty) |
8 |
bel |
Bell |
|
9 |
blink |
Enter blink mode |
|
10 |
bold |
Enter bold mode |
|
11 |
civis |
Hide cursor |
|
12 |
clear |
Clear screen |
|
13 |
cnorm |
Normal cursor |
|
14 |
colors |
Max colors on screen |
|
15 |
cols |
Columns |
|
16 |
cr |
Carriage return |
|
17 |
csr |
Change scroll region |
|
18 |
cub |
Cursor left n |
|
19 |
cub1 |
Cursor left |
|
20 |
cud |
Cursor down n |
|
21 |
cud1 |
Cursor down |
|
22 |
cuf |
Cursor right n |
|
23 |
cuf1 |
Cursor right |
|
24 |
cup |
Cursor address |
|
25 |
cuu |
Cursor up n |
|
26 |
cuu1 |
Cursor up |
|
27 |
dch |
Delete n characters |
|
28 |
dch1 |
Delete character |
|
29 |
dim |
Enter dim mode |
|
30 |
dl |
Delete n lines |
|
31 |
dl1 |
Delete line |
|
32 |
ech |
Erase characters |
|
33 |
ed |
Clear to end of screen |
|
34 |
el |
Clear to end of line |
|
35 |
el1 |
Clear to start of line |
|
36 |
home |
Cursor home |
|
37 |
hpa |
Horizontal position |
|
38 |
ht |
Horizontal tab |
|
39 |
ich |
Insert n characters |
|
40 |
ich1 |
Insert character |
|
41 |
il |
Insert n lines |
|
42 |
il1 |
Insert line |
|
43 |
ind |
Scroll forward |
|
44 |
invis |
Invisible cursor |
|
45 |
kbs |
Backspace key |
|
46 |
kcbt |
Back-tab key |
|
47 |
kcub1 |
Left arrow key |
|
48 |
kcud1 |
Down arrow key |
|
49 |
kcuf1 |
Right arrow key |
|
50 |
kcuu1 |
Up arrow key |
|
51 |
kdch1 |
Delete character key |
|
52 |
kend |
End key |
|
53 |
kf1 |
Function key F1 |
|
54 |
kf10 |
Function key F10 |
|
55 |
kf11 |
Function key F11 |
|
56 |
kf12 |
Function key F12 |
|
57 |
kf2 |
Function key F2 |
|
58 |
kf3 |
Function key F3 |
|
59 |
kf4 |
Function key F4 |
|
60 |
kf5 |
Function key F5 |
|
61 |
kf6 |
Function key F6 |
|
62 |
kf7 |
Function key F7 |
|
63 |
kf8 |
Function key F8 |
|
64 |
kf9 |
Function key F9 |
|
65 |
khome |
Home key |
|
66 |
kich1 |
Insert character key |
|
67 |
knp |
Next page key |
|
68 |
kpp |
Previous page key |
|
69 |
lines |
Lines |
|
70 |
rc |
Restore cursor |
|
71 |
rep |
Repeat character |
|
72 |
rev |
Enter reverse mode |
|
73 |
ri |
Reverse index |
|
74 |
ritm |
Exit italics mode |
|
75 |
rmcup |
Exit alt screen |
|
76 |
rmkx |
Keypad local mode |
|
77 |
rmso |
Exit standout mode |
|
78 |
rmul |
Exit underline mode |
|
79 |
sc |
Save cursor |
|
80 |
setrgbb |
Set RGB background |
|
81 |
setrgbf |
Set RGB foreground |
|
82 |
sgr0 |
Reset attributes |
|
83 |
sitm |
Enter italics mode |
|
84 |
smcup |
Enter alt screen |
|
85 |
smkx |
Keypad transmit mode |
|
86 |
smso |
Enter standout mode |
|
87 |
smul |
Enter underline mode |
|
88 |
vpa |
Vertical position |
|
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 during test execution for XTerm.NET.
RSS memory usage during test execution for XTerm.NET.
Test duration for XTerm.NET compared to all other terminals.
CPU % vs duration trade-off for XTerm.NET.