Date: 12 Sep 89 17:44:43 GMT From: crdgw1!montnaro@uunet.uu.net (Skip Montanaro) Organization: GE Corporate Research & Development, Schenectady, NY Subject: XTerm Escape Sequences (X11 Version) To: xpert@expo.lcs.mit.edu I rummaged around through the xterm code and came up with the following stuff. No guarantees. I'm headed out of town for a couple days and thought it better to get it out than let it get stale. Comments, bugs, and other notes are welcome. Somebody else can convert it to troff. I prefer LaTeX. :-) I will try and get to the Tek mode stuff when I return, although I doubt it's changed much from X10 XTerm. I gleaned the basic stuff out of the charproc.c code, by hacking VTparse() so it spit out leaves of the parse tree. I was mildly surprised to see things like "ESC # BEL" turn up. For most folks, the most interesting stuff will probably be "ESC ] Ps ND string NP" down near the bottom. That's what you use to change the icon and window labels, and the log file name. Most other things appear the same as the X10 documentation, although a few DEC-ish mode parameters (42, 43, 48, & 49) seem to have disappeared. ------------------------------------------------------------------------------ BEL Bell (Ctrl-G) BS Backspace (Ctrl-H) HT Horizontal Tab (Ctrl-I) NL Line Feed or New Line (Ctrl-J) VT Vertical Tab (Ctrl-K) NP Form Feed or New Page (Ctrl-L) CR Carriage Return (Ctrl-M) SO Shift Out (Ctrl-N) -> Switch to Alternate Character Set SI Shift In (Ctrl-O) -> Switch to Standard Character Set ESC BEL (Same as non-escaped BEL) ESC BS (Same as non-escaped BS) ESC HT (Same as non-escaped HT) ESC NL (Same as non-escaped NL) ESC VT (Same as non-escaped VT) ESC NP (Same as non-escaped NP) ESC CR (Same as non-escaped CR) ESC SO (Same as non-escaped SO) ESC SI (Same as non-escaped SI) ESC # BEL (Same as non-escaped BEL) ESC # BS (Same as non-escaped BS) ESC # HT (Same as non-escaped HT) ESC # NL (Same as non-escaped NL) ESC # VT (Same as non-escaped VT) ESC # NP (Same as non-escaped NP) ESC # CR (Same as non-escaped CR) ESC # SO (Same as non-escaped SO) ESC # SI (Same as non-escaped SI) ESC # 8 DEC Screen Alignment Test (DECALN) ESC ( BEL (Same as non-escaped BEL) ESC ( BS (Same as non-escaped BS) ESC ( HT (Same as non-escaped HT) ESC ( NL (Same as non-escaped NL) ESC ( VT (Same as non-escaped VT) ESC ( NP (Same as non-escaped NP) ESC ( CR (Same as non-escaped CR) ESC ( SO (Same as non-escaped SO) ESC ( SI (Same as non-escaped SI) ESC ( C Select G0 Character Set (SCS) C = 0 -> Special Character and Line Drawing Set C = 1 -> Alternate Character ROM Standard Set C = 2 -> Alternate Character ROM Special Set C = A -> United Kingdom (UK) C = B -> United States (USASCII) ESC ) C Select G1 Character Set (SCS) C takes same values as above ESC * C Select G2 Character Set (SCS) C takes same values as above ESC + C Select G3 Character Set (SCS) C takes same values as above ESC 7 Save Cursor (DECSC) ESC 8 Restore Cursor (DECRC) ESC = Application Keypad (DECPAM) ESC > Normal Keypad (DECNM) ESC D Index (IND) ESC E Next Line (NEL) ESC H Tab Set (HTS) ESC M Reverse Index (RI) ESC N Single Shift Select of G2 Character Set (SS2) ESC O Single Shift Select of G3 Character Set (SS3) ESC [ BEL (Same as non-escaped BEL) ESC [ BS (Same as non-escaped BS) ESC [ HT (Same as non-escaped HT) ESC [ NL (Same as non-escaped NL) ESC [ VT (Same as non-escaped VT) ESC [ NP (Same as non-escaped NP) ESC [ CR (Same as non-escaped CR) ESC [ SO (Same as non-escaped SO) ESC [ SI (Same as non-escaped SI) ESC [ ? BEL (Same as non-escaped BEL) ESC [ ? BS (Same as non-escaped BS) ESC [ ? HT (Same as non-escaped HT) ESC [ ? NL (Same as non-escaped NL) ESC [ ? VT (Same as non-escaped VT) ESC [ ? NP (Same as non-escaped NP) ESC [ ? CR (Same as non-escaped CR) ESC [ ? SO (Same as non-escaped SO) ESC [ ? SI (Same as non-escaped SI) ESC [ ? Ps h DEC Private Mode Set (DECSET) Ps = 1 -> Application Cursor Keys (DECCKM) Ps = 2 -> Set VT52 Mode Ps = 3 -> 132 Column Mode (DECCOLM) Ps = 4 -> Smooth (Slow) Scroll (DECSCLM) Ps = 5 -> Reverse Video (DECSCNM) Ps = 6 -> Origin Mode (DECOM) Ps = 7 -> Wraparound Mode (DECAWM) Ps = 8 -> Auto-Repeat Keys (DECARM) Ps = 9 -> Send MIT Mouse Row & Column on Button Press Ps = 38 -> Enter Tektronix Mode (DECTEK) Ps = 40 -> Allow 80 <-> 132 Mode Ps = 41 -> curses(5) fix Ps = 44 -> Turn on Margin Bell Ps = 45 -> Reverse-wraparound Mode Ps = 46 -> Start Logging Ps = 47 -> Use Alternate Screen Buffer Ps = 1000 -> xtem bogus sequence (???) Ps = 1001 -> xtem sequence w/hilite tracking (???) ESC [ ? Ps l DEC Private Mode Reset (DECRST) Ps = 1 -> Normal Cursor Keys (DECCKM) Ps = 3 -> 80 Column Mode (DECCOLM) Ps = 4 -> Jump (Fast) Scroll (DECSCLM) Ps = 5 -> Normal Video (DECSCNM) Ps = 6 -> Normal Cursor Mode (DECOM) Ps = 7 -> No Wraparound Mode (DECAWM) Ps = 8 -> No Auto-Repeat Keys (DECARM) Ps = 9 -> Don't Send MIT Mouse Row & Column on Button Press Ps = 40 -> Don't Allow 80 <-> 132 Mode Ps = 41 -> No curses(5) fix Ps = 44 -> Turn Off Margin Bell Ps = 45 -> No Reverse-wraparound Mode Ps = 46 -> Stop Logging Ps = 47 -> Use Normal Screen Buffer Ps = 1000 -> xtem bogus sequence (???) Ps = 1001 -> xtem sequence w/hilite tracking (???) ESC [ ? Ps r Restore DEC Private Mode Ps = 1 -> Normal/Application Cursor Keys (DECCKM) Ps = 3 -> 80/132 Column Mode (DECCOLM) Ps = 4 -> Jump (Fast)/Smooth (Slow) Scroll (DECSCLM) Ps = 5 -> Normal/Reverse Video (DECSCNM) Ps = 6 -> Normal/Origin Cursor Mode (DECOM) Ps = 7 -> No Wraparound/Wraparound Mode (DECAWM) Ps = 8 -> Auto-repeat/No Auto-repeat Keys (DECARM) Ps = 9 -> Don't Send/Send MIT Mouse Row & Column on Button Press Ps = 40 -> Disallow/Allow 80 <-> 132 Mode Ps = 41 -> Off/On curses(5) fix Ps = 44 -> Turn Off/On Margin Bell Ps = 45 -> No Reverse-wraparound/Reverse-wraparound Mode Ps = 46 -> Stop/Start Logging Ps = 47 -> Use Normal/Alternate Screen Buffer Ps = 1000 -> mouse bogus sequence (???) Ps = 1001 -> mouse bogus sequence (???) ESC [ ? Ps s Save DEC Private Mode Same P's as Restore DEC Private Mode ESC [ Ps @ Insert Ps (Blank) Character(s) (default = 1) (ICH) ESC [ Ps A Cursor Up Ps Times (default = 1) (CUU) ESC [ Ps B Cursor Down Ps Times (default = 1) (CUD) ESC [ Ps C Cursor Forward Ps Times (default = 1) (CUF) ESC [ Ps D Cursor Backward Ps Times (default = 1) (CUB) ESC [ Ps ; Ps H Cursor Position [row;column] (default = [1,1]) (CUP) ESC [ Ps J Erase in Display Ps = 0 -> Clear Below (default) Ps = 1 -> Clear Above Ps = 2 -> Clear All ESC [ Ps K Erase in Line Ps = 0 -> Clear to Right (default) Ps = 1 -> Clear to Left Ps = 2 -> Clear All ESC [ Ps L Insert Ps lines (default = 1) (IL) ESC [ Ps M Delete Ps lines (default = 1) (DL) ESC [ Ps P Delete Ps Characters (default = 1) (DCH) ESC [ T Track Mouse (???) ESC [ Ps c Device Attributes (DA1) ESC [ Ps ; Ps f Cursor Position [row;column] (default = [1,1]) (HVP) ESC [ Ps g Tab Clear Ps = 0 -> Clear Current Column (default) Ps = 3 -> Clear All ESC [ Ps h Mode Set (SET) Ps = 4 -> Insert Mode (IRM) Ps = 20 -> Automatic Linefeed (LNM) ESC [ Ps l Mode Reset (RST) Ps = 4 -> Insert Mode (IRM) Ps = 20 -> Automatic Linefeed (LNM) ESC [ Pm m Character Attributes (SGR) Ps = 0 -> Normal (default) Ps = 1 -> Blink (appears as Bold) Ps = 4 -> Underscore Ps = 5 -> Bold Ps = 7 -> Inverse ESC [ Ps n Device Status Report (DSR) Ps = 5 -> Status Report ESC [ 0 n -> OK Ps = 6 -> Report Cursor Position (CPR) [row;column] as ESC [ r ; c R ESC [ Ps ; Ps r Set Scrolling Region [top;bottom] (default = full size of window) (DECSTBM) ESC [ Ps x Request Terminal Parameters (DECREQTPARM) ESC ] Ps ND string NP OSC Mode ND can be any non-digit Character (it's discarded) NP can be any non-printing Character (it's discarded) string can be any ASCII printable string (max 511 characters) Ps = 0 -> use string as a new icon name and title Ps = 1 -> use string is a new icon name only Ps = 2 -> use string is a new title only Ps = 46 -> use string as a new log file name ESC c Full Reset ESC n Switch to Alternate Character Set LS2 ESC o Switch to Alternate Character Set LS3 ESC | Switch to Alternate Graphics(?) Set LS3R ESC } Switch to Alternate Graphics(?) Set LS2R ESC ~ Switch to Alternate Graphics(?) Set LS1R -- Skip Montanaro (montanaro@crdgw1.ge.com)