eterm/doc/Eterm_reference.html

1327 lines
45 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<!--#set var="PAGE_TITLE" value="Eterm Technical Reference" -->
<!--#include virtual="/header.html" -->
<H1><!--#echo var="PAGE_TITLE" --></H1>
<P>
This document covers the technical aspects of Eterm, including escape sequences
it supports, "under-the-hood" descriptions of certain Eterm features, etc.
Portions of this document were taken from the XTerm documentation.</P>
<H2>Table of Contents</H2>
<OL TYPE=I>
<LI><A HREF="#conventions">Document Conventions</A>
<LI><A HREF="#symbols">Symbols</A>
<LI><A HREF="#escape">Escape Sequences</A>
<UL>
<LI><A HREF="#codes">Escape Codes Eterm Knows</A>
<LI><A HREF="#image">Image Escape Sequences</A>
<LI><A HREF="#mouse">Mouse Reporting</A>
</UL>
<LI><A HREF="#keys">Key Sequences</A>
<LI><A HREF="#std">Eterm Extensions, Standards, and Implementations</A>
<UL>
<LI><A HREF="#eterm_esc">Eterm Proprietary Escape Sequences</A>
<LI><A HREF="#trans">Transparency</A>
</UL>
</OL>
<H2><A NAME="conventions">Document Conventions</A></H2>
<TABLE BORDER=2 CELLSPACING=2 CELLPADDING=5>
<TR>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Convention</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Meaning</B></FONT></TD>
</TR>
<TR>
<TD><TT><B>c</B></TT></TD>
<TD>A literal. It should be typed as shown.</TD>
</TR>
<TR>
<TD><TT>SYM</TT></TD>
<TD>A symbol. Replace with the proper character. See the symbol table below
for a listing of the symbols used and their meanings.</TD>
</TR>
<TR>
<TD><I>text</I></TD>
<TD>A parameter. Replace the italicized text with a parameter. The text
itself generally describes the type of parameter needed.</TD>
</TR>
<TR>
<TD>[ ... ]</TD>
<TD>Items enclosed in brackets are optional.</TD>
</TR>
<TR>
<TD>{ ... | ... }</TD>
<TD>Items inclosed in braces and separated by pipes indicate that exactly one
of the items should be chosen.</TD>
</TR>
</TABLE>
<BR>
<H2><A NAME="symbols">Symbols</A></H2>
<TABLE BORDER=2 CELLSPACING=2 CELLPADDING=5>
<TR>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Symbol</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Meaning</B></FONT></TD>
</TR>
<TR>
<TD><TT>BEL</TT></TD>
<TD>Bell (Ctrl-G)</TD>
</TR>
<TR>
<TD><TT>BS</TT></TD>
<TD>Backspace (Ctrl-H)</TD>
</TR>
<TR>
<TD><TT>CR</TT></TD>
<TD>Carriage Return (Ctrl-M)</TD>
</TR>
<TR>
<TD><TT>ENQ</TT></TD>
<TD>Enquiry (Ctrl-E), Send Device Attributes (DA). Eterm replies with the
string defined by ESCZ_ANSWER in src/feature.h, which is
<TT><B>ESC[?1;2c</B></TT> by default. This response indicates a VT100
emulator with Advanced Video Option.</TD>
</TR>
<TR>
<TD><TT>ESC</TT></TD>
<TD>Escape (Ctrl-[)</TD>
</TR>
<TR>
<TD><TT>FF</TT> or <TT>NP</TT></TD>
<TD>Form Feed or New Page(Ctrl-L)</TD>
</TR>
<TR>
<TD><TT>LF</TT> or <TT>NL</TT></TD>
<TD>Line Feed or New Line (Ctrl-J)</TD>
</TR>
<TR>
<TD><TT>SI</TT></TD>
<TD>Shift In (Ctrl-O), invokes the G0 (default) character set</TD>
</TR>
<TR>
<TD><TT>SO</TT></TD>
<TD>Shift Out (Ctrl-O), invokes the G1 (alternate) character set</TD>
</TR>
<TR>
<TD><TT>SPC</TT></TD>
<TD>Space</TD>
</TR>
<TR>
<TD><TT>TAB</TT> or <TT>HT</TT></TD>
<TD>Horizontal Tab (Ctrl-I)</TD>
</TR>
<TR>
<TD><TT>VT</TT></TD>
<TD>Vertical Tab (Ctrl-K)</TD>
</TR>
</TABLE>
<H2><A NAME="escape">Escape Sequences</A></H2>
<P>
<TABLE BORDER=2 CELLSPACING=2 CELLPADDING=5>
<TR>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Sequence</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Function</B></FONT></TD>
</TR>
<TR>
<TD><TT>ESC { <B>(</B> | <B>)</B> | <B>*</B> | <B>+</B> | <B>$</B> } { <B>0</B> | <B>A</B> | <B>B</B> }</TT></TD>
<TD>Select ISO 2022 character sets.<BR>
<UL>
<LI><TT><B>(</B></TT> sets the G0 character set
<LI><TT><B>)</B></TT> sets the G1 character set
<LI><TT><B>*</B></TT> sets the G2 character set
<LI><TT><B>+</B></TT> sets the G3 character set
<LI><TT><B>$</B></TT> sets the Kanji character set
</UL>
<UL>
<LI><TT><B>0</B></TT> uses the DEC Special Character and Line Drawing set
<LI><TT><B>A</B></TT> uses the United Kingdom (UK) character set
<LI><TT><B>B</B></TT> uses the United States (USASCII) character set
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>7</B></TT></TD>
<TD>Save cursor (SC)</TD>
</TR>
<TR>
<TD><TT>ESC <B>8</B></TT></TD>
<TD>Restore cursor (RC)</TD>
</TR>
<TR>
<TD><TT>ESC <B>=</B></TT></TD>
<TD>Application Keypad (SMKX)</TD>
</TR>
<TR>
<TD><TT>ESC <B>&gt;</B></TT></TD>
<TD>Numeric Keypad (RMKX)</TD>
</TR>
<TR>
<TD><TT>ESC <B>D</B></TT></TD>
<TD>Index (IND)</TD>
</TR>
<TR>
<TD><TT>ESC <B>E</B></TT></TD>
<TD>Next Line (NEL)</TD>
</TR>
<TR>
<TD><TT>ESC <B>H</B></TT></TD>
<TD>Tab Set (HTS)</TD>
</TR>
<TR>
<TD><TT>ESC <B>M</B></TT></TD>
<TD>Reverse Index (RI)</TD>
</TR>
<TR>
<TD><TT>ESC <B>Z</B></TT></TD>
<TD>Obselete form of Send Device Attributes (DA), which is <TT>ESC <B>[ c</B></TT></TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>@</B></TT></TD>
<TD>Insert <I>n</I> blank Characters (ICH). Default for <I>n</I> is 1.</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>A</B></TT></TD>
<TD>Cursor Up <I>n</I> times (CUU), default 1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>B</B></TT></TD>
<TD>Cursor Down <I>n</I> times (CUD), default 1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>C</B></TT></TD>
<TD>Cursor Forward <I>n</I> times (CUF), default 1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>D</B></TT></TD>
<TD>Cursor Backward <I>n</I> times (CUB), default 1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>E</B></TT></TD>
<TD>Cursor Down <I>n</I> times and to first column, default 1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>F</B></TT></TD>
<TD>Cursor Up <I>n</I> times and to first column, default 1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>G</B></TT></TD>
<TD>Cursor to Column <I>n</I> (HPA)</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>r</I> <B>;</B> <I>c</I> ] <B>H</B></TT></TD>
<TD>Cursor Position [row;column] (CUP), default 1;1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>I</B></TT></TD>
<TD>Move forward <I>n</I> tab stops, default 1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>J</B></TT></TD>
<TD>Erase in Display (ED)
<UL>
<LI><I>n</I> == 0: Clear Below (default)
<LI><I>n</I> == 1: Clear Above
<LI><I>n</I> == 2: Clear All
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>K</B></TT></TD>
<TD>Erase in Line (EL)
<UL>
<LI><I>n</I> == 0: Clear to Right (default)
<LI><I>n</I> == 1: Clear to Left (EL1)
<LI><I>n</I> == 2: Clear All
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>L</B></TT></TD>
<TD>Insert <I>n</I> lines (IL), default 1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>M</B></TT></TD>
<TD>Delete <I>n</I> lines (DL), default 1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>P</B></TT></TD>
<TD>Delete <I>n</I> characters (DCH), default 1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>W</B></TT></TD>
<TD>Tabulator functions
<UL>
<LI><I>n</I> == 0: Tab Set (HTS)
<LI><I>n</I> == 2: Tab Clear (TBC), clear current column (default)
<LI><I>n</I> == 5: Tab Clear (TBC), clear all
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>X</B></TT></TD>
<TD>Erase <I>n</I> characters (ECH), default 1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>Z</B></TT></TD>
<TD>Move backward <I>n</I> tabstops, default 1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>`</B></TT></TD>
<TD>Same as <TT>ESC <B>[</B> <I>n</I> <B>G</B> (HPA)</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>a</B></TT></TD>
<TD>Same as <TT>ESC <B>[</B> <I>n</I> <B>C</B> (CUF)</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>c</B></TT></TD>
<TD>Send Device Attributes (DA), default of 0 returns
"<TT>ESC<B>[?1;2c</B></TT>" indicating a VT100 with advanced video option
</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>d</B></TT></TD>
<TD>Cursor to line <I>n</I> (VPA)</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>e</B></TT></TD>
<TD>Same as <TT>ESC <B>[</B> <I>n</I> <B>A</B> (CUU)</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>r</I> <B>;</B> <I>c</I> ] <B>f</B></TT></TD>
<TD>Horizontal and Vertical Position (HVP), default 1;1</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>g</B></TT></TD>
<TD>Tab Clear
<UL>
<LI><I>n</I> == 0: Tab Clear (TBC), clear current column (default)
<LI><I>n</I> == 3: Tab Clear (TBC), clear all
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>i</B></TT></TD>
<TD>Printing
<UL>
<LI><I>n</I> == 4: Disable transparent print mode (MC4)
<LI><I>n</I> == 5: Enable transparent print mode (MC5)
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> <I>n</I> [ <B>;</B> <I>n</I> ... ] { <B>h</B> | <B>l</B> }</TT></TD>
<TD><UL>
<LI><B>h</B>: Set Mode (SM)
<LI><B>l</B>: Reset Mode (RM)
</UL>
<UL>
<LI><I>n</I> == 4: Insert Mode (SMIR)/Replace Mode (RMIR)
<LI><I>n</I> == 20: Automatic Newline (LNM)/Normal Linefeed (LNM)
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> <I>n</I> [ <B>;</B> <I>n</I> ... ] <B>m</B></TT></TD>
<TD>Character Attributes (SGR)
<UL>
<LI><I>n</I> == 0: Normal (default)
<LI><I>n</I> == 1/22: Turn bold (bright fg) on/off
<LI><I>n</I> == 4/24: Turn underline on/off
<LI><I>n</I> == 5/25: Turn "blink" (bright bg) on/off
<LI><I>n</I> == 7/27: Turn inverse on/off
<LI><I>n</I> == 30/40: foreground/background black
<LI><I>n</I> == 31/41: foreground/background red
<LI><I>n</I> == 32/42: foreground/background green
<LI><I>n</I> == 33/43: foreground/background yellow
<LI><I>n</I> == 34/44: foreground/background blue
<LI><I>n</I> == 35/45: foreground/background magenta
<LI><I>n</I> == 36/46: foreground/background cyan
<LI><I>n</I> == 37/47: foreground/background white
<LI><I>n</I> == 39/49: foreground/background default
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>n</B></TT></TD>
<TD>Device Status Report (DSR)
<UL>
<LI><I>n</I> == 5: Status Report, returns "<TT>ESC<B>[0n</B></TT>"
("OK")
<LI><I>n</I> == 6: Report Cursor Position (CPR) as
"<TT>ESC<B>[</B><I>r</I><B>;</B><I>c</I><B>R</B></TT>"
<LI><I>n</I> == 7: Request display name (ignored by default for
security reasons)
<LI><I>n</I> == 8: Request version number in window title
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>t</I> <B>;</B> <I>b</I> ] <B>r</B></TT></TD>
<TD>Set Scrolling Region (CSR), where <I>t</I> is the top row and <I>b</I> is
the bottom row, defaults to the full screen</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>x</B></TT></TD>
<TD>Request Terminal Parameters (DECREQTPARM)</TD>
</TR>
<TR>
<TD><TT>ESC <B>[ ?</B> <I>n</I> [ <B>;</B> <I>n</I> ... ] { <B>h</B> | <B>l</B> | <B>s</B> | <B>r</B> | <B>t</B> }</TT></TD>
<TD>DEC Private Modes (shown as set/reset)
<UL>
<LI><B>h</B>: Set Private Mode (DECSET)
<LI><B>l</B>: Reset Private Mode (DECRST)
<LI><B>s</B>: Save all DEC Private Mode values
<LI><B>r</B>: Restore previously-saved DEC Private Mode values
<LI><B>t</B>: Toggle Private Mode (rxvt/Eterm extension)
</UL>
<UL>
<LI><I>n</I> == 1: Application/Normal cursor keys (DECCKM)
<LI><I>n</I> == 3: 132/80 column mode (DECCOLM)
<LI><I>n</I> == 4: Smooth/Jump scrolling (DECSCLM) [not yet implemented]
<LI><I>n</I> == 5: Reverse/Normal video (DECSCNM)
<LI><I>n</I> == 6: Origin/Normal cursor mode (DECOM)
<LI><I>n</I> == 7: Wraparound mode on/off (DECAWM)
<LI><I>n</I> == 9: (X10 Xterm mouse reporting) Do/Don't send mouse
coords on button press (see <A HREF="#mouse">below</A>)
<LI><I>n</I> == 25: Visible/invisible cursor
<LI><I>n</I> == 30: Toggle scrollbar on/off (rxvt/Eterm extension)
<LI><I>n</I> == 35: Allow/Disallow xterm shift+key sequences (rxvt/Eterm extension)
<LI><I>n</I> == 40: Allow/Disallow 80 <--> 132 mode
<LI><I>n</I> == 47: Use Alternate/Normal screen buffer
<LI><I>n</I> == 66: Application/Normal keypad (DECPAM)
<LI><I>n</I> == 67: Backspace key sends BS/DEL (DECBKM)
<LI><I>n</I> == 1000: (X11 Xterm mouse reporting) Do/Don't send mouse
coords on button press and release (see
<A HREF="#mouse">below</A>)
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>[</B> <I>n</I> [ <B>;</B> <I>n</I> [ ... ] ] <B>t</B></TT></TD>
<TD>Window Operations
<UL>
<LI><I>n</I> == 1: Un-iconify window
<LI><I>n</I> == 2: Iconify window
<LI><I>n</I> == 3: Move window. Must by followed by
<TT><B>;</B><I>x</I><B>;</B><I>y</I></TT>
<LI><I>n</I> == 4: Resize window. Must by followed by
<TT><B>;</B><I>height</I><B>;</B><I>width</I></TT>
<LI><I>n</I> == 5: Raise window
<LI><I>n</I> == 6: Lower window
<LI><I>n</I> == 7: Refresh window
<LI><I>n</I> == 8: Resize text area. Must by followed by
<TT><B>;</B><I>height</I><B>;</B><I>width</I></TT>,
with <I>height</I> and <I>width</I> given in
characters.
<LI><I>n</I> == 11: Report icon state. (not implemented)
<LI><I>n</I> == 13: Report window position as
<TT>ESC<B>[3;</B><I>x</I><B>;</B><I>y</I><B>t</B></TT>
<LI><I>n</I> == 14: Report window size in pixels as
<TT>ESC<B>[4;</B><I>height</I><B>;</B><I>width</I><B>t</B></TT>
<LI><I>n</I> == 18: Report text area size in characters as
<TT>ESC<B>[4;</B><I>height</I><B>;</B><I>width</I><B>t</B></TT>
<LI><I>n</I> == 20: Report icon name as
<TT>ESC<B>]L</B><I>name</I>ESC<B>\</B></TT>
<LI><I>n</I> == 21: Report window title as
<TT>ESC<B>]l</B><I>title</I>ESC<B>\</B></TT>
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>]</B> <I>n</I> <B>;</B> <I>string</I> BEL</TT></TD>
<TD>Set X Terminal Parameters
<UL>
<LI><I>n</I> == 0: Change icon name and window title to <I>string</I>
<LI><I>n</I> == 1: Change icon name to <I>string</I>
<LI><I>n</I> == 2: Change window title to <I>string</I>
<LI><I>n</I> == 20: Image commands (see <A HREF="#image">below</A>)
<LI><I>n</I> == 39: Set the default foreground color to <I>string</I>
<LI><I>n</I> == 49: Set the default background color to <I>string</I>
<LI><I>n</I> == 50: Set font to <I>string</I>. rxvt/Eterm extensions:
<UL>
<LI><I>string</I> == "<B>#+</B><I>n</I>": Change font up by <I>n</I>, default 1
<LI><I>string</I> == "<B>#-</B><I>n</I>": Change font down by <I>n</I>, default 1
<LI><I>string</I> empty: Change to font 0
<LI><I>string</I> == "<B>#</B><I>n</I>": Change to font <I>n</I>
</UL>
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>]</B> { <B>l</B> | <B>L</B> | <B>I</B> } <I>string</I> ESC <B>\</B></TT></TD>
<TD><UL>
<LI><TT><B>l</B></TT>: Change window title to <I>string</I>
<LI><TT><B>L</B></TT>: Change icon name to <I>string</I>
<LI><TT><B>I</B></TT>: Read new icon image from file whose path is <I>string</I>
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>c</B></TT></TD>
<TD>Full Reset (RIS)</TD>
</TR>
<TR>
<TD><TT>ESC <B>n</B></TT></TD>
<TD>Invoke the G2 character set (LS2)</TD>
</TR>
<TR>
<TD><TT>ESC <B>o</B></TT></TD>
<TD>Invoke the G3 character set (LS3)</TD>
</TR>
</TABLE>
<H2><A NAME="codes">Escape Codes Eterm Knows</A></H2>
<TABLE BORDER=2 CELLSPACING=2 CELLPADDING=5>
<TR>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Escaped String</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Meaning</B></FONT></TD>
</TR>
<TR>
<TD COLSPAN=2 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Backslash-Escaped Characters (case is ignored)</B></FONT></TD>
</TR>
<TR>
<TD><TT><B>\a</B></TT></TD>
<TD><TT>BEL</TT> (Alert)</TD>
</TR>
<TR>
<TD><TT><B>\b</B></TT></TD>
<TD><TT>BS</TT></TD>
</TR>
<TR>
<TD><TT><B>\c</B><I>X</I></TT></TD>
<TD>Interpreted as Ctrl-<I>X</I>. Analogous to <TT><B>^</B><I>X</I></TT>.</TD>
</TR>
<TR>
<TD><TT><B>\e</B></TT></TD>
<TD><TT>ESC</TT></TD>
</TR>
<TR>
<TD><TT><B>\f</B></TT></TD>
<TD><TT>FF</TT></TD>
</TR>
<TR>
<TD><TT><B>\n</B></TT></TD>
<TD><TT>LF</TT></TD>
</TR>
<TR>
<TD><TT><B>\r</B></TT></TD>
<TD><TT>CR</TT></TD>
</TR>
<TR>
<TD><TT><B>\t</B></TT></TD>
<TD><TT>TAB</TT></TD>
</TR>
<TR>
<TD><TT><B>\v</B></TT></TD>
<TD><TT>VT</TT></TD>
</TR>
<TR>
<TD><TT><B>\</B><I>nnn</I></TT></TD>
<TD><I>nnn</I> is interpreted as an octal number, and the corresponding
character is inserted.
</TD>
</TR>
<TR>
<TD COLSPAN=2 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Convenience Shortcuts</B></FONT></TD>
</TR>
<TR>
<TD><TT><B>^</B><I>X</I></TT></TD>
<TD>Interpreted as Ctrl-<I>X</I>. <I>X</I> can be any character between
<TT><B>@</B></TT> and <TT><B>_</B></TT>. Case is ignored.
</TD>
</TR>
<TR>
<TD><TT><B>C-</B><I>X</I></TT></TD>
<TD>Interpreted as Ctrl-<I>X</I>. Analogous to <TT><B>^</B><I>X</I></TT>.</TD>
</TR>
<TR>
<TD><TT><B>M-</B><I>X</I></TT></TD>
<TD>Interpreted as <TT>ESC</TT> followed by <I>X</I>. Analogous to
<TT><B>\e</B><I>X</I></TT>. If the string begins with <TT><B>M-</B></TT>,
a <TT>CR</TT> is automatically appended to the end of the string if not
already present.
</TD>
</TR>
</TABLE>
<H3><A NAME="image">Image Escape Sequences</A></H3>
<P>
The <I>string</I> supplied to the image escape sequence (above) consists of a
filename (which can be empty) followed by a semicolon, then one or more
geometry strings. The following table shows the valid geometry strings and
their affects on the background image:</P>
<TABLE BORDER=2 CELLSPACING=2 CELLPADDING=5>
<TR>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>String</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Function</B></FONT></TD>
</TR>
<TR>
<TD><TT><B>?</B></TT></TD>
<TD>Query scale and position (generally disabled)</TD>
</TR>
<TR>
<TD COLSPAN=2 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Adjusting scaling and position</B></FONT></TD>
</TR>
<TR>
<TD><TT><I>W</I><B>x</B><I>H</I><B>+</B><I>X</I><B>+</B><I>Y</I></TT></TD>
<TD>Set scaling to <I>W</I>% by <I>H</I>%, and position to <I>X</I>% by
<I>Y</I>%. <I>W</I> and <I>H</I> are percentages of the original image
size. The position is a percentage, where <B>+50+50</B> centers the
image in the window.</TD>
</TR>
<TR>
<TD><TT><I>W</I><B>x</B><I>H</I><B>+</B><I>X</I></TT></TD>
<TD>Assumes <I>Y</I> == <I>X</I></TD>
</TR>
<TR>
<TD><TT><I>W</I><B>x</B><I>H</I></TT></TD>
<TD>Assumes <I>Y</I> == <I>X</I> == 50 (centers the image)</TD>
</TR>
<TR>
<TD><TT><I>W</I><B>+</B><I>X</I><B>+</B><I>Y</I></TT></TD>
<TD>Assumes <I>H</I> == <I>W</I></TD>
</TR>
<TR>
<TD><TT><I>W</I><B>+</B><I>X</I></TT></TD>
<TD>Assumes <I>H</I> == <I>W</I> and <I>Y</I> == <I>X</I></TD>
</TR>
<TR>
<TD><TT><I>W</I></TT></TD>
<TD>Assumes <I>H</I> == <I>W</I> and <I>Y</I> == <I>X</I> == 50</TD>
</TR>
<TR>
<TD COLSPAN=2 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Adjusting position only</B></FONT></TD>
</TR>
<TR>
<TD><TT><B>=+</B><I>X</I><B>+</B><I>Y</I></TT></TD>
<TD>Set position to <I>X</I>% by <I>Y</I>% (absolute).</TD>
</TR>
<TR>
<TD><TT><B>=+</B><I>X</I></TT></TD>
<TD>Set position to <I>X</I>% by <I>X</I>%.</TD>
</TR>
<TR>
<TD><TT><B>+</B><I>X</I><B>+</B><I>Y</I></TT></TD>
<TD>Adjust position horizontally <I>X</I>% and vertically <I>Y</I>% from
current position (relative).</TD>
</TR>
<TR>
<TD><TT><B>+</B><I>X</I><B>+</B><I>X</I></TT></TD>
<TD>Adjust position horizontally <I>X</I>% and vertically <I>X</I>% from
current position.</TD>
</TR>
<TR>
<TD COLSPAN=2 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Adjusting scale only</B></FONT></TD>
</TR>
<TR>
<TD><TT><I>W</I><B>x0</B></TT></TD>
<TD>Multiply horizontal scaling factor by <I>W</I>%</TD>
</TR>
<TR>
<TD><TT><B>0x</B><I>H</I></TT></TD>
<TD>Multiply vertical scaling factor by <I>H</I>%</TD>
</TR>
</TABLE>
<P>
Examples:</P>
<UL>
<LI>"<TT><B>\e]20;Dragon.jpg\007</B></TT>" -- Set background image to
"Dragon.jpg"
<LI>"<TT><B>\e]20;Canyon.jpg;200\007</B></TT>" -- Set background image to
"Canyon.jpg", scaling to 200% by 200%, and center it.
<LI>"<TT><B>\e]20;;100\007</B></TT>" -- Set scaling back to 100%
<LI>"<TT><B>\e]20;blackstone.png;0x0\007</B></TT>" -- Set background image to
"blackstone.png" and tile it
<LI>"<TT><B>\e]20;;0x0\007</B></TT>" -- Tile current image instead of scaling
</UL>
<H3><A NAME="mouse">Mouse Reporting</A></H3>
<P>
When Eterm receives a mouse reporting request (and if mouse reporting is
currently enabled), it replies with the sequence
"<TT><B>ESC[M</B><I>bxy</I></TT>". The values for <I>b</I>, <I>x</I>, and
<I>y</I> are as follows (subtract the value of space ' ' first):</P>
<UL>
<LI>Button status: The lower 2 bits of <I>b</I> indicate the button status,
with 00 indicating Button1 down, 01 indicating Button2 down, 10 indicating
Button3 down, and 11 indicating the button was released. (<TT>button =
<I>b</I> & 0x3 - ' '</TT>)
<LI>Modifier status: The upper bits of <I>b</I> are used to flag which
modifiers were active when the button was pressed. The low bit is the
Shift flag, the middle is Meta, and the high bit is Control. (<TT>mod =
<I>b</I> & 0x1c - ' '</TT>)
<LI>Coordinates: <I>x</I> and <I>y</I> are the column and row, respectively.
(<TT>c = <I>x</I> - ' '; r = <I>y</I> - ' '</TT>)
</UL>
<H2><A NAME="keys">Key Sequences</A></H2>
<TABLE BORDER=2 CELLSPACING=2 CELLPADDING=5>
<TR>
<TD COLSPAN=5 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Cursor Keys</B></FONT></TD>
</TR>
<TR>
<TD ROWSPAN=2 ALIGN=middle BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Key Pressed</B></FONT></TD>
<TD COLSPAN=4 ALIGN=middle BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>What Eterm Sends</B></FONT></TD>
</TR>
<TR>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Normal</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Shift</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Control</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Application</B></FONT></TD>
</TR>
<TR>
<TD>Up</TD>
<TD><TT><B>ESC [ A</B></TT></TD>
<TD><TT><B>ESC [ a</B></TT></TD>
<TD><TT><B>ESC O a</B></TT></TD>
<TD><TT><B>ESC O A</B></TT></TD>
</TR>
<TR>
<TD>Down</TD>
<TD><TT><B>ESC [ B</B></TT></TD>
<TD><TT><B>ESC [ b</B></TT></TD>
<TD><TT><B>ESC O b</B></TT></TD>
<TD><TT><B>ESC O B</B></TT></TD>
</TR>
<TR>
<TD>Right</TD>
<TD><TT><B>ESC [ C</B></TT></TD>
<TD><TT><B>ESC [ c</B></TT></TD>
<TD><TT><B>ESC O c</B></TT></TD>
<TD><TT><B>ESC O C</B></TT></TD>
</TR>
<TR>
<TD>Left</TD>
<TD><TT><B>ESC [ D</B></TT></TD>
<TD><TT><B>ESC [ d</B></TT></TD>
<TD><TT><B>ESC O d</B></TT></TD>
<TD><TT><B>ESC O D</B></TT></TD>
</TR>
<TR>
<TD COLSPAN=5 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Special Keys</B></FONT></TD>
</TR>
<TR>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Key Pressed</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Normal</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Shift</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Control</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Control+Shift</B></FONT></TD>
</TR>
<TR>
<TD>Tab</TD>
<TD><TT><B>^I</B></TT></TD>
<TD><TT><B>ESC [ Z</B></TT></TD>
<TD><TT><B>^I</B></TT></TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>Backspace</TD>
<TD><TT><B>^H</B></TT></TD>
<TD><TT><B>^?</B></TT></TD>
<TD><TT><B>^?</B></TT></TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>Home (Find)</TD>
<TD><TT><B>ESC [ 1 ~</B></TT></TD>
<TD><TT><B>ESC [ 1 $</B></TT></TD>
<TD><TT><B>ESC [ 1 ^</B></TT></TD>
<TD><TT><B>ESC [ 1 @</B></TT></TD>
</TR>
<TR>
<TD>End (Select)</TD>
<TD><TT><B>ESC [ 4 ~</B></TT></TD>
<TD><TT><B>ESC [ 4 $</B></TT></TD>
<TD><TT><B>ESC [ 4 ^</B></TT></TD>
<TD><TT><B>ESC [ 4 @</B></TT></TD>
</TR>
<TR>
<TD>Insert</TD>
<TD><TT><B>ESC [ 2 ~</B></TT></TD>
<TD><TT>Paste mouse selection</TT></TD>
<TD><TT><B>ESC [ 2 ^</B></TT></TD>
<TD><TT><B>ESC [ 2 @</B></TT></TD>
</TR>
<TR>
<TD>Delete (Execute)</TD>
<TD><TT><B>ESC [ 3 ~</B></TT></TD>
<TD><TT><B>ESC [ 3 $</B></TT></TD>
<TD><TT><B>ESC [ 3 ^</B></TT></TD>
<TD><TT><B>ESC [ 3 @</B></TT></TD>
</TR>
<TR>
<TD>PageUp (Prior)</TD>
<TD><TT><B>ESC [ 5 ~</B></TT></TD>
<TD><TT>Scroll up one page</TT></TD>
<TD><TT><B>ESC [ 5 ^</B></TT></TD>
<TD><TT><B>ESC [ 5 @</B></TT></TD>
</TR>
<TR>
<TD>PageDown (Next)</TD>
<TD><TT><B>ESC [ 6 ~</B></TT></TD>
<TD><TT>Scroll down one page</TT></TD>
<TD><TT><B>ESC [ 6 ^</B></TT></TD>
<TD><TT><B>ESC [ 6 @</B></TT></TD>
</TR>
<TR>
<TD COLSPAN=5 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Function Keys (Note: Shift-F1 through F10 sends F11-F20)</B></FONT></TD>
</TR>
<TR>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Key Pressed</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Normal</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Shift</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Control</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Control+Shift</B></FONT></TD>
</TR>
<TR>
<TD>F1</TD>
<TD><TT><B>ESC [ 11 ~</B></TT></TD>
<TD><TT><B>ESC [ 23 ~</B></TT></TD>
<TD><TT><B>ESC [ 11 ^</B></TT></TD>
<TD><TT><B>ESC [ 23 ^</B></TT></TD>
</TR>
<TR>
<TD>F2</TD>
<TD><TT><B>ESC [ 12 ~</B></TT></TD>
<TD><TT><B>ESC [ 24 ~</B></TT></TD>
<TD><TT><B>ESC [ 12 ^</B></TT></TD>
<TD><TT><B>ESC [ 24 ^</B></TT></TD>
</TR>
<TR>
<TD>F3</TD>
<TD><TT><B>ESC [ 13 ~</B></TT></TD>
<TD><TT><B>ESC [ 25 ~</B></TT></TD>
<TD><TT><B>ESC [ 13 ^</B></TT></TD>
<TD><TT><B>ESC [ 25 ^</B></TT></TD>
</TR>
<TR>
<TD>F4</TD>
<TD><TT><B>ESC [ 14 ~</B></TT></TD>
<TD><TT><B>ESC [ 26 ~</B></TT></TD>
<TD><TT><B>ESC [ 14 ^</B></TT></TD>
<TD><TT><B>ESC [ 26 ^</B></TT></TD>
</TR>
<TR>
<TD>F5</TD>
<TD><TT><B>ESC [ 15 ~</B></TT></TD>
<TD><TT><B>ESC [ 28 ~</B></TT></TD>
<TD><TT><B>ESC [ 15 ^</B></TT></TD>
<TD><TT><B>ESC [ 28 ^</B></TT></TD>
</TR>
<TR>
<TD>F6</TD>
<TD><TT><B>ESC [ 17 ~</B></TT></TD>
<TD><TT><B>ESC [ 29 ~</B></TT></TD>
<TD><TT><B>ESC [ 17 ^</B></TT></TD>
<TD><TT><B>ESC [ 29 ^</B></TT></TD>
</TR>
<TR>
<TD>F7</TD>
<TD><TT><B>ESC [ 18 ~</B></TT></TD>
<TD><TT><B>ESC [ 31 ~</B></TT></TD>
<TD><TT><B>ESC [ 18 ^</B></TT></TD>
<TD><TT><B>ESC [ 31 ^</B></TT></TD>
</TR>
<TR>
<TD>F8</TD>
<TD><TT><B>ESC [ 19 ~</B></TT></TD>
<TD><TT><B>ESC [ 32 ~</B></TT></TD>
<TD><TT><B>ESC [ 19 ^</B></TT></TD>
<TD><TT><B>ESC [ 32 ^</B></TT></TD>
</TR>
<TR>
<TD>F9</TD>
<TD><TT><B>ESC [ 20 ~</B></TT></TD>
<TD><TT><B>ESC [ 33 ~</B></TT></TD>
<TD><TT><B>ESC [ 20 ^</B></TT></TD>
<TD><TT><B>ESC [ 33 ^</B></TT></TD>
</TR>
<TR>
<TD>F10</TD>
<TD><TT><B>ESC [ 21 ~</B></TT></TD>
<TD><TT><B>ESC [ 34 ~</B></TT></TD>
<TD><TT><B>ESC [ 21 ^</B></TT></TD>
<TD><TT><B>ESC [ 34 ^</B></TT></TD>
</TR>
<TR>
<TD>F11</TD>
<TD><TT><B>ESC [ 23 ~</B></TT></TD>
<TD><TT><B>ESC [ 23 $</B></TT></TD>
<TD><TT><B>ESC [ 23 ^</B></TT></TD>
<TD><TT><B>ESC [ 23 @</B></TT></TD>
</TR>
<TR>
<TD>F12</TD>
<TD><TT><B>ESC [ 24 ~</B></TT></TD>
<TD><TT><B>ESC [ 24 $</B></TT></TD>
<TD><TT><B>ESC [ 24 ^</B></TT></TD>
<TD><TT><B>ESC [ 24 @</B></TT></TD>
</TR>
<TR>
<TD>F13</TD>
<TD><TT><B>ESC [ 25 ~</B></TT></TD>
<TD><TT><B>ESC [ 25 $</B></TT></TD>
<TD><TT><B>ESC [ 25 ^</B></TT></TD>
<TD><TT><B>ESC [ 25 @</B></TT></TD>
</TR>
<TR>
<TD>F14</TD>
<TD><TT><B>ESC [ 26 ~</B></TT></TD>
<TD><TT><B>ESC [ 26 $</B></TT></TD>
<TD><TT><B>ESC [ 26 ^</B></TT></TD>
<TD><TT><B>ESC [ 26 @</B></TT></TD>
</TR>
<TR>
<TD>F15 (Help)</TD>
<TD><TT><B>ESC [ 28 ~</B></TT></TD>
<TD><TT><B>ESC [ 28 $</B></TT></TD>
<TD><TT><B>ESC [ 28 ^</B></TT></TD>
<TD><TT><B>ESC [ 28 @</B></TT></TD>
</TR>
<TR>
<TD>F16 (Menu)</TD>
<TD><TT><B>ESC [ 29 ~</B></TT></TD>
<TD><TT><B>ESC [ 29 $</B></TT></TD>
<TD><TT><B>ESC [ 29 ^</B></TT></TD>
<TD><TT><B>ESC [ 29 @</B></TT></TD>
</TR>
<TR>
<TD>F17</TD>
<TD><TT><B>ESC [ 31 ~</B></TT></TD>
<TD><TT><B>ESC [ 31 $</B></TT></TD>
<TD><TT><B>ESC [ 31 ^</B></TT></TD>
<TD><TT><B>ESC [ 31 @</B></TT></TD>
</TR>
<TR>
<TD>F18</TD>
<TD><TT><B>ESC [ 32 ~</B></TT></TD>
<TD><TT><B>ESC [ 32 $</B></TT></TD>
<TD><TT><B>ESC [ 32 ^</B></TT></TD>
<TD><TT><B>ESC [ 32 @</B></TT></TD>
</TR>
<TR>
<TD>F19</TD>
<TD><TT><B>ESC [ 33 ~</B></TT></TD>
<TD><TT><B>ESC [ 33 $</B></TT></TD>
<TD><TT><B>ESC [ 33 ^</B></TT></TD>
<TD><TT><B>ESC [ 33 @</B></TT></TD>
</TR>
<TR>
<TD>F20</TD>
<TD><TT><B>ESC [ 34 ~</B></TT></TD>
<TD><TT><B>ESC [ 34 $</B></TT></TD>
<TD><TT><B>ESC [ 34 ^</B></TT></TD>
<TD><TT><B>ESC [ 34 @</B></TT></TD>
</TR>
<TR>
<TD COLSPAN=5 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Keypad</B></FONT></TD>
</TR>
<