1470 lines
51 KiB
HTML
1470 lines
51 KiB
HTML
<!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="#menubar">Menubar Escape Sequences</A>
|
|
<LI><A HREF="#pixmap">Pixmap 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>></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> == 10: Toggle menubar on/off (rxvt/Eterm extension)
|
|
<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 Text 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> == 10: Menubar commands (see <A HREF="#menubar">below</A>)
|
|
<LI><I>n</I> == 20: Pixmap commands (see <A HREF="#pixmap">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>
|
|
|
|
<H3><A NAME="menubar">Menubar Escape Sequences</A></H3>
|
|
|
|
<P>
|
|
The menubar system in Eterm is probably the most complex, convoluted,
|
|
complicated, and poorly-implemented feature of Eterm. The code, though
|
|
modified somewhat, is still almost entirely derived from rxvt. It will be
|
|
rewritten from scratch as part of
|
|
<A HREF="http://ganja.tky.hut.fi/Resurrection/">Project Resurrection</A>, but
|
|
for now, here are the basics. You'll probably want to look at the menubar
|
|
files that come with Eterm; they're pretty good samples.</P>
|
|
|
|
<P>
|
|
First, let's discuss the paradigm used by the menubar system. Like so many
|
|
things these days, the menubar uses a filesystem analogy, with the menubar
|
|
itself comprising the top level (root) and each menu and submenu is a
|
|
"directory" or "subdirectory" thereof. You manipulate the contents of the
|
|
menubar by adding and removing menus, menu items, and submenus via their
|
|
respective "paths." You even have a "working directory" and can add/remove
|
|
several items at a time by changing to the directory you want.</P>
|
|
|
|
<P>
|
|
The following table shows the commands which are recognized by the menubar
|
|
system. These commands can be supplied as <I>string</I> in the menubar escape
|
|
sequence, or they can be lines in a menubar file.</P>
|
|
|
|
<TABLE BORDER=2 CELLSPACING=2 CELLPADDING=5>
|
|
<TR>
|
|
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Command</B></FONT></TD>
|
|
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Action</B></FONT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>=</B> <I>title</I></TT></TD>
|
|
<TD>Set the menubar title to <I>title</I>. Note that the menubar title is
|
|
entirely separate from Eterm's titlebar text. Any occurance of
|
|
<TT><B>%v</B></TT> in <I>title</I> is replaced by the Eterm version.
|
|
<TT><B>%n</B></TT> is replaced by the resource name (as specified by the
|
|
<TT>-n</TT> option. <TT><B>%%</B></TT> inserts a literal '%'.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>[ <B>+</B> ] <I>path</I></TT></TD>
|
|
<TD>Change directories to <I>path</I>. If <I>path</I> doesn't exist, it is
|
|
created. <TT><B>/</B></TT> represents the menubar itself.
|
|
<TT><B>/</B><I>some_menu</I><B>/</B></TT> represents a primary menu in the
|
|
menubar. <TT><B>/</B><I>some_menu</I><B>/</B><I>submenu</I><B>/</B></TT>
|
|
represents a submenu underneath that menu. And so on.... You can also
|
|
use "." and ".." just like you would on a UNIX filesystem.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>-</B><I>path</I></TT></TD>
|
|
<TD>Removes the menu at <I>path</I>. All submenus and menu items are
|
|
automatically removed.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>[ <B>+</B> ] [ <I>path</I> ] <B>{</B> <I>menuitem</I> <B>}</B> [
|
|
<B>{</B> <I>rtext</I> <B>}</B> ] [ <B>{</B> <I>action</I> <B>}</B> ] </TT>
|
|
</TD>
|
|
<TD>Add a menu item at <I>path</I>. The label (<I>menuitem</I>) is required
|
|
but can be hidden by using a dot ('<TT><B>.</B></TT>') as the first
|
|
character of <I>menuitem</I>, or by using the same text for <I>rtext</I>.
|
|
The optional string <I>rtext</I> will be right-justified; this is
|
|
generally used to note the key sequence bound to a particular menu item.
|
|
If <I>action</I> is not specified, the contents of <I>rtext</I> are
|
|
used.</P>
|
|
<P>
|
|
<I>action</I> is the string which is bound to the menuitem. It is parsed
|
|
for escape sequences, control characters, etc. See the table below for a
|
|
list of valid encodings. If <I>action</I> begins with a NUL character
|
|
(<TT><B>^@</B></TT>), the string is sent to Eterm instead of to the
|
|
application. (To send a string beginning with a NUL to the application,
|
|
simply prefix the string with two NUL's. The first one will be stripped
|
|
and the remainder send to the application.) So any escape sequences you
|
|
want Eterm to parse should begin with <TT><B>^@</B></TT>.</P>
|
|
<P>
|
|
As mentioned in the table below, <TT><B>M-</B></TT> can be used as a
|
|
substitute for <TT>ESC</TT> in an action string, with one difference:
|
|
a carriage return (<TT><B>\r</B></TT>) is appending automatically to
|
|
any string that begins with <TT><B>M-</B></TT> and does not already have
|
|
the trailing <TT>CR</TT>.</P>
|
|
<P>
|
|
To add a separator bar, specify <TT><B>-</B></TT> as <I>menuitem</I>.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>-</B> [ <I>path</I> ] <B>{</B> <I>menuitem</I> <B>}</B></TT></TD>
|
|
<TD>Removes <I>menuitem</I>.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[apptitle:</B> <I>title</I> <B>]</B></TT></TD>
|
|
<TD>Sets Eterm's titlebar title to <I>title</I>. Not to be confused with the
|
|
<TT><B>[title:]</B></TT> command, which sets the menubar title.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[clear]</B></TT></TD>
|
|
<TD>Clears the menubar of all menus. Equivalent to <TT><B>rm -rf /</B></TT>
|
|
on a UNIX filesystem.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[done</B> [ <B>:</B> <I>tag</I> ] <B>]</B></TT></TD>
|
|
<TD>Sets the current menubar to read-only. No modification attempts will be
|
|
accepted (unless they are enclosed in <TT><B>[::]</B></TT>; see below).
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[dump]</B></TT></TD>
|
|
<TD>Dumps the current menubars out to a file. The path of this file is placed
|
|
in the Eterm titlebar. The menubars are dumped so that the resulting file
|
|
is a valid Eterm menubar file which can be parsed by Eterm in the future
|
|
to restore the current menubar settings.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[echo:</B> <I>text</I> <B>]</B></TT></TD>
|
|
<TD>Sends <I>text</I> to the application running in the Eterm window.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[hide]</B></TT></TD>
|
|
<TD>Hides (toggles off) the menubar and sets it to read-only.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[menu</B> [ <B>:</B> <I>name</I> ] <B>]</B></TT></TD>
|
|
<TD>Begin addition/modification of the <I>name</I> menubar. If <I>name</I> is
|
|
not given, "<TT><B>default</B></TT>" is used. This command sets the
|
|
menubar to read-write.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[pixmap:</B> <I>string</I> <B>]</B></TT></TD>
|
|
<TD>A convenience command. <I>string</I> should follow the syntax shown in
|
|
the <B>Pixmap Escape Sequences</B> section below.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[read:</B> <I>file</I> <B>]</B></TT></TD>
|
|
<TD>Reads the menubar file <I>file</I> and parses the commands it contains. A
|
|
menubar file consists of commands shown in this table. Lines beginning
|
|
with '<TT><B>#</B></TT>' and blank lines are ignored.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[rm</B> [ <B>:</B> ] [ <I>spec</I> ] <B>]</B></TT></TD>
|
|
<TD>Removes part or all of the contents of a menubar. <I>spec</I> can be a
|
|
path, a menu item, or '<TT><B>*</B></TT>', or empty. The latter two
|
|
remove all menus in the menubar.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[show]</B></TT></TD>
|
|
<TD>Shows (toggles on) the menubar and sets it to read-only.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[title:</B> <I>title</I> <B>]</B></TT></TD>
|
|
<TD>Sets the menubar title to <I>title</I></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT><B>[:</B><I>command</I><B>:]</B></TT></TD>
|
|
<TD>Specifies that the current menu's read-only status should be ignored in
|
|
order to parse <I>command</I>. <I>command</I> should be one of the above
|
|
commands.
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
|
|
<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="pixmap">Pixmap Escape Sequences</A></H3>
|
|
|
|
<P>
|
|
The <I>string</I> supplied to the pixmap 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 pixmap:</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
|
|
pixmap 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 pixmap)</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> </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> </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>
|
|
<TR>
|
|
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Key Pressed</B></FONT></TD>
|
|
<TD COLSPAN=2 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Normal</B></FONT></TD>
|
|
<TD COLSPAN=2 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Application</B></FONT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>KP_Enter</TD>
|
|
<TD COLSPAN=2><TT><B>^M</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O M</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>KP_F1</TD>
|
|
<TD COLSPAN=2><TT><B>ESC O P</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O P</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>KP_F2</TD>
|
|
<TD COLSPAN=2><TT><B>ESC O Q</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O Q</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>KP_F3</TD>
|
|
<TD COLSPAN=2><TT><B>ESC O R</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O R</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>KP_F4</TD>
|
|
<TD COLSPAN=2><TT><B>ESC O S</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O S</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_Multiply</TD>
|
|
<TD COLSPAN=2><TT><B>*</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O j</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_Add</TD>
|
|
<TD COLSPAN=2><TT><B>+</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O k</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_Separator</TD>
|
|
<TD COLSPAN=2><TT><B>,</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O l</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_Subtract</TD>
|
|
<TD COLSPAN=2><TT><B>-</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O m</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_Decimal</TD>
|
|
<TD COLSPAN=2><TT><B>.</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O n</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_Divide</TD>
|
|
<TD COLSPAN=2><TT><B>/</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O o</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_0</TD>
|
|
<TD COLSPAN=2><TT><B>0</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O p</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_1</TD>
|
|
<TD COLSPAN=2><TT><B>1</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O q</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_2</TD>
|
|
<TD COLSPAN=2><TT><B>2</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O r</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_3</TD>
|
|
<TD COLSPAN=2><TT><B>3</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O s</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_4</TD>
|
|
<TD COLSPAN=2><TT><B>4</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O t</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_5</TD>
|
|
<TD COLSPAN=2><TT><B>5</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O u</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_6</TD>
|
|
<TD COLSPAN=2><TT><B>6</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O v</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_7</TD>
|
|
<TD COLSPAN=2><TT><B>7</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O w</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_8</TD>
|
|
<TD COLSPAN=2><TT><B>8</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O x</B></TT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>XK_KP_9</TD>
|
|
<TD COLSPAN=2><TT><B>9</B></TT></TD>
|
|
<TD COLSPAN=2><TT><B>ESC O y</B></TT></TD>
|
|
</TR>
|
|
</TABLE>
|
|
|
|
<H2><A NAME="std">Eterm Extensions, Standards, and Implementations</A></H2>
|
|
|
|
<P>
|
|
|
|
<H3><A NAME="eterm_esc">Eterm Proprietary Escape Sequences</A></H3>
|
|
|
|
<P>
|
|
The table below contains a listing of all the Eterm-specific escape sequences
|
|
that Eterm supports. These sequences were created by the Eterm authors. Please
|
|
note the following conventions used in this table:</P>
|
|
|
|
<P>
|
|
When an escape sequence is said to "set/toggle" an option, this means that the
|
|
boolean parameter of the sequence is optional. If given, it will either set or
|
|
unset the option. If omitted, the current state of that option will be
|
|
reversed (i.e., turned off if on, or on if off). Acceptable values for "true"
|
|
are: <TT><B>1</B></TT>, <TT><B>on</B></TT>, <TT><B>yes</B></TT>, or (of course)
|
|
<TT><B>true</B></TT>. Likewise, acceptable values for "false" are:
|
|
<TT><B>0</B></TT>, <TT><B>off</B></TT>, <TT><B>no</B></TT>, or
|
|
<TT><B>false</B></TT>.</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>[ 9 n</B></TT></TD>
|
|
<TD>Titlebar Status. This places Eterm's current status in the titlebar. The
|
|
status information includes the application name and version number, as
|
|
well as the shading/tinting state if transparent, the pixmap path if their
|
|
is a background pixmap, or "No Pixmap" if neither of these is true.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 5 ;</B> BEL</TT></TD>
|
|
<TD>Steal Focus. Eterm will raise itself to the top and steal keyboard/mouse
|
|
focus. This is useful in case your window manager dies or has trouble
|
|
starting up. By default, this is activated by holding the Ctrl key and
|
|
clicking on the Eterm window with the left mouse button (Button1).
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 0 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
|
|
<TD>Set/toggle transparency state.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 1 ;</B> <I>pct</I> BEL</TT></TD>
|
|
<TD>Set shading percentage to <I>pct</I>.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 2 ;</B> <I>mask</I> BEL</TT></TD>
|
|
<TD>Set tint mask to <I>mask</I>. As a favor to keebler, I left support for
|
|
the old text aliases in the escape sequence parser. Thus, the following
|
|
are supported as alternative values for <I>mask</I>:
|
|
<UL>
|
|
<LI><TT><B>none</B></TT>: <TT>0xffffff</TT>
|
|
<LI><TT><B>red</B></TT>: <TT>0xff8080</TT>
|
|
<LI><TT><B>green</B></TT>: <TT>0x80ff80</TT>
|
|
<LI><TT><B>blue</B></TT>: <TT>0x8080ff</TT>
|
|
<LI><TT><B>cyan</B></TT>: <TT>0x80ffff</TT>
|
|
<LI><TT><B>magenta</B></TT>: <TT>0xff80ff</TT>
|
|
<LI><TT><B>yellow</B></TT>: <TT>0xffff80</TT>
|
|
</UL>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 3 ;</B> BEL</TT></TD>
|
|
<TD>Force an update the of transparency background.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 4 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
|
|
<TD>Set/toggle desktop watching.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 10 ;</B> [ <I>type</I> ] [ <B>;</B> <I>width</I> ] BEL</TT></TD>
|
|
<TD>Set scrollbar style to <I>type</I> and scrollbar width to <I>width</I>.
|
|
If specified, <I>type</I> must be one of <TT><B>motif</B></TT>,
|
|
<TT><B>xterm</B></TT>, or <TT><B>next</B></TT>. If you omit the
|
|
<I>type</I> parameter and only wish to set the width, take care not to
|
|
omit the extra semicolon. <I>width</I> is an integer. Its value is
|
|
fairly wide-open, but should be something reasonable.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 11 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
|
|
<TD>Set/toggle right-side scrollbar.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 12 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
|
|
<TD>Set/toggle floating scrollbar (i.e., one with no trough).</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 13 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
|
|
<TD>Set/toggle popup scrollbar (i.e., one that appears when the window has
|
|
focus and disappears when it does not).
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 15 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
|
|
<TD>Set/toggle menubar move.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 20 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
|
|
<TD>Set/toggle visual bell.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 21 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
|
|
<TD>Set/toggle map alert.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 22 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
|
|
<TD>Set/toggle xterm's cutchar selection behavior.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 23 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
|
|
<TD>Set/toggle selection of the whole line by triple-click.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 24 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
|
|
<TD>Set/toggle viewport mode.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 25 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
|
|
<TD>Set/toggle selection trailing spaces.</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 50 ;</B> <I>desktop</I> BEL</TT></TD>
|
|
<TD>Move Eterm to desktop <I>desktop</I> and make it the current desktop.
|
|
This requires a GNOME-compliant Window Manager, such as
|
|
<A HREF="http://www.enlightenment.org/" TARGET="_top">Enlightenment</A>.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 70 </B> BEL</TT></TD>
|
|
<TD>Exit Eterm (most useful from a menubar).</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><TT>ESC <B>] 6 ; 71</B> [ ;</B> <I>path</I> ] BEL</TT></TD>
|
|
<TD>Saves the current configuration to the current theme directory, or to
|
|
<I>path</I> if specified. If a file of the same name already exists, it
|
|
is renamed to <I>path</I><TT>.<I>YYYYMMDD.HHMMSS</I></TT> (where
|
|
<TT><I>YYYYMMDD.HHMMSS</I></TT> is the current system time).
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
|
|
<H3><A NAME="trans">Transparency</A></H3>
|
|
|
|
<P>
|
|
The standard for implementing transparency was a mutual effort between myself,
|
|
Carsten Haitzler <raster@redhat.com>, Gerald Britton <gbritton@mit.edu>, and
|
|
Nat Friedman <nat@nat.org>, based off of an original idea by Nat. First I'll
|
|
define the standard, then I'll discuss its justification.</P>
|
|
|
|
<P>
|
|
There are two separate procedures for setting the transparency property (the
|
|
_XROOTPMAP_ID atom in X). The first is for persistent X clients such as window
|
|
managers. These clients should proceed through their normal mechanism for
|
|
setting the desktop image. Once the finalized pixmap has been created, the
|
|
_XROOTPMAP_ID property should be set on the desktop window (the same window
|
|
which will receive the pixmap...note that this is not necessarily the root
|
|
window), and its value should be set to the Pixmap ID. The following sample
|
|
code (taken from <A HREF="http://www.enlightenment.org/"
|
|
TARGET="_top">Enlightenment</A>) demonstrates this:</P>
|
|
|
|
<PRE>
|
|
<FONT COLOR="#3333ff">/* disp is the Display, win is the desktop Window, pmap is the pixmap */</FONT>
|
|
static Atom prop = 0;
|
|
|
|
if (!prop) {
|
|
prop = XInternAtom(disp, "_XROOTPMAP_ID", False);
|
|
}
|
|
XChangeProperty(disp, win, prop, XA_PIXMAP, 32, PropModeReplace,
|
|
(unsigned char *)&pmap, 1);
|
|
XSetWindowBackgroundPixmap(disp, win, pmap);
|
|
XClearWindow(disp, win);
|
|
</PRE>
|
|
|
|
<P>
|
|
The second procedure is for temporary clients; i.e., clients who set the desktop
|
|
pixmap and then exit. An example of this type of client would be Esetroot, the
|
|
transparency utility provided with Eterm. These clients should set the
|
|
_XROOTPMAP_ID property just like the persistent client does. They should also
|
|
set a companion property as well, ESETROOT_PMAP_ID. Both are set to the same
|
|
pixmap ID. When a temporary client runs, it checks to see if _XROOTPMAP_ID and
|
|
ESETROOT_PMAP_ID have the same value. If so, the client knows that it can
|
|
safely do an XKillClient() on the pixmap ID. This will save memory, as the
|
|
old pixmap can be removed. If they are not equal, however, calling
|
|
XKillClient() would kill the persistent client which did set it, most likely the
|
|
user's window manager. This would be a Bad Idea<SUP>tm</SUP>. The following
|
|
code fragment (taken from Esetroot) illustrates this process:</P>
|
|
|
|
<PRE>
|
|
<FONT COLOR="#3333ff">/* disp is the Display, win is the desktop Window, pmap is the pixmap */</FONT>
|
|
Atom prop_root, prop_esetroot, type;
|
|
int format;
|
|
unsigned long length, after;
|
|
unsigned char *data_root, *data_esetroot;
|
|
|
|
<FONT COLOR="#3333ff">/* First check to see if the properties already exist, and if they are equal */</FONT>
|
|
prop_root = XInternAtom(disp, "_XROOTPMAP_ID", True);
|
|
prop_esetroot = XInternAtom(disp, "ESETROOT_PMAP_ID", True);
|
|
|
|
if (prop_root != None && prop_esetroot != None) {
|
|
XGetWindowProperty(disp, win, prop_root, 0L, 1L, False, AnyPropertyType,
|
|
&type, &format, &length, &after, &data_root);
|
|
if (type == XA_PIXMAP) {
|
|
XGetWindowProperty(disp, win, prop_esetroot, 0L, 1L, False, AnyPropertyType,
|
|
&type, &format, &length, &after, &data_esetroot);
|
|
if (data_root && data_esetroot && type == XA_PIXMAP && *((Pixmap *) data_root) == *((Pixmap *) data_esetroot)) {
|
|
<FONT COLOR="#3333ff">/* It's safe. Kill the pixmap. */</FONT>
|
|
XKillClient(disp, *((Pixmap *) data_root));
|
|
}
|
|
}
|
|
}
|
|
|
|
<FONT COLOR="#3333ff">/* This will locate the property, creating it if it doesn't exist */</FONT>
|
|
prop_root = XInternAtom(disp, "_XROOTPMAP_ID", False);
|
|
prop_esetroot = XInternAtom(disp, "ESETROOT_PMAP_ID", False);
|
|
|
|
<FONT COLOR="#3333ff">/* The call above should have created it. If that failed, we can't continue. */</FONT>
|
|
if (prop_root == None || prop_esetroot == None) {
|
|
fprintf(stderr, "Error: Creation of pixmap property failed.\n");
|
|
exit(1);
|
|
}
|
|
XChangeProperty(disp, win, prop_root, XA_PIXMAP, 32, PropModeReplace,
|
|
(unsigned char *) &pmap, 1);
|
|
XChangeProperty(disp, win, prop_esetroot, XA_PIXMAP, 32, PropModeReplace,
|
|
(unsigned char *) &pmap, 1);
|
|
XSetCloseDownMode(disp, RetainPermanent);
|
|
</PRE>
|
|
|
|
<P>
|
|
When the client runs, it looks for the _XROOTPMAP_ID property on the desktop
|
|
window. (The client searches through all its parent windows until it either
|
|
finds one with this property set, or hits the root window without finding it.)
|
|
If the client finds this property, it can then use the pixmap directly, or make
|
|
a copy of the pixmap in order to perform additional operations on it (such as
|
|
brightening, shading, tinting, etc.).</P>
|
|
|
|
<P>
|
|
So why use this technique? Why require such support from the window manager and
|
|
other external applications? Why not simply set the background to
|
|
<TT>ParentRelative</TT> and be done with it? let X handle everything? This
|
|
seems to be a point of great confusion lately. Those who have taken the time to
|
|
put the other terminal emulators who have chosen the latter route through their
|
|
paces already know the answer: Power. Very simply, you have *much* greater
|
|
power and flexibility with this technique than any other. X only permits a
|
|
limited amount of flexibility when copying the background directly (basically
|
|
just bitwise logical operations). The above technique allows programs to tint,
|
|
shade, brighten, or otherwise manipulate the image in *any* way they see fit.
|
|
Want a 10% shade? A 30% shade? Maybe a light cyan tint? Or perhaps you prefer
|
|
a midnight blue tint.... With this technique, you can have it *your* way, not
|
|
their way.</P>
|
|
|