or changed rxvt behaviour to make it more compatible to xterm (usually
xfree86's xterm).
-TODO: settable ressource for input method fonts
TODO: read property sequence is broken with respect to utf-8 etc.
-WISH; line-rewrapping on resize
-WISH: just for fun, do shade and tint with XRender.
-WISH: hotkey font resizing
+WISH: keyboard modification via esc-sequences.
+WISH: line-rewrapping on resize
+WISH: hotkey font resizing (possible via keymaps)
WISH: searchable backlog
WISH: meta-tagging of data by regex (my dream project)
-WISH: triple-click == select full output line
WISH: double-click: more intelligent (urls etc.)
WISH: OnTheSpot editing.
WISH: tabbed windows (hey, just use screen...)
+WISH: just for fun, do shade and tint with XRender.
+
+4.9 Thu Feb 3 09:52:03 CET 2005
+ - nuke out utmp entries completely. Should be fixed in
+ original rxvt, too. (reported by James Michael Fultz).
+ - resizes wil now correctly refresh the displayed text when
+ -pixmap is active.
+ - new option/resource imFont.
+ - document --tripleclickwords/-tcw.
+ - select logical instead of physical lines when doing a triple-click.
+ - reordered help listing to group similar options together.
+ - handle SIGINT the same way as SIGTERM (reported by Joël Riou).
+ - fix a bug introduced while applying the keyboard patch
+ (WU Fengguang).
+ - document all window-op sequences (rxvt.7.) and more keysym
+ examples (rxvt.1).
+ - removed src/test completely.
+ - renamed keysym 'proto:'-prefix to 'command:'.
4.8 Tue Jan 18 02:23:57 CET 2005
- added a patch by WU Fengguang that makes the keyboard
Here's an example for a URxvt session started using `rxvt -name
URxvt'
- URxvt*keysym.Home: \e[1~
- URxvt*keysym.End: \e[4~
- URxvt*keysym.C-apostrophe: \e<C-'>
- URxvt*keysym.C-slash: \e<C-/>
- URxvt*keysym.C-semicolon: \e<C-;>
- URxvt*keysym.C-grave: \e<C-`>
- URxvt*keysym.C-comma: \e<C-,>
- URxvt*keysym.C-period: \e<C-.>
- URxvt*keysym.C-0x60: \e<C-`>
- URxvt*keysym.C-Tab: \e<C-Tab>
- URxvt*keysym.C-Return: \e<C-Return>
- URxvt*keysym.S-Return: \e<S-Return>
- URxvt*keysym.S-space: \e<S-Space>
- URxvt*keysym.M-Up: \e<M-Up>
- URxvt*keysym.M-Down: \e<M-Down>
- URxvt*keysym.M-Left: \e<M-Left>
- URxvt*keysym.M-Right: \e<M-Right>
- URxvt*keysym.M-C-0: list.0123456789.\e<M-C-.>
- URxvt*keysym.M-C-a: list.abcdefghijklmnopqrstuvwxyz.\033<M-C-.>
- URxvt*keysym.F12: proto:\033]701;zh_CN.GBK\007
+ URxvt.keysym.Home: \e[1~
+ URxvt.keysym.End: \e[4~
+ URxvt.keysym.C-apostrophe: \e<C-'>
+ URxvt.keysym.C-slash: \e<C-/>
+ URxvt.keysym.C-semicolon: \e<C-;>
+ URxvt.keysym.C-grave: \e<C-`>
+ URxvt.keysym.C-comma: \e<C-,>
+ URxvt.keysym.C-period: \e<C-.>
+ URxvt.keysym.C-0x60: \e<C-`>
+ URxvt.keysym.C-Tab: \e<C-Tab>
+ URxvt.keysym.C-Return: \e<C-Return>
+ URxvt.keysym.S-Return: \e<S-Return>
+ URxvt.keysym.S-space: \e<S-Space>
+ URxvt.keysym.M-Up: \e<M-Up>
+ URxvt.keysym.M-Down: \e<M-Down>
+ URxvt.keysym.M-Left: \e<M-Left>
+ URxvt.keysym.M-Right: \e<M-Right>
+ URxvt.keysym.M-C-0: list \e<M-C- 0123456789 >
+ URxvt.keysym.M-C-a: list \033<M-C- abcdefghijklmnopqrstuvwxyz >
+ URxvt.keysym.F12: proto:\033]701;zh_CN.GBK\007
+
+ See some more examples in the documentation for the keysym resource.
I'm using keyboard model XXX that has extra Prior/Next/Insert keys. How
do I make use of them? For example, the Sun Keyboard type 4 has the
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
-<p><strong>rxvt-unicode</strong>, version <strong>4.8</strong>, is a colour vt102 terminal
+<p><strong>rxvt-unicode</strong>, version <strong>4.9</strong>, is a colour vt102 terminal
emulator intended as an <em>xterm</em>(1) replacement for users who do not
require features such as Tektronix 4014 emulation and toolkit-style
configurability. As a result, <strong>rxvt-unicode</strong> uses much less swap space --
<dt><strong><a name="item__2dimlocale_string"><strong>-imlocale</strong> <em>string</em></a></strong><br />
</dt>
<dd>
-The locale to use for opening the IM. You can use an LC_CTYPE of e.g.
-de_DE.UTF-8 for normal text processing but ja_JP.EUC-JP for the input
-extension to be able to input japanese characters while staying in
-another locale.
+The locale to use for opening the IM. You can use an <code>LC_CTYPE</code> of e.g.
+<code>de_DE.UTF-8</code> for normal text processing but <code>ja_JP.EUC-JP</code> for the
+input extension to be able to input japanese characters while staying in
+another locale. resource <strong>imLocale</strong>.
+</dd>
+<p></p>
+<dt><strong><a name="item__2dimfont_fontset"><strong>-imfont</strong> <em>fontset</em></a></strong><br />
+</dt>
+<dd>
+Set the font set to use for the X Input Method, see resource <strong>imFont</strong>
+for more info.
+</dd>
+<p></p>
+<dt><strong><a name="item__2dtcw"><strong>-tcw</strong></a></strong><br />
+</dt>
+<dd>
+Change the meaning of triple-click selection with the left mouse
+button. Instead of selecting a full line it will extend the selection the
+end of the logical line only. resource <strong>tripleclickwords</strong>.
</dd>
<p></p>
<dt><strong><a name="item__2dinsecure"><strong>-insecure</strong></a></strong><br />
<dt><strong><a name="item_imlocale_3a_name"><strong>imLocale:</strong> <em>name</em></a></strong><br />
</dt>
<dd>
-The locale to use for opening the IM. You can use an LC_CTYPE of e.g.
-de_DE.UTF-8 for normal text processing but ja_JP.EUC-JP for the input
-extension to be able to input japanese characters while staying in
+The locale to use for opening the IM. You can use an <code>LC_CTYPE</code> of e.g.
+<code>de_DE.UTF-8</code> for normal text processing but <code>ja_JP.EUC-JP</code> for the
+input extension to be able to input japanese characters while staying in
another locale. option <strong>-imlocale</strong>.
</dd>
<p></p>
+<dt><strong><a name="item_imfont_3a_fontset"><strong>imFont:</strong> <em>fontset</em></a></strong><br />
+</dt>
+<dd>
+Specify the font-set used for XIM styles <code>OverTheSpot</code> or
+<code>OffTheSpot</code>. It must be a standard X font set (XLFD patterns separated
+by commas), i.e. it's not in the same format as the other font lists used
+in rxvt. The default will be set-up to chose *any* suitable found
+found, preferably one or two pixels differing in size to the base font.
+option <strong>-imfont</strong>.
+</dd>
+<p></p>
+<dt><strong><a name="item_tripleclickwords_3a_boolean"><strong>tripleclickwords:</strong> <em>boolean</em></a></strong><br />
+</dt>
+<dd>
+Change the meaning of triple-click selection with the left mouse
+button. Instead of selecting a full line it will extend the selection to
+the end of the logical line only. option <strong>-tcw</strong>.
+</dd>
+<p></p>
<dt><strong><a name="item_insecure_3a_boolean"><strong>insecure:</strong> <em>boolean</em></a></strong><br />
</dt>
<dd>
<dd>
<p>The <strong>NumLock</strong>, <strong>Meta</strong> and <strong>ISOLevel3</strong> modifiers are usually aliased to
whatever modifier the NumLock key, Meta/Alt keys or ISO Level3 Shift/AltGr
-keys are being mapped. <strong>AppKeypad</strong> is a artificial modifier mapped to the
+keys are being mapped. <strong>AppKeypad</strong> is a synthetic modifier mapped to the
current application keymap mode state.</p>
</dd>
<dd>
URxvt.keysym.Meta-Control-0x63: \e<M-C-c></pre>
</dd>
<dd>
-<p>If <em>string</em> takes the form of <code>proto:STRING</code>, the specified <strong>STRING</strong> is
-interpreted and executed as rxvt's control sequence. For example,
-<code>proto:\033]701;zh_CN.GBK\007</code> means: change the current locale to
+<p>If <em>string</em> takes the form of <code>proto:STRING</code>, the specified <strong>STRING</strong>
+is interpreted and executed as rxvt's control sequence. For
+example the following means ``change the current locale to <code>zh_CN.GBK</code>
+when Control-Meta-c is being pressed'':</p>
+</dd>
+<dd>
+<pre>
+ URxvt.keysym.M-C-c: proto:\033]701;zh_CN.GBK\007</pre>
+</dd>
+<dd>
+<p>The following example will map Control-Meta-1 and Control-Meta-2 to
+the fonts <code>suxuseuro</code> and <code>9x15bold</code>, so you cna have some limited
+font-switching at runtime:</p>
+</dd>
+<dd>
+<pre>
+ URxvt.keysym.M-C-1: proto:\033]50;suxuseuro\007
+ URxvt.keysym.M-C-2: proto:\033]50;9x15bold\007</pre>
+</dd>
+<dd>
+<p><code>proto:\033]701;zh_CN.GBK\007</code> means: change the current locale to
<code>zh_CN.GBK</code>.</p>
</dd>
<p></p></dl>
<dt><strong><a name="item_selection_3a"><strong>Selection</strong>:</a></strong><br />
</dt>
<dd>
-Left click at the beginning of the region, drag to the end of the
-region and release; Right click to extend the marked region; Left
-double-click to select a word; Left triple-click to select the entire
-line.
+Left click at the beginning of the region, drag to the end of the region
+and release; Right click to extend the marked region; Left double-click
+to select a word; Left triple-click to select the entire logical line
+(which can span multiple screen lines), unless modified by resource
+<strong>tripleclickwords</strong>.
</dd>
<dd>
<p>Starting a selection while pressing the <strong>Meta</strong> key (or <strong>Meta+Ctrl</strong> keys)
first part is available rxvt-unicode has been compiled with
<code>--enable-frills</code>, the rest is available when rxvt-unicode was compiled
with <code>--enable-iso14755</code>.</p>
-<ol>
-<li><strong><a name="item_1_3a_basic_method">1: Basic method</a></strong><br />
+<ul>
+<li><strong><a name="item_5_2e1_3a_basic_method">5.1: Basic method</a></strong><br />
</li>
This allows you to enter unicode characters using their hexcode.
<p>Start by pressing and holding both <code>Control</code> and <code>Shift</code>, then enter
by pressing <code>Control</code> and <code>Shift</code>, followed by <code>6-7-1-D-SPACE-6-5-E-5</code>,
followed by releasing the modifier keys.</p>
<p></p>
-<li><strong><a name="item_2_3a_keyboard_symbols_entry_method">2: Keyboard symbols entry method</a></strong><br />
+<li><strong><a name="item_5_2e2_3a_keyboard_symbols_entry_method">5.2: Keyboard symbols entry method</a></strong><br />
</li>
This mode lets you input characters representing the keycap symbols of
your keyboard, if representable in the current locale encoding.
<code>ISO Level 2 Switch</code>, although your intention might have been to enter a
reverse tab (Shift-Tab).</p>
<p></p>
-<li><strong><a name="item_3_3a_screen_2dselection_entry_method">3: Screen-selection entry method</a></strong><br />
+<li><strong><a name="item_5_2e3_3a_screen_2dselection_entry_method">5.3: Screen-selection entry method</a></strong><br />
</li>
While this is implemented already (it's basically the selection
mechanism), it could be extended by displaying a unicode character map.
<p></p>
-<li><strong><a name="item_4_3a_feedback_method_for_identifying_displayed_cha">4: Feedback method for identifying displayed characters for later input</a></strong><br />
+<li><strong><a name="item_5_2e4_3a_feedback_method_for_identifying_displayed">5.4: Feedback method for identifying displayed characters for later input</a></strong><br />
</li>
This method lets you display the unicode character code associated with
characters already displayed.
character - due to implementation reasons, characters combined with
combining characters, line drawing characters and unknown characters will
always be drawn using the built-in support font.</p>
-<p></p></ol>
+<p></p></ul>
<p>With respect to conformance, rxvt-unicode is supposed to be compliant to
both scenario A and B of ISO 14755, including part 5.2.</p>
<p>
</p>
<hr />
<h1><a name="login_stamp">LOGIN STAMP</a></h1>
-<p><strong>rxvt</strong> tries to write an entry into the <em>utmp</em>(5) file so
-that it can be seen via the <em>who(1)</em> command, and can accept messages.
-To allow this feature, <strong>rxvt</strong> must be installed setuid root on
-some systems.</p>
+<p><strong>rxvt</strong> tries to write an entry into the <em>utmp</em>(5) file so that
+it can be seen via the <em>who(1)</em> command, and can accept messages. To
+allow this feature, <strong>rxvt</strong> may need to be installed setuid root
+on some systems or setgid to root or to some other group on others.</p>
<p>
</p>
<hr />
<hr />
<h1><a name="files">FILES</a></h1>
<dl>
-<dt><strong><a name="item__2fetc_2futmp"><strong>/etc/utmp</strong></a></strong><br />
-</dt>
-<dd>
-System file for login records.
-</dd>
-<p></p>
<dt><strong><a name="item__2fusr_2flib_2fx11_2frgb_2etxt"><strong>/usr/lib/X11/rgb.txt</strong></a></strong><br />
</dt>
<dd>
.\" ========================================================================
.\"
.IX Title "rxvt 1"
-.TH rxvt 1 "2005-01-18" "4.8" "RXVT-UNICODE"
+.TH rxvt 1 "2005-02-03" "4.9" "RXVT-UNICODE"
.SH "NAME"
rxvt\-unicode (ouR XVT, unicode) \- (a VT102 emulator for the X window system)
.SH "SYNOPSIS"
Compile \fI\s-1XIM\s0\fR: input method name. resource \fBinputMethod\fR.
.IP "\fB\-imlocale\fR \fIstring\fR" 4
.IX Item "-imlocale string"
-The locale to use for opening the \s-1IM\s0. You can use an \s-1LC_CTYPE\s0 of e.g.
-de_DE.UTF\-8 for normal text processing but ja_JP.EUC\-JP for the input
-extension to be able to input japanese characters while staying in
-another locale.
+The locale to use for opening the \s-1IM\s0. You can use an \f(CW\*(C`LC_CTYPE\*(C'\fR of e.g.
+\&\f(CW\*(C`de_DE.UTF\-8\*(C'\fR for normal text processing but \f(CW\*(C`ja_JP.EUC\-JP\*(C'\fR for the
+input extension to be able to input japanese characters while staying in
+another locale. resource \fBimLocale\fR.
+.IP "\fB\-imfont\fR \fIfontset\fR" 4
+.IX Item "-imfont fontset"
+Set the font set to use for the X Input Method, see resource \fBimFont\fR
+for more info.
+.IP "\fB\-tcw\fR" 4
+.IX Item "-tcw"
+Change the meaning of triple-click selection with the left mouse
+button. Instead of selecting a full line it will extend the selection the
+end of the logical line only. resource \fBtripleclickwords\fR.
.IP "\fB\-insecure\fR" 4
.IX Item "-insecure"
Enable \*(L"insecure\*(R" mode, which currently enables most of the escape
\&\fIname\fR of inputMethod to use; option \fB\-im\fR.
.IP "\fBimLocale:\fR \fIname\fR" 4
.IX Item "imLocale: name"
-The locale to use for opening the \s-1IM\s0. You can use an \s-1LC_CTYPE\s0 of e.g.
-de_DE.UTF\-8 for normal text processing but ja_JP.EUC\-JP for the input
-extension to be able to input japanese characters while staying in
+The locale to use for opening the \s-1IM\s0. You can use an \f(CW\*(C`LC_CTYPE\*(C'\fR of e.g.
+\&\f(CW\*(C`de_DE.UTF\-8\*(C'\fR for normal text processing but \f(CW\*(C`ja_JP.EUC\-JP\*(C'\fR for the
+input extension to be able to input japanese characters while staying in
another locale. option \fB\-imlocale\fR.
+.IP "\fBimFont:\fR \fIfontset\fR" 4
+.IX Item "imFont: fontset"
+Specify the font-set used for \s-1XIM\s0 styles \f(CW\*(C`OverTheSpot\*(C'\fR or
+\&\f(CW\*(C`OffTheSpot\*(C'\fR. It must be a standard X font set (\s-1XLFD\s0 patterns separated
+by commas), i.e. it's not in the same format as the other font lists used
+in @@RXVT_NAME@@. The default will be set-up to chose *any* suitable found
+found, preferably one or two pixels differing in size to the base font.
+option \fB\-imfont\fR.
+.IP "\fBtripleclickwords:\fR \fIboolean\fR" 4
+.IX Item "tripleclickwords: boolean"
+Change the meaning of triple-click selection with the left mouse
+button. Instead of selecting a full line it will extend the selection to
+the end of the logical line only. option \fB\-tcw\fR.
.IP "\fBinsecure:\fR \fIboolean\fR" 4
.IX Item "insecure: boolean"
Enables \*(L"insecure\*(R" mode. Rxvt-unicode offers some escape sequences that
.Sp
The \fBNumLock\fR, \fBMeta\fR and \fBISOLevel3\fR modifiers are usually aliased to
whatever modifier the NumLock key, Meta/Alt keys or \s-1ISO\s0 Level3 Shift/AltGr
-keys are being mapped. \fBAppKeypad\fR is a artificial modifier mapped to the
+keys are being mapped. \fBAppKeypad\fR is a synthetic modifier mapped to the
current application keymap mode state.
.Sp
The spellings of \fIkey\fR can be obtained by using \fBxev\fR(1) command or
\& URxvt.keysym.Meta-Control-0x63: \ee<M-C-c>
.Ve
.Sp
-If \fIstring\fR takes the form of \f(CW\*(C`proto:STRING\*(C'\fR, the specified \fB\s-1STRING\s0\fR is
-interpreted and executed as @@RXVT_NAME@@'s control sequence. For example,
+If \fIstring\fR takes the form of \f(CW\*(C`proto:STRING\*(C'\fR, the specified \fB\s-1STRING\s0\fR
+is interpreted and executed as @@RXVT_NAME@@'s control sequence. For
+example the following means "change the current locale to \f(CW\*(C`zh_CN.GBK\*(C'\fR
+when Control-Meta-c is being pressed":
+.Sp
+.Vb 1
+\& URxvt.keysym.M-C-c: proto:\e033]701;zh_CN.GBK\e007
+.Ve
+.Sp
+The following example will map Control\-Meta\-1 and Control\-Meta\-2 to
+the fonts \f(CW\*(C`suxuseuro\*(C'\fR and \f(CW\*(C`9x15bold\*(C'\fR, so you cna have some limited
+font-switching at runtime:
+.Sp
+.Vb 2
+\& URxvt.keysym.M-C-1: proto:\e033]50;suxuseuro\e007
+\& URxvt.keysym.M-C-2: proto:\e033]50;9x15bold\e007
+.Ve
+.Sp
\&\f(CW\*(C`proto:\e033]701;zh_CN.GBK\e007\*(C'\fR means: change the current locale to
\&\f(CW\*(C`zh_CN.GBK\*(C'\fR.
.SH "THE SCROLLBAR"
\&\fIxterm\fR(1).
.IP "\fBSelection\fR:" 4
.IX Item "Selection:"
-Left click at the beginning of the region, drag to the end of the
-region and release; Right click to extend the marked region; Left
-double-click to select a word; Left triple-click to select the entire
-line.
+Left click at the beginning of the region, drag to the end of the region
+and release; Right click to extend the marked region; Left double-click
+to select a word; Left triple-click to select the entire logical line
+(which can span multiple screen lines), unless modified by resource
+\&\fBtripleclickwords\fR.
.Sp
Starting a selection while pressing the \fBMeta\fR key (or \fBMeta+Ctrl\fR keys)
(Compile: \fIfrills\fR) will create a rectangular selection instead of a normal
first part is available rxvt-unicode has been compiled with
\&\f(CW\*(C`\-\-enable\-frills\*(C'\fR, the rest is available when rxvt-unicode was compiled
with \f(CW\*(C`\-\-enable\-iso14755\*(C'\fR.
-.IP "5.1: Basic method" 4
+.IP "* 5.1: Basic method" 4
.IX Item "5.1: Basic method"
This allows you to enter unicode characters using their hexcode.
.Sp
address printed as hexcodes, e.g. \f(CW\*(C`671d 65e5\*(C'\fR. You can enter this easily
by pressing \f(CW\*(C`Control\*(C'\fR and \f(CW\*(C`Shift\*(C'\fR, followed by \f(CW\*(C`6\-7\-1\-D\-SPACE\-6\-5\-E\-5\*(C'\fR,
followed by releasing the modifier keys.
-.IP "5.2: Keyboard symbols entry method" 4
+.IP "* 5.2: Keyboard symbols entry method" 4
.IX Item "5.2: Keyboard symbols entry method"
This mode lets you input characters representing the keycap symbols of
your keyboard, if representable in the current locale encoding.
released, otherwise pressing e.g. \f(CW\*(C`Shift\*(C'\fR would enter the symbol for
\&\f(CW\*(C`ISO Level 2 Switch\*(C'\fR, although your intention might have been to enter a
reverse tab (Shift\-Tab).
-.IP "5.3: Screen-selection entry method" 4
+.IP "* 5.3: Screen-selection entry method" 4
.IX Item "5.3: Screen-selection entry method"
While this is implemented already (it's basically the selection
mechanism), it could be extended by displaying a unicode character map.
-.IP "5.4: Feedback method for identifying displayed characters for later input" 4
+.IP "* 5.4: Feedback method for identifying displayed characters for later input" 4
.IX Item "5.4: Feedback method for identifying displayed characters for later input"
This method lets you display the unicode character code associated with
characters already displayed.
both scenario A and B of \s-1ISO\s0 14755, including part 5.2.
.SH "LOGIN STAMP"
.IX Header "LOGIN STAMP"
-\&\fB@@RXVT_NAME@@\fR tries to write an entry into the \fIutmp\fR(5) file so
-that it can be seen via the \fI\fIwho\fI\|(1)\fR command, and can accept messages.
-To allow this feature, \fB@@RXVT_NAME@@\fR must be installed setuid root on
-some systems.
+\&\fB@@RXVT_NAME@@\fR tries to write an entry into the \fIutmp\fR(5) file so that
+it can be seen via the \fI\fIwho\fI\|(1)\fR command, and can accept messages. To
+allow this feature, \fB@@RXVT_NAME@@\fR may need to be installed setuid root
+on some systems or setgid to root or to some other group on others.
.SH "COLORS AND GRAPHICS"
.IX Header "COLORS AND GRAPHICS"
In addition to the default foreground and background colours,
\&\fB\s-1RXVTPATH\s0\fR and \fB\s-1PATH\s0\fR to find \s-1XPM\s0 files.
.SH "FILES"
.IX Header "FILES"
-.IP "\fB/etc/utmp\fR" 4
-.IX Item "/etc/utmp"
-System file for login records.
.IP "\fB/usr/lib/X11/rgb.txt\fR" 4
.IX Item "/usr/lib/X11/rgb.txt"
Color names.
=item B<-imlocale> I<string>
-The locale to use for opening the IM. You can use an LC_CTYPE of e.g.
-de_DE.UTF-8 for normal text processing but ja_JP.EUC-JP for the input
-extension to be able to input japanese characters while staying in
-another locale.
+The locale to use for opening the IM. You can use an C<LC_CTYPE> of e.g.
+C<de_DE.UTF-8> for normal text processing but C<ja_JP.EUC-JP> for the
+input extension to be able to input japanese characters while staying in
+another locale. resource B<imLocale>.
+
+=item B<-imfont> I<fontset>
+
+Set the font set to use for the X Input Method, see resource B<imFont>
+for more info.
+
+=item B<-tcw>
+
+Change the meaning of triple-click selection with the left mouse
+button. Instead of selecting a full line it will extend the selection the
+end of the logical line only. resource B<tripleclickwords>.
=item B<-insecure>
=item B<imLocale:> I<name>
-The locale to use for opening the IM. You can use an LC_CTYPE of e.g.
-de_DE.UTF-8 for normal text processing but ja_JP.EUC-JP for the input
-extension to be able to input japanese characters while staying in
+The locale to use for opening the IM. You can use an C<LC_CTYPE> of e.g.
+C<de_DE.UTF-8> for normal text processing but C<ja_JP.EUC-JP> for the
+input extension to be able to input japanese characters while staying in
another locale. option B<-imlocale>.
+=item B<imFont:> I<fontset>
+
+Specify the font-set used for XIM styles C<OverTheSpot> or
+C<OffTheSpot>. It must be a standard X font set (XLFD patterns separated
+by commas), i.e. it's not in the same format as the other font lists used
+in @@RXVT_NAME@@. The default will be set-up to chose *any* suitable found
+found, preferably one or two pixels differing in size to the base font.
+option B<-imfont>.
+
+=item B<tripleclickwords:> I<boolean>
+
+Change the meaning of triple-click selection with the left mouse
+button. Instead of selecting a full line it will extend the selection to
+the end of the logical line only. option B<-tcw>.
+
=item B<insecure:> I<boolean>
Enables "insecure" mode. Rxvt-unicode offers some escape sequences that
The B<NumLock>, B<Meta> and B<ISOLevel3> modifiers are usually aliased to
whatever modifier the NumLock key, Meta/Alt keys or ISO Level3 Shift/AltGr
-keys are being mapped. B<AppKeypad> is a artificial modifier mapped to the
+keys are being mapped. B<AppKeypad> is a synthetic modifier mapped to the
current application keymap mode state.
The spellings of I<key> can be obtained by using B<xev>(1) command or
C<^@>: null, C<^A> ...) and may be enclosed with double quotes so that it
can start or end with whitespace.
+Please note that you need to double the C<\> when using
+C<--enable-xgetdefault>, as X itself does it's own de-escaping (you can
+use C<\033> instead of C<\e> (and so on), which will work with both Xt and
+@@RXVT_NAME@@'s own processing).
+
You can define a range of keysyms in one shot by providing a I<string>
with pattern B<list/PREFIX/MIDDLE/SUFFIX>, where the delimeter `/'
should be a character not used by the strings.
Its usage can be demonstrated by an example:
- URxvt.keysym.M-C-0x61: list|\e<M-C-|abc|>
+ URxvt.keysym.M-C-0x61: list|\033<M-C-|abc|>
The above line is equivalent to the following three lines:
- URxvt.keysym.Meta-Control-0x61: \e<M-C-a>
- URxvt.keysym.Meta-Control-0x62: \e<M-C-b>
- URxvt.keysym.Meta-Control-0x63: \e<M-C-c>
+ URxvt.keysym.Meta-Control-0x61: \033<M-C-a>
+ URxvt.keysym.Meta-Control-0x62: \033<M-C-b>
+ URxvt.keysym.Meta-Control-0x63: \033<M-C-c>
+
+If I<string> takes the form of C<command:STRING>, the specified B<STRING>
+is interpreted and executed as @@RXVT_NAME@@'s control sequence. For
+example the following means "change the current locale to C<zh_CN.GBK>
+when Control-Meta-c is being pressed":
+
+ URxvt.keysym.M-C-c: command:\033]701;zh_CN.GBK\007
+
+The following example will map Control-Meta-1 and Control-Meta-2 to
+the fonts C<suxuseuro> and C<9x15bold>, so you can have some limited
+font-switching at runtime:
-If I<string> takes the form of C<proto:STRING>, the specified B<STRING> is
-interpreted and executed as @@RXVT_NAME@@'s control sequence. For example,
-C<proto:\033]701;zh_CN.GBK\007> means: change the current locale to
-C<zh_CN.GBK>.
+ URxvt.keysym.M-C-1: command:\033]50;suxuseuro\007
+ URxvt.keysym.M-C-2: command:\033]50;9x15bold\007
+
+Other things are possible, e.g. resizing (see @@RXVT_NAME@@(7) for more
+info):
+
+ URxvt.keysym.M-C-3: command:\033[8;25;80t
+ URxvt.keysym.M-C-4: command:\033[8;48;110t
=back
=item B<Selection>:
-Left click at the beginning of the region, drag to the end of the
-region and release; Right click to extend the marked region; Left
-double-click to select a word; Left triple-click to select the entire
-line.
+Left click at the beginning of the region, drag to the end of the region
+and release; Right click to extend the marked region; Left double-click
+to select a word; Left triple-click to select the entire logical line
+(which can span multiple screen lines), unless modified by resource
+B<tripleclickwords>.
Starting a selection while pressing the B<Meta> key (or B<Meta+Ctrl> keys)
(Compile: I<frills>) will create a rectangular selection instead of a normal
=over 4
-=item 5.1: Basic method
+=item * 5.1: Basic method
This allows you to enter unicode characters using their hexcode.
by pressing C<Control> and C<Shift>, followed by C<6-7-1-D-SPACE-6-5-E-5>,
followed by releasing the modifier keys.
-=item 5.2: Keyboard symbols entry method
+=item * 5.2: Keyboard symbols entry method
This mode lets you input characters representing the keycap symbols of
your keyboard, if representable in the current locale encoding.
C<ISO Level 2 Switch>, although your intention might have been to enter a
reverse tab (Shift-Tab).
-=item 5.3: Screen-selection entry method
+=item * 5.3: Screen-selection entry method
While this is implemented already (it's basically the selection
mechanism), it could be extended by displaying a unicode character map.
-=item 5.4: Feedback method for identifying displayed characters for later input
+=item * 5.4: Feedback method for identifying displayed characters for later input
This method lets you display the unicode character code associated with
characters already displayed.
=head1 LOGIN STAMP
-B<@@RXVT_NAME@@> tries to write an entry into the I<utmp>(5) file so
-that it can be seen via the I<who(1)> command, and can accept messages.
-To allow this feature, B<@@RXVT_NAME@@> must be installed setuid root on
-some systems.
+B<@@RXVT_NAME@@> tries to write an entry into the I<utmp>(5) file so that
+it can be seen via the I<who(1)> command, and can accept messages. To
+allow this feature, B<@@RXVT_NAME@@> may need to be installed setuid root
+on some systems or setgid to root or to some other group on others.
=head1 COLORS AND GRAPHICS
=over 4
-=item B</etc/utmp>
-
-System file for login records.
-
=item B</usr/lib/X11/rgb.txt>
Color names.
rxvt [options] [-e command [ args ]]
DESCRIPTION
- rxvt-unicode, version 4.8, is a colour vt102 terminal emulator intended
+ rxvt-unicode, version 4.9, is a colour vt102 terminal emulator intended
as an *xterm*(1) replacement for users who do not require features such
as Tektronix 4014 emulation and toolkit-style configurability. As a
result, rxvt-unicode uses much less swap space -- a significant
Compile *XIM*: input method name. resource inputMethod.
-imlocale *string*
- The locale to use for opening the IM. You can use an LC_CTYPE of
- e.g. de_DE.UTF-8 for normal text processing but ja_JP.EUC-JP for the
- input extension to be able to input japanese characters while
- staying in another locale.
+ The locale to use for opening the IM. You can use an "LC_CTYPE" of
+ e.g. "de_DE.UTF-8" for normal text processing but "ja_JP.EUC-JP" for
+ the input extension to be able to input japanese characters while
+ staying in another locale. resource imLocale.
+
+ -imfont *fontset*
+ Set the font set to use for the X Input Method, see resource imFont
+ for more info.
+
+ -tcw
+ Change the meaning of triple-click selection with the left mouse
+ button. Instead of selecting a full line it will extend the
+ selection the end of the logical line only. resource
+ tripleclickwords.
-insecure
Enable "insecure" mode, which currently enables most of the escape
*name* of inputMethod to use; option -im.
imLocale: *name*
- The locale to use for opening the IM. You can use an LC_CTYPE of
- e.g. de_DE.UTF-8 for normal text processing but ja_JP.EUC-JP for the
- input extension to be able to input japanese characters while
+ The locale to use for opening the IM. You can use an "LC_CTYPE" of
+ e.g. "de_DE.UTF-8" for normal text processing but "ja_JP.EUC-JP" for
+ the input extension to be able to input japanese characters while
staying in another locale. option -imlocale.
+ imFont: *fontset*
+ Specify the font-set used for XIM styles "OverTheSpot" or
+ "OffTheSpot". It must be a standard X font set (XLFD patterns
+ separated by commas), i.e. it's not in the same format as the other
+ font lists used in rxvt. The default will be set-up to chose *any*
+ suitable found found, preferably one or two pixels differing in size
+ to the base font. option -imfont.
+
+ tripleclickwords: *boolean*
+ Change the meaning of triple-click selection with the left mouse
+ button. Instead of selecting a full line it will extend the
+ selection to the end of the logical line only. option -tcw.
+
insecure: *boolean*
Enables "insecure" mode. Rxvt-unicode offers some escape sequences
that echo arbitrary strings like the icon name or the locale. This
The NumLock, Meta and ISOLevel3 modifiers are usually aliased to
whatever modifier the NumLock key, Meta/Alt keys or ISO Level3
- Shift/AltGr keys are being mapped. AppKeypad is a artificial
- modifier mapped to the current application keymap mode state.
+ Shift/AltGr keys are being mapped. AppKeypad is a synthetic modifier
+ mapped to the current application keymap mode state.
The spellings of *key* can be obtained by using xev(1) command or
searching keysym macros from /usr/X11R6/include/X11/keysymdef.h and
URxvt.keysym.Meta-Control-0x63: \e<M-C-c>
If *string* takes the form of "proto:STRING", the specified STRING
- is interpreted and executed as rxvt's control sequence. For example,
+ is interpreted and executed as rxvt's control sequence. For example
+ the following means "change the current locale to "zh_CN.GBK" when
+ Control-Meta-c is being pressed":
+
+ URxvt.keysym.M-C-c: proto:\033]701;zh_CN.GBK\007
+
+ The following example will map Control-Meta-1 and Control-Meta-2 to
+ the fonts "suxuseuro" and "9x15bold", so you cna have some limited
+ font-switching at runtime:
+
+ URxvt.keysym.M-C-1: proto:\033]50;suxuseuro\007
+ URxvt.keysym.M-C-2: proto:\033]50;9x15bold\007
+
"proto:\033]701;zh_CN.GBK\007" means: change the current locale to
"zh_CN.GBK".
Left click at the beginning of the region, drag to the end of the
region and release; Right click to extend the marked region; Left
double-click to select a word; Left triple-click to select the
- entire line.
+ entire logical line (which can span multiple screen lines), unless
+ modified by resource tripleclickwords.
Starting a selection while pressing the Meta key (or Meta+Ctrl keys)
(Compile: *frills*) will create a rectangular selection instead of a
the rest is available when rxvt-unicode was compiled with
"--enable-iso14755".
- 5.1: Basic method
+ * 5.1: Basic method
This allows you to enter unicode characters using their hexcode.
Start by pressing and holding both "Control" and "Shift", then enter
easily by pressing "Control" and "Shift", followed by
"6-7-1-D-SPACE-6-5-E-5", followed by releasing the modifier keys.
- 5.2: Keyboard symbols entry method
+ * 5.2: Keyboard symbols entry method
This mode lets you input characters representing the keycap symbols
of your keyboard, if representable in the current locale encoding.
enter the symbol for "ISO Level 2 Switch", although your intention
might have been to enter a reverse tab (Shift-Tab).
- 5.3: Screen-selection entry method
+ * 5.3: Screen-selection entry method
While this is implemented already (it's basically the selection
mechanism), it could be extended by displaying a unicode character
map.
- 5.4: Feedback method for identifying displayed characters for later
+ * 5.4: Feedback method for identifying displayed characters for later
input
This method lets you display the unicode character code associated
with characters already displayed.
LOGIN STAMP
rxvt tries to write an entry into the *utmp*(5) file so that it can be
seen via the *who(1)* command, and can accept messages. To allow this
- feature, rxvt must be installed setuid root on some systems.
+ feature, rxvt may need to be installed setuid root on some systems or
+ setgid to root or to some other group on others.
COLORS AND GRAPHICS
In addition to the default foreground and background colours, rxvt can
variables RXVTPATH and PATH to find XPM files.
FILES
- /etc/utmp
- System file for login records.
-
/usr/lib/X11/rgb.txt
Color names.
</dd>
<dd>
<pre>
- URxvt*keysym.Home: \e[1~
- URxvt*keysym.End: \e[4~
- URxvt*keysym.C-apostrophe: \e<C-'>
- URxvt*keysym.C-slash: \e<C-/>
- URxvt*keysym.C-semicolon: \e<C-;>
- URxvt*keysym.C-grave: \e<C-`>
- URxvt*keysym.C-comma: \e<C-,>
- URxvt*keysym.C-period: \e<C-.>
- URxvt*keysym.C-0x60: \e<C-`>
- URxvt*keysym.C-Tab: \e<C-Tab>
- URxvt*keysym.C-Return: \e<C-Return>
- URxvt*keysym.S-Return: \e<S-Return>
- URxvt*keysym.S-space: \e<S-Space>
- URxvt*keysym.M-Up: \e<M-Up>
- URxvt*keysym.M-Down: \e<M-Down>
- URxvt*keysym.M-Left: \e<M-Left>
- URxvt*keysym.M-Right: \e<M-Right>
- URxvt*keysym.M-C-0: list.0123456789.\e<M-C-.>
- URxvt*keysym.M-C-a: list.abcdefghijklmnopqrstuvwxyz.\033<M-C-.>
- URxvt*keysym.F12: proto:\033]701;zh_CN.GBK\007</pre>
+ URxvt.keysym.Home: \e[1~
+ URxvt.keysym.End: \e[4~
+ URxvt.keysym.C-apostrophe: \e<C-'>
+ URxvt.keysym.C-slash: \e<C-/>
+ URxvt.keysym.C-semicolon: \e<C-;>
+ URxvt.keysym.C-grave: \e<C-`>
+ URxvt.keysym.C-comma: \e<C-,>
+ URxvt.keysym.C-period: \e<C-.>
+ URxvt.keysym.C-0x60: \e<C-`>
+ URxvt.keysym.C-Tab: \e<C-Tab>
+ URxvt.keysym.C-Return: \e<C-Return>
+ URxvt.keysym.S-Return: \e<S-Return>
+ URxvt.keysym.S-space: \e<S-Space>
+ URxvt.keysym.M-Up: \e<M-Up>
+ URxvt.keysym.M-Down: \e<M-Down>
+ URxvt.keysym.M-Left: \e<M-Left>
+ URxvt.keysym.M-Right: \e<M-Right>
+ URxvt.keysym.M-C-0: list \e<M-C- 0123456789 >
+ URxvt.keysym.M-C-a: list \033<M-C- abcdefghijklmnopqrstuvwxyz >
+ URxvt.keysym.F12: proto:\033]701;zh_CN.GBK\007</pre>
+</dd>
+<dd>
+<p>See some more examples in the documentation for the <strong>keysym</strong> resource.</p>
</dd>
<p></p>
<dt><strong><a name="item_i_27m_using_keyboard_model_xxx_that_has_extra_prio">I'm using keyboard model XXX that has extra Prior/Next/Insert keys.
F35 == Next</pre>
</dd>
<dd>
-<p>Rather than have rxvt-unicode try to accommodate all the various possible keyboard
-mappings, it is better to use `xmodmap' to remap the keys as required for
-your particular machine.</p>
+<p>Rather than have rxvt-unicode try to accommodate all the various possible
+keyboard mappings, it is better to use `xmodmap' to remap the keys as
+required for your particular machine.</p>
</dd>
<dt><strong><a name="item_how_do_i_distinguish_if_i_27m_running_rxvt_2dunico">How do I distinguish if I'm running rxvt-unicode or a regular xterm?
I need this to decide about setting colors etc.</a></strong><br />
Save Cursor (SC)
</dd>
<p></p>
-<dt><strong><a name="item_esc__5b_ps_x"><strong><code>ESC [ Ps x</code> </strong>></a></strong><br />
+<dt><strong><a name="item_esc__5b_ps_3bpt_t"><strong><code>ESC [ Ps;Pt t</code> </strong>></a></strong><br />
</dt>
<dd>
-Request Terminal Parameters (DECREQTPARM)
+Window Operations
</dd>
-<p></p>
+<table>
+<tr><td>Ps = 1</td><td>Deiconify (map) window</td></tr>
+<tr><td>Ps = 2</td><td>Iconify window</td></tr>
+<tr><td>Ps = 3</td><td>ESC [ 3 ; X ; Y t Move window to (X|Y)</td></tr>
+<tr><td>Ps = 4</td><td>ESC [ 4 ; W ; H t Resize to WxH pixels</td></tr>
+<tr><td>Ps = 5</td><td>Raise window</td></tr>
+<tr><td>Ps = 6</td><td>Lower window</td></tr>
+<tr><td>Ps = 7</td><td>Refresh screen once</td></tr>
+<tr><td>Ps = 8</td><td>ESC [ 4 ; C ; R t Resize to C columns and R rows</td></tr>
+<tr><td>Ps = 11</td><td>Report window state (responds with Ps = 1 or Ps = 2</td></tr>
+<tr><td>Ps = 13</td><td>Report window position (responds with Ps = 3)</td></tr>
+<tr><td>Ps = 14</td><td>Report window pixel size (responds with Ps = 4)</td></tr>
+<tr><td>Ps = 18</td><td>Report window text size (responds with Ps = 7)</td></tr>
+<tr><td>Ps = 19</td><td>Currently the same as Ps = 18, but responds with Ps = 9</td></tr>
+<tr><td>Ps = 20</td><td>Reports icon label (ESC ] L NAME \234)</td></tr>
+<tr><td>Ps = 21</td><td>Reports window title (ESC ] l NAME \234)</td></tr>
+<tr><td>Ps = 24..</td><td>Set window height to Ps rows</td></tr>
+</table><p></p>
<dt><strong><a name="item_esc__5b_u"><strong><code>ESC [ u</code> </strong>></a></strong><br />
</dt>
<dd>
Restore Cursor
</dd>
+<p></p>
+<dt><strong><a name="item_esc__5b_ps_x"><strong><code>ESC [ Ps x</code> </strong>></a></strong><br />
+</dt>
+<dd>
+Request Terminal Parameters (DECREQTPARM)
+</dd>
<p></p></dl>
<p></p>
<p>
.\" ========================================================================
.\"
.IX Title "rxvt 7"
-.TH rxvt 7 "2005-01-18" "4.8" "RXVT-UNICODE"
+.TH rxvt 7 "2005-02-03" "4.9" "RXVT-UNICODE"
.SH "NAME"
RXVT REFERENCE \- FAQ, command sequences and other background information
.SH "FREQUENTLY ASKED QUESTIONS"
Here's an example for a URxvt session started using `@@RXVT_NAME@@ \-name URxvt'
.Sp
.Vb 20
-\& URxvt*keysym.Home: \ee[1~
-\& URxvt*keysym.End: \ee[4~
-\& URxvt*keysym.C-apostrophe: \ee<C-'>
-\& URxvt*keysym.C-slash: \ee<C-/>
-\& URxvt*keysym.C-semicolon: \ee<C-;>
-\& URxvt*keysym.C-grave: \ee<C-`>
-\& URxvt*keysym.C-comma: \ee<C-,>
-\& URxvt*keysym.C-period: \ee<C-.>
-\& URxvt*keysym.C-0x60: \ee<C-`>
-\& URxvt*keysym.C-Tab: \ee<C-Tab>
-\& URxvt*keysym.C-Return: \ee<C-Return>
-\& URxvt*keysym.S-Return: \ee<S-Return>
-\& URxvt*keysym.S-space: \ee<S-Space>
-\& URxvt*keysym.M-Up: \ee<M-Up>
-\& URxvt*keysym.M-Down: \ee<M-Down>
-\& URxvt*keysym.M-Left: \ee<M-Left>
-\& URxvt*keysym.M-Right: \ee<M-Right>
-\& URxvt*keysym.M-C-0: list.0123456789.\ee<M-C-.>
-\& URxvt*keysym.M-C-a: list.abcdefghijklmnopqrstuvwxyz.\e033<M-C-.>
-\& URxvt*keysym.F12: proto:\e033]701;zh_CN.GBK\e007
+\& URxvt.keysym.Home: \ee[1~
+\& URxvt.keysym.End: \ee[4~
+\& URxvt.keysym.C-apostrophe: \ee<C-'>
+\& URxvt.keysym.C-slash: \ee<C-/>
+\& URxvt.keysym.C-semicolon: \ee<C-;>
+\& URxvt.keysym.C-grave: \ee<C-`>
+\& URxvt.keysym.C-comma: \ee<C-,>
+\& URxvt.keysym.C-period: \ee<C-.>
+\& URxvt.keysym.C-0x60: \ee<C-`>
+\& URxvt.keysym.C-Tab: \ee<C-Tab>
+\& URxvt.keysym.C-Return: \ee<C-Return>
+\& URxvt.keysym.S-Return: \ee<S-Return>
+\& URxvt.keysym.S-space: \ee<S-Space>
+\& URxvt.keysym.M-Up: \ee<M-Up>
+\& URxvt.keysym.M-Down: \ee<M-Down>
+\& URxvt.keysym.M-Left: \ee<M-Left>
+\& URxvt.keysym.M-Right: \ee<M-Right>
+\& URxvt.keysym.M-C-0: list \ee<M-C- 0123456789 >
+\& URxvt.keysym.M-C-a: list \e033<M-C- abcdefghijklmnopqrstuvwxyz >
+\& URxvt.keysym.F12: proto:\e033]701;zh_CN.GBK\e007
.Ve
+.Sp
+See some more examples in the documentation for the \fBkeysym\fR resource.
.IP "I'm using keyboard model \s-1XXX\s0 that has extra Prior/Next/Insert keys. How do I make use of them? For example, the Sun Keyboard type 4 has the following mappings that rxvt-unicode doesn't recognize." 4
.IX Item "I'm using keyboard model XXX that has extra Prior/Next/Insert keys. How do I make use of them? For example, the Sun Keyboard type 4 has the following mappings that rxvt-unicode doesn't recognize."
.Vb 6
\& F35 == Next
.Ve
.Sp
-Rather than have rxvt-unicode try to accommodate all the various possible keyboard
-mappings, it is better to use `xmodmap' to remap the keys as required for
-your particular machine.
+Rather than have rxvt-unicode try to accommodate all the various possible
+keyboard mappings, it is better to use `xmodmap' to remap the keys as
+required for your particular machine.
.IP "How do I distinguish if I'm running rxvt-unicode or a regular xterm? I need this to decide about setting colors etc." 4
.IX Item "How do I distinguish if I'm running rxvt-unicode or a regular xterm? I need this to decide about setting colors etc."
rxvt and rxvt-unicode always export the variable \*(L"\s-1COLORTERM\s0\*(R", so you can
.el .IP "\fB\f(CB\*(C`ESC [ s\*(C'\fB\fR" 4
.IX Item "ESC [ s"
Save Cursor (\s-1SC\s0)
-.ie n .IP "\fB\fB\*(C`ESC [ Ps x\*(C'\fB\fR" 4
-.el .IP "\fB\f(CB\*(C`ESC [ Ps x\*(C'\fB\fR" 4
-.IX Item "ESC [ Ps x"
-Request Terminal Parameters (\s-1DECREQTPARM\s0)
+.ie n .IP "\fB\fB\*(C`ESC [ Ps;Pt t\*(C'\fB\fR" 4
+.el .IP "\fB\f(CB\*(C`ESC [ Ps;Pt t\*(C'\fB\fR" 4
+.IX Item "ESC [ Ps;Pt t"
+Window Operations
+.TS
+l l .
+Ps = 1 Deiconify (map) window
+Ps = 2 Iconify window
+Ps = 3 ESC [ 3 ; X ; Y t Move window to (X|Y)
+Ps = 4 ESC [ 4 ; W ; H t Resize to WxH pixels
+Ps = 5 Raise window
+Ps = 6 Lower window
+Ps = 7 Refresh screen once
+Ps = 8 ESC [ 4 ; C ; R t Resize to C columns and R rows
+Ps = 11 Report window state (responds with Ps = 1 or Ps = 2
+Ps = 13 Report window position (responds with Ps = 3)
+Ps = 14 Report window pixel size (responds with Ps = 4)
+Ps = 18 Report window text size (responds with Ps = 7)
+Ps = 19 Currently the same as Ps = 18, but responds with Ps = 9
+Ps = 20 Reports icon label (ESC ] L NAME \234)
+Ps = 21 Reports window title (ESC ] l NAME \234)
+Ps = 24.. Set window height to Ps rows
+.TE
+
.ie n .IP "\fB\fB\*(C`ESC [ u\*(C'\fB\fR" 4
.el .IP "\fB\f(CB\*(C`ESC [ u\*(C'\fB\fR" 4
.IX Item "ESC [ u"
Restore Cursor
+.ie n .IP "\fB\fB\*(C`ESC [ Ps x\*(C'\fB\fR" 4
+.el .IP "\fB\f(CB\*(C`ESC [ Ps x\*(C'\fB\fR" 4
+.IX Item "ESC [ Ps x"
+Request Terminal Parameters (\s-1DECREQTPARM\s0)
.PP
.IX Xref "PrivateModes"
Here's an example for a URxvt session started using `@@RXVT_NAME@@ -name URxvt'
- URxvt*keysym.Home: \e[1~
- URxvt*keysym.End: \e[4~
- URxvt*keysym.C-apostrophe: \e<C-'>
- URxvt*keysym.C-slash: \e<C-/>
- URxvt*keysym.C-semicolon: \e<C-;>
- URxvt*keysym.C-grave: \e<C-`>
- URxvt*keysym.C-comma: \e<C-,>
- URxvt*keysym.C-period: \e<C-.>
- URxvt*keysym.C-0x60: \e<C-`>
- URxvt*keysym.C-Tab: \e<C-Tab>
- URxvt*keysym.C-Return: \e<C-Return>
- URxvt*keysym.S-Return: \e<S-Return>
- URxvt*keysym.S-space: \e<S-Space>
- URxvt*keysym.M-Up: \e<M-Up>
- URxvt*keysym.M-Down: \e<M-Down>
- URxvt*keysym.M-Left: \e<M-Left>
- URxvt*keysym.M-Right: \e<M-Right>
- URxvt*keysym.M-C-0: list.0123456789.\e<M-C-.>
- URxvt*keysym.M-C-a: list.abcdefghijklmnopqrstuvwxyz.\033<M-C-.>
- URxvt*keysym.F12: proto:\033]701;zh_CN.GBK\007
+ URxvt.keysym.Home: \033[1~
+ URxvt.keysym.End: \033[4~
+ URxvt.keysym.C-apostrophe: \033<C-'>
+ URxvt.keysym.C-slash: \033<C-/>
+ URxvt.keysym.C-semicolon: \033<C-;>
+ URxvt.keysym.C-grave: \033<C-`>
+ URxvt.keysym.C-comma: \033<C-,>
+ URxvt.keysym.C-period: \033<C-.>
+ URxvt.keysym.C-0x60: \033<C-`>
+ URxvt.keysym.C-Tab: \033<C-Tab>
+ URxvt.keysym.C-Return: \033<C-Return>
+ URxvt.keysym.S-Return: \033<S-Return>
+ URxvt.keysym.S-space: \033<S-Space>
+ URxvt.keysym.M-Up: \033<M-Up>
+ URxvt.keysym.M-Down: \033<M-Down>
+ URxvt.keysym.M-Left: \033<M-Left>
+ URxvt.keysym.M-Right: \033<M-Right>
+ URxvt.keysym.M-C-0: list \033<M-C- 0123456789 >
+ URxvt.keysym.M-C-a: list \033<M-C- abcdefghijklmnopqrstuvwxyz >
+ URxvt.keysym.F12: command:\033]701;zh_CN.GBK\007
+
+See some more examples in the documentation for the B<keysym> resource.
=item I'm using keyboard model XXX that has extra Prior/Next/Insert keys.
How do I make use of them? For example, the Sun Keyboard type 4
F33 == End
F35 == Next
-Rather than have rxvt-unicode try to accommodate all the various possible keyboard
-mappings, it is better to use `xmodmap' to remap the keys as required for
-your particular machine.
+Rather than have rxvt-unicode try to accommodate all the various possible
+keyboard mappings, it is better to use `xmodmap' to remap the keys as
+required for your particular machine.
=item How do I distinguish if I'm running rxvt-unicode or a regular xterm?
I need this to decide about setting colors etc.
Save Cursor (SC)
-=item B<< C<ESC [ Ps x> >>
+=item B<< C<ESC [ Ps;Pt t> >>
-Request Terminal Parameters (DECREQTPARM)
+Window Operations
+
+=begin table
+
+ B<< C<Ps = 1> >> Deiconify (map) window
+ B<< C<Ps = 2> >> Iconify window
+ B<< C<Ps = 3> >> B<< C<ESC [ 3 ; X ; Y t> >> Move window to (X|Y)
+ B<< C<Ps = 4> >> B<< C<ESC [ 4 ; H ; W t> >> Resize to WxH pixels
+ B<< C<Ps = 5> >> Raise window
+ B<< C<Ps = 6> >> Lower window
+ B<< C<Ps = 7> >> Refresh screen once
+ B<< C<Ps = 8> >> B<< C<ESC [ 8 ; R ; C t> >> Resize to R rows and C columns
+ B<< C<Ps = 11> >> Report window state (responds with C<Ps = 1> or C<Ps = 2>
+ B<< C<Ps = 13> >> Report window position (responds with C<Ps = 3>)
+ B<< C<Ps = 14> >> Report window pixel size (responds with C<Ps = 4>)
+ B<< C<Ps = 18> >> Report window text size (responds with C<Ps = 7>)
+ B<< C<Ps = 19> >> Currently the same as C<Ps = 18>, but responds with C<Ps = 9>
+ B<< C<Ps = 20> >> Reports icon label (B<< C<ESC ] L NAME \234> >>)
+ B<< C<Ps = 21> >> Reports window title (B<< C<ESC ] l NAME \234> >>)
+ B<< C<Ps = 24..> >> Set window height to C<Ps> rows
+
+=end table
=item B<< C<ESC [ u> >>
Restore Cursor
+=item B<< C<ESC [ Ps x> >>
+
+Request Terminal Parameters (DECREQTPARM)
+
=back
X<PrivateModes>
Here's an example for a URxvt session started using `rxvt -name
URxvt'
- URxvt*keysym.Home: \e[1~
- URxvt*keysym.End: \e[4~
- URxvt*keysym.C-apostrophe: \e<C-'>
- URxvt*keysym.C-slash: \e<C-/>
- URxvt*keysym.C-semicolon: \e<C-;>
- URxvt*keysym.C-grave: \e<C-`>
- URxvt*keysym.C-comma: \e<C-,>
- URxvt*keysym.C-period: \e<C-.>
- URxvt*keysym.C-0x60: \e<C-`>
- URxvt*keysym.C-Tab: \e<C-Tab>
- URxvt*keysym.C-Return: \e<C-Return>
- URxvt*keysym.S-Return: \e<S-Return>
- URxvt*keysym.S-space: \e<S-Space>
- URxvt*keysym.M-Up: \e<M-Up>
- URxvt*keysym.M-Down: \e<M-Down>
- URxvt*keysym.M-Left: \e<M-Left>
- URxvt*keysym.M-Right: \e<M-Right>
- URxvt*keysym.M-C-0: list.0123456789.\e<M-C-.>
- URxvt*keysym.M-C-a: list.abcdefghijklmnopqrstuvwxyz.\033<M-C-.>
- URxvt*keysym.F12: proto:\033]701;zh_CN.GBK\007
+ URxvt.keysym.Home: \e[1~
+ URxvt.keysym.End: \e[4~
+ URxvt.keysym.C-apostrophe: \e<C-'>
+ URxvt.keysym.C-slash: \e<C-/>
+ URxvt.keysym.C-semicolon: \e<C-;>
+ URxvt.keysym.C-grave: \e<C-`>
+ URxvt.keysym.C-comma: \e<C-,>
+ URxvt.keysym.C-period: \e<C-.>
+ URxvt.keysym.C-0x60: \e<C-`>
+ URxvt.keysym.C-Tab: \e<C-Tab>
+ URxvt.keysym.C-Return: \e<C-Return>
+ URxvt.keysym.S-Return: \e<S-Return>
+ URxvt.keysym.S-space: \e<S-Space>
+ URxvt.keysym.M-Up: \e<M-Up>
+ URxvt.keysym.M-Down: \e<M-Down>
+ URxvt.keysym.M-Left: \e<M-Left>
+ URxvt.keysym.M-Right: \e<M-Right>
+ URxvt.keysym.M-C-0: list \e<M-C- 0123456789 >
+ URxvt.keysym.M-C-a: list \033<M-C- abcdefghijklmnopqrstuvwxyz >
+ URxvt.keysym.F12: proto:\033]701;zh_CN.GBK\007
+
+ See some more examples in the documentation for the keysym resource.
I'm using keyboard model XXX that has extra Prior/Next/Insert keys. How
do I make use of them? For example, the Sun Keyboard type 4 has the
"ESC [ s"
Save Cursor (SC)
- "ESC [ Ps x"
- Request Terminal Parameters (DECREQTPARM)
+ "ESC [ Ps;Pt t"
+ Window Operations
+
+ Ps = 1 Deiconify (map) window
+ Ps = 2 Iconify window
+ Ps = 3 ESC [ 3 ; X ; Y t Move window to (X|Y)
+ Ps = 4 ESC [ 4 ; W ; H t Resize to WxH pixels
+ Ps = 5 Raise window
+ Ps = 6 Lower window
+ Ps = 7 Refresh screen once
+ Ps = 8 ESC [ 4 ; C ; R t Resize to C columns and R rows
+ Ps = 11 Report window state (responds with Ps = 1 or Ps = 2
+ Ps = 13 Report window position (responds with Ps = 3)
+ Ps = 14 Report window pixel size (responds with Ps = 4)
+ Ps = 18 Report window text size (responds with Ps = 7)
+ Ps = 19 Currently the same as Ps = 18, but responds with Ps = 9
+ Ps = 20 Reports icon label (ESC ] L NAME \234)
+ Ps = 21 Reports window title (ESC ] l NAME \234)
+ Ps = 24.. Set window height to Ps rows
"ESC [ u"
Restore Cursor
+ "ESC [ Ps x"
+ Request Terminal Parameters (DECREQTPARM)
+
DEC Private Modes
--with-codesets=zh,jp,kr --enable-menubar --enable-tinting \
--enable-cursor-blink --enable-text-blink --enable-fading \
--enable-plain-scroll --enable-rxvt-scroll --enable-combining --enable-iso14755 \
- --enable-font-styles \
+ --enable-font-styles --enable-xpm-background --enable-xgetdefault \
--enable-next-scroll --enable-xterm-scroll \
"$@"
keysym_t keyboard_manager::stock_keymap[] = {
/* examples */
- /* keysym, state, range, handler, str */
-//{XK_ISO_Left_Tab, 0, 1, NORMAL, "\033[Z"},
-//{ 'a', 0, 26, RANGE_META8, "a" "%c"},
-//{ 'a', ControlMask, 26, RANGE_META8, "\ 1" "%c"},
-//{ XK_Left, 0, 4, LIST, "DACBZ" "\033[Z"},
-//{ XK_Left, ShiftMask, 4, LIST, "dacbZ" "\033[Z"},
-//{ XK_Left, ControlMask, 4, LIST, "dacbZ" "\033OZ"},
-//{ XK_Tab, ControlMask, 1, NORMAL, "\033<C-Tab>"},
-//{ XK_apostrophe, ControlMask, 1, NORMAL, "\033<C-'>"},
-//{ XK_slash, ControlMask, 1, NORMAL, "\033<C-/>"},
-//{ XK_semicolon, ControlMask, 1, NORMAL, "\033<C-;>"},
-//{ XK_grave, ControlMask, 1, NORMAL, "\033<C-`>"},
-//{ XK_comma, ControlMask, 1, NORMAL, "\033<C-\054>"},
-//{ XK_Return, ControlMask, 1, NORMAL, "\033<C-Return>"},
-//{ XK_Return, ShiftMask, 1, NORMAL, "\033<S-Return>"},
-//{ ' ', ShiftMask, 1, NORMAL, "\033<S-Space>"},
-//{ '.', ControlMask, 1, NORMAL, "\033<C-.>"},
-//{ '0', ControlMask, 10, RANGE, "0" "\033<C-%c>"},
-//{ '0', MetaMask|ControlMask, 10, RANGE, "0" "\033<M-C-%c>"},
-//{ 'a', MetaMask|ControlMask, 26, RANGE, "a" "\033<M-C-%c>"},
+ /* keysym, state, range, handler, str */
+//{XK_ISO_Left_Tab, 0, 1, keysym_t::NORMAL, "\033[Z"},
+//{ 'a', 0, 26, keysym_t::RANGE_META8, "a" "%c"},
+//{ 'a', ControlMask, 26, keysym_t::RANGE_META8, "\ 1" "%c"},
+//{ XK_Left, 0, 4, keysym_t::LIST, ".\033[.DACB."},
+//{ XK_Left, ShiftMask, 4, keysym_t::LIST, ".\033[.dacb."},
+//{ XK_Left, ControlMask, 4, keysym_t::LIST, ".\033O.dacb."},
+//{ XK_Tab, ControlMask, 1, keysym_t::NORMAL, "\033<C-Tab>"},
+//{ XK_apostrophe, ControlMask, 1, keysym_t::NORMAL, "\033<C-'>"},
+//{ XK_slash, ControlMask, 1, keysym_t::NORMAL, "\033<C-/>"},
+//{ XK_semicolon, ControlMask, 1, keysym_t::NORMAL, "\033<C-;>"},
+//{ XK_grave, ControlMask, 1, keysym_t::NORMAL, "\033<C-`>"},
+//{ XK_comma, ControlMask, 1, keysym_t::NORMAL, "\033<C-\054>"},
+//{ XK_Return, ControlMask, 1, keysym_t::NORMAL, "\033<C-Return>"},
+//{ XK_Return, ShiftMask, 1, keysym_t::NORMAL, "\033<S-Return>"},
+//{ ' ', ShiftMask, 1, keysym_t::NORMAL, "\033<S-Space>"},
+//{ '.', ControlMask, 1, keysym_t::NORMAL, "\033<C-.>"},
+//{ '0', ControlMask, 10, keysym_t::RANGE, "0" "\033<C-%c>"},
+//{ '0', MetaMask|ControlMask, 10, keysym_t::RANGE, "0" "\033<M-C-%c>"},
+//{ 'a', MetaMask|ControlMask, 26, keysym_t::RANGE, "a" "\033<M-C-%c>"},
};
static void
output_string (rxvt_term *rt, const char *str)
{
- if (strncmp (str, "proto:", 6) == 0)
- rt->cmd_write ((unsigned char *)str + 6, strlen (str) - 6);
+ if (strncmp (str, "command:", 8) == 0)
+ rt->cmd_write ((unsigned char *)str + 8, strlen (str) - 8);
else
rt->tt_write ((unsigned char *)str, strlen (str));
}
}
// and allocate just enough space
- //sorted_keymap.reserve (hash[i - 1] + hash_budget_size[i - 1]);
sorted_keymap.insert (sorted_keymap.begin (), index + hash_budget_size [i - 1], 0);
// fill in sorted_keymap
assert (index >= 0);
keysym_t *b = keymap [index];
assert (i == (signed) index || // the normally expected result
- (a->keysym + j) >= b->keysym && (a->keysym + j) <= (b->keysym + b->range) && compare_priority (a, b) <= 0); // is effectively the same
+ (a->keysym + j) >= b->keysym && (a->keysym + j) <= (b->keysym + b->range) && compare_priority (a, b) <= 0); // is effectively the same or a closer match
}
}
#endif
// match only the specified bits in state and ignore others
&& (key->state & state) == key->state)
return index;
- else if (key->keysym > keysym && key->range == 1)
+ else if ((key->keysym & KEYSYM_HASH_MASK) > hashkey && key->range == 1)
return -1;
}
-#define VERSION "4.8"
-#define VSTRING "40800"
-#define DATE "2005-01-18"
-#define LSMDATE "18JAN05"
-#define LIBVERSION "4:8:0"
+#define VERSION "4.9"
+#define VSTRING "40900"
+#define DATE "2005-02-03"
+#define LSMDATE "02FEB03"
+#define LIBVERSION "4:9:0"
BOOL (Rs_jumpScroll, "jumpScroll", "j", Opt_jumpScroll, "jump scrolling"),
BOOL (Rs_pastableTabs, "pastableTabs", "ptab", Opt_pastableTabs, "tab characters are pastable"),
#ifdef HAVE_SCROLLBARS
+ RSTRG (Rs_scrollstyle, "scrollstyle", "mode"),
BOOL (Rs_scrollBar, "scrollBar", "sb", Opt_scrollBar, "scrollbar"),
BOOL (Rs_scrollBar_right, "scrollBar_right", "sr", Opt_scrollBar_right, "scrollbar right"),
BOOL (Rs_scrollBar_floating, "scrollBar_floating", "st", Opt_scrollBar_floating, "scrollbar without a trough"),
+ RSTRG (Rs_scrollBar_align, "scrollBar_align", "mode"),
+ STRG (Rs_scrollBar_thickness, "thickness", "sbt", "number", "scrollbar thickness/width in pixels"),
#endif
BOOL (Rs_scrollTtyOutput, "scrollTtyOutput", NULL, Opt_scrollTtyOutput, NULL),
BOOL (Rs_scrollTtyOutput, NULL, "si", Opt_Reverse | Opt_scrollTtyOutput, "scroll-on-tty-output inhibit"),
#ifdef OPTION_HC
STRG (Rs_color + Color_HC, "highlightColor", "hc", "color", "highlight color"),
#endif
+#ifndef NO_CURSORCOLOR
+ STRG (Rs_color + Color_cursor, "cursorColor", "cr", "color", "cursor color"),
+ /* command-line option = resource name */
+ RSTRG (Rs_color + Color_cursor2, "cursorColor2", "color"),
+#endif /* NO_CURSORCOLOR */
+ STRG (Rs_color + Color_pointer_fg, "pointerColor", "pr", "color", "pointer color"),
+ STRG (Rs_color + Color_pointer_bg, "pointerColor2", "pr2", "color", "pointer bg color"),
+ STRG (Rs_color + Color_border, "borderColor", "bd", "color", "border color"),
#if defined (XPM_BACKGROUND) || (MENUBAR_MAX)
RSTRG (Rs_path, "path", "search path"),
#endif /* defined (XPM_BACKGROUND) || (MENUBAR_MAX) */
#ifdef USE_XIM
STRG (Rs_inputMethod, "inputMethod", "im", "name", "name of input method"),
STRG (Rs_preeditType, "preeditType", "pt", "style", "input style: style = OverTheSpot|OffTheSpot|Root"),
-#if defined(HAVE_XSETLOCALE) || defined(HAVE_SETLOCALE)
STRG (Rs_imLocale, "imLocale", "imlocale", "string", "locale to use for input method"),
-#endif
+ STRG (Rs_imFont, "imFont", "imfont", "fontname", "fontset for styles OverTheSpot and OffTheSpot"),
#endif /* USE_XIM */
STRG (Rs_name, NULL, "name", "string", "client instance, icon, and title strings"),
STRG (Rs_title, "title", "title", "string", "title name for window"),
STRG (Rs_title, NULL, "T", NULL, NULL), /* short form */
STRG (Rs_iconName, "iconName", "n", "string", "icon name for window"),
-#ifndef NO_CURSORCOLOR
- STRG (Rs_color + Color_cursor, "cursorColor", "cr", "color", "cursor color"),
- /* command-line option = resource name */
- RSTRG (Rs_color + Color_cursor2, "cursorColor2", "color"),
-#endif /* NO_CURSORCOLOR */
- STRG (Rs_color + Color_pointer_fg, "pointerColor", "pr", "color", "pointer color"),
- STRG (Rs_color + Color_pointer_bg, "pointerColor2", "pr2", "color", "pointer bg color"),
- STRG (Rs_color + Color_border, "borderColor", "bd", "color", "border color"),
STRG (Rs_saveLines, "saveLines", "sl", "number", "number of scrolled lines to save"),
#if ENABLE_FRILLS
STRG (Rs_ext_bwidth, "externalBorder", "w", "number", "external border in pixels"),
BOOL (Rs_borderLess, "borderLess", "bl", Opt_borderLess, "borderless window"),
STRG (Rs_lineSpace, "lineSpace", "lsp", "number", "number of extra pixels between rows"),
#endif
- STRG (Rs_scrollBar_thickness, "thickness", "sbt", "number", "scrollbar thickness/width in pixels"),
#ifdef POINTER_BLANK
RSTRG (Rs_pointerBlankDelay, "pointerBlankDelay", "number"),
#endif
RSTRG (Rs_delete_key, "deletekey", "string"),
#endif
RSTRG (Rs_selectstyle, "selectstyle", "mode"),
- RSTRG (Rs_scrollstyle, "scrollstyle", "mode"),
-#ifdef HAVE_SCROLLBARS
- RSTRG (Rs_scrollBar_align, "scrollBar_align", "mode"),
-#endif
#ifdef PRINTPIPE
RSTRG (Rs_print_pipe, "print-pipe", "string"),
#endif
STRG (Rs_modifier, "modifier", "mod", "modifier", "meta modifier = alt|meta|hyper|super|mod1|...|mod5"),
- INFO ("xrm", "string", "X resource"),
#ifdef CUTCHAR_RESOURCE
RSTRG (Rs_cutchars, "cutchars", "string"),
#endif /* CUTCHAR_RESOURCE */
BOOL (Rs_secondaryScreen, "secondaryScreen", "ssc", Opt_secondaryScreen, "enable secondary screen"),
BOOL (Rs_secondaryScroll, "secondaryScroll", "ssr", Opt_secondaryScroll, "enable secondary screen scroll"),
#endif
+#if !defined(NO_RESOURCES) && defined(USE_XGETDEFAULT)
+ INFO ("xrm", "string", "X resource"),
+#endif
INFO ("e", "command arg ...", "command to execute")
};
XrmValue *value,
XPointer closure __attribute__((unused)))
{
- int last;
+ int last;
for (last = 0; quarks[last] != NULLQUARK; last++) /* look for last quark in list */
;
+
last--;
GET_R->parse_keysym (XrmQuarkToString (quarks[last]), (char *)value->addr);//D//TODO
return False;
int
rxvt_term::parse_keysym (const char *str, const char *arg)
{
- int n, sym;
+ int n, sym;
unsigned int state = 0;
- const char *pmodend = NULL;
- char *newarg = NULL;
- char newargstr[NEWARGLIM];
+ const char *pmodend = NULL;
+ char *newarg = NULL;
+ char newargstr[NEWARGLIM];
if (arg == NULL)
{
# ifndef HAVE_BOTH_XRESOURCE_FILES
break;
# endif
-
}
}
}
# else /* USE_XGETDEFAULT */
/* get resources the hard way, but save lots of memory */
- FILE *fd = NULL;
- char *home;
+ FILE *fd = NULL;
+ char *home;
if ((home = getenv ("HOME")) != NULL)
{
- unsigned int i, len = strlen (home) + 2;
- char *f = NULL;
+ unsigned int i, len = strlen (home) + 2;
+ char *f = NULL;
for (i = 0; i < (sizeof (xnames) / sizeof (xnames[0])); i++)
{
- f = (char *)rxvt_realloc (f, (len + strlen (xnames[i])) * sizeof (char));
+ f = (char *)rxvt_realloc (f, len + strlen (xnames[i]));
sprintf (f, "%s/%s", home, xnames[i]);
if ((fd = fopen (f, "r")) != NULL)
break;
}
+
free (f);
}
/*