^[control-codes
live in libghostty-vt

Private modes

DECKBUM Keyboard Usage Mode

View as Markdown

Choose between typewriter keys and data processing keys.

CSI ? 68 h/l
DEC STD 070
§6.7.5 Set/Reset Keyboard Usage Mode, p. 6-57
VT510
DECKBUM—Typewriter or Data Processing Keys

Mode 68 switches a DEC keyboard between typewriter keys (reset) and data processing keys (set), which put the characters programmers use, such as braces and brackets, where a national keyboard would have its own letters. It changes only what the keyboard sends, which this site cannot press, so nothing on the screen changes. DEC STD 070 calls it a user preference, which software should set only when the user asks.

xterm recognizes the mode and ignores it (charproc.c); DECRQM reports it as permanently reset, 4, at level 3 and up, and xterm is a VT420 by default (do_dec_rqm). esctest2 expects the mode to change and lists xterm as not supporting it; the cases follow xterm.

libghostty-vt does not have the mode: mode 68 is not in its table in modes.zig, so DECRQM reports it as not recognized, 0. The two DECRQM cases are known differences.

Support

TerminalVersionSupportNotes
VT220manual, 2nd ed., 1984Nonot in the manual
VT510manual, 1st ed., 1993YesDECKBUM
xtermpatch 412, xterm-411aNorecognized and ignored; DECRQM reports it as permanently reset
libghostty-vt0f171f6Nonot in its mode table; DECRQM reports 0 (DECKBUM-1, DECKBUM-2)
ConEmubuild 230724, its documentationNonot in ConEmu’s list, ANSI escape codes

Validation

DECKBUM-1: Reported as permanently reset

\e[?68$p
|_____|
reply \e[?68;4$y

DECKBUM-2: Even after it is set

\e[?68h
\e[?68$p
|_____|
reply \e[?68;4$y

DECKBUM-3: Nothing on the screen changes

A
\e[?68h
B
|AB___|
Every example on these pages runs in your browser, in libghostty-vt compiled to WebAssembly.