Results ======= This is a volunteer-maintained analysis created by and for terminal emulator and TUI/CLI library developers. We welcome productive contributions and corrections to improve the accuracy and completeness of these measurements. .. note:: These test results are provided as-is and we do not guarantee their correctness. The scores and ratings presented here are objective measurements of Unicode and terminal feature support by analysis of automatic response, and should not be interpreted as an overall assessment of terminal emulator quality or a recommendation. Many factors beyond Unicode support contribute to terminal quality. Some terminals may optionally support features and modes not represented here. This data represents only automatic responses received when launched in their default configurations and packaged build options. Some languages and emoji tests may also pass 'accidentally'! General Tabulated Summary ------------------------- .. Generate custom roles for score coloring .. role:: score-0 :class: score-0 .. role:: score-1 :class: score-1 .. role:: score-2 :class: score-2 .. role:: score-3 :class: score-3 .. role:: score-4 :class: score-4 .. role:: score-5 :class: score-5 .. role:: score-6 :class: score-6 .. role:: score-7 :class: score-7 .. role:: score-8 :class: score-8 .. role:: score-9 :class: score-9 .. role:: score-10 :class: score-10 .. role:: score-11 :class: score-11 .. role:: score-12 :class: score-12 .. role:: score-13 :class: score-13 .. role:: score-14 :class: score-14 .. role:: score-15 :class: score-15 .. role:: score-16 :class: score-16 .. role:: score-17 :class: score-17 .. role:: score-18 :class: score-18 .. role:: score-19 :class: score-19 .. role:: score-20 :class: score-20 .. role:: score-21 :class: score-21 .. role:: score-22 :class: score-22 .. role:: score-23 :class: score-23 .. role:: score-24 :class: score-24 .. role:: score-25 :class: score-25 .. role:: score-26 :class: score-26 .. role:: score-27 :class: score-27 .. role:: score-28 :class: score-28 .. role:: score-29 :class: score-29 .. role:: score-30 :class: score-30 .. role:: score-31 :class: score-31 .. role:: score-32 :class: score-32 .. role:: score-33 :class: score-33 .. role:: score-34 :class: score-34 .. role:: score-35 :class: score-35 .. role:: score-36 :class: score-36 .. role:: score-37 :class: score-37 .. role:: score-38 :class: score-38 .. role:: score-39 :class: score-39 .. role:: score-40 :class: score-40 .. role:: score-41 :class: score-41 .. role:: score-42 :class: score-42 .. role:: score-43 :class: score-43 .. role:: score-44 :class: score-44 .. role:: score-45 :class: score-45 .. role:: score-46 :class: score-46 .. role:: score-47 :class: score-47 .. role:: score-48 :class: score-48 .. role:: score-49 :class: score-49 .. role:: score-50 :class: score-50 .. role:: score-51 :class: score-51 .. role:: score-52 :class: score-52 .. role:: score-53 :class: score-53 .. role:: score-54 :class: score-54 .. role:: score-55 :class: score-55 .. role:: score-56 :class: score-56 .. role:: score-57 :class: score-57 .. role:: score-58 :class: score-58 .. role:: score-59 :class: score-59 .. role:: score-60 :class: score-60 .. role:: score-61 :class: score-61 .. role:: score-62 :class: score-62 .. role:: score-63 :class: score-63 .. role:: score-64 :class: score-64 .. role:: score-65 :class: score-65 .. role:: score-66 :class: score-66 .. role:: score-67 :class: score-67 .. role:: score-68 :class: score-68 .. role:: score-69 :class: score-69 .. role:: score-70 :class: score-70 .. role:: score-71 :class: score-71 .. role:: score-72 :class: score-72 .. role:: score-73 :class: score-73 .. role:: score-74 :class: score-74 .. role:: score-75 :class: score-75 .. role:: score-76 :class: score-76 .. role:: score-77 :class: score-77 .. role:: score-78 :class: score-78 .. role:: score-79 :class: score-79 .. role:: score-80 :class: score-80 .. role:: score-81 :class: score-81 .. role:: score-82 :class: score-82 .. role:: score-83 :class: score-83 .. role:: score-84 :class: score-84 .. role:: score-85 :class: score-85 .. role:: score-86 :class: score-86 .. role:: score-87 :class: score-87 .. role:: score-88 :class: score-88 .. role:: score-89 :class: score-89 .. role:: score-90 :class: score-90 .. role:: score-91 :class: score-91 .. role:: score-92 :class: score-92 .. role:: score-93 :class: score-93 .. role:: score-94 :class: score-94 .. role:: score-95 :class: score-95 .. role:: score-96 :class: score-96 .. role:: score-97 :class: score-97 .. role:: score-98 :class: score-98 .. role:: score-99 :class: score-99 .. role:: score-100 :class: score-100 .. role:: score-na :class: score-na .. role:: score-contested :class: score-contested .. role:: score-warn :class: score-warn .. role:: score-fail :class: score-fail .. table:: :class: sphinx-datatable ====== ============================================= ============================= =========== ======================================= ======================================= ========================================= ======================================= ====================================== ======================================= ======================================= ====================================== ====================================== ===================================== ======================================= ================================================= =========================================== Rank Terminal Software Software Version OS System Score WIDE NARROW LANG ZWJ VS16 VS15 SRI SFZ RI Features Graphics Resources ====== ============================================= ============================= =========== ======================================= ======================================= ========================================= ======================================= ====================================== ======================================= ======================================= ====================================== ====================================== ===================================== ======================================= ================================================= =========================================== 1 :ref:`kitty ` 0.46.2 Linux :sref:`100 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 100` :sref:`Kitty 100` :sref:`15 15` 2 :ref:`foot ` 1.27.0 Linux :sref:`99 99` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`100 † 100` :sref:`80 80` :sref:`Sixel 50` :sref:`91 91` 3 :ref:`ghostty ` 1.3.2… Linux :sref:`98 98` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`73 73` :sref:`Kitty 100` :sref:`46 46` 4 :ref:`AbsoluteTelnet/SSH ` 13.17 Windows :sref:`95 95` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`80 80` :sref:`none 0` :sref:`N/A na` 5 :ref:`iTerm2 ` 3.6.10 Darwin :sref:`81 81` :sref:`100 100` :sref:`99 99` :sref:`91 91` :sref:`99 99` :sref:`97 97` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`67 67` :sref:`Sixel, iTerm2, Kitty 100` :sref:`N/A na` 6 :ref:`Rio ` 0.4.5 Linux :sref:`73 73` :sref:`100 100` :sref:`100 100` :sref:`96 96` :sref:`0 0` :sref:`100 100` :sref:`89 89` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`67 67` :sref:`Sixel, Kitty 100` :sref:`54 54` 7 :ref:`Konsole ` 23.08.5 Linux :sref:`71 71` :sref:`99 99` :sref:`100 100` :sref:`97 97` :sref:`96 96` :sref:`100 100` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`17 17` :sref:`Sixel, Kitty 100` :sref:`43 43` 8 :ref:`contour ` 0.6.3.8249 Linux :sref:`66 66` :sref:`100 100` :sref:`100 100` :sref:`82 82` :sref:`96 96` :sref:`50 50` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`80 80` :sref:`Sixel 50` :sref:`42 42` 9 :ref:`tmux ` 3.4 Linux :sref:`63 63` :sref:`99 99` :sref:`100 100` :sref:`97 97` :sref:`81 81` :sref:`98 98` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`100 100` :sref:`17 17` :sref:`Sixel 50` :sref:`34 34` 10 :ref:`WindowsTerminal ` 1.24.11321.0 Windows :sref:`63 63` :sref:`91 91` :sref:`100 100` :sref:`98 98` :sref:`100 100` :sref:`100 100` :sref:`0 0` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`47 47` :sref:`Sixel 50` :sref:`N/A na` 11 :ref:`WezTerm ` 20240203… Linux :sref:`54 54` :sref:`36 36` :sref:`93 93` :sref:`87 87` :sref:`100 100` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`67 67` :sref:`Sixel, Kitty 100` :sref:`27 27` 12 :ref:`Warp ` v0.2026.05.27.15.44.stable_01 Linux :sref:`49 49` :sref:`99 99` :sref:`100 100` :sref:`96 96` :sref:`0 0` :sref:`100 100` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`99 99` :sref:`23 23` :sref:`Kitty 100` :sref:`30 30` 13 :ref:`TeraTerm ` 5.6.0 Linux :sref:`44 44` :sref:`91 91` :sref:`100 100` :sref:`91 91` :sref:`96 96` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`0 0` :sref:`99 99` :sref:`30 30` :sref:`none 0` :sref:`N/A na` 14 :ref:`mlterm ` 3.9.4 Linux :sref:`41 41` :sref:`99 99` :sref:`100 100` :sref:`91 91` :sref:`0 0` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`99 99` :sref:`40 40` :sref:`Sixel, ReGIS 50` :sref:`64 64` 15 :ref:`Zellij ` 4403 Linux :sref:`39 39` :sref:`99 99` :sref:`100 100` :sref:`96 96` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`30 30` :sref:`Sixel 50` :sref:`47 47` 16 :ref:`XTerm ` 410 Linux :sref:`38 38` :sref:`93 93` :sref:`96 96` :sref:`92 92` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`43 43` :sref:`none 0` :sref:`91 91` 17 :ref:`Bobcat ` 0.9.9 (r4) Linux :sref:`37 37` :sref:`97 97` :sref:`97 97` :sref:`92 92` :sref:`0 0` :sref:`100 100` :sref:`0 0` :sref:`100 100` :sref:`0 0` :sref:`1 1` :sref:`37 37` :sref:`iTerm2 100` :sref:`75 75` 18 :ref:`urxvt ` 9.31… Linux :sref:`36 36` :sref:`93 93` :sref:`96 96` :sref:`92 92` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`27 27` :sref:`none 0` :sref:`100 100` 19 :ref:`Tabby ` 1.0.230 Linux :sref:`35 35` :sref:`99 99` :sref:`100 100` :sref:`97 97` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`33 33` :sref:`Sixel 50` :sref:`0 0` 20 :ref:`alacritty ` Linux :sref:`35 35` :sref:`93 93` :sref:`87 87` :sref:`93 93` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`43 43` :sref:`none 0` :sref:`67 67` 21 :ref:`QTerminal ` 2.2.1 Linux :sref:`35 35` :sref:`100 100` :sref:`100 100` :sref:`97 97` :sref:`0 0` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`23 23` :sref:`none 0` :sref:`63 63` 22 :ref:`st ` 0.9.2 Linux :sref:`33 33` :sref:`93 93` :sref:`96 96` :sref:`92 92` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`7 7` :sref:`none 0` :sref:`100 100` 23 :ref:`Extraterm ` 0.81.4 Linux :sref:`32 32` :sref:`99 99` :sref:`100 100` :sref:`70 70` :sref:`0 0` :sref:`100 100` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`99 99` :sref:`3 3` :sref:`none 0` :sref:`20 20` 24 :ref:`Apple_Terminal ` 465 Darwin :sref:`30 30` :sref:`93 93` :sref:`100 100` :sref:`90 90` :sref:`0 0` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`99 99` :sref:`13 13` :sref:`none 0` :sref:`N/A na` 25 :ref:`pterm ` 0.84… Linux :sref:`30 30` :sref:`93 93` :sref:`93 93` :sref:`92 92` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`0 0` :sref:`none 0` :sref:`80 80` 26 :ref:`GNU Screen ` 5.0.1 Linux :sref:`30 30` :sref:`99 99` :sref:`100 100` :sref:`91 91` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`3 3` :sref:`none 0` :sref:`49 49` 27 :ref:`zutty ` 0.16… Linux :sref:`29 29` :sref:`93 93` :sref:`96 96` :sref:`92 92` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`10 10` :sref:`none 0` :sref:`46 46` 28 :ref:`terminology ` 1.13.0 Linux :sref:`28 28` :sref:`99 99` :sref:`100 100` :sref:`73 73` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`99 99` :sref:`13 13` :sref:`none 0` :sref:`48 48` 29 :ref:`LXTerminal ` 0.4.1… Linux :sref:`27 27` :sref:`36 36` :sref:`93 93` :sref:`92 92` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`43 43` :sref:`none 0` :sref:`48 48` 30 :ref:`GNOME Terminal ` 3.50.1 (VTE/8400) Linux :sref:`27 27` :sref:`36 36` :sref:`93 93` :sref:`92 92` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`43 43` :sref:`none 0` :sref:`44 44` 31 :ref:`XFCE Terminal ` 1.1.3 (VTE/8400) Linux :sref:`27 27` :sref:`36 36` :sref:`93 93` :sref:`92 92` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`43 43` :sref:`none 0` :sref:`40 40` 32 :ref:`Terminator ` 2.1.3 (VTE/8400) Linux :sref:`27 27` :sref:`36 36` :sref:`93 93` :sref:`91 91` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`43 43` :sref:`none 0` :sref:`42 42` 33 :ref:`cool-retro-term ` 2.0.0beta2… Linux :sref:`26 26` :sref:`93 93` :sref:`96 96` :sref:`92 92` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`3 3` :sref:`none 0` :sref:`26 26` 34 :ref:`libvterm ` 0.3 Linux :sref:`24 24` :sref:`100 100` :sref:`100 100` :sref:`96 96` :sref:`0 0` :sref:`50 50` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`0 0` :sref:`47 47` :sref:`none 0` :sref:`27 27` 35 :ref:`Hyper ` 3.4.1 Linux :sref:`16 16` :sref:`0 0` :sref:`93 93` :sref:`92 92` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`13 13` :sref:`none 0` :sref:`20 20` 36 :ref:`securecrt ` 9.7.2 Linux :sref:`12 12` :sref:`99 99` :sref:`0 0` :sref:`92 92` :sref:`1 1` :sref:`50 50` :sref:`3 3` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`0 0` :sref:`none 0` :sref:`N/A na` 37 :ref:`xterm.js ` 6.1.0… Linux :sref:`9 9` :sref:`7 7` :sref:`0 0` :sref:`92 92` :sref:`1 1` :sref:`50 50` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`57 57` :sref:`none 0` :sref:`N/A na` 38 :ref:`weston-terminal ` 15.0.1… Linux :sref:`7 7` :sref:`83 83` :sref:`0 0` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`99 99` :sref:`0 0` :sref:`none 0` :sref:`97 97` 39 :ref:`mintty ` 3.8.1 Windows :sref:`7 7` :sref:`44 44` :sref:`100 100` :sref:`0 0` :sref:`0 0` :sref:`100 100` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`0 0` :sref:`23 23` :sref:`none 0` :sref:`N/A na` 40 :ref:`ConEmu ` 23.07.24 Windows :sref:`0 0` :sref:`44 44` :sref:`86 86` :sref:`0 0` :sref:`0 0` :sref:`98 98` :sref:`0 0` :sref:`100 100` :sref:`100 100` :sref:`0 0` :sref:`0 0` :sref:`none 0` :sref:`N/A na` ====== ============================================= ============================= =========== ======================================= ======================================= ========================================= ======================================= ====================================== ======================================= ======================================= ====================================== ====================================== ===================================== ======================================= ================================================= =========================================== † This terminal supports the `Kitty Text Sizing protocol`_, which allows any application to programmatically set character widths, remediating width issues for complex languages, emoji, and other problematic codepoints. It is scored 100% on WIDE, NARROW, LANG, ZWJ, VS16, VS15, SRI, SFZ, and RI. .. _`Kitty Text Sizing protocol`: https://sw.kovidgoyal.net/kitty/text-sizing-protocol/ Terminal Features ----------------- This table shows notable terminal features for each terminal, matching the feature detection performed by ``ucs-detect``. .. table:: :class: sphinx-datatable ====== =================================================== ======================================= =========================================== =========================================== =========================================== =========================================== =========================================== =========================================== ======================================== ================================================= =================================================== ========================================== =========================================== ======================================== ======================================== ======================================== =========================================== ============================================ ================================================= Rank Terminal FEAT Score Bracketed Paste (2004) Synced Output (2026) Focus Events (1004) Mouse SGR (1006) Graphemes (2027) Bracketed Paste MIME (5522) Kitty Keyboard Graphics XTGETTCAP Text Size (OSC 66) Kitty Clipboard OSC 52 Clipboard Kitty Ptr (OSC 22) Kitty Notif (OSC 99) Color Report (OSC 10/11) Truecolor Identification ====== =================================================== ======================================= =========================================== =========================================== =========================================== =========================================== =========================================== =========================================== ======================================== ================================================= =================================================== ========================================== =========================================== ======================================== ======================================== ======================================== =========================================== ============================================ ================================================= 1 :ref:`kitty ` :sref:`100 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`Kitty 100` :sref:`yes (Full) 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 2 :ref:`foot ` :sref:`80 80` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`Sixel 50` :sref:`yes (Full) 100` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 3 :ref:`AbsoluteTelnet/SSH ` :sref:`80 80` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`none 0` :sref:`yes (Full) 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 4 :ref:`contour ` :sref:`80 80` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`Sixel 50` :sref:`yes (Full) 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 5 :ref:`ghostty ` :sref:`73 73` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`Kitty 100` :sref:`yes (Full) 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 6 :ref:`iTerm2 ` :sref:`67 67` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`Sixel, iTerm2, Kitty 100` :sref:`yes (Full) 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 7 :ref:`Rio ` :sref:`67 67` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`Sixel, Kitty 100` :sref:`yes (Full) 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 8 :ref:`WezTerm ` :sref:`67 67` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`Sixel, Kitty 100` :sref:`yes (Full) 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 9 :ref:`xterm.js ` :sref:`57 57` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 10 :ref:`WindowsTerminal ` :sref:`47 47` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`Sixel 50` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`no 0` 11 :ref:`libvterm ` :sref:`47 47` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 12 :ref:`XTerm ` :sref:`43 43` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`yes (Partial) 50` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 13 :ref:`alacritty ` :sref:`43 43` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` 14 :ref:`LXTerminal ` :sref:`43 43` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`yes (Partial) 50` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 15 :ref:`GNOME Terminal ` :sref:`43 43` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`yes (Partial) 50` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 16 :ref:`XFCE Terminal ` :sref:`43 43` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`yes (Partial) 50` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 17 :ref:`Terminator ` :sref:`43 43` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`yes (Partial) 50` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 18 :ref:`mlterm ` :sref:`40 40` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`Sixel, ReGIS 50` :sref:`yes (Partial) 50` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 19 :ref:`Bobcat ` :sref:`37 37` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`iTerm2 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` 20 :ref:`Tabby ` :sref:`33 33` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`Sixel 50` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 21 :ref:`TeraTerm ` :sref:`30 30` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`yes (Partial) 50` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`no 0` 22 :ref:`Zellij ` :sref:`30 30` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`Sixel 50` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 23 :ref:`urxvt ` :sref:`27 27` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`no 0` 24 :ref:`Warp ` :sref:`23 23` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`Kitty 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 25 :ref:`QTerminal ` :sref:`23 23` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` 26 :ref:`mintty ` :sref:`23 23` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` 27 :ref:`Konsole ` :sref:`17 17` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`Sixel, Kitty 100` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 28 :ref:`tmux ` :sref:`17 17` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`Sixel 50` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 29 :ref:`Apple_Terminal ` :sref:`13 13` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 30 :ref:`terminology ` :sref:`13 13` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`yes 100` 31 :ref:`Hyper ` :sref:`13 13` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` 32 :ref:`zutty ` :sref:`10 10` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`yes 100` :sref:`no 0` 33 :ref:`st ` :sref:`7 7` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` :sref:`no 0` 34 :ref:`Extraterm ` :sref:`3 3` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` 35 :ref:`GNU Screen ` :sref:`3 3` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` 36 :ref:`cool-retro-term ` :sref:`3 3` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes 100` :sref:`no 0` 37 :ref:`pterm ` :sref:`0 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` 38 :ref:`securecrt ` :sref:`0 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` 39 :ref:`weston-terminal ` :sref:`0 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` 40 :ref:`ConEmu ` :sref:`0 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`none 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no 0` ====== =================================================== ======================================= =========================================== =========================================== =========================================== =========================================== =========================================== =========================================== ======================================== ================================================= =================================================== ========================================== =========================================== ======================================== ======================================== ======================================== =========================================== ============================================ ================================================= Truecolor Detection ------------------- This table shows which methods can be used to detect 24-bit truecolor support for each terminal emulator. ``no`` cells are yellow when only COLORTERM detects support (COLORTERM environment variable is not forwarded over SSH without ``SendEnv`` / ``AcceptEnv`` configuration), grey when at least one other method succeeds, and red when no method can detect `Truecolor`_ support. .. table:: :class: sphinx-datatable ====================================================== ============================================ ============================================ ============================================ Terminal XTGETTCAP (RGB) DECRQSS COLORTERM ====================================================== ============================================ ============================================ ============================================ :ref:`kitty ` :score-contested:`no` :sref:`yes 100` :sref:`yes 100` :ref:`foot ` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :ref:`ghostty ` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :ref:`AbsoluteTelnet/SSH ` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :ref:`iTerm2 ` :sref:`yes 100` :score-contested:`no` :sref:`yes 100` :ref:`Rio ` :sref:`yes 100` :score-contested:`no` :sref:`yes 100` :ref:`Konsole ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`contour ` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :ref:`tmux ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`WindowsTerminal ` :score-0:`no` :score-0:`no` :score-0:`no` :ref:`WezTerm ` :sref:`yes 100` :score-contested:`no` :sref:`yes 100` :ref:`Warp ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`TeraTerm ` :score-0:`no` :score-0:`no` :score-0:`no` :ref:`mlterm ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`Zellij ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`XTerm ` :sref:`yes 100` :sref:`yes 100` :score-contested:`no` :ref:`Bobcat ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`urxvt ` :score-0:`no` :score-0:`no` :score-0:`no` :ref:`Tabby ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`alacritty ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`QTerminal ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`st ` :score-0:`no` :score-0:`no` :score-0:`no` :ref:`Extraterm ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`Apple_Terminal ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`pterm ` :score-0:`no` :score-0:`no` :score-0:`no` :ref:`GNU Screen ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`zutty ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`terminology ` :score-0:`no` :score-0:`no` :score-0:`no` :ref:`LXTerminal ` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :ref:`GNOME Terminal ` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :ref:`XFCE Terminal ` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :ref:`Terminator ` :sref:`yes 100` :sref:`yes 100` :sref:`yes 100` :ref:`cool-retro-term ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`libvterm ` :score-contested:`no` :sref:`yes 100` :sref:`yes 100` :ref:`Hyper ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`securecrt ` :score-0:`no` :score-0:`no` :score-0:`no` :ref:`xterm.js ` :score-warn:`no` :score-warn:`no` :sref:`yes 100` :ref:`weston-terminal ` :score-0:`no` :score-0:`no` :score-0:`no` :ref:`mintty ` :score-0:`no` :score-0:`no` :score-0:`no` :ref:`ConEmu ` :score-0:`no` :score-0:`no` :score-0:`no` ====================================================== ============================================ ============================================ ============================================ OSC 52 Clipboard Detection -------------------------- This table shows which methods can be used to detect `OSC 52`_ clipboard support for each terminal emulator. DA1 extension 52 is the mechanism defined by the vt-extensions spec; `XTGETTCAP`_ ``Ms`` is an alternative capability query that may work on terminals not advertising the DA1 extension. .. table:: :class: sphinx-datatable ================================================== ======================================== =========================================== Terminal DA1 ext 52 XTGETTCAP Ms ================================================== ======================================== =========================================== :ref:`kitty ` :sref:`no contested` :sref:`yes 100` :ref:`foot ` :sref:`yes 100` :sref:`yes 100` :ref:`ghostty ` :sref:`yes 100` :sref:`yes 100` :ref:`AbsoluteTelnet/SSH ` :sref:`yes 100` :sref:`yes 100` :ref:`iTerm2 ` :sref:`yes 100` :sref:`yes 100` :ref:`Rio ` :sref:`no contested` :sref:`yes 100` :ref:`Konsole ` :sref:`no 0` :sref:`no 0` :ref:`contour ` :sref:`yes 100` :sref:`no contested` :ref:`tmux ` :sref:`no 0` :sref:`no 0` :ref:`WindowsTerminal ` :sref:`yes 100` :sref:`no contested` :ref:`WezTerm ` :sref:`no contested` :sref:`yes 100` :ref:`Warp ` :sref:`no 0` :sref:`no 0` :ref:`TeraTerm ` :sref:`no 0` :sref:`no 0` :ref:`mlterm ` :sref:`no 0` :sref:`no 0` :ref:`Zellij ` :sref:`yes 100` :sref:`no contested` :ref:`XTerm ` :sref:`no 0` :sref:`no 0` :ref:`Bobcat ` :sref:`no 0` :sref:`no 0` :ref:`urxvt ` :sref:`no 0` :sref:`no 0` :ref:`Tabby ` :sref:`no 0` :sref:`no 0` :ref:`alacritty ` :sref:`no 0` :sref:`no 0` :ref:`QTerminal ` :sref:`no 0` :sref:`no 0` :ref:`st ` :sref:`no 0` :sref:`no 0` :ref:`Extraterm ` :sref:`no 0` :sref:`no 0` :ref:`Apple_Terminal ` :sref:`no 0` :sref:`no 0` :ref:`pterm ` :sref:`no 0` :sref:`no 0` :ref:`GNU Screen ` :sref:`no 0` :sref:`no 0` :ref:`zutty ` :sref:`no 0` :sref:`no 0` :ref:`terminology ` :sref:`no 0` :sref:`no 0` :ref:`LXTerminal ` :sref:`no 0` :sref:`no 0` :ref:`GNOME Terminal ` :sref:`no 0` :sref:`no 0` :ref:`XFCE Terminal ` :sref:`no 0` :sref:`no 0` :ref:`Terminator ` :sref:`no 0` :sref:`no 0` :ref:`cool-retro-term ` :sref:`no 0` :sref:`no 0` :ref:`libvterm ` :sref:`no 0` :sref:`no 0` :ref:`Hyper ` :sref:`no 0` :sref:`no 0` :ref:`securecrt ` :sref:`no 0` :sref:`no 0` :ref:`xterm.js ` :sref:`no 0` :sref:`no 0` :ref:`weston-terminal ` :sref:`no 0` :sref:`no 0` :ref:`mintty ` :sref:`no 0` :sref:`no 0` :ref:`ConEmu ` :sref:`no 0` :sref:`no 0` ================================================== ======================================== =========================================== Terminal Identification ----------------------- This table shows which methods can be used to identify the terminal software name and version. XTVERSION, XTGETTCAP ``TN``, and ``ENQ`` are active escape sequence queries (work over SSH). TERM_PROGRAM and TERM are environment variables; TERM_PROGRAM is not forwarded over SSH without ``SendEnv`` / ``AcceptEnv`` configuration, while TERM is (though some protocols such as Serial do not forward TERM). .. table:: :class: sphinx-datatable =========================================================== ================================================= ====================================================== ====================================================== ====================================================== ====================================================== Terminal XTVERSION XTGETTCAP TN ENQ TERM_PROGRAM TERM =========================================================== ================================================= ====================================================== ====================================================== ====================================================== ====================================================== :ref:`kitty ` :sref:`yes 100` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`yes 100` :ref:`foot ` :sref:`yes 100` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`yes 100` :ref:`ghostty ` :sref:`yes 100` :sref:`yes 100` :sref:`no contested` :sref:`yes 100` :sref:`yes 100` :ref:`AbsoluteTelnet/SSH ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`no contested` :sref:`no contested` :ref:`iTerm2 ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`yes 100` :sref:`no contested` :ref:`Rio ` :sref:`yes 100` :sref:`yes 100` :sref:`no contested` :sref:`yes 100` :sref:`yes 100` :ref:`Konsole ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`no contested` :sref:`no contested` :ref:`contour ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`no contested` :sref:`yes 100` :ref:`tmux ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`yes 100` :sref:`no contested` :ref:`WindowsTerminal ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no fail` :sref:`no contested` :ref:`WezTerm ` :sref:`yes 100` :sref:`yes 100` :sref:`no contested` :sref:`yes 100` :sref:`no contested` :ref:`Warp ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`yes 100` :sref:`no contested` :ref:`TeraTerm ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no fail` :sref:`no contested` :ref:`mlterm ` :sref:`yes 100` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`no contested` :ref:`Zellij ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`no contested` :sref:`no contested` :ref:`XTerm ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`no contested` :sref:`no contested` :ref:`Bobcat ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`no contested` :sref:`no contested` :ref:`urxvt ` :sref:`no 0` :sref:`no contested` :sref:`yes 100` :sref:`no contested` :sref:`yes 100` :ref:`Tabby ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes warn` :sref:`no contested` :ref:`alacritty ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no fail` :sref:`yes 100` :ref:`QTerminal ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no fail` :sref:`no contested` :ref:`st ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no fail` :sref:`yes 100` :ref:`Extraterm ` :sref:`no 0` :sref:`no contested` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :ref:`Apple_Terminal ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes warn` :sref:`no contested` :ref:`pterm ` :sref:`no 0` :sref:`no contested` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :ref:`GNU Screen ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no fail` :sref:`yes 100` :ref:`zutty ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no fail` :sref:`no contested` :ref:`terminology ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`yes 100` :sref:`no contested` :ref:`LXTerminal ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`no contested` :sref:`no contested` :ref:`GNOME Terminal ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`no contested` :sref:`no contested` :ref:`XFCE Terminal ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`no contested` :sref:`no contested` :ref:`Terminator ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`no contested` :sref:`no contested` :ref:`cool-retro-term ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no fail` :sref:`no contested` :ref:`libvterm ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`no contested` :sref:`no contested` :ref:`Hyper ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes warn` :sref:`no contested` :ref:`securecrt ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no fail` :sref:`no contested` :ref:`xterm.js ` :sref:`yes 100` :sref:`no contested` :sref:`no contested` :sref:`yes 100` :sref:`no contested` :ref:`weston-terminal ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no fail` :sref:`no contested` :ref:`mintty ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`yes warn` :sref:`no contested` :ref:`ConEmu ` :sref:`no 0` :sref:`no 0` :sref:`no 0` :sref:`no fail` :sref:`no contested` =========================================================== ================================================= ====================================================== ====================================================== ====================================================== ====================================================== * **Identifiable by XTVERSION (22 of 40):** :ref:`AbsoluteTelnet/SSH `, :ref:`Bobcat `, :ref:`GNOME Terminal `, :ref:`Konsole `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`Warp `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`Zellij `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`libvterm `, :ref:`mlterm `, :ref:`terminology `, :ref:`tmux `, :ref:`xterm.js ` (active query, works over SSH). * **Not identifiable (8 of 40):** :ref:`ConEmu `, :ref:`QTerminal `, :ref:`TeraTerm `, :ref:`WindowsTerminal `, :ref:`cool-retro-term `, :ref:`securecrt `, :ref:`weston-terminal `, :ref:`zutty ` * **Identifiable by TERM_PROGRAM only (4 of 40):** :ref:`Apple_Terminal `, :ref:`Hyper `, :ref:`Tabby `, :ref:`mintty ` (environment variable, not forwarded over SSH). * **Identifiable by ENQ only (3 of 40):** :ref:`Extraterm `, :ref:`pterm `, :ref:`urxvt ` (active query, works over SSH). * **Identifiable by TERM only (3 of 40):** :ref:`GNU Screen `, :ref:`alacritty `, :ref:`st ` (environment variable, forwarded over SSH). Terminal Capabilities (XTGETTCAP) --------------------------------- * **No Support (55.0%):** :ref:`Bobcat `, :ref:`ConEmu `, :ref:`Extraterm `, :ref:`GNU Screen `, :ref:`Hyper `, :ref:`Konsole `, :ref:`Tabby `, :ref:`Warp `, :ref:`WindowsTerminal `, :ref:`Zellij `, :ref:`alacritty `, :ref:`libvterm `, :ref:`mintty `, :ref:`pterm `, :ref:`securecrt `, :ref:`st `, :ref:`terminology `, :ref:`tmux `, :ref:`urxvt `, :ref:`weston-terminal `, :ref:`xterm.js `, :ref:`zutty ` * **Full XTGETTCAP capability support (20.0%):** :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `. A full terminfo(5) database can be reconstructed from `XTGETTCAP`_ queries using ttyscan_. A preferred TERM from TN, and COLORTERM=truecolor from RGB may be derived. * **Partial XTGETTCAP capability support (17.5%):** :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`TeraTerm `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`mlterm `. A preferred TERM from TN, and COLORTERM=truecolor from RGB may be derived. * **Non-compliant (7.5%):** :ref:`Apple_Terminal `, :ref:`QTerminal `, :ref:`cool-retro-term ` -- failed to parse DCS queries, displaying raw sequence output. This table shows `XTGETTCAP`_ terminfo capability values reported by each terminal. Terminals are grouped by shared values for each capability. .. table:: :class: sphinx-datatable ============================== ============================================= =============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== Capability Description Terminals and Values ============================== ============================================= =============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== TN Terminal name :ref:`WezTerm `\: WezTerm :ref:`AbsoluteTelnet/SSH `, :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`contour `, :ref:`iTerm2 `\: ``xterm-256color`` :ref:`ghostty `\: ``xterm-ghostty`` :ref:`kitty `\: ``xterm-kitty`` :ref:`foot `\: foot :ref:`mlterm `\: mlterm :ref:`Rio `\: rio :ref:`XTerm `\: xterm colors Max colors on screen :ref:`AbsoluteTelnet/SSH `, :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`TeraTerm `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: 256 :ref:`contour `\: ``\x01\x00`` RGB Bits per color channel (8 = 24-bit truecolor) :ref:`AbsoluteTelnet/SSH `, :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `\: 8 :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `\: ``8/8/8`` AX Supports default colors :ref:`iTerm2 `\: 1 BD Enter bold mode (kitty) :ref:`Rio `, :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E[?2004l`` BE Exit bold mode (kitty) :ref:`Rio `, :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E[?2004h`` Cr Set cursor color :ref:`foot `\: ``\E]112\E\`` :ref:`Rio `, :ref:`WezTerm `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E]112\a`` Cs Reset cursor color :ref:`contour `, :ref:`foot `\: ``\E]12;%p1%s\E\`` :ref:`Rio `, :ref:`WezTerm `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E]12;%p1%s\a`` E3 Erase scrollback :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `\: ``\E[3J`` Ms Clipboard set :ref:`foot `, :ref:`kitty `\: ``\E]52;%p1%s;%p2%s\E\`` :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`ghostty `, :ref:`iTerm2 `\: ``\E]52;%p1%s;%p2%s\a`` PE Presentation end (kitty) :ref:`Rio `, :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E[201~`` PS Presentation start (kitty) :ref:`Rio `, :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E[200~`` RV Enter reverse mode (kitty) :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E[>c`` Rect Rectangle operations :ref:`foot `\: ``\E[%p1%d;%p2%d;%p3%d;%p4%d;%p5%d$x`` Rmol Reset overline mode :ref:`contour `\: ``\E[55m`` Se Reset underline style :ref:`contour `, :ref:`foot `\: ``\E[ q`` :ref:`Rio `\: ``\E[0 q`` :ref:`kitty `\: ``\E[0\sq`` :ref:`WezTerm `, :ref:`ghostty `, :ref:`iTerm2 `\: ``\E[2 q`` Setulc Set underline color :ref:`contour `, :ref:`kitty `\: ``\E[58:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%d%;m`` :ref:`AbsoluteTelnet/SSH `\: ``\E[58:2::%p1%d:%p2%d:%p3%dm`` :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `\: ``\E[58:2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%d%;m`` Smol Set overline mode :ref:`WezTerm `, :ref:`contour `\: ``\E[53m`` Smulx Styled underline :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E[4:%p1%dm`` Ss Set underline style :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `\: ``\E[%p1%d q`` :ref:`kitty `\: ``\E[%p1%d\sq`` Sync Synchronized output :ref:`Rio `, :ref:`kitty `\: ``\EP=%p1%ds\E\`` :ref:`foot `, :ref:`ghostty `\: ``\E[?2026%?%p1%{1}%-%tl%eh%;`` :ref:`WezTerm `, :ref:`contour `\: ``\E[?2026%?%p1%{1}%-%tl%eh`` TS Terminal state query :ref:`foot `\: ``\E]2;`` Tc Truecolor (24-bit RGB) :ref:`WezTerm `\: 1 XM Enter marks mode (kitty) :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `\: ``\E[?1006;1000%?%p1%{1}%=%th%el%;`` XR Enter reset mode (kitty) :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E[>0q`` XT Xterm extensions :ref:`iTerm2 `\: 1 acsc Alternate character set :ref:`ghostty `, :ref:`kitty `\: ``++\,\,--..00\\`\\`aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~`` :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`iTerm2 `\: ``\\`\\`aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~`` am Auto right margin :ref:`WezTerm `, :ref:`iTerm2 `\: 1 bce Background color erase :ref:`WezTerm `, :ref:`iTerm2 `\: 1 bel Bell :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\a`` blink Enter blink mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[5m`` bold Enter bold mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1m`` bw Auto left margin :ref:`iTerm2 `\: 0 ccc Can redefine colors :ref:`WezTerm `, :ref:`iTerm2 `\: 1 civis Hide cursor :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[?25l`` clear Clear screen :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[H\E[2J`` cnorm Normal cursor :ref:`kitty `\: ``\E[?12h\E[?25h`` :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `\: ``\E[?12l\E[?25h`` cols Columns :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: 80 :ref:`contour `\: P cr Carriage return :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\r`` csr Change scroll region :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%i%p1%d;%p2%dr`` cub Cursor left n :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%p1%dD`` cub1 Cursor left :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\b`` cud Cursor down n :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%p1%dB`` cud1 Cursor down :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\n`` cuf Cursor right n :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%p1%dC`` cuf1 Cursor right :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[C`` cup Cursor address :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%i%p1%d;%p2%dH`` cuu Cursor up n :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%p1%dA`` cuu1 Cursor up :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[A`` cvvis Very visible cursor :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[?12;25h`` da Memory above :ref:`iTerm2 `\: 0 db Memory below :ref:`iTerm2 `\: 0 dch Delete n characters :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%p1%dP`` dch1 Delete character :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[P`` dim Enter dim mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[2m`` dl Delete n lines :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%p1%dM`` dl1 Delete line :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[M`` dsl Disable status line :ref:`contour `\: ``\E[$~`` :ref:`WezTerm `, :ref:`foot `, :ref:`kitty `\: ``\E]2;\E\`` :ref:`Rio `, :ref:`ghostty `\: ``\E]2;\a`` ech Erase characters :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%p1%dX`` ed Clear to end of screen :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[J`` el Clear to end of line :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[K`` el1 Clear to start of line :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1K`` eslok Status line escape OK :ref:`iTerm2 `\: 0 fd Enter font mode (kitty) :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E[?1004l`` fe Exit font mode (kitty) :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E[?1004h`` flash Flash screen :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[?5h$<100/>\E[?5l`` :ref:`foot `\: ``\E]555\E\`` fsl From status line :ref:`contour `\: ``\E[$}`` :ref:`WezTerm `, :ref:`foot `\: ``\E\`` :ref:`Rio `, :ref:`ghostty `, :ref:`kitty `\: ``\a`` home Cursor home :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[H`` hpa Horizontal position :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%i%p1%dG`` hs Has status line :ref:`iTerm2 `\: 0 :ref:`WezTerm `\: 1 ht Horizontal tab :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\t`` hts Set tab stop :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\EH`` ich Insert n characters :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%p1%d@`` ich1 Insert character :ref:`ghostty `\: ``\E[@`` il Insert n lines :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%p1%dL`` il1 Insert line :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[L`` ind Scroll forward :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\n`` indn Scroll forward n :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%p1%dS`` initc Initialize color :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\`` invis Invisible cursor :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `\: ``\E[8m`` is2 Init 2 string :ref:`foot `\: ``\E[!p\E[4l\E>`` :ref:`Rio `, :ref:`WezTerm `, :ref:`iTerm2 `\: ``\E[!p\E[?3;4l\E[4l\E>`` it Init tabs :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: 8 :ref:`contour `\: ``\b`` kDC Shifted delete-char key :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[3;2~`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[3~`` kDC3 Alt delete-char key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[3;2~`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[3;3~`` kDC4 Alt-Shift delete-char key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[3;4~`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[3;5~`` kDC5 Ctrl delete-char key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[3;5~`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[3;6~`` kDC6 Ctrl-Shift delete-char key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[3;5~`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[3;6~`` kDC7 Ctrl-Alt delete-char key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[3;6~`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[3;7~`` kDN Shifted down-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;2B`` kDN3 Alt down-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;2B`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;3B`` kDN4 Alt-Shift down-arrow key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;4B`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;5B`` kDN5 Ctrl down-arrow key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;5B`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;6B`` kDN6 Ctrl-Shift down-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;5B`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;6B`` kDN7 Ctrl-Alt down-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;6B`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;7B`` kEND Shifted end key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[1;2F`` kEND3 Alt end key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;2F`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;3F`` kEND4 Alt-Shift end key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;4F`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;5F`` kEND5 Ctrl end key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;5F`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;6F`` kEND6 Ctrl-Shift end key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;5F`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;6F`` kEND7 Ctrl-Alt end key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;6F`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;7F`` kHOM Shifted home key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[1;2H`` kHOM3 Alt home key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;2H`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;3H`` kHOM4 Alt-Shift home key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;4H`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;5H`` kHOM5 Ctrl home key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;5H`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;6H`` kHOM6 Ctrl-Shift home key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;5H`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;6H`` kHOM7 Ctrl-Alt home key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;6H`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;7H`` kIC Shifted insert-char key :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[2;2~`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[2~`` kIC3 Alt insert-char key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[2;2~`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[2;3~`` kIC4 Alt-Shift insert-char key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[2;4~`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[2;5~`` kIC5 Ctrl insert-char key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[2;5~`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[2;6~`` kIC6 Ctrl-Shift insert-char key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[2;5~`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[2;6~`` kIC7 Ctrl-Alt insert-char key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[2;6~`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[2;7~`` kLFT Shifted left-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[1;2D`` kLFT3 Alt left-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;2D`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;3D`` kLFT4 Alt-Shift left-arrow key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;4D`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;5D`` kLFT5 Ctrl left-arrow key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;5D`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;6D`` kLFT6 Ctrl-Shift left-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;5D`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;6D`` kLFT7 Ctrl-Alt left-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;6D`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;7D`` kNXT Shifted next-page key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[6;2~`` kNXT3 Alt next-page key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[6;2~`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[6;3~`` kNXT4 Alt-Shift next-page key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[6;4~`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[6;5~`` kNXT5 Ctrl next-page key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[6;5~`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[6;6~`` kNXT6 Ctrl-Shift next-page key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[6;5~`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[6;6~`` kNXT7 Ctrl-Alt next-page key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[6;6~`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[6;7~`` kPRV Shifted previous-page key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[5;2~`` kPRV3 Alt previous-page key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[5;2~`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[5;3~`` kPRV4 Alt-Shift previous-page key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[5;4~`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[5;5~`` kPRV5 Ctrl previous-page key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[5;5~`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[5;6~`` kPRV6 Ctrl-Shift previous-page key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[5;5~`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[5;6~`` kPRV7 Ctrl-Alt previous-page key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[5;6~`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[5;7~`` kRIT Shifted right-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[1;2C`` kRIT3 Alt right-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;2C`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;3C`` kRIT4 Alt-Shift right-arrow key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;4C`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;5C`` kRIT5 Ctrl right-arrow key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;5C`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;6C`` kRIT6 Ctrl-Shift right-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;5C`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;6C`` kRIT7 Ctrl-Alt right-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;6C`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;7C`` kUP Shifted up-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;2A`` kUP3 Alt up-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;2A`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;3A`` kUP4 Alt-Shift up-arrow key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;4A`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;5A`` kUP5 Ctrl up-arrow key :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;5A`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;6A`` kUP6 Ctrl-Shift up-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;5A`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;6A`` kUP7 Ctrl-Alt up-arrow key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `\: ``\E[1;6A`` :ref:`Rio `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[1;7A`` ka1 Keypad upper left :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`mlterm `\: ``\E[H`` ka3 Keypad upper right :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`mlterm `\: ``\E[5~`` kb2 Keypad center :ref:`Rio `, :ref:`WezTerm `, :ref:`iTerm2 `\: ``\EOE`` kbs Backspace key :ref:`XTerm `, :ref:`iTerm2 `, :ref:`mlterm `\: ``\b`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ```` kc1 Keypad lower left :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`mlterm `\: ``\E[F`` kc3 Keypad lower right :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`mlterm `\: ``\E[6~`` kcbt Back-tab key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[Z`` kcub1 Left arrow key :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\EOD`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`mlterm `\: ``\E[D`` kcud1 Down arrow key :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\EOB`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`mlterm `\: ``\E[B`` kcuf1 Right arrow key :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\EOC`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`mlterm `\: ``\E[C`` kcuu1 Up arrow key :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\EOA`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`mlterm `\: ``\E[A`` kdch1 Delete character key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[3~`` kend End key :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\EOF`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`mlterm `\: ``\E[F`` kent Enter/send key :ref:`Rio `, :ref:`WezTerm `, :ref:`ghostty `, :ref:`iTerm2 `\: ``\EOM`` :ref:`Terminator `\: ``\r+70`` :ref:`XTerm `\: ``\r`` kf1 Function key F1 :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\EOP`` kf10 Function key F10 :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[21~`` kf11 Function key F11 :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[23~`` kf12 Function key F12 :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[24~`` kf2 Function key F2 :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\EOQ`` kf3 Function key F3 :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\EOR`` kf4 Function key F4 :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\EOS`` kf5 Function key F5 :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[15~`` kf6 Function key F6 :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[17~`` kf7 Function key F7 :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[18~`` kf8 Function key F8 :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[19~`` kf9 Function key F9 :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[20~`` khome Home key :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\EOH`` :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Terminator `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`mlterm `\: ``\E[H`` kich1 Insert character key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[2~`` kind Scroll-down key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[1;2B`` kitty-query-allow_hyperlinks hyperlink support :ref:`kitty `\: yes kitty-query-background background color :ref:`kitty `\: ``#000000`` kitty-query-background_opacity background opacity :ref:`kitty `\: 1 kitty-query-bold_font bold font :ref:`kitty `\: FreeMonoBold kitty-query-bold_italic_font bold-italic font :ref:`kitty `\: FreeMonoBoldOblique kitty-query-clipboard_control clipboard control :ref:`kitty `\: ``write-clipboard write-primary read-clipboard-ask read-primary-ask`` kitty-query-dpi_x DPI X :ref:`kitty `\: 96 kitty-query-dpi_y DPI Y :ref:`kitty `\: 96 kitty-query-font_family font family :ref:`kitty `\: FreeMono kitty-query-font_size font size :ref:`kitty `\: 11 kitty-query-foreground foreground color :ref:`kitty `\: ``#dddddd`` kitty-query-italic_font italic font :ref:`kitty `\: FreeMonoOblique kitty-query-name terminal name :ref:`kitty `\: kitty kitty-query-os_name OS name :ref:`kitty `\: linux kitty-query-version version :ref:`kitty `\: ``0.47.1`` km Has meta key :ref:`WezTerm `, :ref:`iTerm2 `\: 1 kmous Mouse key :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `\: ``\E[<`` :ref:`Rio `, :ref:`contour `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[M`` knp Next page key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[6~`` kpp Previous page key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[5~`` kri Scroll-up key :ref:`GNOME Terminal `, :ref:`LXTerminal `, :ref:`Rio `, :ref:`Terminator `, :ref:`WezTerm `, :ref:`XFCE Terminal `, :ref:`XTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `, :ref:`mlterm `\: ``\E[1;2A`` kxIN Keyboard in (kitty) :ref:`Rio `, :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E[I`` kxOUT Keyboard out (kitty) :ref:`Rio `, :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E[O`` lines Lines :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: 24 :ref:`contour `\: ``\x18`` mc5i Will not echo input :ref:`WezTerm `, :ref:`iTerm2 `\: 1 mir Move in insert mode :ref:`WezTerm `, :ref:`iTerm2 `\: 1 msgr Move in standout mode :ref:`WezTerm `, :ref:`iTerm2 `\: 1 nel Newline :ref:`AbsoluteTelnet/SSH `, :ref:`foot `\: ``\EE`` npc No pad character :ref:`WezTerm `, :ref:`iTerm2 `\: 1 oc Original colors :ref:`contour `, :ref:`foot `\: ``\E]104\E\`` :ref:`Rio `, :ref:`WezTerm `, :ref:`ghostty `, :ref:`kitty `\: ``\E]104\a`` op Original pair :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[39;49m`` pairs Max color pairs :ref:`Rio `, :ref:`WezTerm `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: 32767 :ref:`foot `\: 65536 :ref:`contour `\: ``\x01\x00\x00`` query-os-name OS name query :ref:`foot `, :ref:`kitty `\: Linux rc Restore cursor :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E8`` rep Repeat character :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``%p1%c\E[%p2%{1}%-%db`` :ref:`AbsoluteTelnet/SSH `\: ``\E[%p1%db`` rev Enter reverse mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[7m`` ri Reverse index :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\EM`` rin Scroll reverse n :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%p1%dT`` ritm Exit italics mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[23m`` rmacs Exit alternate charset mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E(B`` rmam Disable line wrap :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[?7l`` rmcup Exit alt screen :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `\: ``\E[?1049l\E[23;0;0t`` :ref:`AbsoluteTelnet/SSH `, :ref:`contour `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[?1049l`` rmir Exit insert mode :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[4l`` rmkx Keypad local mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `\: ``\E[?1l\E>`` :ref:`contour `, :ref:`kitty `\: ``\E[?1l`` rmm Reset meta mode :ref:`Rio `, :ref:`WezTerm `, :ref:`iTerm2 `\: ``\E[?1034l`` :ref:`foot `\: ``\E[?1036h\E[?1034l`` rmso Exit standout mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[27m`` rmul Exit underline mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[24m`` rs1 Reset string 1 :ref:`contour `, :ref:`ghostty `, :ref:`kitty `\: ``\E]\E\\Ec`` :ref:`Rio `, :ref:`WezTerm `\: ``\Ec\E]104\a`` :ref:`AbsoluteTelnet/SSH `, :ref:`foot `, :ref:`iTerm2 `\: ``\Ec`` rs2 Reset string 2 :ref:`foot `\: ``\E[!p\E[4l\E>`` :ref:`Rio `, :ref:`WezTerm `, :ref:`iTerm2 `\: ``\E[!p\E[?3;4l\E[4l\E>`` :ref:`AbsoluteTelnet/SSH `\: ``\E[!p`` rv Exit reverse mode (kitty) :ref:`foot `\: ``\E\[>1;[0-9][0-9][0-9][0-9][0-9][0-9];0c`` :ref:`ghostty `\: ``\E\[[0-9]+;[0-9]+;[0-9]+c`` sc Save cursor :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E7`` setab Set background color :ref:`foot `\: ``\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48:5:%p1%d%;m`` :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m`` :ref:`AbsoluteTelnet/SSH `\: ``\E[48;5;%p1%dm`` setaf Set foreground color :ref:`foot `\: ``\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38:5:%p1%d%;m`` :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m`` :ref:`AbsoluteTelnet/SSH `\: ``\E[38;5;%p1%dm`` setal Set ANSI label :ref:`foot `\: ``\E[58:2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%d%;m`` setrgbb Set RGB background :ref:`contour `, :ref:`ghostty `, :ref:`kitty `\: ``\E[48:2:%p1%d:%p2%d:%p3%dm`` :ref:`foot `\: ``\E[48:2::%p1%d:%p2%d:%p3%dm`` :ref:`AbsoluteTelnet/SSH `\: ``\E[48;2;%p1%d;%p2%d;%p3%dm`` setrgbf Set RGB foreground :ref:`contour `, :ref:`ghostty `, :ref:`kitty `\: ``\E[38:2:%p1%d:%p2%d:%p3%dm`` :ref:`foot `\: ``\E[38:2::%p1%d:%p2%d:%p3%dm`` :ref:`AbsoluteTelnet/SSH `\: ``\E[38;2;%p1%d;%p2%d;%p3%dm`` sgr Set attributes :ref:`kitty `\: ``%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;%?%p5%t;2%;m`` :ref:`contour `\: ``%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m`` :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `\: ``%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m`` sgr0 Reset attributes :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E(B\E[m`` sitm Enter italics mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[3m`` smacs Enter alternate charset mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E(0`` smam Enable line wrap :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[?7h`` smcup Enter alt screen :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `\: ``\E[?1049h\E[22;0;0t`` :ref:`AbsoluteTelnet/SSH `, :ref:`contour `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[?1049h`` smir Enter insert mode :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[4h`` smkx Keypad transmit mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `\: ``\E[?1h\E=`` :ref:`contour `, :ref:`kitty `\: ``\E[?1h`` smso Enter standout mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[7m`` smul Enter underline mode :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[4m`` tbc Clear all tabs :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[3g`` tsl To status line :ref:`contour `\: ``\E[2$~\E[1$}\E[H\E[2J`` :ref:`WezTerm `\: ``\E]0;`` :ref:`Rio `, :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E]2;`` u6 CPR response format :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%i%d;%dR`` u7 CPR request :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[6n`` u8 DA response format :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`kitty `\: ``\E[?%[;0123456789]c`` :ref:`iTerm2 `\: ``\E[?1;2c`` :ref:`AbsoluteTelnet/SSH `\: ``\E[?62;1;2;6;7;8;9;15;22;52c`` u9 DA request :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[c`` ul Transparent underline :ref:`iTerm2 `\: 0 vpa Vertical position :ref:`AbsoluteTelnet/SSH `, :ref:`Rio `, :ref:`WezTerm `, :ref:`contour `, :ref:`foot `, :ref:`ghostty `, :ref:`iTerm2 `, :ref:`kitty `\: ``\E[%i%p1%dd`` xenl Newline glitch :ref:`WezTerm `, :ref:`iTerm2 `\: 1 xm Exit marks mode (kitty) :ref:`WezTerm `, :ref:`foot `, :ref:`ghostty `\: ``\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;`` xr Exit reset mode (kitty) :ref:`ghostty `\: ``\EP>\|[ -~]+a\E\`` :ref:`foot `\: ``\EP>\|foot\([0-9]+\.[0-9]+\.[0-9]+(-[0-9]+-g[a-f[0-9]+)?\)?\E\`` xt Destructive tabs :ref:`iTerm2 `\: 0 xvpa Extended vertical positioning :ref:`iTerm2 `\: 0 ============================== ============================================= =============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== Performance ----------- .. note:: Test duration and resources used is not an indicator of software quality. We make a best effort to track CPU and System Memory for linux systems, only. Docker and cgroups are used to enforce a 2 CPU limit but it is not reliable. Many terminals use GPU memory not tracked. Some terminals perform differently under docker. Further, some have complex process groups, chrome, or OS-integration of shared resources that may not be accurately reflected here. The Resources score combines CPU, memory, and runtime into a single 0-100 metric. See per-terminal pages for calculation details. .. table:: :class: sphinx-datatable =========================================== ======================================= ======= ========== ========== Terminal Score CPU % RSS (MB) Time (s) =========================================== ======================================= ======= ========== ========== :ref:`st ` :sref:`100 100` 7 17 4 :ref:`urxvt ` :sref:`99 100` 5 23.5 4 :ref:`weston-terminal ` :sref:`96 97` 5.3 22.3 6 :ref:`XTerm ` :sref:`90 91` 17 25.6 3 :ref:`foot ` :sref:`90 91` 13.7 25.4 4 :ref:`pterm ` :sref:`79 80` 15.6 63.3 5 :ref:`Bobcat ` :sref:`75 75` 25.9 122.6 2 :ref:`alacritty ` :sref:`66 67` 32 125.1 5 :ref:`mlterm ` :sref:`64 64` 42.2 23.9 29.3 :ref:`QTerminal ` :sref:`63 63` 29.9 78.8 13.7 :ref:`Rio ` :sref:`54 54` 29.9 93.7 31.3 :ref:`GNU Screen ` :sref:`49 49` 0 180.5 899.7 :ref:`terminology ` :sref:`48 48` 44.6 100.6 37.9 :ref:`LXTerminal ` :sref:`48 48` 4.9 59.7 503.1 :ref:`Zellij ` :sref:`46 47` 10.1 57.5 316.2 :ref:`ghostty ` :sref:`46 46` 100.6 275.2 7 :ref:`zutty ` :sref:`45 46` 127.2 123.6 14.1 :ref:`GNOME Terminal ` :sref:`43 44` 0.8 93.6 1637.8 :ref:`Konsole ` :sref:`42 43` 38.5 222.4 35.9 :ref:`Terminator ` :sref:`42 42` 1.1 116.3 1365.7 :ref:`contour ` :sref:`41 42` 32.9 185.8 57.2 :ref:`XFCE Terminal ` :sref:`40 40` 5.8 112.1 555 :ref:`tmux ` :sref:`34 34` 72.8 227.9 47.3 :ref:`Warp ` :sref:`30 30` 7.8 445.5 303 :ref:`WezTerm ` :sref:`27 27` 97.6 178.5 92.2 :ref:`libvterm ` :sref:`27 27` 119.1 279.3 50.3 :ref:`cool-retro-term ` :sref:`25 26` 143.8 461.6 29.1 :ref:`Extraterm ` :sref:`20 20` 30.9 351.6 307.7 :ref:`Hyper ` :sref:`20 20` 18.5 559.8 325.8 :ref:`kitty ` :sref:`15 15` 115.5 704.4 73.2 :ref:`Tabby ` :sref:`0 0` 137.4 1030.9 215.2 =========================================== ======================================= ======= ========== ========== .. figure:: _static/profiles/all_cpu.png :alt: CPU usage across all terminals :width: 800px CPU usage during test execution, all terminals overlaid. .. figure:: _static/profiles/all_rss.png :alt: RSS memory usage across all terminals :width: 800px RSS memory usage during test execution, all terminals overlaid. .. figure:: _static/profiles/all_cpu_vs_time.png :alt: CPU % vs Duration trade-off across all terminals :width: 800px Trade-off between mean CPU % and total test duration. Dots near the origin use less CPU and less time. Dashed contours show equal CPU × time product (lower percentile = better). .. figure:: _static/profiles/all_time.png :alt: Duration across all terminals :width: 800px Total test duration for each terminal, sorted fastest to slowest. Log scale on the X axis. Full Report by Terminal ----------------------- .. toctree:: :maxdepth: 1 sw_results/kitty sw_results/foot sw_results/ghostty sw_results/absolutetelnetssh sw_results/iterm2 sw_results/rio sw_results/konsole sw_results/contour sw_results/tmux sw_results/windowsterminal sw_results/wezterm sw_results/warp sw_results/teraterm sw_results/mlterm sw_results/zellij sw_results/xterm sw_results/bobcat sw_results/urxvt sw_results/tabby sw_results/alacritty sw_results/qterminal sw_results/st sw_results/extraterm sw_results/appleterminal sw_results/pterm sw_results/gnuscreen sw_results/zutty sw_results/terminology sw_results/lxterminal sw_results/gnometerminal sw_results/xfceterminal sw_results/terminator sw_results/coolretroterm sw_results/libvterm sw_results/hyper sw_results/securecrt sw_results/xtermjs sw_results/westonterminal sw_results/mintty sw_results/conemu .. _`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/