From f3605c3f73f5c61da4eeb3a4b52165e016f328fe Mon Sep 17 00:00:00 2001 From: root Date: Thu, 3 Feb 2005 10:24:09 +0000 Subject: [PATCH] *** empty log message *** --- Changes | 26 ++++++++++--- README.FAQ | 42 +++++++++++---------- doc/rxvt.1.html | 111 ++++++++++++++++++++++++++++++++++++++---------------- doc/rxvt.1.man.in | 88 ++++++++++++++++++++++++++++++------------- doc/rxvt.1.pod | 107 ++++++++++++++++++++++++++++++++++++---------------- doc/rxvt.1.txt | 74 ++++++++++++++++++++++++++---------- doc/rxvt.7.html | 78 +++++++++++++++++++++++++------------- doc/rxvt.7.man.in | 82 ++++++++++++++++++++++++++-------------- doc/rxvt.7.pod | 77 +++++++++++++++++++++++++------------ doc/rxvt.7.txt | 66 +++++++++++++++++++++----------- reconf | 2 +- src/keyboard.C | 49 ++++++++++++------------ src/version.h | 10 ++--- src/xdefaults.C | 54 +++++++++++++------------- 14 files changed, 572 insertions(+), 294 deletions(-) diff --git a/Changes b/Changes index 80775ab..3c93483 100644 --- a/Changes +++ b/Changes @@ -2,17 +2,33 @@ Lines marked with "xterm:" indicate either xterm features ported to rxvt 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 diff --git a/README.FAQ b/README.FAQ index 0e457a0..f21a3f4 100644 --- a/README.FAQ +++ b/README.FAQ @@ -508,26 +508,28 @@ FREQUENTLY ASKED QUESTIONS 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 - URxvt*keysym.C-slash: \e - URxvt*keysym.C-semicolon: \e - URxvt*keysym.C-grave: \e - URxvt*keysym.C-comma: \e - URxvt*keysym.C-period: \e - URxvt*keysym.C-0x60: \e - URxvt*keysym.C-Tab: \e - URxvt*keysym.C-Return: \e - URxvt*keysym.S-Return: \e - URxvt*keysym.S-space: \e - URxvt*keysym.M-Up: \e - URxvt*keysym.M-Down: \e - URxvt*keysym.M-Left: \e - URxvt*keysym.M-Right: \e - URxvt*keysym.M-C-0: list.0123456789.\e - URxvt*keysym.M-C-a: list.abcdefghijklmnopqrstuvwxyz.\033 - 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 + URxvt.keysym.C-slash: \e + URxvt.keysym.C-semicolon: \e + URxvt.keysym.C-grave: \e + URxvt.keysym.C-comma: \e + URxvt.keysym.C-period: \e + URxvt.keysym.C-0x60: \e + URxvt.keysym.C-Tab: \e + URxvt.keysym.C-Return: \e + URxvt.keysym.S-Return: \e + URxvt.keysym.S-space: \e + URxvt.keysym.M-Up: \e + URxvt.keysym.M-Down: \e + URxvt.keysym.M-Left: \e + URxvt.keysym.M-Right: \e + URxvt.keysym.M-C-0: list \e + URxvt.keysym.M-C-a: list \033 + 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 diff --git a/doc/rxvt.1.html b/doc/rxvt.1.html index 440b974..105d66d 100644 --- a/doc/rxvt.1.html +++ b/doc/rxvt.1.html @@ -49,7 +49,7 @@


DESCRIPTION

-

rxvt-unicode, version 4.8, is a colour vt102 terminal +

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 -- @@ -460,10 +460,25 @@ 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
@@ -1048,12 +1063,31 @@ built-in default:
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 staying in +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
@@ -1116,7 +1150,7 @@ and the abbreviated I, K, C,

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 +keys are being mapped. AppKeypad is a synthetic modifier mapped to the current application keymap mode state.

@@ -1155,9 +1189,27 @@ should be a character not used by the strings.

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, -proto:\033]701;zh_CN.GBK\007 means: change the current locale to +

If string takes the form of proto:STRING, the specified STRING +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.

@@ -1196,10 +1248,11 @@ respectively.

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 +tripleclickwords.

Starting a selection while pressing the Meta key (or Meta+Ctrl keys) @@ -1235,8 +1288,8 @@ and character codes using the keyboard. It consists of 4 parts. The first part is available rxvt-unicode has been compiled with --enable-frills, the rest is available when rxvt-unicode was compiled with --enable-iso14755.

-
    -
  1. 1: Basic method
    +
+

With respect to conformance, rxvt-unicode is supposed to be compliant to both scenario A and B of ISO 14755, including part 5.2.


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.

+

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 may need to be installed setuid root +on some systems or setgid to root or to some other group on others.


@@ -1349,12 +1402,6 @@ terminal to use. rxvt uses the environment variables

FILES

-
/etc/utmp
-
-
-System file for login records. -
-

/usr/lib/X11/rgb.txt
diff --git a/doc/rxvt.1.man.in b/doc/rxvt.1.man.in index 8308485..86a6bbf 100644 --- a/doc/rxvt.1.man.in +++ b/doc/rxvt.1.man.in @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .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" @@ -410,10 +410,19 @@ Compile \fI\s-1XIM\s0\fR: input style for input method; \fBOverTheSpot\fR, 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 @@ -793,10 +802,23 @@ built-in default: \&\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 @@ -841,7 +863,7 @@ and the abbreviated \fBI\fR, \fBK\fR, \fBC\fR, \fBN\fR, \fBS\fR, \fBM\fR, \fBA\f .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 @@ -874,8 +896,24 @@ The above line is equivalent to the following three lines: \& URxvt.keysym.Meta-Control-0x63: \ee .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" @@ -907,10 +945,11 @@ The behaviour of text selection and insertion mechanism is similar to \&\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 @@ -940,7 +979,7 @@ and character codes using the keyboard. It consists of 4 parts. The 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 @@ -956,7 +995,7 @@ address, which you cannot type. Fortunately, the card has the e\-mail 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. @@ -968,11 +1007,11 @@ keycap symbol. The symbol will only be entered when the key has been 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. @@ -991,10 +1030,10 @@ With respect to conformance, rxvt-unicode is supposed to be compliant to 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, @@ -1047,9 +1086,6 @@ terminal to use. \fB@@RXVT_NAME@@\fR uses the environment variables \&\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. diff --git a/doc/rxvt.1.pod b/doc/rxvt.1.pod index 7396ed2..d6f296a 100644 --- a/doc/rxvt.1.pod +++ b/doc/rxvt.1.pod @@ -330,10 +330,21 @@ Compile I: input method name. resource B. =item B<-imlocale> I -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 of e.g. +C for normal text processing but C for the +input extension to be able to input japanese characters while staying in +another locale. resource B. + +=item B<-imfont> I + +Set the font set to use for the X Input Method, see resource B +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. =item B<-insecure> @@ -777,11 +788,26 @@ I of inputMethod to use; option B<-im>. =item B I -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 of e.g. +C for normal text processing but C for the +input extension to be able to input japanese characters while staying in another locale. option B<-imlocale>. +=item B I + +Specify the font-set used for XIM styles C or +C. 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 I + +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 I Enables "insecure" mode. Rxvt-unicode offers some escape sequences that @@ -831,7 +857,7 @@ B<2>, B<3>, B<4>, B<5>. The B, B and B modifiers are usually aliased to whatever modifier the NumLock key, Meta/Alt keys or ISO Level3 Shift/AltGr -keys are being mapped. B is a artificial modifier mapped to the +keys are being mapped. B is a synthetic modifier mapped to the current application keymap mode state. The spellings of I can be obtained by using B(1) command or @@ -846,24 +872,44 @@ C<\000>: octal number) or verbatim control characters (C<^?>: delete, 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 with pattern B, 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 + URxvt.keysym.M-C-0x61: list|\033 The above line is equivalent to the following three lines: - URxvt.keysym.Meta-Control-0x61: \e - URxvt.keysym.Meta-Control-0x62: \e - URxvt.keysym.Meta-Control-0x63: \e + URxvt.keysym.Meta-Control-0x61: \033 + URxvt.keysym.Meta-Control-0x62: \033 + URxvt.keysym.Meta-Control-0x63: \033 + +If I takes the form of C, the specified B +is interpreted and executed as @@RXVT_NAME@@'s control sequence. For +example the following means "change the current locale to C +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 and C<9x15bold>, so you can have some limited +font-switching at runtime: -If I takes the form of C, the specified B is -interpreted and executed as @@RXVT_NAME@@'s control sequence. For example, -C means: change the current locale to -C. + 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 @@ -901,10 +947,11 @@ I(1). =item B: -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. Starting a selection while pressing the B key (or B keys) (Compile: I) will create a rectangular selection instead of a normal @@ -940,7 +987,7 @@ with C<--enable-iso14755>. =over 4 -=item 5.1: Basic method +=item * 5.1: Basic method This allows you to enter unicode characters using their hexcode. @@ -957,7 +1004,7 @@ address printed as hexcodes, e.g. C<671d 65e5>. You can enter this easily by pressing C and C, 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. @@ -970,12 +1017,12 @@ released, otherwise pressing e.g. C would enter the symbol for C, 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. @@ -997,10 +1044,10 @@ both scenario A and B of ISO 14755, including part 5.2. =head1 LOGIN STAMP -B<@@RXVT_NAME@@> tries to write an entry into the I(5) file so -that it can be seen via the I 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(5) file so that +it can be seen via the I 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 @@ -1064,10 +1111,6 @@ B and B to find XPM files. =over 4 -=item B - -System file for login records. - =item B Color names. diff --git a/doc/rxvt.1.txt b/doc/rxvt.1.txt index d82b88d..4d6141c 100644 --- a/doc/rxvt.1.txt +++ b/doc/rxvt.1.txt @@ -6,7 +6,7 @@ SYNOPSIS 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 @@ -279,10 +279,20 @@ OPTIONS 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 @@ -656,11 +666,24 @@ RESOURCES (available also as long-options) *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 @@ -702,8 +725,8 @@ RESOURCES (available also as long-options) 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 @@ -733,7 +756,19 @@ RESOURCES (available also as long-options) URxvt.keysym.Meta-Control-0x63: \e 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". @@ -767,7 +802,8 @@ TEXT SELECTION AND INSERTION 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 @@ -797,7 +833,7 @@ ISO 14755 SUPPORT 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 @@ -813,7 +849,7 @@ ISO 14755 SUPPORT 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. @@ -825,12 +861,12 @@ ISO 14755 SUPPORT 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. @@ -852,7 +888,8 @@ ISO 14755 SUPPORT 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 @@ -901,9 +938,6 @@ ENVIRONMENT variables RXVTPATH and PATH to find XPM files. FILES - /etc/utmp - System file for login records. - /usr/lib/X11/rgb.txt Color names. diff --git a/doc/rxvt.7.html b/doc/rxvt.7.html index 4e2f826..f0d4bb3 100644 --- a/doc/rxvt.7.html +++ b/doc/rxvt.7.html @@ -731,26 +731,29 @@ use the `keysym' resource to alter the keystrings associated with keysyms.
-        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. @@ -767,9 +770,9 @@ has the following mappings that rxvt-unicode doesn't recognize.
-

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.

How do I distinguish if I'm running rxvt-unicode or a regular xterm? I need this to decide about setting colors etc.
@@ -1378,17 +1381,40 @@ Set Scrolling Region [top;bottom] Save Cursor (SC)

-
ESC [ Ps x >
+
ESC [ Ps;Pt t >
-Request Terminal Parameters (DECREQTPARM) +Window Operations
-

+ + + + + + + + + + + + + + + + + +
Ps = 1Deiconify (map) window
Ps = 2Iconify window
Ps = 3ESC [ 3 ; X ; Y t Move window to (X|Y)
Ps = 4ESC [ 4 ; W ; H t Resize to WxH pixels
Ps = 5Raise window
Ps = 6Lower window
Ps = 7Refresh screen once
Ps = 8ESC [ 4 ; C ; R t Resize to C columns and R rows
Ps = 11Report window state (responds with Ps = 1 or Ps = 2
Ps = 13Report window position (responds with Ps = 3)
Ps = 14Report window pixel size (responds with Ps = 4)
Ps = 18Report window text size (responds with Ps = 7)
Ps = 19Currently the same as Ps = 18, but responds with Ps = 9
Ps = 20Reports icon label (ESC ] L NAME \234)
Ps = 21Reports 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) +

diff --git a/doc/rxvt.7.man.in b/doc/rxvt.7.man.in index 706cea8..6ba6fe5 100644 --- a/doc/rxvt.7.man.in +++ b/doc/rxvt.7.man.in @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .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" @@ -685,27 +685,29 @@ use the `keysym' resource to alter the keystrings associated with keysyms. 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 -\& URxvt*keysym.C-slash: \ee -\& URxvt*keysym.C-semicolon: \ee -\& URxvt*keysym.C-grave: \ee -\& URxvt*keysym.C-comma: \ee -\& URxvt*keysym.C-period: \ee -\& URxvt*keysym.C-0x60: \ee -\& URxvt*keysym.C-Tab: \ee -\& URxvt*keysym.C-Return: \ee -\& URxvt*keysym.S-Return: \ee -\& URxvt*keysym.S-space: \ee -\& URxvt*keysym.M-Up: \ee -\& URxvt*keysym.M-Down: \ee -\& URxvt*keysym.M-Left: \ee -\& URxvt*keysym.M-Right: \ee -\& URxvt*keysym.M-C-0: list.0123456789.\ee -\& URxvt*keysym.M-C-a: list.abcdefghijklmnopqrstuvwxyz.\e033 -\& 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 +\& URxvt.keysym.C-slash: \ee +\& URxvt.keysym.C-semicolon: \ee +\& URxvt.keysym.C-grave: \ee +\& URxvt.keysym.C-comma: \ee +\& URxvt.keysym.C-period: \ee +\& URxvt.keysym.C-0x60: \ee +\& URxvt.keysym.C-Tab: \ee +\& URxvt.keysym.C-Return: \ee +\& URxvt.keysym.S-Return: \ee +\& URxvt.keysym.S-space: \ee +\& URxvt.keysym.M-Up: \ee +\& URxvt.keysym.M-Down: \ee +\& URxvt.keysym.M-Left: \ee +\& URxvt.keysym.M-Right: \ee +\& URxvt.keysym.M-C-0: list \ee +\& URxvt.keysym.M-C-a: list \e033 +\& 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 @@ -717,9 +719,9 @@ Here's an example for a URxvt session started using `@@RXVT_NAME@@ \-name URxvt' \& 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 @@ -1202,14 +1204,38 @@ Set Scrolling Region [top;bottom] .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" diff --git a/doc/rxvt.7.pod b/doc/rxvt.7.pod index 279adad..0dfd1bf 100644 --- a/doc/rxvt.7.pod +++ b/doc/rxvt.7.pod @@ -528,26 +528,28 @@ use the `keysym' resource to alter the keystrings associated with keysyms. 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 - URxvt*keysym.C-slash: \e - URxvt*keysym.C-semicolon: \e - URxvt*keysym.C-grave: \e - URxvt*keysym.C-comma: \e - URxvt*keysym.C-period: \e - URxvt*keysym.C-0x60: \e - URxvt*keysym.C-Tab: \e - URxvt*keysym.C-Return: \e - URxvt*keysym.S-Return: \e - URxvt*keysym.S-space: \e - URxvt*keysym.M-Up: \e - URxvt*keysym.M-Down: \e - URxvt*keysym.M-Left: \e - URxvt*keysym.M-Right: \e - URxvt*keysym.M-C-0: list.0123456789.\e - URxvt*keysym.M-C-a: list.abcdefghijklmnopqrstuvwxyz.\033 - 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 + URxvt.keysym.C-slash: \033 + URxvt.keysym.C-semicolon: \033 + URxvt.keysym.C-grave: \033 + URxvt.keysym.C-comma: \033 + URxvt.keysym.C-period: \033 + URxvt.keysym.C-0x60: \033 + URxvt.keysym.C-Tab: \033 + URxvt.keysym.C-Return: \033 + URxvt.keysym.S-Return: \033 + URxvt.keysym.S-space: \033 + URxvt.keysym.M-Up: \033 + URxvt.keysym.M-Down: \033 + URxvt.keysym.M-Left: \033 + URxvt.keysym.M-Right: \033 + URxvt.keysym.M-C-0: list \033 + URxvt.keysym.M-C-a: list \033 + URxvt.keysym.F12: command:\033]701;zh_CN.GBK\007 + +See some more examples in the documentation for the B 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 @@ -560,9 +562,9 @@ has the following mappings that rxvt-unicode doesn't recognize. 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. @@ -1063,14 +1065,39 @@ Set Scrolling Region [top;bottom] Save Cursor (SC) -=item B<< C >> +=item B<< C >> -Request Terminal Parameters (DECREQTPARM) +Window Operations + +=begin table + + B<< C >> Deiconify (map) window + B<< C >> Iconify window + B<< C >> B<< C >> Move window to (X|Y) + B<< C >> B<< C >> Resize to WxH pixels + B<< C >> Raise window + B<< C >> Lower window + B<< C >> Refresh screen once + B<< C >> B<< C >> Resize to R rows and C columns + B<< C >> Report window state (responds with C or C + B<< C >> Report window position (responds with C) + B<< C >> Report window pixel size (responds with C) + B<< C >> Report window text size (responds with C) + B<< C >> Currently the same as C, but responds with C + B<< C >> Reports icon label (B<< C >>) + B<< C >> Reports window title (B<< C >>) + B<< C >> Set window height to C rows + +=end table =item B<< C >> Restore Cursor +=item B<< C >> + +Request Terminal Parameters (DECREQTPARM) + =back X diff --git a/doc/rxvt.7.txt b/doc/rxvt.7.txt index 42997cb..fed1b28 100644 --- a/doc/rxvt.7.txt +++ b/doc/rxvt.7.txt @@ -511,26 +511,28 @@ FREQUENTLY ASKED QUESTIONS 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 - URxvt*keysym.C-slash: \e - URxvt*keysym.C-semicolon: \e - URxvt*keysym.C-grave: \e - URxvt*keysym.C-comma: \e - URxvt*keysym.C-period: \e - URxvt*keysym.C-0x60: \e - URxvt*keysym.C-Tab: \e - URxvt*keysym.C-Return: \e - URxvt*keysym.S-Return: \e - URxvt*keysym.S-space: \e - URxvt*keysym.M-Up: \e - URxvt*keysym.M-Down: \e - URxvt*keysym.M-Left: \e - URxvt*keysym.M-Right: \e - URxvt*keysym.M-C-0: list.0123456789.\e - URxvt*keysym.M-C-a: list.abcdefghijklmnopqrstuvwxyz.\033 - 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 + URxvt.keysym.C-slash: \e + URxvt.keysym.C-semicolon: \e + URxvt.keysym.C-grave: \e + URxvt.keysym.C-comma: \e + URxvt.keysym.C-period: \e + URxvt.keysym.C-0x60: \e + URxvt.keysym.C-Tab: \e + URxvt.keysym.C-Return: \e + URxvt.keysym.S-Return: \e + URxvt.keysym.S-space: \e + URxvt.keysym.M-Up: \e + URxvt.keysym.M-Down: \e + URxvt.keysym.M-Left: \e + URxvt.keysym.M-Right: \e + URxvt.keysym.M-C-0: list \e + URxvt.keysym.M-C-a: list \033 + 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 @@ -902,12 +904,32 @@ CSI (Command Sequence Introducer) Sequences "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 diff --git a/reconf b/reconf index 15a8ff9..f054dc2 100755 --- a/reconf +++ b/reconf @@ -11,6 +11,6 @@ --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 \ "$@" diff --git a/src/keyboard.C b/src/keyboard.C index 38405d5..bf9433a 100644 --- a/src/keyboard.C +++ b/src/keyboard.C @@ -13,33 +13,33 @@ 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, "" "%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"}, -//{ XK_apostrophe, ControlMask, 1, NORMAL, "\033"}, -//{ XK_slash, ControlMask, 1, NORMAL, "\033"}, -//{ XK_semicolon, ControlMask, 1, NORMAL, "\033"}, -//{ XK_grave, ControlMask, 1, NORMAL, "\033"}, -//{ XK_comma, ControlMask, 1, NORMAL, "\033"}, -//{ XK_Return, ControlMask, 1, NORMAL, "\033"}, -//{ XK_Return, ShiftMask, 1, NORMAL, "\033"}, -//{ ' ', ShiftMask, 1, NORMAL, "\033"}, -//{ '.', ControlMask, 1, NORMAL, "\033"}, -//{ '0', ControlMask, 10, RANGE, "0" "\033"}, -//{ '0', MetaMask|ControlMask, 10, RANGE, "0" "\033"}, -//{ 'a', MetaMask|ControlMask, 26, RANGE, "a" "\033"}, + /* 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, "" "%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"}, +//{ XK_apostrophe, ControlMask, 1, keysym_t::NORMAL, "\033"}, +//{ XK_slash, ControlMask, 1, keysym_t::NORMAL, "\033"}, +//{ XK_semicolon, ControlMask, 1, keysym_t::NORMAL, "\033"}, +//{ XK_grave, ControlMask, 1, keysym_t::NORMAL, "\033"}, +//{ XK_comma, ControlMask, 1, keysym_t::NORMAL, "\033"}, +//{ XK_Return, ControlMask, 1, keysym_t::NORMAL, "\033"}, +//{ XK_Return, ShiftMask, 1, keysym_t::NORMAL, "\033"}, +//{ ' ', ShiftMask, 1, keysym_t::NORMAL, "\033"}, +//{ '.', ControlMask, 1, keysym_t::NORMAL, "\033"}, +//{ '0', ControlMask, 10, keysym_t::RANGE, "0" "\033"}, +//{ '0', MetaMask|ControlMask, 10, keysym_t::RANGE, "0" "\033"}, +//{ 'a', MetaMask|ControlMask, 26, keysym_t::RANGE, "a" "\033"}, }; 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)); } @@ -368,7 +368,6 @@ keyboard_manager::setup_hash () } // 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 @@ -425,7 +424,7 @@ keyboard_manager::setup_hash () 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 @@ -445,7 +444,7 @@ keyboard_manager::find_keysym (KeySym keysym, unsigned int state) // 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; } diff --git a/src/version.h b/src/version.h index 2d2340f..68ee544 100644 --- a/src/version.h +++ b/src/version.h @@ -1,5 +1,5 @@ -#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" diff --git a/src/xdefaults.C b/src/xdefaults.C index bbfc6e7..cf7168e 100644 --- a/src/xdefaults.C +++ b/src/xdefaults.C @@ -99,9 +99,12 @@ optList[] = { 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"), @@ -180,6 +183,14 @@ optList[] = { #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) */ @@ -199,22 +210,13 @@ optList[] = { #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"), @@ -224,7 +226,6 @@ optList[] = { 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 @@ -235,15 +236,10 @@ optList[] = { 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 */ @@ -252,6 +248,9 @@ optList[] = { 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") }; @@ -608,10 +607,11 @@ rxvt_define_key (XrmDatabase *database __attribute__((unused)), 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; @@ -665,11 +665,11 @@ keysym_vocabulary_t keysym_vocabulary[] = 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) { @@ -935,7 +935,6 @@ rxvt_term::extract_resources (Display *display __attribute__ ((unused)), const c # ifndef HAVE_BOTH_XRESOURCE_FILES break; # endif - } } } @@ -1042,23 +1041,24 @@ rxvt_term::extract_resources (Display *display __attribute__ ((unused)), const c # 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); } /* -- 1.9.1