ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.pod
Revision: 1.34
Committed: Thu Feb 3 10:24:10 2005 UTC (19 years, 5 months ago) by root
Branch: MAIN
CVS Tags: rel-4_9
Changes since 1.33: +52 -25 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.23 =head1 NAME
2    
3 root 1.25 RXVT REFERENCE - FAQ, command sequences and other background information
4    
5     =head1 FREQUENTLY ASKED QUESTIONS
6    
7     =over 4
8    
9     =item How do I know which rxvt-unicode version I'm using?
10    
11     The version number is displayed with the usage (-h). Also the escape
12     sequence C<ESC[8n> sets the window title to the version number.
13    
14     =item When I log-in to another system it tells me about missing terminfo data?
15    
16     The terminal description used by rxvt-unicode is not as widely available
17     as that for xterm, or even rxvt (for which the same problem often arises).
18    
19     The correct solution for this problem is to install the terminfo, this can
20     be done like this (with ncurses' infocmp):
21    
22     REMOTE=remotesystem.domain
23     infocmp rxvt-unicode | ssh $REMOTE "cat >/tmp/ti && tic /tmp/ti"
24    
25     ... or by installing rxvt-unicode normally on the remote system,
26    
27     If you cannot or do not want to do this, then you can simply set
28     C<TERM=rxvt> or even C<TERM=xterm>, and live with the small number of
29     problems arising, which includes wrong keymapping, less and different
30     colours and some refresh errors in fullscreen applications. It's a nice
31     quick-and-dirty workaround for rare cases, though.
32    
33     If you always want to do this you can either recompile rxvt-unicode with
34     the desired TERM value or use a resource to set it:
35    
36     URxvt.termName: rxvt
37    
38     If you don't plan to use B<rxvt> (quite common...) you could also replace
39     the rxvt terminfo file with the rxvt-unicode one.
40    
41     =item I need a termcap file entry.
42    
43     You could use rxvt's termcap entry with resonable results in many cases.
44     You can also create a termcap entry by using terminfo's infocmp program
45     like this:
46    
47     infocmp -C rxvt-unicode
48    
49     OR you could this termcap entry:
50    
51     rxvt-unicode|rxvt-unicode terminal (X Window System):\
52     :am:bw:eo:km:mi:ms:xn:xo:\
53     :co#80:it#8:li#24:\
54     :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
55     :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
56     :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:al=\E[L:\
57     :as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\
58     :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
59     :ec=\E[%dX:ei=\E[4l:ho=\E[H:i1=\E[?47l\E=\E[?1l:ic=\E[@:\
60     :im=\E[4h:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
61     :k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\
62     :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
63     :kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:\
64     :ke=\E[?1l\E>:kh=\E[7~:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
65     :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\
66     :nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:\
67     :st=\EH:ta=^I:te=\E[r\E[?1049l:ti=\E[?1049h:ue=\E[24m:\
68     :up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:\
69     :vs=\E[?25h:
70    
71 root 1.33 =item Why does C<ls> no longer have coloured output?
72 root 1.25
73 root 1.33 The C<ls> in the GNU coreutils unfortunately doesn't use terminfo to
74     decide wether a terminal has colour, but uses it's own configuration
75     file. Needless to say, C<rxvt-unicode> is not in it's default file (among
76     with most other terminals supporting colour). Either add:
77 root 1.25
78 root 1.33 TERM rxvt-unicode
79    
80     to C</etc/DIR_COLORS> or simply add:
81    
82     alias ls='ls --color=auto'
83    
84     to your C<.profile> or C<.bashrc>.
85    
86     =item Why doesn't vim/emacs etc. use the 88 colour mode?
87    
88     =item Why doesn't vim/emacs etc. make use of italic?
89    
90     =item Why are the secondary screen-related options not working properly?
91    
92     Make sure you are using C<TERM=rxvt-unicode>. Some pre-packaged
93     distributions (most notably Debian GNU/Linux) break rxvt-unicode
94     by setting C<TERM> to C<rxvt>, which doesn't have these extra
95     features. Unfortunately, some of these (most notably, again, Debian
96     GNU/Linux) furthermore fail to even install the C<rxvt-unicode> terminfo
97     file, so you will need to install it on your own (See the question B<When
98     I log-in to another system it tells me about missing terminfo data?> on
99     how to do this).
100 root 1.25
101     =item Rxvt-unicode does not seem to understand the selected encoding?
102    
103     =item Unicode does not seem to work?
104    
105     If you encounter strange problems like typing an accented character but
106     getting two unrelated other characters or similar, or if program output is
107     subtly garbled, then you should check your locale settings.
108    
109     Rxvt-unicode must be started with the same C<LC_CTYPE> setting as the
110     programs. Often rxvt-unicode is started in the C<C> locale, while the
111     login script running within the rxvt-unicode window changes the locale to
112     sth. else, e.h. C<en_GB.UTF-8>. Needless to say, this is not going to work.
113    
114     The best thing is to fix your startup environment, as you will likely run
115     into other problems. If nothing works you can try this in your .profile.
116    
117     printf '\e]701;%s\007' "$LC_CTYPE"
118    
119     If this doesn't work, then maybe you use a C<LC_CTYPE> specification not
120     supported on your systems. Some systems have a C<locale> command which
121     displays this. If it displays sth. like:
122    
123     locale: Cannot set LC_CTYPE to default locale: ...
124    
125     Then the locale you specified is not supported on your system.
126    
127     If nothing works and you are sure that everything is set correctly then
128     you will need to remember a little known fact: Some programs just don't
129     support locales :(
130    
131     =item Why do some characters look so much different than others?
132    
133     =item How does rxvt-unicode choose fonts?
134    
135     Most fonts do not contain the full range of Unicode, which is
136     fine. Chances are that the font you (or the admin/package maintainer of
137     your system/os) have specified does not cover all the characters you want
138     to display.
139    
140     B<rxvt-unicode> makes a best-effort try at finding a replacement
141     font. Often the result is fine, but sometimes the chosen font looks
142     bad. Many fonts have totally strange characters that don't resemble the
143     correct glyph at all, and rxvt-unicode lacks the artificial intelligence
144     to detect that a specific glyph is wrong: it has to believe the font that
145     the characters it contains indeed look correct.
146    
147     In that case, select a font of your taste and add it to the font list,
148     e.g.:
149    
150     @@RXVT_NAME@@ -fn basefont,font2,font3...
151    
152     When rxvt-unicode sees a character, it will first look at the base
153     font. If the base font does not contain the character, it will go to the
154     next font, and so on. Specifying your own fonts will also speed up this
155     search and use less resources within rxvt-unicode and the X-server.
156    
157     The only limitation is that all the fonts must not be larger than the base
158     font, as the base font defines the principal cell size, which must be the
159     same due to the way terminals work.
160    
161     =item Why do some chinese characters look so different than others?
162    
163     This is because there is a difference between script and language --
164     rxvt-unicode does not know which language the text that is output
165     is, as it only knows the unicode character codes. If rxvt-unicode
166     first sees a japanese character, it might choose a japanese font for
167     it. Subsequent japanese characters will take that font. Now, many chinese
168     characters aren't represented in japanese fonts, so when the first
169     non-japanese character comes up, rxvt-unicode will look for a chinese font
170     -- unfortunately at this point, it will still use the japanese font for
171     japanese characters that are also chinese.
172    
173     The workaround is easy: just tag a chinese font at the end of your font
174     list (see the previous question). The key is to view the font list as
175     a preference list: If you expect more japanese, list a japanese font
176     first. If you expect more chinese, put a chinese font first.
177    
178     In the future it might be possible to switch preferences at runtime (the
179     internal data structure has no problem with using different fonts for
180     the same character at the same time, but no interface for this has been
181     designed yet).
182    
183     =item Why does rxvt-unicode sometimes leave pixel droppings?
184    
185     Most fonts were not designed for terminal use, which means that character
186     size varies a lot. A font that is otherwise fine for terminal use might
187     contain some characters that are simply too wide. Rxvt-unicode will avoid
188     these characters. For characters that are just "a bit" too wide a special
189     "careful" rendering mode is used that redraws adjacent characters.
190    
191     All of this requires that fonts do not lie about character sizes,
192     however: Xft fonts often draw glyphs larger than their acclaimed bounding
193     box, and rxvt-unicode has no way of detecting this (the correct way is to
194     ask for the character bounding box, which unfortunately is wrong in these
195     cases).
196    
197 root 1.33 It's not clear (to me at least), wether this is a bug in Xft, freetype,
198     or the respective font. If you encounter this problem you might try using
199     the C<-lsp> option to give the font more height. If that doesn't work, you
200     might be forced to use a different font.
201 root 1.25
202     All of this is not a problem when using X11 core fonts, as their bounding
203     box data is correct.
204    
205     =item My Compose (Multi_key) key is no longer working.
206    
207     The most common causes for this are that either your locale is not set
208     correctly, or you specified a B<preeditStyle> that is not supported by
209     your input method. For example, if you specified B<OverTheSpot> and
210     your input method (e.g. the default input method handling Compose keys)
211     does not support this (for instance because it is not visual), then
212     rxvt-unicode will continue without an input method.
213    
214     In this case either do not specify a B<preeditStyle> or specify more than
215     one pre-edit style, such as B<OverTheSpot,Root,None>.
216    
217 root 1.29 =item I cannot type C<Ctrl-Shift-2> to get an ASCII NUL character due to ISO 14755
218    
219     Either try C<Ctrl-2> alone (it often is mapped to ASCII NUL even on
220     international keyboards) or simply use ISO 14755 support to your
221     advantage, typing <Ctrl-Shift-0> to get a ASCII NUL. This works for other
222     codes, too, such as C<Ctrl-Shift-1-d> to type the default telnet escape
223     character and so on.
224    
225 root 1.25 =item How can I keep rxvt-unicode from using reverse video so much?
226    
227     First of all, make sure you are running with the right terminfo
228     (C<urxvt>), which will get rid of most of these effects. Then make sure
229     you have specified colours for italic and bold, as otherwise rxvt-unicode
230     might use reverse video to simulate the effect:
231    
232     URxvt*colorBD: white
233     URxvt*colorIT: green
234    
235     =item Some programs assume totally weird colours (red instead of blue), how can I fix that?
236    
237     For some unexplainable reason, some programs (i.e. irssi) assume a very
238     weird colour palette when confronted with a terminal with more than the
239     standard 8 colours (rxvt-unicode supports 88). The right fix is, of
240     course, to fix these programs not to assume non-ISO colours without very
241     good reasons.
242    
243     In the meantime, you can either edit your C<urxvt> terminfo definition to
244     only claim 8 colour support or use C<TERM=rxvt>, which will fix colours
245     but keep you from using other rxvt-unicode features.
246    
247     =item I am on FreeBSD and rxvt-unicode does not seem to work at all.
248    
249     Rxvt-unicode requires the symbol C<__STDC_ISO_10646__> to be defined
250     in your compile environment, or an implementation that implements it,
251     wether it defines the symbol or not. C<__STDC_ISO_10646__> requires that
252     B<wchar_t> is represented as unicode.
253    
254     As you might have guessed, FreeBSD does neither define this symobl nor
255     does it support it. Instead, it uses it's own internal representation of
256     B<wchar_t>. This is, of course, completely legal.
257    
258     However, C<__STDC_ISO_10646__> is the only sane way to support
259     multi-language apps in an OS, as using a locale-dependent (and
260     non-standardized) representation of B<wchar_t> makes it impossible to
261     convert between B<wchar_t> (as used by X11 and your applications) and any
262     other encoding without implementing OS-specific-wrappers for each and
263     every locale. There simply are no APIs to convert B<wchar_t> into anything
264     except the current locale encoding.
265    
266     Some applications (such as the formidable B<mlterm>) work around this
267     by carrying their own replacement functions for character set handling
268     with them, and either implementing OS-dependent hacks or doing multiple
269     conversions (which is slow and unreliable in case the OS implements
270     encodings slightly different than the terminal emulator).
271    
272     The rxvt-unicode author insists that the right way to fix this is in the
273     system libraries once and for all, instead of forcing every app to carry
274     complete replacements.
275    
276     =item How does rxvt-unicode determine the encoding to use?
277    
278     =item Is there an option to switch encodings?
279    
280     Unlike some other terminals, rxvt-unicode has no encoding switch, and no
281     specific "utf-8" mode, such as xterm. In fact, it doesn't even know about
282     UTF-8 or any other encodings with respect to terminal I/O.
283    
284     The reasons is that there exists a perfectly fine mechanism for selecting
285     the encoding, doing I/O and (most important) communicating this to all
286     applications so everybody agrees on character properties such as width and
287     code number. This mechanism is the I<locale>.
288    
289     Rxvt-unicode uses the C<LC_CTYPE> locale category to select encoding. All
290     programs doing the same (that is, most) will automatically agree in the
291     interpretation of characters.
292    
293     Unfortunately, there is no system-independent way to select locales, nor
294     is there a standard on how locale specifiers will look like.
295    
296     On most systems, the content of the C<LC_CTYPE> environment variable
297     contains an arbitrary string which corresponds to an already-installed
298     locale. Common names for locales are C<en_US.UTF-8>, C<de_DE.ISO-8859-15>,
299     C<ja_JP.EUC-JP>, i.e. C<language_country.encoding>, but other forms
300     (i.e. C<de> or C<german>) are also common.
301    
302     Rxvt-unicode ignores all other locale categories, and except for
303     the encoding, ignores country or language-specific settings,
304     i.e. C<de_DE.UTF-8> and C<ja_JP.UTF-8> are the same for rxvt-unicode.
305    
306     If you want to use a specific encoding you have to make sure you start
307     rxvt-unicode with the correct C<LC_CTYPE> category.
308    
309     =item Can I switch locales at runtime?
310    
311     Yes, using an escape sequence. Try sth. like this, which sets
312     rxvt-unicode's idea of C<LC_CTYPE>.
313    
314     printf '\e]701;%s\007' ja_JP.SJIS
315    
316     See also the previous question.
317    
318     Sometimes this capability is rather handy when you want to work in one
319     locale (e.g. C<de_DE.UTF-8>) but some programs don't support UTF-8. For
320     example, I use this script to start C<xjdic>, which first switches to a
321     locale supported by xjdic and back later:
322    
323     printf '\e]701;%s\007' ja_JP.SJIS
324     xjdic -js
325     printf '\e]701;%s\007' de_DE.UTF-8
326    
327     =item Can I switch the fonts at runtime?
328    
329     Yes, using an escape sequence. Try sth. like this, which has the same
330     effect as using the C<-fn> switch, and takes effect immediately:
331    
332     printf '\e]50;%s\007' "9x15bold,xft:Kochi Gothic"
333    
334     This is useful if you e.g. work primarily with japanese (and prefer a
335     japanese font), but you have to switch to chinese temporarily, where
336     japanese fonts would only be in your way.
337    
338     You can think of this as a kind of manual ISO-2022 switching.
339    
340     =item Why do italic characters look as if clipped?
341    
342     Many fonts have difficulties with italic characters and hinting. For
343     example, the otherwise very nicely hinted font C<xft:Bitstream Vera Sans
344     Mono> completely fails in it's italic face. A workaround is to enable
345     freetype autohinting, i.e. like this:
346    
347     URxvt*italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true
348     URxvt*boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true
349    
350     =item My input method wants <some encoding> but I want UTF-8, what can I do?
351    
352     You can specify separate locales for the input method and the rest of the
353     terminal, using the resource C<imlocale>:
354    
355     URxvt*imlocale: ja_JP.EUC-JP
356    
357     Now you can start your terminal with C<LC_CTYPE=ja_JP.UTF-8> and still
358     use your input method. Please note, however, that you will not be able to
359     input characters outside C<EUC-JP> in a normal way then, as your input
360     method limits you.
361    
362     =item Rxvt-unicode uses gobs of memory, how can I reduce that?
363    
364     Rxvt-unicode tries to obey the rule of not charging you for sth. you
365     don't use. One thing you should try is to configure out all settings that
366     you don't need, for example, Xft support is a resource hog by design,
367     when used. Compiling it out ensures that no Xft font will be loaded
368     accidentally when rxvt-unicode tries to find a font for your characters.
369    
370     Also, many people (me included) like large windows and even larger
371     scrollback buffers: Without C<--enable-unicode3>, rxvt-unicode will use
372     6 bytes per screen cell. For a 160x?? window this amounts to almost a
373     kilobyte per line. A scrollback buffer of 10000 lines will then (if full)
374     use 10 Megabytes of memory. With C<--enable-unicode3> it gets worse, as
375     rxvt-unicode then uses 8 bytes per screen cell.
376    
377     =item Can I speed up Xft rendering somehow?
378    
379     Yes, the most obvious way to speed it up is to avoid Xft entirely, as
380     it is simply slow. If you still want Xft fonts you might try to disable
381     antialiasing (by appending C<:antialiasing=false>), which saves lots of
382     memory and also speeds up rendering considerably.
383    
384     =item Rxvt-unicode doesn't seem to anti-alias its fonts, what is wrong?
385    
386     Rxvt-unicode will use whatever you specify as a font. If it needs to
387     fall back to it's default font search list it will prefer X11 core
388     fonts, because they are small and fast, and then use Xft fonts. It has
389     antialiasing disabled for most of them, because the author thinks they
390     look best that way.
391    
392     If you want antialiasing, you have to specify the fonts manually.
393    
394     =item Mouse cut/paste suddenly no longer works.
395    
396     Make sure that mouse reporting is actually turned off since killing
397     some editors prematurely may leave the mouse in mouse report mode. I've
398     heard that tcsh may use mouse reporting unless it otherwise specified. A
399     quick check is to see if cut/paste works when the Alt or Shift keys are
400     depressed. See @@RXVT_NAME@@(7)
401    
402     =item What's with this bold/blink stuff?
403    
404     If no bold colour is set via C<colorBD:>, bold will invert text using the
405     standard foreground colour.
406    
407     For the standard background colour, blinking will actually make the
408     text blink when compiled with C<--enable-blinking>. with standard
409     colours. Without C<--enable-blinking>, the blink attribute will be
410     ignored.
411    
412     On ANSI colours, bold/blink attributes are used to set high-intensity
413     foreground/background colors.
414    
415     color0-7 are the low-intensity colors.
416    
417     color8-15 are the corresponding high-intensity colors.
418    
419     =item I don't like the screen colors. How do I change them?
420    
421     You can change the screen colors at run-time using F<~/.Xdefaults>
422     resources (or as long-options).
423    
424     Here are values that are supposed to resemble a VGA screen,
425     including the murky brown that passes for low-intensity yellow:
426    
427 root 1.28 URxvt*color0: #000000
428     URxvt*color1: #A80000
429     URxvt*color2: #00A800
430     URxvt*color3: #A8A800
431     URxvt*color4: #0000A8
432     URxvt*color5: #A800A8
433     URxvt*color6: #00A8A8
434     URxvt*color7: #A8A8A8
435    
436     URxvt*color8: #000054
437     URxvt*color9: #FF0054
438     URxvt*color10: #00FF54
439     URxvt*color11: #FFFF54
440     URxvt*color12: #0000FF
441     URxvt*color13: #FF00FF
442     URxvt*color14: #00FFFF
443     URxvt*color15: #FFFFFF
444    
445     And here is a more complete set of non-standard colors described as
446     "pretty girly":
447    
448     URxvt.cursorColor: #dc74d1
449     URxvt.pointerColor: #dc74d1
450     URxvt.background: #0e0e0e
451     URxvt.foreground: #4ad5e1
452     URxvt.color0: #000000
453     URxvt.color8: #8b8f93
454     URxvt.color1: #dc74d1
455     URxvt.color9: #dc74d1
456     URxvt.color2: #0eb8c7
457     URxvt.color10: #0eb8c7
458     URxvt.color3: #dfe37e
459     URxvt.color11: #dfe37e
460     URxvt.color5: #9e88f0
461     URxvt.color13: #9e88f0
462     URxvt.color6: #73f7ff
463     URxvt.color14: #73f7ff
464     URxvt.color7: #e1dddd
465     URxvt.color15: #e1dddd
466 root 1.25
467     =item What's with the strange Backspace/Delete key behaviour?
468    
469     Assuming that the physical Backspace key corresponds to the
470     BackSpace keysym (not likely for Linux ... see the following
471     question) there are two standard values that can be used for
472     Backspace: C<^H> and C<^?>.
473    
474     Historically, either value is correct, but rxvt-unicode adopts the debian
475     policy of using C<^?> when unsure, because it's the one only only correct
476     choice :).
477    
478     Rxvt-unicode tries to inherit the current stty settings and uses the value
479     of `erase' to guess the value for backspace. If rxvt-unicode wasn't
480     started from a terminal (say, from a menu or by remote shell), then the
481     system value of `erase', which corresponds to CERASE in <termios.h>, will
482     be used (which may not be the same as your stty setting).
483    
484     For starting a new rxvt-unicode:
485    
486     # use Backspace = ^H
487     $ stty erase ^H
488     $ @@RXVT_NAME@@
489    
490     # use Backspace = ^?
491     $ stty erase ^?
492     $ @@RXVT_NAME@@
493    
494     Toggle with "ESC[36h" / "ESC[36l" as documented in @@RXVT_NAME@@(7).
495    
496     For an existing rxvt-unicode:
497    
498     # use Backspace = ^H
499     $ stty erase ^H
500     $ echo -n "^[[36h"
501    
502     # use Backspace = ^?
503     $ stty erase ^?
504     $ echo -n "^[[36l"
505    
506     This helps satisfy some of the Backspace discrepancies that occur, but
507     if you use Backspace = C<^H>, make sure that the termcap/terminfo value
508     properly reflects that.
509    
510     The Delete key is a another casualty of the ill-defined Backspace problem.
511     To avoid confusion between the Backspace and Delete keys, the Delete
512     key has been assigned an escape sequence to match the vt100 for Execute
513     (ESC[3~) and is in the supplied termcap/terminfo.
514    
515     Some other Backspace problems:
516    
517     some editors use termcap/terminfo,
518     some editors (vim I'm told) expect Backspace = ^H,
519     GNU Emacs (and Emacs-like editors) use ^H for help.
520    
521     Perhaps someday this will all be resolved in a consistent manner.
522    
523     =item I don't like the key-bindings. How do I change them?
524    
525     There are some compile-time selections available via configure. Unless
526     you have run "configure" with the C<--disable-resources> option you can
527 root 1.33 use the `keysym' resource to alter the keystrings associated with keysyms.
528 root 1.25
529 root 1.33 Here's an example for a URxvt session started using `@@RXVT_NAME@@ -name URxvt'
530 root 1.25
531 root 1.34 URxvt.keysym.Home: \033[1~
532     URxvt.keysym.End: \033[4~
533     URxvt.keysym.C-apostrophe: \033<C-'>
534     URxvt.keysym.C-slash: \033<C-/>
535     URxvt.keysym.C-semicolon: \033<C-;>
536     URxvt.keysym.C-grave: \033<C-`>
537     URxvt.keysym.C-comma: \033<C-,>
538     URxvt.keysym.C-period: \033<C-.>
539     URxvt.keysym.C-0x60: \033<C-`>
540     URxvt.keysym.C-Tab: \033<C-Tab>
541     URxvt.keysym.C-Return: \033<C-Return>
542     URxvt.keysym.S-Return: \033<S-Return>
543     URxvt.keysym.S-space: \033<S-Space>
544     URxvt.keysym.M-Up: \033<M-Up>
545     URxvt.keysym.M-Down: \033<M-Down>
546     URxvt.keysym.M-Left: \033<M-Left>
547     URxvt.keysym.M-Right: \033<M-Right>
548     URxvt.keysym.M-C-0: list \033<M-C- 0123456789 >
549     URxvt.keysym.M-C-a: list \033<M-C- abcdefghijklmnopqrstuvwxyz >
550     URxvt.keysym.F12: command:\033]701;zh_CN.GBK\007
551    
552     See some more examples in the documentation for the B<keysym> resource.
553 root 1.25
554     =item I'm using keyboard model XXX that has extra Prior/Next/Insert keys.
555     How do I make use of them? For example, the Sun Keyboard type 4
556     has the following mappings that rxvt-unicode doesn't recognize.
557    
558     KP_Insert == Insert
559     F22 == Print
560     F27 == Home
561     F29 == Prior
562     F33 == End
563     F35 == Next
564    
565 root 1.34 Rather than have rxvt-unicode try to accommodate all the various possible
566     keyboard mappings, it is better to use `xmodmap' to remap the keys as
567     required for your particular machine.
568 root 1.25
569     =item How do I distinguish if I'm running rxvt-unicode or a regular xterm?
570     I need this to decide about setting colors etc.
571    
572     rxvt and rxvt-unicode always export the variable "COLORTERM", so you can
573     check and see if that is set. Note that several programs, JED, slrn,
574     Midnight Commander automatically check this variable to decide whether or
575     not to use color.
576    
577     =item How do I set the correct, full IP address for the DISPLAY variable?
578    
579     If you've compiled rxvt-unicode with DISPLAY_IS_IP and have enabled
580     insecure mode then it is possible to use the following shell script
581     snippets to correctly set the display. If your version of rxvt-unicode
582     wasn't also compiled with ESCZ_ANSWER (as assumed in these snippets) then
583     the COLORTERM variable can be used to distinguish rxvt-unicode from a
584     regular xterm.
585    
586     Courtesy of Chuck Blake <cblake@BBN.COM> with the following shell script
587     snippets:
588    
589     # Bourne/Korn/POSIX family of shells:
590     [ ${TERM:-foo} = foo ] && TERM=xterm # assume an xterm if we don't know
591     if [ ${TERM:-foo} = xterm ]; then
592     stty -icanon -echo min 0 time 15 # see if enhanced rxvt or not
593     echo -n '^[Z'
594     read term_id
595     stty icanon echo
596     if [ ""${term_id} = '^[[?1;2C' -a ${DISPLAY:-foo} = foo ]; then
597     echo -n '^[[7n' # query the rxvt we are in for the DISPLAY string
598     read DISPLAY # set it in our local shell
599     fi
600     fi
601    
602     =item How do I compile the manual pages for myself?
603    
604     You need to have a recent version of perl installed as F</usr/bin/perl>,
605     one that comes with F<pod2man>, F<pod2text> and F<pod2html>. Then go to
606     the doc subdirectory and enter C<make alldoc>.
607    
608 root 1.27 =item My question isn't answered here, can I ask a human?
609    
610     Before sending me mail, you could go to IRC: C<irc.freenode.net>,
611     channel C<#rxvt-unicode> has some rxvt-unicode enthusiasts that might be
612     interested in learning about new and exciting problems (but not FAQs :).
613    
614 root 1.25 =back
615 root 1.23
616     =head1 SYNOPSIS
617    
618     # set a new font set
619     printf '\33]50;%s\007' 9x15,xft:Kochi" Mincho"
620    
621     # change the locale and tell rxvt-unicode about it
622     export LC_CTYPE=ja_JP.EUC-JP; printf "\33]701;$LC_CTYPE\007"
623    
624     # set window title
625     printf '\33]2;%s\007' "new window title"
626    
627     =head1 DESCRIPTION
628    
629     The rest of this document describes various technical aspects of
630     B<rxvt-unicode>. First the description of supported command sequences,
631     followed by menu and pixmap support and last by a description of all
632     features selectable at C<configure> time.
633    
634 root 1.2 =head1 RXVT TECHNICAL REFERENCE
635 root 1.1
636     =head1 Definitions
637    
638     =over 4
639    
640     =item B<< C<c> >>
641    
642     The literal character c.
643    
644     =item B<< C<C> >>
645    
646     A single (required) character.
647    
648     =item B<< C<Ps> >>
649    
650     A single (usually optional) numeric parameter, composed of one or more
651     digits.
652    
653     =item B<< C<Pm> >>
654    
655     A multiple numeric parameter composed of any number of single numeric
656     parameters, separated by C<;> character(s).
657    
658     =item B<< C<Pt> >>
659    
660     A text parameter composed of printable characters.
661    
662     =back
663    
664     =head1 Values
665    
666     =over 4
667    
668     =item B<< C<ENQ> >>
669    
670     Enquiry (Ctrl-E) = Send Device Attributes (DA)
671 root 1.2 request attributes from terminal. See B<< C<ESC [ Ps c> >>.
672 root 1.1
673     =item B<< C<BEL> >>
674    
675     Bell (Ctrl-G)
676    
677     =item B<< C<BS> >>
678    
679     Backspace (Ctrl-H)
680    
681     =item B<< C<TAB> >>
682    
683     Horizontal Tab (HT) (Ctrl-I)
684    
685     =item B<< C<LF> >>
686    
687     Line Feed or New Line (NL) (Ctrl-J)
688    
689     =item B<< C<VT> >>
690    
691     Vertical Tab (Ctrl-K) same as B<< C<LF> >>
692    
693     =item B<< C<FF> >>
694    
695     Form Feed or New Page (NP) (Ctrl-L) same as B<< C<LF> >>
696    
697     =item B<< C<CR> >>
698    
699     Carriage Return (Ctrl-M)
700    
701     =item B<< C<SO> >>
702    
703     Shift Out (Ctrl-N), invokes the G1 character set.
704     Switch to Alternate Character Set
705    
706     =item B<< C<SI> >>
707    
708     Shift In (Ctrl-O), invokes the G0 character set (the default).
709     Switch to Standard Character Set
710    
711     =item B<< C<SPC> >>
712    
713     Space Character
714    
715     =back
716    
717     =head1 Escape Sequences
718    
719     =over 4
720    
721     =item B<< C<ESC # 8> >>
722    
723     DEC Screen Alignment Test (DECALN)
724    
725     =item B<< C<ESC 7> >>
726    
727     Save Cursor (SC)
728    
729     =item B<< C<ESC 8> >>
730    
731     Restore Cursor
732    
733     =item B<< C<ESC => >>
734    
735     Application Keypad (SMKX). See also next sequence.
736    
737     =item B<<< C<< ESC >> >>>
738    
739     Normal Keypad (RMKX)
740    
741     B<Note:> If the numeric keypad is activated, eg, B<Num_Lock> has been
742     pressed, numbers or control functions are generated by the numeric keypad
743     (see Key Codes).
744    
745     =item B<< C<ESC D> >>
746    
747     Index (IND)
748    
749     =item B<< C<ESC E> >>
750    
751     Next Line (NEL)
752    
753     =item B<< C<ESC H> >>
754    
755     Tab Set (HTS)
756    
757     =item B<< C<ESC M> >>
758    
759     Reverse Index (RI)
760    
761     =item B<< C<ESC N> >>
762    
763     Single Shift Select of G2 Character Set (SS2): affects next character
764     only I<unimplemented>
765    
766     =item B<< C<ESC O> >>
767    
768     Single Shift Select of G3 Character Set (SS3): affects next character
769     only I<unimplemented>
770    
771     =item B<< C<ESC Z> >>
772    
773 root 1.3 Obsolete form of returns: B<< C<ESC[?1;2C> >> I<rxvt-unicode compile-time option>
774 root 1.1
775     =item B<< C<ESC c> >>
776    
777     Full reset (RIS)
778    
779     =item B<< C<ESC n> >>
780    
781     Invoke the G2 Character Set (LS2)
782    
783     =item B<< C<ESC o> >>
784    
785     Invoke the G3 Character Set (LS3)
786    
787 root 1.23 =item B<< C<ESC> ( C> >>
788 root 1.1
789     Designate G0 Character Set (ISO 2022), see below for values of C<C>.
790    
791 root 1.23 =item B<< C<ESC> ) C> >>
792 root 1.1
793     Designate G1 Character Set (ISO 2022), see below for values of C<C>.
794    
795     =item B<< C<ESC * C> >>
796    
797     Designate G2 Character Set (ISO 2022), see below for values of C<C>.
798    
799     =item B<< C<ESC + C> >>
800    
801     Designate G3 Character Set (ISO 2022), see below for values of C<C>.
802    
803     =item B<< C<ESC $ C> >>
804    
805     Designate Kanji Character Set
806    
807     Where B<< C<C> >> is one of:
808    
809     =begin table
810    
811     C = C<0> DEC Special Character and Line Drawing Set
812     C = C<A> United Kingdom (UK)
813     C = C<B> United States (USASCII)
814     C = C<< < >> Multinational character set I<unimplemented>
815     C = C<5> Finnish character set I<unimplemented>
816     C = C<C> Finnish character set I<unimplemented>
817     C = C<K> German character set I<unimplemented>
818    
819     =end table
820    
821     =back
822    
823     X<CSI>
824    
825 root 1.12 =head1 CSI (Command Sequence Introducer) Sequences
826 root 1.1
827     =over 4
828    
829     =item B<< C<ESC [ Ps @> >>
830    
831     Insert B<< C<Ps> >> (Blank) Character(s) [default: 1] (ICH)X<ESCOBPsA>
832    
833     =item B<< C<ESC [ Ps A> >>
834    
835     Cursor Up B<< C<Ps> >> Times [default: 1] (CUU)
836    
837     =item B<< C<ESC [ Ps B> >>
838    
839     Cursor Down B<< C<Ps> >> Times [default: 1] (CUD)X<ESCOBPsC>
840    
841     =item B<< C<ESC [ Ps C> >>
842    
843     Cursor Forward B<< C<Ps> >> Times [default: 1] (CUF)
844    
845     =item B<< C<ESC [ Ps D> >>
846    
847     Cursor Backward B<< C<Ps> >> Times [default: 1] (CUB)
848    
849     =item B<< C<ESC [ Ps E> >>
850    
851     Cursor Down B<< C<Ps> >> Times [default: 1] and to first column
852    
853     =item B<< C<ESC [ Ps F> >>
854    
855     Cursor Up B<< C<Ps> >> Times [default: 1] and to first columnX<ESCOBPsG>
856    
857     =item B<< C<ESC [ Ps G> >>
858    
859     Cursor to Column B<< C<Ps> >> (HPA)
860    
861     =item B<< C<ESC [ Ps;Ps H> >>
862    
863     Cursor Position [row;column] [default: 1;1] (CUP)
864    
865     =item B<< C<ESC [ Ps I> >>
866    
867     Move forward B<< C<Ps> >> tab stops [default: 1]
868    
869     =item B<< C<ESC [ Ps J> >>
870    
871     Erase in Display (ED)
872    
873     =begin table
874    
875     B<< C<Ps = 0> >> Clear Below (default)
876     B<< C<Ps = 1> >> Clear Above
877     B<< C<Ps = 2> >> Clear All
878    
879     =end table
880    
881     =item B<< C<ESC [ Ps K> >>
882    
883     Erase in Line (EL)
884    
885     =begin table
886    
887     B<< C<Ps = 0> >> Clear to Right (default)
888     B<< C<Ps = 1> >> Clear to Left
889     B<< C<Ps = 2> >> Clear All
890    
891     =end table
892    
893     =item B<< C<ESC [ Ps L> >>
894    
895     Insert B<< C<Ps> >> Line(s) [default: 1] (IL)
896    
897     =item B<< C<ESC [ Ps M> >>
898    
899     Delete B<< C<Ps> >> Line(s) [default: 1] (DL)
900    
901     =item B<< C<ESC [ Ps P> >>
902    
903     Delete B<< C<Ps> >> Character(s) [default: 1] (DCH)
904    
905     =item B<< C<ESC [ Ps;Ps;Ps;Ps;Ps T> >>
906    
907     Initiate . I<unimplemented> Parameters are
908     [func;startx;starty;firstrow;lastrow].
909    
910     =item B<< C<ESC [ Ps W> >>
911    
912     Tabulator functions
913    
914     =begin table
915    
916     B<< C<Ps = 0> >> Tab Set (HTS)
917     B<< C<Ps = 2> >> Tab Clear (TBC), Clear Current Column (default)
918     B<< C<Ps = 5> >> Tab Clear (TBC), Clear All
919    
920     =end table
921    
922     =item B<< C<ESC [ Ps X> >>
923    
924     Erase B<< C<Ps> >> Character(s) [default: 1] (ECH)
925    
926     =item B<< C<ESC [ Ps Z> >>
927    
928     Move backward B<< C<Ps> >> [default: 1] tab stops
929    
930     =item B<< C<ESC [ Ps '> >>
931    
932 root 1.2 See B<< C<ESC [ Ps G> >>
933 root 1.1
934     =item B<< C<ESC [ Ps a> >>
935    
936 root 1.2 See B<< C<ESC [ Ps C> >>
937 root 1.1
938     =item B<< C<ESC [ Ps c> >>
939    
940     Send Device Attributes (DA)
941     B<< C<Ps = 0> >> (or omitted): request attributes from terminal
942     returns: B<< C<ESC[?1;2c> >> (``I am a VT100 with Advanced Video
943     Option'')
944    
945     =item B<< C<ESC [ Ps d> >>
946    
947     Cursor to Line B<< C<Ps> >> (VPA)
948    
949     =item B<< C<ESC [ Ps e> >>
950    
951 root 1.2 See B<< C<ESC [ Ps A> >>
952 root 1.1
953     =item B<< C<ESC [ Ps;Ps f> >>
954    
955     Horizontal and Vertical Position [row;column] (HVP) [default: 1;1]
956    
957     =item B<< C<ESC [ Ps g> >>
958    
959     Tab Clear (TBC)
960    
961     =begin table
962    
963     B<< C<Ps = 0> >> Clear Current Column (default)
964     B<< C<Ps = 3> >> Clear All (TBC)
965    
966     =end table
967    
968 root 1.23 =item B<< C<ESC [ Pm h> >>
969    
970     Set Mode (SM). See B<< C<ESC [ Pm l> >> sequence for description of C<Pm>.
971    
972 root 1.1 =item B<< C<ESC [ Ps i> >>
973    
974 root 1.23 Printing. See also the C<print-pipe> resource.
975 root 1.1
976     =begin table
977    
978 root 1.23 B<< C<Ps = 0> >> print screen (MC0)
979 root 1.1 B<< C<Ps = 4> >> disable transparent print mode (MC4)
980 root 1.23 B<< C<Ps = 5> >> enable transparent print mode (MC5)
981 root 1.1
982     =end table
983    
984     =item B<< C<ESC [ Pm l> >>
985    
986     Reset Mode (RM)
987    
988     =over 4
989    
990     =item B<< C<Ps = 4> >>
991    
992     =begin table
993    
994     B<< C<h> >> Insert Mode (SMIR)
995     B<< C<l> >> Replace Mode (RMIR)
996    
997     =end table
998    
999 root 1.12 =item B<< C<Ps = 20> >> (partially implemented)
1000 root 1.1
1001     =begin table
1002    
1003     B<< C<h> >> Automatic Newline (LNM)
1004 root 1.12 B<< C<l> >> Normal Linefeed (LNM)
1005 root 1.1
1006     =end table
1007    
1008     =back
1009    
1010     =item B<< C<ESC [ Pm m> >>
1011    
1012     Character Attributes (SGR)
1013    
1014     =begin table
1015    
1016     B<< C<Ps = 0> >> Normal (default)
1017 root 1.12 B<< C<Ps = 1 / 21> >> On / Off Bold (bright fg)
1018 root 1.23 B<< C<Ps = 3 / 23> >> On / Off Italic
1019 root 1.1 B<< C<Ps = 4 / 24> >> On / Off Underline
1020 root 1.12 B<< C<Ps = 5 / 25> >> On / Off Slow Blink (bright bg)
1021     B<< C<Ps = 6 / 26> >> On / Off Rapid Blink (bright bg)
1022 root 1.23 B<< C<Ps = 7 / 27> >> On / Off Inverse
1023     B<< C<Ps = 8 / 27> >> On / Off Invisible (NYI)
1024 root 1.1 B<< C<Ps = 30 / 40> >> fg/bg Black
1025     B<< C<Ps = 31 / 41> >> fg/bg Red
1026     B<< C<Ps = 32 / 42> >> fg/bg Green
1027     B<< C<Ps = 33 / 43> >> fg/bg Yellow
1028     B<< C<Ps = 34 / 44> >> fg/bg Blue
1029     B<< C<Ps = 35 / 45> >> fg/bg Magenta
1030     B<< C<Ps = 36 / 46> >> fg/bg Cyan
1031 root 1.23 B<< C<Ps = 38;5 / 48;5> >> set fg/bg to color #m (ISO 8613-6)
1032 root 1.1 B<< C<Ps = 37 / 47> >> fg/bg White
1033     B<< C<Ps = 39 / 49> >> fg/bg Default
1034 root 1.12 B<< C<Ps = 90 / 100> >> fg/bg Bright Black
1035     B<< C<Ps = 91 / 101> >> fg/bg Bright Red
1036     B<< C<Ps = 92 / 102> >> fg/bg Bright Green
1037     B<< C<Ps = 93 / 103> >> fg/bg Bright Yellow
1038     B<< C<Ps = 94 / 104> >> fg/bg Bright Blue
1039     B<< C<Ps = 95 / 105> >> fg/bg Bright Magenta
1040     B<< C<Ps = 96 / 106> >> fg/bg Bright Cyan
1041     B<< C<Ps = 97 / 107> >> fg/bg Bright White
1042     B<< C<Ps = 99 / 109> >> fg/bg Bright Default
1043 root 1.1
1044     =end table
1045    
1046     =item B<< C<ESC [ Ps n> >>
1047    
1048     Device Status Report (DSR)
1049    
1050     =begin table
1051    
1052     B<< C<Ps = 5> >> Status Report B<< C<ESC [ 0 n> >> (``OK'')
1053     B<< C<Ps = 6> >> Report Cursor Position (CPR) [row;column] as B<< C<ESC [ r ; c R> >>
1054     B<< C<Ps = 7> >> Request Display Name
1055     B<< C<Ps = 8> >> Request Version Number (place in window title)
1056    
1057     =end table
1058    
1059     =item B<< C<ESC [ Ps;Ps r> >>
1060    
1061     Set Scrolling Region [top;bottom]
1062     [default: full size of window] (CSR)
1063    
1064     =item B<< C<ESC [ s> >>
1065    
1066     Save Cursor (SC)
1067    
1068 root 1.34 =item B<< C<ESC [ Ps;Pt t> >>
1069    
1070     Window Operations
1071    
1072     =begin table
1073    
1074     B<< C<Ps = 1> >> Deiconify (map) window
1075     B<< C<Ps = 2> >> Iconify window
1076     B<< C<Ps = 3> >> B<< C<ESC [ 3 ; X ; Y t> >> Move window to (X|Y)
1077     B<< C<Ps = 4> >> B<< C<ESC [ 4 ; H ; W t> >> Resize to WxH pixels
1078     B<< C<Ps = 5> >> Raise window
1079     B<< C<Ps = 6> >> Lower window
1080     B<< C<Ps = 7> >> Refresh screen once
1081     B<< C<Ps = 8> >> B<< C<ESC [ 8 ; R ; C t> >> Resize to R rows and C columns
1082     B<< C<Ps = 11> >> Report window state (responds with C<Ps = 1> or C<Ps = 2>
1083     B<< C<Ps = 13> >> Report window position (responds with C<Ps = 3>)
1084     B<< C<Ps = 14> >> Report window pixel size (responds with C<Ps = 4>)
1085     B<< C<Ps = 18> >> Report window text size (responds with C<Ps = 7>)
1086     B<< C<Ps = 19> >> Currently the same as C<Ps = 18>, but responds with C<Ps = 9>
1087     B<< C<Ps = 20> >> Reports icon label (B<< C<ESC ] L NAME \234> >>)
1088     B<< C<Ps = 21> >> Reports window title (B<< C<ESC ] l NAME \234> >>)
1089     B<< C<Ps = 24..> >> Set window height to C<Ps> rows
1090 root 1.1
1091 root 1.34 =end table
1092 root 1.1
1093     =item B<< C<ESC [ u> >>
1094    
1095     Restore Cursor
1096    
1097 root 1.34 =item B<< C<ESC [ Ps x> >>
1098    
1099     Request Terminal Parameters (DECREQTPARM)
1100    
1101 root 1.1 =back
1102    
1103     X<PrivateModes>
1104    
1105     =head1 DEC Private Modes
1106    
1107     =over 4
1108    
1109     =item B<< C<ESC [ ? Pm h> >>
1110    
1111     DEC Private Mode Set (DECSET)
1112    
1113     =item B<< C<ESC [ ? Pm l> >>
1114    
1115     DEC Private Mode Reset (DECRST)
1116    
1117     =item B<< C<ESC [ ? Pm r> >>
1118    
1119     Restore previously saved DEC Private Mode Values.
1120    
1121     =item B<< C<ESC [ ? Pm s> >>
1122    
1123     Save DEC Private Mode Values.
1124    
1125     =item B<< C<ESC [ ? Pm t> >>
1126    
1127     Toggle DEC Private Mode Values (rxvt extension). I<where>
1128    
1129     =over 4
1130    
1131     =item B<< C<Ps = 1> >> (DECCKM)
1132    
1133     =begin table
1134    
1135     B<< C<h> >> Application Cursor Keys
1136     B<< C<l> >> Normal Cursor Keys
1137    
1138     =end table
1139    
1140     =item B<< C<Ps = 2> >> (ANSI/VT52 mode)
1141    
1142     =begin table
1143    
1144     B<< C<h> >> Enter VT52 mode
1145     B<< C<l> >> Enter VT52 mode
1146    
1147     =end table
1148    
1149     =item B<< C<Ps = 3> >>
1150    
1151     =begin table
1152    
1153     B<< C<h> >> 132 Column Mode (DECCOLM)
1154     B<< C<l> >> 80 Column Mode (DECCOLM)
1155    
1156     =end table
1157    
1158     =item B<< C<Ps = 4> >>
1159    
1160     =begin table
1161    
1162     B<< C<h> >> Smooth (Slow) Scroll (DECSCLM)
1163     B<< C<l> >> Jump (Fast) Scroll (DECSCLM)
1164    
1165     =end table
1166    
1167     =item B<< C<Ps = 5> >>
1168    
1169     =begin table
1170    
1171     B<< C<h> >> Reverse Video (DECSCNM)
1172     B<< C<l> >> Normal Video (DECSCNM)
1173    
1174     =end table
1175    
1176     =item B<< C<Ps = 6> >>
1177    
1178     =begin table
1179    
1180     B<< C<h> >> Origin Mode (DECOM)
1181     B<< C<l> >> Normal Cursor Mode (DECOM)
1182    
1183     =end table
1184    
1185     =item B<< C<Ps = 7> >>
1186    
1187     =begin table
1188    
1189     B<< C<h> >> Wraparound Mode (DECAWM)
1190     B<< C<l> >> No Wraparound Mode (DECAWM)
1191    
1192     =end table
1193    
1194     =item B<< C<Ps = 8> >> I<unimplemented>
1195    
1196     =begin table
1197    
1198     B<< C<h> >> Auto-repeat Keys (DECARM)
1199     B<< C<l> >> No Auto-repeat Keys (DECARM)
1200    
1201     =end table
1202    
1203     =item B<< C<Ps = 9> >> X10 XTerm
1204    
1205     =begin table
1206    
1207     B<< C<h> >> Send Mouse X & Y on button press.
1208     B<< C<l> >> No mouse reporting.
1209    
1210     =end table
1211    
1212     =item B<< C<Ps = 10> >> (B<rxvt>)
1213    
1214     =begin table
1215    
1216 root 1.12 B<< C<h> >> menuBar visible
1217     B<< C<l> >> menuBar invisible
1218 root 1.1
1219     =end table
1220    
1221     =item B<< C<Ps = 25> >>
1222    
1223     =begin table
1224    
1225     B<< C<h> >> Visible cursor {cnorm/cvvis}
1226     B<< C<l> >> Invisible cursor {civis}
1227    
1228     =end table
1229    
1230     =item B<< C<Ps = 30> >>
1231    
1232     =begin table
1233    
1234     B<< C<h> >> scrollBar visisble
1235     B<< C<l> >> scrollBar invisisble
1236    
1237     =end table
1238    
1239     =item B<< C<Ps = 35> >> (B<rxvt>)
1240    
1241     =begin table
1242    
1243     B<< C<h> >> Allow XTerm Shift+key sequences
1244     B<< C<l> >> Disallow XTerm Shift+key sequences
1245    
1246     =end table
1247    
1248     =item B<< C<Ps = 38> >> I<unimplemented>
1249    
1250     Enter Tektronix Mode (DECTEK)
1251    
1252     =item B<< C<Ps = 40> >>
1253    
1254     =begin table
1255    
1256     B<< C<h> >> Allow 80/132 Mode
1257     B<< C<l> >> Disallow 80/132 Mode
1258    
1259     =end table
1260    
1261     =item B<< C<Ps = 44> >> I<unimplemented>
1262    
1263     =begin table
1264    
1265     B<< C<h> >> Turn On Margin Bell
1266     B<< C<l> >> Turn Off Margin Bell
1267    
1268     =end table
1269    
1270     =item B<< C<Ps = 45> >> I<unimplemented>
1271    
1272     =begin table
1273    
1274     B<< C<h> >> Reverse-wraparound Mode
1275     B<< C<l> >> No Reverse-wraparound Mode
1276    
1277     =end table
1278    
1279     =item B<< C<Ps = 46> >> I<unimplemented>
1280    
1281     =item B<< C<Ps = 47> >>
1282    
1283     =begin table
1284    
1285     B<< C<h> >> Use Alternate Screen Buffer
1286     B<< C<l> >> Use Normal Screen Buffer
1287    
1288     =end table
1289    
1290     X<Priv66>
1291    
1292     =item B<< C<Ps = 66> >>
1293    
1294     =begin table
1295    
1296 root 1.2 B<< C<h> >> Application Keypad (DECPAM) == C<ESC =>
1297     B<< C<l> >> Normal Keypad (DECPNM) == C<< ESC > >>
1298 root 1.1
1299     =end table
1300    
1301     =item B<< C<Ps = 67> >>
1302    
1303     =begin table
1304    
1305     B<< C<h> >> Backspace key sends B<< C<BS> (DECBKM) >>
1306     B<< C<l> >> Backspace key sends B<< C<DEL> >>
1307    
1308     =end table
1309    
1310     =item B<< C<Ps = 1000> >> (X11 XTerm)
1311    
1312     =begin table
1313    
1314     B<< C<h> >> Send Mouse X & Y on button press and release.
1315     B<< C<l> >> No mouse reporting.
1316    
1317     =end table
1318    
1319     =item B<< C<Ps = 1001> >> (X11 XTerm) I<unimplemented>
1320    
1321     =begin table
1322    
1323     B<< C<h> >> Use Hilite Mouse Tracking.
1324     B<< C<l> >> No mouse reporting.
1325    
1326     =end table
1327    
1328 root 1.12 =item B<< C<Ps = 1010> >> (B<rxvt>)
1329 root 1.1
1330     =begin table
1331    
1332     B<< C<h> >> Don't scroll to bottom on TTY output
1333     B<< C<l> >> Scroll to bottom on TTY output
1334    
1335     =end table
1336    
1337 root 1.12 =item B<< C<Ps = 1011> >> (B<rxvt>)
1338 root 1.1
1339     =begin table
1340    
1341     B<< C<h> >> Scroll to bottom when a key is pressed
1342     B<< C<l> >> Don't scroll to bottom when a key is pressed
1343    
1344     =end table
1345    
1346     =item B<< C<Ps = 1047> >>
1347    
1348     =begin table
1349    
1350     B<< C<h> >> Use Alternate Screen Buffer
1351     B<< C<l> >> Use Normal Screen Buffer - clear Alternate Screen Buffer if returning from it
1352    
1353     =end table
1354    
1355     =item B<< C<Ps = 1048> >>
1356    
1357     =begin table
1358    
1359     B<< C<h> >> Save cursor position
1360     B<< C<l> >> Restore cursor position
1361    
1362     =end table
1363    
1364 root 1.12 =item B<< C<Ps = 1049> >>
1365    
1366     =begin table
1367    
1368     B<< C<h> >> Use Alternate Screen Buffer - clear Alternate Screen Buffer if switching to it
1369     B<< C<l> >> Use Normal Screen Buffer
1370    
1371     =end table
1372    
1373 root 1.1 =back
1374    
1375     =back
1376    
1377     X<XTerm>
1378    
1379     =head1 XTerm Operating System Commands
1380    
1381     =over 4
1382    
1383     =item B<< C<ESC ] Ps;Pt ST> >>
1384    
1385     Set XTerm Parameters. 8-bit ST: 0x9c, 7-bit ST sequence: ESC \ (0x1b,
1386     0x5c), backwards compatible terminator BEL (0x07) is also accepted. any
1387     B<octet> can be escaped by prefixing it with SYN (0x16, ^V).
1388    
1389     =begin table
1390    
1391     B<< C<Ps = 0> >> Change Icon Name and Window Title to B<< C<Pt> >>
1392     B<< C<Ps = 1> >> Change Icon Name to B<< C<Pt> >>
1393     B<< C<Ps = 2> >> Change Window Title to B<< C<Pt> >>
1394     B<< C<Ps = 3> >> If B<< C<Pt> >> starts with a B<< C<?> >>, query the (STRING) property of the window and return it. If B<< C<Pt> >> contains a B<< C<=> >>, set the named property to the given value, else delete the specified property.
1395     B<< C<Ps = 4> >> B<< C<Pt> >> is a semi-colon separated sequence of one or more semi-colon separated B<number>/B<name> pairs, where B<number> is an index to a colour and B<name> is the name of a colour. Each pair causes the B<number>ed colour to be changed to B<name>. Numbers 0-7 corresponds to low-intensity (normal) colours and 8-15 corresponds to high-intensity colours. 0=black, 1=red, 2=green, 3=yellow, 4=blue, 5=magenta, 6=cyan, 7=white
1396     B<< C<Ps = 10> >> Change colour of text foreground to B<< C<Pt> >> B<(NB: may change in future)>
1397     B<< C<Ps = 11> >> Change colour of text background to B<< C<Pt> >> B<(NB: may change in future)>
1398     B<< C<Ps = 12> >> Change colour of text cursor foreground to B<< C<Pt> >>
1399     B<< C<Ps = 13> >> Change colour of mouse foreground to B<< C<Pt> >>
1400     B<< C<Ps = 17> >> Change colour of highlight characters to B<< C<Pt> >>
1401     B<< C<Ps = 18> >> Change colour of bold characters to B<< C<Pt> >>
1402     B<< C<Ps = 19> >> Change colour of underlined characters to B<< C<Pt> >>
1403     B<< C<Ps = 20> >> Change default background to B<< C<Pt> >>
1404     B<< C<Ps = 39> >> Change default foreground colour to B<< C<Pt> >> I<rxvt compile-time option>
1405     B<< C<Ps = 46> >> Change Log File to B<< C<Pt> >> I<unimplemented>
1406     B<< C<Ps = 49> >> Change default background colour to B<< C<Pt> >> I<rxvt compile-time option>
1407     B<< C<Ps = 50> >> Set fontset to B<< C<Pt> >>, with the following special values of B<< C<Pt> >> (B<rxvt>) B<< C<#+n> >> change up B<< C<n> >> B<< C<#-n> >> change down B<< C<n> >> if B<< C<n> >> is missing of 0, a value of 1 is used I<empty> change to font0 B<< C<n> >> change to font B<< C<n> >>
1408     B<< C<Ps = 55> >> Log all scrollback buffer and all of screen to B<< C<Pt> >>
1409 root 1.2 B<< C<Ps = 701> >> Change current locale to B<< C<Pt> >>, or, if B<< C<Pt> >> is B<< C<?> >>, return the current locale (@@RXVT_NAME@@ extension)
1410 root 1.23 B<< C<Ps = 703> >> Menubar command B<< C<Pt> >> I<rxvt compile-time option> (rxvt-unicode extension)
1411     B<< C<Ps = 704> >> Change colour of italic characters to B<< C<Pt> >>
1412     B<< C<Ps = 705> >> Change background pixmap tint colour to B<< C<Pt> >>
1413     B<< C<Ps = 710> >> Set normal fontset to B<< C<Pt> >>. Same as C<Ps = 50>.
1414     B<< C<Ps = 711> >> Set bold fontset to B<< C<Pt> >>. Similar to C<Ps = 50>.
1415     B<< C<Ps = 712> >> Set italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50>.
1416     B<< C<Ps = 713> >> Set bold-italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50>.
1417 root 1.1
1418     =end table
1419    
1420     =back
1421    
1422     X<menuBar>
1423    
1424     =head1 menuBar
1425    
1426     B<< The exact syntax used is I<almost> solidified. >>
1427     In the menus, B<DON'T> try to use menuBar commands that add or remove a
1428     menuBar.
1429    
1430     Note that in all of the commands, the B<< I</path/> >> I<cannot> be
1431     omitted: use B<./> to specify a menu relative to the current menu.
1432    
1433     =head2 Overview of menuBar operation
1434    
1435     For the menuBar XTerm escape sequence C<ESC ] 703 ; Pt ST>, the syntax
1436     of C<Pt> can be used for a variety of tasks:
1437    
1438     At the top level is the current menuBar which is a member of a circular
1439     linked-list of other such menuBars.
1440    
1441     The menuBar acts as a parent for the various drop-down menus, which in
1442     turn, may have labels, separator lines, menuItems and subMenus.
1443    
1444     The menuItems are the useful bits: you can use them to mimic keyboard
1445     input or even to send text or escape sequences back to rxvt.
1446    
1447     The menuBar syntax is intended to provide a simple yet robust method of
1448     constructing and manipulating menus and navigating through the
1449     menuBars.
1450    
1451     The first step is to use the tag B<< [menu:I<name>] >> which creates
1452     the menuBar called I<name> and allows access. You may now or menus,
1453     subMenus, and menuItems. Finally, use the tag B<[done]> to set the
1454     menuBar access as B<readonly> to prevent accidental corruption of the
1455     menus. To re-access the current menuBar for alterations, use the tag
1456     B<[menu]>, make the alterations and then use B<[done]>
1457    
1458     X<menuBarCommands>
1459    
1460     =head2 Commands
1461    
1462     =over 4
1463    
1464     =item B<< [menu:+I<name>] >>
1465    
1466     access the named menuBar for creation or alteration. If a new menuBar
1467     is created, it is called I<name> (max of 15 chars) and the current
1468     menuBar is pushed onto the stack
1469    
1470     =item B<[menu]>
1471    
1472     access the current menuBar for alteration
1473    
1474     =item B<< [title:+I<string>] >>
1475    
1476     set the current menuBar's title to I<string>, which may contain the
1477     following format specifiers:
1478     B<%%> : literal B<%> character
1479     B<%n> : rxvt name (as per the B<-name> command-line option)
1480     B<%v> : rxvt version
1481    
1482     =item B<[done]>
1483    
1484     set menuBar access as B<readonly>.
1485     End-of-file tag for B<< [read:+I<file>] >> operations.
1486    
1487     =item B<< [read:+I<file>] >>
1488    
1489     read menu commands directly from I<file> (extension ".menu" will be
1490     appended if required.) Start reading at a line with B<[menu]> or B<<
1491     [menu:+I<name> >> and continuing until B<[done]> is encountered.
1492    
1493     Blank and comment lines (starting with B<#>) are ignored. Actually,
1494     since any invalid menu commands are also ignored, almost anything could
1495     be construed as a comment line, but this may be tightened up in the
1496     future ... so don't count on it!.
1497    
1498     =item B<< [read:+I<file>;+I<name>] >>
1499    
1500     The same as B<< [read:+I<file>] >>, but start reading at a line with
1501     B<< [menu:+I<name>] >> and continuing until B<< [done:+I<name>] >> or
1502     B<[done]> is encountered.
1503    
1504     =item B<[dump]>
1505    
1506     dump all menuBars to the file B</tmp/rxvt-PID> in a format suitable for
1507     later rereading.
1508    
1509     =item B<[rm:name]>
1510    
1511     remove the named menuBar
1512    
1513     =item B<[rm] [rm:]>
1514    
1515     remove the current menuBar
1516    
1517     =item B<[rm*] [rm:*]>
1518    
1519     remove all menuBars
1520    
1521     =item B<[swap]>
1522    
1523     swap the top two menuBars
1524    
1525     =item B<[prev]>
1526    
1527     access the previous menuBar
1528    
1529     =item B<[next]>
1530    
1531     access the next menuBar
1532    
1533     =item B<[show]>
1534    
1535     Enable display of the menuBar
1536    
1537     =item B<[hide]>
1538    
1539     Disable display of the menuBar
1540    
1541     =item B<< [pixmap:+I<name>] >>
1542    
1543     =item B<< [pixmap:+I<name>;I<scaling>] >>
1544    
1545     (set the background pixmap globally
1546    
1547     B<< A Future implementation I<may> make this local to the menubar >>)
1548    
1549     =item B<< [:+I<command>:] >>
1550    
1551     ignore the menu readonly status and issue a I<command> to or a menu or
1552     menuitem or change the ; a useful shortcut for setting the quick arrows
1553     from a menuBar.
1554    
1555     =back
1556    
1557     X<menuBarAdd>
1558    
1559     =head2 Adding and accessing menus
1560    
1561     The following commands may also be B<+> prefixed.
1562    
1563     =over 4
1564    
1565     =item B</+>
1566    
1567     access menuBar top level
1568    
1569     =item B<./+>
1570    
1571     access current menu level
1572    
1573     =item B<../+>
1574    
1575     access parent menu (1 level up)
1576    
1577     =item B<../../>
1578    
1579     access parent menu (multiple levels up)
1580    
1581     =item B<< I</path/>menu >>
1582    
1583     add/access menu
1584    
1585     =item B<< I</path/>menu/* >>
1586    
1587     add/access menu and clear it if it exists
1588    
1589     =item B<< I</path/>{-} >>
1590    
1591     add separator
1592    
1593     =item B<< I</path/>{item} >>
1594    
1595     add B<item> as a label
1596    
1597     =item B<< I</path/>{item} action >>
1598    
1599     add/alter I<menuitem> with an associated I<action>
1600    
1601     =item B<< I</path/>{item}{right-text} >>
1602    
1603     add/alter I<menuitem> with B<right-text> as the right-justified text
1604     and as the associated I<action>
1605    
1606     =item B<< I</path/>{item}{rtext} action >>
1607    
1608     add/alter I<menuitem> with an associated I<action> and with B<rtext> as
1609     the right-justified text.
1610    
1611     =back
1612    
1613     =over 4
1614    
1615     =item Special characters in I<action> must be backslash-escaped:
1616    
1617     B<\a \b \E \e \n \r \t \octal>
1618    
1619     =item or in control-character notation:
1620    
1621     B<^@, ^A .. ^Z .. ^_, ^?>
1622    
1623     =back
1624    
1625     To send a string starting with a B<NUL> (B<^@>) character to the
1626     program, start I<action> with a pair of B<NUL> characters (B<^@^@>),
1627     the first of which will be stripped off and the balance directed to the
1628     program. Otherwise if I<action> begins with B<NUL> followed by
1629     non-+B<NUL> characters, the leading B<NUL> is stripped off and the
1630     balance is sent back to rxvt.
1631    
1632     As a convenience for the many Emacs-type editors, I<action> may start
1633     with B<M-> (eg, B<M-$> is equivalent to B<\E$>) and a B<CR> will be
1634     appended if missed from B<M-x> commands.
1635    
1636     As a convenience for issuing XTerm B<ESC]> sequences from a menubar (or
1637     quick arrow), a B<BEL> (B<^G>) will be appended if needed.
1638    
1639     =over 4
1640    
1641     =item For example,
1642    
1643     B<M-xapropos> is equivalent to B<\Exapropos\r>
1644    
1645     =item and
1646    
1647     B<\E]703;mona;100> is equivalent to B<\E]703;mona;100\a>
1648    
1649     =back
1650    
1651     The option B<< {I<right-rtext>} >> will be right-justified. In the
1652     absence of a specified action, this text will be used as the I<action>
1653     as well.
1654    
1655     =over 4
1656    
1657     =item For example,
1658    
1659     B</File/{Open}{^X^F}> is equivalent to B</File/{Open}{^X^F} ^X^F>
1660    
1661     =back
1662    
1663     The left label I<is> necessary, since it's used for matching, but
1664     implicitly hiding the left label (by using same name for both left and
1665     right labels), or explicitly hiding the left label (by preceeding it
1666     with a dot), makes it possible to have right-justified text only.
1667    
1668     =over 4
1669    
1670     =item For example,
1671    
1672     B</File/{Open}{Open} Open-File-Action>
1673    
1674     =item or hiding it
1675    
1676     B</File/{.anylabel}{Open} Open-File-Action>
1677    
1678     =back
1679    
1680     X<menuBarRemove>
1681    
1682     =head2 Removing menus
1683    
1684     =over 4
1685    
1686     =item B<< -/*+ >>
1687    
1688     remove all menus from the menuBar, the same as B<[clear]>
1689    
1690     =item B<< -+I</path>menu+ >>
1691    
1692     remove menu
1693    
1694     =item B<< -+I</path>{item}+ >>
1695    
1696     remove item
1697    
1698     =item B<< -+I</path>{-} >>
1699    
1700     remove separator)
1701    
1702     =item B<-/path/menu/*>
1703    
1704     remove all items, separators and submenus from menu
1705    
1706     =back
1707    
1708     X<menuBarArrows>
1709    
1710     =head2 Quick Arrows
1711    
1712     The menus also provide a hook for I<quick arrows> to provide easier
1713     user access. If nothing has been explicitly set, the default is to
1714     emulate the curror keys. The syntax permits each arrow to be altered
1715     individually or all four at once without re-entering their common
1716     beginning/end text. For example, to explicitly associate cursor actions
1717     with the arrows, any of the following forms could be used:
1718    
1719     =over 4
1720    
1721     =item B<< <r>+I<Right> >>
1722    
1723     =item B<< <l>+I<Left> >>
1724    
1725     =item B<< <u>+I<Up> >>
1726    
1727     =item B<< <d>+I<Down> >>
1728    
1729     Define actions for the respective arrow buttons
1730    
1731     =item B<< <b>+I<Begin> >>
1732    
1733     =item B<< <e>+I<End> >>
1734    
1735     Define common beginning/end parts for I<quick arrows> which used in
1736     conjunction with the above <r> <l> <u> <d> constructs
1737    
1738     =back
1739    
1740     =over 4
1741    
1742     =item For example, define arrows individually,
1743    
1744     <u>\E[A
1745    
1746     <d>\E[B
1747    
1748     <r>\E[C
1749    
1750     <l>\E[D
1751    
1752     =item or all at once
1753    
1754     <u>\E[AZ<><d>\E[BZ<><r>\E[CZ<><l>\E[D
1755    
1756     =item or more compactly (factoring out common parts)
1757    
1758     <b>\E[<u>AZ<><d>BZ<><r>CZ<><l>D
1759    
1760     =back
1761    
1762     X<menuBarSummary>
1763    
1764     =head2 Command Summary
1765    
1766     A short summary of the most I<common> commands:
1767    
1768     =over 4
1769    
1770     =item [menu:name]
1771    
1772     use an existing named menuBar or start a new one
1773    
1774     =item [menu]
1775    
1776     use the current menuBar
1777    
1778     =item [title:string]
1779    
1780     set menuBar title
1781    
1782     =item [done]
1783    
1784     set menu access to readonly and, if reading from a file, signal EOF
1785    
1786     =item [done:name]
1787    
1788     if reading from a file using [read:file;name] signal EOF
1789    
1790     =item [rm:name]
1791    
1792     remove named menuBar(s)
1793    
1794     =item [rm] [rm:]
1795    
1796     remove current menuBar
1797    
1798     =item [rm*] [rm:*]
1799    
1800     remove all menuBar(s)
1801    
1802     =item [swap]
1803    
1804     swap top two menuBars
1805    
1806     =item [prev]
1807    
1808     access the previous menuBar
1809    
1810     =item [next]
1811    
1812     access the next menuBar
1813    
1814     =item [show]
1815    
1816     map menuBar
1817    
1818     =item [hide]
1819    
1820     unmap menuBar
1821    
1822     =item [pixmap;file]
1823    
1824     =item [pixmap;file;scaling]
1825    
1826     set a background pixmap
1827    
1828     =item [read:file]
1829    
1830     =item [read:file;name]
1831    
1832     read in a menu from a file
1833    
1834     =item [dump]
1835    
1836     dump out all menuBars to /tmp/rxvt-PID
1837    
1838     =item /
1839    
1840     access menuBar top level
1841    
1842     =item ./
1843    
1844     =item ../
1845    
1846     =item ../../
1847    
1848     access current or parent menu level
1849    
1850     =item /path/menu
1851    
1852     add/access menu
1853    
1854     =item /path/{-}
1855    
1856     add separator
1857    
1858     =item /path/{item}{rtext} action
1859    
1860     add/alter menu item
1861    
1862     =item -/*
1863    
1864     remove all menus from the menuBar
1865    
1866     =item -/path/menu
1867    
1868     remove menu items, separators and submenus from menu
1869    
1870     =item -/path/menu
1871    
1872     remove menu
1873    
1874     =item -/path/{item}
1875    
1876     remove item
1877    
1878     =item -/path/{-}
1879    
1880     remove separator
1881    
1882     =item <b>Begin<r>Right<l>Left<u>Up<d>Down<e>End
1883    
1884     menu quick arrows
1885    
1886     =back
1887     X<XPM>
1888    
1889     =head1 XPM
1890    
1891     For the XPM XTerm escape sequence B<< C<ESC ] 20 ; Pt ST> >> then value
1892     of B<< C<Pt> >> can be the name of the background pixmap followed by a
1893     sequence of scaling/positioning commands separated by semi-colons. The
1894     scaling/positioning commands are as follows:
1895    
1896     =over 4
1897    
1898     =item query scale/position
1899    
1900     B<?>
1901    
1902     =item change scale and position
1903    
1904     B<WxH+X+Y>
1905    
1906     B<WxH+X> (== B<WxH+X+X>)
1907    
1908     B<WxH> (same as B<WxH+50+50>)
1909    
1910     B<W+X+Y> (same as B<WxW+X+Y>)
1911    
1912     B<W+X> (same as B<WxW+X+X>)
1913    
1914     B<W> (same as B<WxW+50+50>)
1915    
1916     =item change position (absolute)
1917    
1918     B<=+X+Y>
1919    
1920     B<=+X> (same as B<=+X+Y>)
1921    
1922     =item change position (relative)
1923    
1924     B<+X+Y>
1925    
1926     B<+X> (same as B<+X+Y>)
1927    
1928     =item rescale (relative)
1929    
1930     B<Wx0> -> B<W *= (W/100)>
1931    
1932     B<0xH> -> B<H *= (H/100)>
1933    
1934     =back
1935    
1936     For example:
1937    
1938     =over 4
1939    
1940     =item B<\E]20;funky\a>
1941    
1942     load B<funky.xpm> as a tiled image
1943    
1944     =item B<\E]20;mona;100\a>
1945    
1946     load B<mona.xpm> with a scaling of 100%
1947    
1948     =item B<\E]20;;200;?\a>
1949    
1950     rescale the current pixmap to 200% and display the image geometry in
1951     the title
1952    
1953     =back
1954     X<Mouse>
1955    
1956     =head1 Mouse Reporting
1957    
1958     =over 4
1959    
1960     =item B<< C<< ESC [ M <b> <x> <y> >> >>
1961    
1962     report mouse position
1963    
1964     =back
1965    
1966     The lower 2 bits of B<< C<< <b> >> >> indicate the button:
1967    
1968     =over 4
1969    
1970     =item Button = B<< C<< (<b> - SPACE) & 3 >> >>
1971    
1972     =begin table
1973    
1974     0 Button1 pressed
1975     1 Button2 pressed
1976     2 Button3 pressed
1977     3 button released (X11 mouse report)
1978    
1979     =end table
1980    
1981     =back
1982    
1983     The upper bits of B<< C<< <b> >> >> indicate the modifiers when the
1984     button was pressed and are added together (X11 mouse report only):
1985    
1986     =over 4
1987    
1988     =item State = B<< C<< (<b> - SPACE) & 60 >> >>
1989    
1990     =begin table
1991    
1992     4 Shift
1993     8 Meta
1994     16 Control
1995     32 Double Click I<(Rxvt extension)>
1996    
1997     =end table
1998    
1999     Col = B<< C<< <x> - SPACE >> >>
2000    
2001     Row = B<< C<< <y> - SPACE >> >>
2002    
2003     =back
2004     X<KeyCodes>
2005    
2006     =head1 Key Codes
2007    
2008     Note: B<Shift> + B<F1>-B<F10> generates B<F11>-B<F20>
2009    
2010     For the keypad, use B<Shift> to temporarily override Application-Keypad
2011     setting use B<Num_Lock> to toggle Application-Keypad setting if
2012     B<Num_Lock> is off, toggle Application-Keypad setting. Also note that
2013     values of B<Home>, B<End>, B<Delete> may have been compiled differently on
2014     your system.
2015    
2016     =begin table
2017    
2018     B<Normal> B<Shift> B<Control> B<Ctrl+Shift>
2019     Tab ^I ESC [ Z ^I ESC [ Z
2020     BackSpace ^H ^? ^? ^?
2021     Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
2022     Insert ESC [ 2 ~ I<paste> ESC [ 2 ^ ESC [ 2 @
2023     Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
2024     Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
2025     Prior ESC [ 5 ~ I<scroll-up> ESC [ 5 ^ ESC [ 5 @
2026     Next ESC [ 6 ~ I<scroll-down> ESC [ 6 ^ ESC [ 6 @
2027     Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
2028     End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
2029     Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
2030     F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
2031     F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
2032     F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
2033     F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
2034     F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
2035     F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
2036     F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
2037     F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
2038     F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
2039     F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
2040     F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
2041     F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
2042     F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
2043     F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
2044     F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
2045     F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
2046     F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
2047     F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
2048     F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
2049     F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
2050     B<Application>
2051     Up ESC [ A ESC [ a ESC O a ESC O A
2052     Down ESC [ B ESC [ b ESC O b ESC O B
2053     Right ESC [ C ESC [ c ESC O c ESC O C
2054     Left ESC [ D ESC [ d ESC O d ESC O D
2055     KP_Enter ^M ESC O M
2056     KP_F1 ESC O P ESC O P
2057     KP_F2 ESC O Q ESC O Q
2058     KP_F3 ESC O R ESC O R
2059     KP_F4 ESC O S ESC O S
2060     XK_KP_Multiply * ESC O j
2061     XK_KP_Add + ESC O k
2062     XK_KP_Separator , ESC O l
2063     XK_KP_Subtract - ESC O m
2064     XK_KP_Decimal . ESC O n
2065     XK_KP_Divide / ESC O o
2066     XK_KP_0 0 ESC O p
2067     XK_KP_1 1 ESC O q
2068     XK_KP_2 2 ESC O r
2069     XK_KP_3 3 ESC O s
2070     XK_KP_4 4 ESC O t
2071     XK_KP_5 5 ESC O u
2072     XK_KP_6 6 ESC O v
2073     XK_KP_7 7 ESC O w
2074     XK_KP_8 8 ESC O x
2075     XK_KP_9 9 ESC O y
2076    
2077     =end table
2078 root 1.2
2079 root 1.6 =head1 CONFIGURE OPTIONS
2080    
2081     General hint: if you get compile errors, then likely your configuration
2082     hasn't been tested well. Either try with --enable-everything or use the
2083     ./reconf script as a base for experiments. ./reconf is used by myself,
2084     so it should generally be a working config. Of course, you should always
2085     report when a combination doesn't work, so it can be fixed. Marc Lehmann
2086     <rxvt@schmorp.de>.
2087    
2088     =over 4
2089    
2090     =item --enable-everything
2091    
2092     Add support for all non-multichoice options listed in "./configure
2093     --help". Note that unlike other enable options this is order dependant.
2094     You can specify this and then disable options which this enables by
2095     I<following> this with the appropriate commands.
2096    
2097     =item --enable-xft
2098    
2099     Add support for Xft (anti-aliases, among others) fonts. Xft fonts are
2100     slower and require lots of memory, but as long as you don't use them, you
2101     don't pay for them.
2102    
2103 root 1.23 =item --enable-font-styles
2104    
2105     Add support for B<bold>, I<italic> and B<< I<bold italic> >> font
2106     styles. The fonts can be set manually or automatically.
2107    
2108 root 1.6 =item --with-codesets=NAME,...
2109    
2110 root 1.23 Compile in support for additional codeset (encoding) groups (eu, vn are
2111     always compiled in, which includes most 8-bit character sets). These
2112     codeset tables are currently only used for driving X11 core fonts, they
2113     are not required for Xft fonts. Compiling them in will make your binary
2114     bigger (together about 700kB), but it doesn't increase memory usage unless
2115     you use an X11 font requiring one of these encodings.
2116 root 1.6
2117     =begin table
2118    
2119 root 1.12 all all available codeset groups
2120 root 1.27 zh common chinese encodings
2121     zh_ext rarely used but very big chinese encodigs
2122 root 1.6 jp common japanese encodings
2123     jp_ext rarely used but big japanese encodings
2124     kr korean encodings
2125    
2126     =end table
2127    
2128     =item --enable-xim
2129    
2130     Add support for XIM (X Input Method) protocol. This allows using
2131     alternative input methods (e.g. kinput2) and will also correctly
2132     set up the input for people using dead keys or compose keys.
2133    
2134     =item --enable-unicode3
2135    
2136     Enable direct support for displaying unicode codepoints above
2137     65535 (the basic multilingual page). This increases storage
2138     requirements per character from 2 to 4 bytes. X11 fonts do not yet
2139     support these extra characters, but Xft does.
2140    
2141     Please note that rxvt-unicode can store unicode code points >65535
2142     even without this flag, but the number of such characters is
2143     limited to a view thousand (shared with combining characters,
2144     see next switch), and right now rxvt-unicode cannot display them
2145     (input/output and cut&paste still work, though).
2146    
2147     =item --enable-combining
2148    
2149     Enable automatic composition of combining characters into
2150     composite characters. This is required for proper viewing of text
2151     where accents are encoded as seperate unicode characters. This is
2152     done by using precomposited characters when available or creating
2153     new pseudo-characters when no precomposed form exists.
2154    
2155     Without --enable-unicode3, the number of additional precomposed
2156     characters is rather limited (2048, if this is full, rxvt will use the
2157     private use area, extending the number of combinations to 8448). With
2158     --enable-unicode3, no practical limit exists. This will also enable
2159     storage of characters >65535.
2160    
2161     The combining table also contains entries for arabic presentation forms,
2162     but these are not currently used. Bug me if you want these to be used.
2163    
2164     =item --enable-fallback(=CLASS)
2165    
2166     When reading resource settings, also read settings for class CLASS
2167     (default: Rxvt). To disable resource fallback use --disable-fallback.
2168    
2169     =item --with-res-name=NAME
2170    
2171     Use the given name (default: urxvt) as default application name when
2172     reading resources. Specify --with-res-name=rxvt to replace rxvt.
2173    
2174     =item --with-res-class=CLASS
2175    
2176     Use the given class (default: URxvt) as default application class
2177     when reading resources. Specify --with-res-class=Rxvt to replace
2178     rxvt.
2179    
2180     =item --enable-utmp
2181    
2182     Write user and tty to utmp file (used by programs like F<w>) at
2183     start of rxvt execution and delete information when rxvt exits.
2184    
2185     =item --enable-wtmp
2186    
2187     Write user and tty to wtmp file (used by programs like F<last>) at
2188     start of rxvt execution and write logout when rxvt exits. This
2189     option requires --enable-utmp to also be specified.
2190    
2191     =item --enable-lastlog
2192    
2193     Write user and tty to lastlog file (used by programs like
2194     F<lastlogin>) at start of rxvt execution. This option requires
2195     --enable-utmp to also be specified.
2196    
2197     =item --enable-xpm-background
2198    
2199     Add support for XPM background pixmaps.
2200    
2201     =item --enable-transparency
2202    
2203     Add support for inheriting parent backgrounds thus giving a fake
2204     transparency to the term.
2205    
2206     =item --enable-fading
2207    
2208     Add support for fading the text when focus is lost.
2209    
2210     =item --enable-tinting
2211    
2212     Add support for tinting of transparent backgrounds.
2213    
2214     =item --enable-menubar
2215    
2216     Add support for our menu bar system (this interacts badly with
2217     dynamic locale switching currently).
2218    
2219     =item --enable-rxvt-scroll
2220    
2221     Add support for the original rxvt scrollbar.
2222    
2223     =item --enable-next-scroll
2224    
2225     Add support for a NeXT-like scrollbar.
2226    
2227     =item --enable-xterm-scroll
2228    
2229     Add support for an Xterm-like scrollbar.
2230    
2231     =item --enable-plain-scroll
2232    
2233     Add support for a very unobtrusive, plain-looking scrollbar that
2234     is the favourite of the rxvt-unicode author, having used it for
2235     many years.
2236    
2237     =item --enable-half-shadow
2238    
2239     Make shadows on the scrollbar only half the normal width & height.
2240     only applicable to rxvt scrollbars.
2241    
2242     =item --enable-ttygid
2243    
2244     Change tty device setting to group "tty" - only use this if
2245     your system uses this type of security.
2246    
2247     =item --disable-backspace-key
2248    
2249     Disable any handling of the backspace key by us - let the X server
2250     do it.
2251    
2252     =item --disable-delete-key
2253    
2254     Disable any handling of the delete key by us - let the X server
2255     do it.
2256    
2257     =item --disable-resources
2258    
2259     Remove all resources checking.
2260    
2261     =item --enable-xgetdefault
2262    
2263     Make resources checking via XGetDefault() instead of our small
2264     version which only checks ~/.Xdefaults, or if that doesn't exist
2265     then ~/.Xresources.
2266    
2267     =item --enable-strings
2268    
2269     Add support for our possibly faster memset() function and other
2270     various routines, overriding your system's versions which may
2271     have been hand-crafted in assembly or may require extra libraries
2272     to link in. (this breaks ANSI-C rules and has problems on many
2273     GNU/Linux systems).
2274    
2275     =item --disable-swapscreen
2276    
2277     Remove support for swap screen.
2278    
2279     =item --enable-frills
2280    
2281     Add support for many small features that are not essential but nice to
2282     have. Normally you want this, but for very small binaries you may want to
2283     disable this.
2284    
2285 root 1.33 A non-exhaustive list of features enabled by C<--enable-frills> (possibly
2286     in combination with other switches) is:
2287    
2288     MWM-hints
2289     seperate underline colour
2290     settable border widths and borderless switch
2291     settable extra linespacing
2292     extra window properties (e.g. UTF-8 window names and PID)
2293     iso-14755-2 and -3, and visual feedback
2294     backindex and forwardindex escape sequence
2295     window op and locale change escape sequences
2296     tripleclickwords
2297     settable insecure mode
2298    
2299 root 1.12 =item --enable-iso14755
2300    
2301     Enable extended ISO 14755 support (see @@RXVT_NAME@@(1), or
2302     F<doc/rxvt.1.txt>). Basic support (section 5.1) is enabled by
2303     C<--enable-frills>, while support for 5.2, 5.3 and 5.4 is enabled with
2304     this switch.
2305    
2306 root 1.6 =item --enable-keepscrolling
2307    
2308     Add support for continual scrolling of the display when you hold
2309     the mouse button down on a scrollbar arrow.
2310    
2311     =item --enable-mousewheel
2312    
2313     Add support for scrolling via mouse wheel or buttons 4 & 5.
2314    
2315     =item --enable-slipwheeling
2316    
2317     Add support for continual scrolling (using the mouse wheel as an
2318     accelerator) while the control key is held down. This option
2319     requires --enable-mousewheel to also be specified.
2320    
2321     =item --disable-new-selection
2322    
2323     Remove support for mouse selection style like that of xterm.
2324    
2325     =item --enable-dmalloc
2326    
2327     Use Gray Watson's malloc - which is good for debugging See
2328     http://www.letters.com/dmalloc/ for details If you use either this or the
2329     next option, you may need to edit src/Makefile after compiling to point
2330     DINCLUDE and DLIB to the right places.
2331    
2332     You can only use either this option and the following (should
2333     you use either) .
2334    
2335     =item --enable-dlmalloc
2336    
2337     Use Doug Lea's malloc - which is good for a production version
2338     See L<http://g.oswego.edu/dl/html/malloc.html> for details.
2339    
2340     =item --enable-smart-resize
2341    
2342     Add smart growth/shrink behaviour when changing font size via from hot
2343     keys. This should keep in a fixed position the rxvt corner which is
2344     closest to a corner of the screen.
2345    
2346     =item --enable-cursor-blink
2347    
2348     Add support for a blinking cursor.
2349    
2350     =item --enable-pointer-blank
2351    
2352     Add support to have the pointer disappear when typing or inactive.
2353    
2354     =item --with-name=NAME
2355    
2356 root 1.33 Set the basename for the installed binaries (default: C<urxvt>, resulting
2357     in C<urxvt>, C<urxvtd> etc.). Specify C<--with-name=rxvt> to replace with
2358     C<rxvt>.
2359 root 1.6
2360     =item --with-term=NAME
2361    
2362     Change the environmental variable for the terminal to NAME (default
2363 root 1.33 C<rxvt-unicode>)
2364 root 1.6
2365     =item --with-terminfo=PATH
2366    
2367     Change the environmental variable for the path to the terminfo tree to
2368     PATH.
2369    
2370     =item --with-x
2371    
2372     Use the X Window System (pretty much default, eh?).
2373    
2374     =item --with-xpm-includes=DIR
2375    
2376     Look for the XPM includes in DIR.
2377    
2378     =item --with-xpm-library=DIR
2379    
2380     Look for the XPM library in DIR.
2381    
2382     =item --with-xpm
2383    
2384     Not needed - define via --enable-xpm-background.
2385    
2386     =back
2387    
2388 root 1.2 =head1 AUTHORS
2389    
2390 root 1.5 Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
2391 root 1.2 reworked it from the original Rxvt documentation, which was done by Geoff
2392     Wing <gcw@pobox.com>, who in turn used the XTerm documentation and other
2393     sources.
2394 root 1.1