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