ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.pod
Revision: 1.25
Committed: Mon Sep 6 06:20:40 2004 UTC (19 years, 9 months ago) by root
Branch: MAIN
CVS Tags: rel-4_0
Changes since 1.23: +570 -1 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     =back
573 root 1.23
574     =head1 SYNOPSIS
575    
576     # set a new font set
577     printf '\33]50;%s\007' 9x15,xft:Kochi" Mincho"
578    
579     # change the locale and tell rxvt-unicode about it
580     export LC_CTYPE=ja_JP.EUC-JP; printf "\33]701;$LC_CTYPE\007"
581    
582     # set window title
583     printf '\33]2;%s\007' "new window title"
584    
585     =head1 DESCRIPTION
586    
587     The rest of this document describes various technical aspects of
588     B<rxvt-unicode>. First the description of supported command sequences,
589     followed by menu and pixmap support and last by a description of all
590     features selectable at C<configure> time.
591    
592 root 1.2 =head1 RXVT TECHNICAL REFERENCE
593 root 1.1
594     =head1 Definitions
595    
596     =over 4
597    
598     =item B<< C<c> >>
599    
600     The literal character c.
601    
602     =item B<< C<C> >>
603    
604     A single (required) character.
605    
606     =item B<< C<Ps> >>
607    
608     A single (usually optional) numeric parameter, composed of one or more
609     digits.
610    
611     =item B<< C<Pm> >>
612    
613     A multiple numeric parameter composed of any number of single numeric
614     parameters, separated by C<;> character(s).
615    
616     =item B<< C<Pt> >>
617    
618     A text parameter composed of printable characters.
619    
620     =back
621    
622     =head1 Values
623    
624     =over 4
625    
626     =item B<< C<ENQ> >>
627    
628     Enquiry (Ctrl-E) = Send Device Attributes (DA)
629 root 1.2 request attributes from terminal. See B<< C<ESC [ Ps c> >>.
630 root 1.1
631     =item B<< C<BEL> >>
632    
633     Bell (Ctrl-G)
634    
635     =item B<< C<BS> >>
636    
637     Backspace (Ctrl-H)
638    
639     =item B<< C<TAB> >>
640    
641     Horizontal Tab (HT) (Ctrl-I)
642    
643     =item B<< C<LF> >>
644    
645     Line Feed or New Line (NL) (Ctrl-J)
646    
647     =item B<< C<VT> >>
648    
649     Vertical Tab (Ctrl-K) same as B<< C<LF> >>
650    
651     =item B<< C<FF> >>
652    
653     Form Feed or New Page (NP) (Ctrl-L) same as B<< C<LF> >>
654    
655     =item B<< C<CR> >>
656    
657     Carriage Return (Ctrl-M)
658    
659     =item B<< C<SO> >>
660    
661     Shift Out (Ctrl-N), invokes the G1 character set.
662     Switch to Alternate Character Set
663    
664     =item B<< C<SI> >>
665    
666     Shift In (Ctrl-O), invokes the G0 character set (the default).
667     Switch to Standard Character Set
668    
669     =item B<< C<SPC> >>
670    
671     Space Character
672    
673     =back
674    
675     =head1 Escape Sequences
676    
677     =over 4
678    
679     =item B<< C<ESC # 8> >>
680    
681     DEC Screen Alignment Test (DECALN)
682    
683     =item B<< C<ESC 7> >>
684    
685     Save Cursor (SC)
686    
687     =item B<< C<ESC 8> >>
688    
689     Restore Cursor
690    
691     =item B<< C<ESC => >>
692    
693     Application Keypad (SMKX). See also next sequence.
694    
695     =item B<<< C<< ESC >> >>>
696    
697     Normal Keypad (RMKX)
698    
699     B<Note:> If the numeric keypad is activated, eg, B<Num_Lock> has been
700     pressed, numbers or control functions are generated by the numeric keypad
701     (see Key Codes).
702    
703     =item B<< C<ESC D> >>
704    
705     Index (IND)
706    
707     =item B<< C<ESC E> >>
708    
709     Next Line (NEL)
710    
711     =item B<< C<ESC H> >>
712    
713     Tab Set (HTS)
714    
715     =item B<< C<ESC M> >>
716    
717     Reverse Index (RI)
718    
719     =item B<< C<ESC N> >>
720    
721     Single Shift Select of G2 Character Set (SS2): affects next character
722     only I<unimplemented>
723    
724     =item B<< C<ESC O> >>
725    
726     Single Shift Select of G3 Character Set (SS3): affects next character
727     only I<unimplemented>
728    
729     =item B<< C<ESC Z> >>
730    
731 root 1.3 Obsolete form of returns: B<< C<ESC[?1;2C> >> I<rxvt-unicode compile-time option>
732 root 1.1
733     =item B<< C<ESC c> >>
734    
735     Full reset (RIS)
736    
737     =item B<< C<ESC n> >>
738    
739     Invoke the G2 Character Set (LS2)
740    
741     =item B<< C<ESC o> >>
742    
743     Invoke the G3 Character Set (LS3)
744    
745 root 1.23 =item B<< C<ESC> ( C> >>
746 root 1.1
747     Designate G0 Character Set (ISO 2022), see below for values of C<C>.
748    
749 root 1.23 =item B<< C<ESC> ) C> >>
750 root 1.1
751     Designate G1 Character Set (ISO 2022), see below for values of C<C>.
752    
753     =item B<< C<ESC * C> >>
754    
755     Designate G2 Character Set (ISO 2022), see below for values of C<C>.
756    
757     =item B<< C<ESC + C> >>
758    
759     Designate G3 Character Set (ISO 2022), see below for values of C<C>.
760    
761     =item B<< C<ESC $ C> >>
762    
763     Designate Kanji Character Set
764    
765     Where B<< C<C> >> is one of:
766    
767     =begin table
768    
769     C = C<0> DEC Special Character and Line Drawing Set
770     C = C<A> United Kingdom (UK)
771     C = C<B> United States (USASCII)
772     C = C<< < >> Multinational character set I<unimplemented>
773     C = C<5> Finnish character set I<unimplemented>
774     C = C<C> Finnish character set I<unimplemented>
775     C = C<K> German character set I<unimplemented>
776    
777     =end table
778    
779     =back
780    
781     X<CSI>
782    
783 root 1.12 =head1 CSI (Command Sequence Introducer) Sequences
784 root 1.1
785     =over 4
786    
787     =item B<< C<ESC [ Ps @> >>
788    
789     Insert B<< C<Ps> >> (Blank) Character(s) [default: 1] (ICH)X<ESCOBPsA>
790    
791     =item B<< C<ESC [ Ps A> >>
792    
793     Cursor Up B<< C<Ps> >> Times [default: 1] (CUU)
794    
795     =item B<< C<ESC [ Ps B> >>
796    
797     Cursor Down B<< C<Ps> >> Times [default: 1] (CUD)X<ESCOBPsC>
798    
799     =item B<< C<ESC [ Ps C> >>
800    
801     Cursor Forward B<< C<Ps> >> Times [default: 1] (CUF)
802    
803     =item B<< C<ESC [ Ps D> >>
804    
805     Cursor Backward B<< C<Ps> >> Times [default: 1] (CUB)
806    
807     =item B<< C<ESC [ Ps E> >>
808    
809     Cursor Down B<< C<Ps> >> Times [default: 1] and to first column
810    
811     =item B<< C<ESC [ Ps F> >>
812    
813     Cursor Up B<< C<Ps> >> Times [default: 1] and to first columnX<ESCOBPsG>
814    
815     =item B<< C<ESC [ Ps G> >>
816    
817     Cursor to Column B<< C<Ps> >> (HPA)
818    
819     =item B<< C<ESC [ Ps;Ps H> >>
820    
821     Cursor Position [row;column] [default: 1;1] (CUP)
822    
823     =item B<< C<ESC [ Ps I> >>
824    
825     Move forward B<< C<Ps> >> tab stops [default: 1]
826    
827     =item B<< C<ESC [ Ps J> >>
828    
829     Erase in Display (ED)
830    
831     =begin table
832    
833     B<< C<Ps = 0> >> Clear Below (default)
834     B<< C<Ps = 1> >> Clear Above
835     B<< C<Ps = 2> >> Clear All
836    
837     =end table
838    
839     =item B<< C<ESC [ Ps K> >>
840    
841     Erase in Line (EL)
842    
843     =begin table
844    
845     B<< C<Ps = 0> >> Clear to Right (default)
846     B<< C<Ps = 1> >> Clear to Left
847     B<< C<Ps = 2> >> Clear All
848    
849     =end table
850    
851     =item B<< C<ESC [ Ps L> >>
852    
853     Insert B<< C<Ps> >> Line(s) [default: 1] (IL)
854    
855     =item B<< C<ESC [ Ps M> >>
856    
857     Delete B<< C<Ps> >> Line(s) [default: 1] (DL)
858    
859     =item B<< C<ESC [ Ps P> >>
860    
861     Delete B<< C<Ps> >> Character(s) [default: 1] (DCH)
862    
863     =item B<< C<ESC [ Ps;Ps;Ps;Ps;Ps T> >>
864    
865     Initiate . I<unimplemented> Parameters are
866     [func;startx;starty;firstrow;lastrow].
867    
868     =item B<< C<ESC [ Ps W> >>
869    
870     Tabulator functions
871    
872     =begin table
873    
874     B<< C<Ps = 0> >> Tab Set (HTS)
875     B<< C<Ps = 2> >> Tab Clear (TBC), Clear Current Column (default)
876     B<< C<Ps = 5> >> Tab Clear (TBC), Clear All
877    
878     =end table
879    
880     =item B<< C<ESC [ Ps X> >>
881    
882     Erase B<< C<Ps> >> Character(s) [default: 1] (ECH)
883    
884     =item B<< C<ESC [ Ps Z> >>
885    
886     Move backward B<< C<Ps> >> [default: 1] tab stops
887    
888     =item B<< C<ESC [ Ps '> >>
889    
890 root 1.2 See B<< C<ESC [ Ps G> >>
891 root 1.1
892     =item B<< C<ESC [ Ps a> >>
893    
894 root 1.2 See B<< C<ESC [ Ps C> >>
895 root 1.1
896     =item B<< C<ESC [ Ps c> >>
897    
898     Send Device Attributes (DA)
899     B<< C<Ps = 0> >> (or omitted): request attributes from terminal
900     returns: B<< C<ESC[?1;2c> >> (``I am a VT100 with Advanced Video
901     Option'')
902    
903     =item B<< C<ESC [ Ps d> >>
904    
905     Cursor to Line B<< C<Ps> >> (VPA)
906    
907     =item B<< C<ESC [ Ps e> >>
908    
909 root 1.2 See B<< C<ESC [ Ps A> >>
910 root 1.1
911     =item B<< C<ESC [ Ps;Ps f> >>
912    
913     Horizontal and Vertical Position [row;column] (HVP) [default: 1;1]
914    
915     =item B<< C<ESC [ Ps g> >>
916    
917     Tab Clear (TBC)
918    
919     =begin table
920    
921     B<< C<Ps = 0> >> Clear Current Column (default)
922     B<< C<Ps = 3> >> Clear All (TBC)
923    
924     =end table
925    
926 root 1.23 =item B<< C<ESC [ Pm h> >>
927    
928     Set Mode (SM). See B<< C<ESC [ Pm l> >> sequence for description of C<Pm>.
929    
930 root 1.1 =item B<< C<ESC [ Ps i> >>
931    
932 root 1.23 Printing. See also the C<print-pipe> resource.
933 root 1.1
934     =begin table
935    
936 root 1.23 B<< C<Ps = 0> >> print screen (MC0)
937 root 1.1 B<< C<Ps = 4> >> disable transparent print mode (MC4)
938 root 1.23 B<< C<Ps = 5> >> enable transparent print mode (MC5)
939 root 1.1
940     =end table
941    
942     =item B<< C<ESC [ Pm l> >>
943    
944     Reset Mode (RM)
945    
946     =over 4
947    
948     =item B<< C<Ps = 4> >>
949    
950     =begin table
951    
952     B<< C<h> >> Insert Mode (SMIR)
953     B<< C<l> >> Replace Mode (RMIR)
954    
955     =end table
956    
957 root 1.12 =item B<< C<Ps = 20> >> (partially implemented)
958 root 1.1
959     =begin table
960    
961     B<< C<h> >> Automatic Newline (LNM)
962 root 1.12 B<< C<l> >> Normal Linefeed (LNM)
963 root 1.1
964     =end table
965    
966     =back
967    
968     =item B<< C<ESC [ Pm m> >>
969    
970     Character Attributes (SGR)
971    
972     =begin table
973    
974     B<< C<Ps = 0> >> Normal (default)
975 root 1.12 B<< C<Ps = 1 / 21> >> On / Off Bold (bright fg)
976 root 1.23 B<< C<Ps = 3 / 23> >> On / Off Italic
977 root 1.1 B<< C<Ps = 4 / 24> >> On / Off Underline
978 root 1.12 B<< C<Ps = 5 / 25> >> On / Off Slow Blink (bright bg)
979     B<< C<Ps = 6 / 26> >> On / Off Rapid Blink (bright bg)
980 root 1.23 B<< C<Ps = 7 / 27> >> On / Off Inverse
981     B<< C<Ps = 8 / 27> >> On / Off Invisible (NYI)
982 root 1.1 B<< C<Ps = 30 / 40> >> fg/bg Black
983     B<< C<Ps = 31 / 41> >> fg/bg Red
984     B<< C<Ps = 32 / 42> >> fg/bg Green
985     B<< C<Ps = 33 / 43> >> fg/bg Yellow
986     B<< C<Ps = 34 / 44> >> fg/bg Blue
987     B<< C<Ps = 35 / 45> >> fg/bg Magenta
988     B<< C<Ps = 36 / 46> >> fg/bg Cyan
989 root 1.23 B<< C<Ps = 38;5 / 48;5> >> set fg/bg to color #m (ISO 8613-6)
990 root 1.1 B<< C<Ps = 37 / 47> >> fg/bg White
991     B<< C<Ps = 39 / 49> >> fg/bg Default
992 root 1.12 B<< C<Ps = 90 / 100> >> fg/bg Bright Black
993     B<< C<Ps = 91 / 101> >> fg/bg Bright Red
994     B<< C<Ps = 92 / 102> >> fg/bg Bright Green
995     B<< C<Ps = 93 / 103> >> fg/bg Bright Yellow
996     B<< C<Ps = 94 / 104> >> fg/bg Bright Blue
997     B<< C<Ps = 95 / 105> >> fg/bg Bright Magenta
998     B<< C<Ps = 96 / 106> >> fg/bg Bright Cyan
999     B<< C<Ps = 97 / 107> >> fg/bg Bright White
1000     B<< C<Ps = 99 / 109> >> fg/bg Bright Default
1001 root 1.1
1002     =end table
1003    
1004     =item B<< C<ESC [ Ps n> >>
1005    
1006     Device Status Report (DSR)
1007    
1008     =begin table
1009    
1010     B<< C<Ps = 5> >> Status Report B<< C<ESC [ 0 n> >> (``OK'')
1011     B<< C<Ps = 6> >> Report Cursor Position (CPR) [row;column] as B<< C<ESC [ r ; c R> >>
1012     B<< C<Ps = 7> >> Request Display Name
1013     B<< C<Ps = 8> >> Request Version Number (place in window title)
1014    
1015     =end table
1016    
1017     =item B<< C<ESC [ Ps;Ps r> >>
1018    
1019     Set Scrolling Region [top;bottom]
1020     [default: full size of window] (CSR)
1021    
1022     =item B<< C<ESC [ s> >>
1023    
1024     Save Cursor (SC)
1025    
1026     =item B<< C<ESC [ Ps x> >>
1027    
1028     Request Terminal Parameters (DECREQTPARM)
1029    
1030     =item B<< C<ESC [ u> >>
1031    
1032     Restore Cursor
1033    
1034     =back
1035    
1036     X<PrivateModes>
1037    
1038     =head1 DEC Private Modes
1039    
1040     =over 4
1041    
1042     =item B<< C<ESC [ ? Pm h> >>
1043    
1044     DEC Private Mode Set (DECSET)
1045    
1046     =item B<< C<ESC [ ? Pm l> >>
1047    
1048     DEC Private Mode Reset (DECRST)
1049    
1050     =item B<< C<ESC [ ? Pm r> >>
1051    
1052     Restore previously saved DEC Private Mode Values.
1053    
1054     =item B<< C<ESC [ ? Pm s> >>
1055    
1056     Save DEC Private Mode Values.
1057    
1058     =item B<< C<ESC [ ? Pm t> >>
1059    
1060     Toggle DEC Private Mode Values (rxvt extension). I<where>
1061    
1062     =over 4
1063    
1064     =item B<< C<Ps = 1> >> (DECCKM)
1065    
1066     =begin table
1067    
1068     B<< C<h> >> Application Cursor Keys
1069     B<< C<l> >> Normal Cursor Keys
1070    
1071     =end table
1072    
1073     =item B<< C<Ps = 2> >> (ANSI/VT52 mode)
1074    
1075     =begin table
1076    
1077     B<< C<h> >> Enter VT52 mode
1078     B<< C<l> >> Enter VT52 mode
1079    
1080     =end table
1081    
1082     =item B<< C<Ps = 3> >>
1083    
1084     =begin table
1085    
1086     B<< C<h> >> 132 Column Mode (DECCOLM)
1087     B<< C<l> >> 80 Column Mode (DECCOLM)
1088    
1089     =end table
1090    
1091     =item B<< C<Ps = 4> >>
1092    
1093     =begin table
1094    
1095     B<< C<h> >> Smooth (Slow) Scroll (DECSCLM)
1096     B<< C<l> >> Jump (Fast) Scroll (DECSCLM)
1097    
1098     =end table
1099    
1100     =item B<< C<Ps = 5> >>
1101    
1102     =begin table
1103    
1104     B<< C<h> >> Reverse Video (DECSCNM)
1105     B<< C<l> >> Normal Video (DECSCNM)
1106    
1107     =end table
1108    
1109     =item B<< C<Ps = 6> >>
1110    
1111     =begin table
1112    
1113     B<< C<h> >> Origin Mode (DECOM)
1114     B<< C<l> >> Normal Cursor Mode (DECOM)
1115    
1116     =end table
1117    
1118     =item B<< C<Ps = 7> >>
1119    
1120     =begin table
1121    
1122     B<< C<h> >> Wraparound Mode (DECAWM)
1123     B<< C<l> >> No Wraparound Mode (DECAWM)
1124    
1125     =end table
1126    
1127     =item B<< C<Ps = 8> >> I<unimplemented>
1128    
1129     =begin table
1130    
1131     B<< C<h> >> Auto-repeat Keys (DECARM)
1132     B<< C<l> >> No Auto-repeat Keys (DECARM)
1133    
1134     =end table
1135    
1136     =item B<< C<Ps = 9> >> X10 XTerm
1137    
1138     =begin table
1139    
1140     B<< C<h> >> Send Mouse X & Y on button press.
1141     B<< C<l> >> No mouse reporting.
1142    
1143     =end table
1144    
1145     =item B<< C<Ps = 10> >> (B<rxvt>)
1146    
1147     =begin table
1148    
1149 root 1.12 B<< C<h> >> menuBar visible
1150     B<< C<l> >> menuBar invisible
1151 root 1.1
1152     =end table
1153    
1154     =item B<< C<Ps = 25> >>
1155    
1156     =begin table
1157    
1158     B<< C<h> >> Visible cursor {cnorm/cvvis}
1159     B<< C<l> >> Invisible cursor {civis}
1160    
1161     =end table
1162    
1163     =item B<< C<Ps = 30> >>
1164    
1165     =begin table
1166    
1167     B<< C<h> >> scrollBar visisble
1168     B<< C<l> >> scrollBar invisisble
1169    
1170     =end table
1171    
1172     =item B<< C<Ps = 35> >> (B<rxvt>)
1173    
1174     =begin table
1175    
1176     B<< C<h> >> Allow XTerm Shift+key sequences
1177     B<< C<l> >> Disallow XTerm Shift+key sequences
1178    
1179     =end table
1180    
1181     =item B<< C<Ps = 38> >> I<unimplemented>
1182    
1183     Enter Tektronix Mode (DECTEK)
1184    
1185     =item B<< C<Ps = 40> >>
1186    
1187     =begin table
1188    
1189     B<< C<h> >> Allow 80/132 Mode
1190     B<< C<l> >> Disallow 80/132 Mode
1191    
1192     =end table
1193    
1194     =item B<< C<Ps = 44> >> I<unimplemented>
1195    
1196     =begin table
1197    
1198     B<< C<h> >> Turn On Margin Bell
1199     B<< C<l> >> Turn Off Margin Bell
1200    
1201     =end table
1202    
1203     =item B<< C<Ps = 45> >> I<unimplemented>
1204    
1205     =begin table
1206    
1207     B<< C<h> >> Reverse-wraparound Mode
1208     B<< C<l> >> No Reverse-wraparound Mode
1209    
1210     =end table
1211    
1212     =item B<< C<Ps = 46> >> I<unimplemented>
1213    
1214     =item B<< C<Ps = 47> >>
1215    
1216     =begin table
1217    
1218     B<< C<h> >> Use Alternate Screen Buffer
1219     B<< C<l> >> Use Normal Screen Buffer
1220    
1221     =end table
1222    
1223     X<Priv66>
1224    
1225     =item B<< C<Ps = 66> >>
1226    
1227     =begin table
1228    
1229 root 1.2 B<< C<h> >> Application Keypad (DECPAM) == C<ESC =>
1230     B<< C<l> >> Normal Keypad (DECPNM) == C<< ESC > >>
1231 root 1.1
1232     =end table
1233    
1234     =item B<< C<Ps = 67> >>
1235    
1236     =begin table
1237    
1238     B<< C<h> >> Backspace key sends B<< C<BS> (DECBKM) >>
1239     B<< C<l> >> Backspace key sends B<< C<DEL> >>
1240    
1241     =end table
1242    
1243     =item B<< C<Ps = 1000> >> (X11 XTerm)
1244    
1245     =begin table
1246    
1247     B<< C<h> >> Send Mouse X & Y on button press and release.
1248     B<< C<l> >> No mouse reporting.
1249    
1250     =end table
1251    
1252     =item B<< C<Ps = 1001> >> (X11 XTerm) I<unimplemented>
1253    
1254     =begin table
1255    
1256     B<< C<h> >> Use Hilite Mouse Tracking.
1257     B<< C<l> >> No mouse reporting.
1258    
1259     =end table
1260    
1261 root 1.12 =item B<< C<Ps = 1010> >> (B<rxvt>)
1262 root 1.1
1263     =begin table
1264    
1265     B<< C<h> >> Don't scroll to bottom on TTY output
1266     B<< C<l> >> Scroll to bottom on TTY output
1267    
1268     =end table
1269    
1270 root 1.12 =item B<< C<Ps = 1011> >> (B<rxvt>)
1271 root 1.1
1272     =begin table
1273    
1274     B<< C<h> >> Scroll to bottom when a key is pressed
1275     B<< C<l> >> Don't scroll to bottom when a key is pressed
1276    
1277     =end table
1278    
1279     =item B<< C<Ps = 1047> >>
1280    
1281     =begin table
1282    
1283     B<< C<h> >> Use Alternate Screen Buffer
1284     B<< C<l> >> Use Normal Screen Buffer - clear Alternate Screen Buffer if returning from it
1285    
1286     =end table
1287    
1288     =item B<< C<Ps = 1048> >>
1289    
1290     =begin table
1291    
1292     B<< C<h> >> Save cursor position
1293     B<< C<l> >> Restore cursor position
1294    
1295     =end table
1296    
1297 root 1.12 =item B<< C<Ps = 1049> >>
1298    
1299     =begin table
1300    
1301     B<< C<h> >> Use Alternate Screen Buffer - clear Alternate Screen Buffer if switching to it
1302     B<< C<l> >> Use Normal Screen Buffer
1303    
1304     =end table
1305    
1306 root 1.1 =back
1307    
1308     =back
1309    
1310     X<XTerm>
1311    
1312     =head1 XTerm Operating System Commands
1313    
1314     =over 4
1315    
1316     =item B<< C<ESC ] Ps;Pt ST> >>
1317    
1318     Set XTerm Parameters. 8-bit ST: 0x9c, 7-bit ST sequence: ESC \ (0x1b,
1319     0x5c), backwards compatible terminator BEL (0x07) is also accepted. any
1320     B<octet> can be escaped by prefixing it with SYN (0x16, ^V).
1321    
1322     =begin table
1323    
1324     B<< C<Ps = 0> >> Change Icon Name and Window Title to B<< C<Pt> >>
1325     B<< C<Ps = 1> >> Change Icon Name to B<< C<Pt> >>
1326     B<< C<Ps = 2> >> Change Window Title to B<< C<Pt> >>
1327     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.
1328     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
1329     B<< C<Ps = 10> >> Change colour of text foreground to B<< C<Pt> >> B<(NB: may change in future)>
1330     B<< C<Ps = 11> >> Change colour of text background to B<< C<Pt> >> B<(NB: may change in future)>
1331     B<< C<Ps = 12> >> Change colour of text cursor foreground to B<< C<Pt> >>
1332     B<< C<Ps = 13> >> Change colour of mouse foreground to B<< C<Pt> >>
1333     B<< C<Ps = 17> >> Change colour of highlight characters to B<< C<Pt> >>
1334     B<< C<Ps = 18> >> Change colour of bold characters to B<< C<Pt> >>
1335     B<< C<Ps = 19> >> Change colour of underlined characters to B<< C<Pt> >>
1336     B<< C<Ps = 20> >> Change default background to B<< C<Pt> >>
1337     B<< C<Ps = 39> >> Change default foreground colour to B<< C<Pt> >> I<rxvt compile-time option>
1338     B<< C<Ps = 46> >> Change Log File to B<< C<Pt> >> I<unimplemented>
1339     B<< C<Ps = 49> >> Change default background colour to B<< C<Pt> >> I<rxvt compile-time option>
1340     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> >>
1341     B<< C<Ps = 55> >> Log all scrollback buffer and all of screen to B<< C<Pt> >>
1342 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)
1343 root 1.23 B<< C<Ps = 703> >> Menubar command B<< C<Pt> >> I<rxvt compile-time option> (rxvt-unicode extension)
1344     B<< C<Ps = 704> >> Change colour of italic characters to B<< C<Pt> >>
1345     B<< C<Ps = 705> >> Change background pixmap tint colour to B<< C<Pt> >>
1346     B<< C<Ps = 710> >> Set normal fontset to B<< C<Pt> >>. Same as C<Ps = 50>.
1347     B<< C<Ps = 711> >> Set bold fontset to B<< C<Pt> >>. Similar to C<Ps = 50>.
1348     B<< C<Ps = 712> >> Set italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50>.
1349     B<< C<Ps = 713> >> Set bold-italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50>.
1350 root 1.1
1351     =end table
1352    
1353     =back
1354    
1355     X<menuBar>
1356    
1357     =head1 menuBar
1358    
1359     B<< The exact syntax used is I<almost> solidified. >>
1360     In the menus, B<DON'T> try to use menuBar commands that add or remove a
1361     menuBar.
1362    
1363     Note that in all of the commands, the B<< I</path/> >> I<cannot> be
1364     omitted: use B<./> to specify a menu relative to the current menu.
1365    
1366     =head2 Overview of menuBar operation
1367    
1368     For the menuBar XTerm escape sequence C<ESC ] 703 ; Pt ST>, the syntax
1369     of C<Pt> can be used for a variety of tasks:
1370    
1371     At the top level is the current menuBar which is a member of a circular
1372     linked-list of other such menuBars.
1373    
1374     The menuBar acts as a parent for the various drop-down menus, which in
1375     turn, may have labels, separator lines, menuItems and subMenus.
1376    
1377     The menuItems are the useful bits: you can use them to mimic keyboard
1378     input or even to send text or escape sequences back to rxvt.
1379    
1380     The menuBar syntax is intended to provide a simple yet robust method of
1381     constructing and manipulating menus and navigating through the
1382     menuBars.
1383    
1384     The first step is to use the tag B<< [menu:I<name>] >> which creates
1385     the menuBar called I<name> and allows access. You may now or menus,
1386     subMenus, and menuItems. Finally, use the tag B<[done]> to set the
1387     menuBar access as B<readonly> to prevent accidental corruption of the
1388     menus. To re-access the current menuBar for alterations, use the tag
1389     B<[menu]>, make the alterations and then use B<[done]>
1390    
1391     X<menuBarCommands>
1392    
1393     =head2 Commands
1394    
1395     =over 4
1396    
1397     =item B<< [menu:+I<name>] >>
1398    
1399     access the named menuBar for creation or alteration. If a new menuBar
1400     is created, it is called I<name> (max of 15 chars) and the current
1401     menuBar is pushed onto the stack
1402    
1403     =item B<[menu]>
1404    
1405     access the current menuBar for alteration
1406    
1407     =item B<< [title:+I<string>] >>
1408    
1409     set the current menuBar's title to I<string>, which may contain the
1410     following format specifiers:
1411     B<%%> : literal B<%> character
1412     B<%n> : rxvt name (as per the B<-name> command-line option)
1413     B<%v> : rxvt version
1414    
1415     =item B<[done]>
1416    
1417     set menuBar access as B<readonly>.
1418     End-of-file tag for B<< [read:+I<file>] >> operations.
1419    
1420     =item B<< [read:+I<file>] >>
1421    
1422     read menu commands directly from I<file> (extension ".menu" will be
1423     appended if required.) Start reading at a line with B<[menu]> or B<<
1424     [menu:+I<name> >> and continuing until B<[done]> is encountered.
1425    
1426     Blank and comment lines (starting with B<#>) are ignored. Actually,
1427     since any invalid menu commands are also ignored, almost anything could
1428     be construed as a comment line, but this may be tightened up in the
1429     future ... so don't count on it!.
1430    
1431     =item B<< [read:+I<file>;+I<name>] >>
1432    
1433     The same as B<< [read:+I<file>] >>, but start reading at a line with
1434     B<< [menu:+I<name>] >> and continuing until B<< [done:+I<name>] >> or
1435     B<[done]> is encountered.
1436    
1437     =item B<[dump]>
1438    
1439     dump all menuBars to the file B</tmp/rxvt-PID> in a format suitable for
1440     later rereading.
1441    
1442     =item B<[rm:name]>
1443    
1444     remove the named menuBar
1445    
1446     =item B<[rm] [rm:]>
1447    
1448     remove the current menuBar
1449    
1450     =item B<[rm*] [rm:*]>
1451    
1452     remove all menuBars
1453    
1454     =item B<[swap]>
1455    
1456     swap the top two menuBars
1457    
1458     =item B<[prev]>
1459    
1460     access the previous menuBar
1461    
1462     =item B<[next]>
1463    
1464     access the next menuBar
1465    
1466     =item B<[show]>
1467    
1468     Enable display of the menuBar
1469    
1470     =item B<[hide]>
1471    
1472     Disable display of the menuBar
1473    
1474     =item B<< [pixmap:+I<name>] >>
1475    
1476     =item B<< [pixmap:+I<name>;I<scaling>] >>
1477    
1478     (set the background pixmap globally
1479    
1480     B<< A Future implementation I<may> make this local to the menubar >>)
1481    
1482     =item B<< [:+I<command>:] >>
1483    
1484     ignore the menu readonly status and issue a I<command> to or a menu or
1485     menuitem or change the ; a useful shortcut for setting the quick arrows
1486     from a menuBar.
1487    
1488     =back
1489    
1490     X<menuBarAdd>
1491    
1492     =head2 Adding and accessing menus
1493    
1494     The following commands may also be B<+> prefixed.
1495    
1496     =over 4
1497    
1498     =item B</+>
1499    
1500     access menuBar top level
1501    
1502     =item B<./+>
1503    
1504     access current menu level
1505    
1506     =item B<../+>
1507    
1508     access parent menu (1 level up)
1509    
1510     =item B<../../>
1511    
1512     access parent menu (multiple levels up)
1513    
1514     =item B<< I</path/>menu >>
1515    
1516     add/access menu
1517    
1518     =item B<< I</path/>menu/* >>
1519    
1520     add/access menu and clear it if it exists
1521    
1522     =item B<< I</path/>{-} >>
1523    
1524     add separator
1525    
1526     =item B<< I</path/>{item} >>
1527    
1528     add B<item> as a label
1529    
1530     =item B<< I</path/>{item} action >>
1531    
1532     add/alter I<menuitem> with an associated I<action>
1533    
1534     =item B<< I</path/>{item}{right-text} >>
1535    
1536     add/alter I<menuitem> with B<right-text> as the right-justified text
1537     and as the associated I<action>
1538    
1539     =item B<< I</path/>{item}{rtext} action >>
1540    
1541     add/alter I<menuitem> with an associated I<action> and with B<rtext> as
1542     the right-justified text.
1543    
1544     =back
1545    
1546     =over 4
1547    
1548     =item Special characters in I<action> must be backslash-escaped:
1549    
1550     B<\a \b \E \e \n \r \t \octal>
1551    
1552     =item or in control-character notation:
1553    
1554     B<^@, ^A .. ^Z .. ^_, ^?>
1555    
1556     =back
1557    
1558     To send a string starting with a B<NUL> (B<^@>) character to the
1559     program, start I<action> with a pair of B<NUL> characters (B<^@^@>),
1560     the first of which will be stripped off and the balance directed to the
1561     program. Otherwise if I<action> begins with B<NUL> followed by
1562     non-+B<NUL> characters, the leading B<NUL> is stripped off and the
1563     balance is sent back to rxvt.
1564    
1565     As a convenience for the many Emacs-type editors, I<action> may start
1566     with B<M-> (eg, B<M-$> is equivalent to B<\E$>) and a B<CR> will be
1567     appended if missed from B<M-x> commands.
1568    
1569     As a convenience for issuing XTerm B<ESC]> sequences from a menubar (or
1570     quick arrow), a B<BEL> (B<^G>) will be appended if needed.
1571    
1572     =over 4
1573    
1574     =item For example,
1575    
1576     B<M-xapropos> is equivalent to B<\Exapropos\r>
1577    
1578     =item and
1579    
1580     B<\E]703;mona;100> is equivalent to B<\E]703;mona;100\a>
1581    
1582     =back
1583    
1584     The option B<< {I<right-rtext>} >> will be right-justified. In the
1585     absence of a specified action, this text will be used as the I<action>
1586     as well.
1587    
1588     =over 4
1589    
1590     =item For example,
1591    
1592     B</File/{Open}{^X^F}> is equivalent to B</File/{Open}{^X^F} ^X^F>
1593    
1594     =back
1595    
1596     The left label I<is> necessary, since it's used for matching, but
1597     implicitly hiding the left label (by using same name for both left and
1598     right labels), or explicitly hiding the left label (by preceeding it
1599     with a dot), makes it possible to have right-justified text only.
1600    
1601     =over 4
1602    
1603     =item For example,
1604    
1605     B</File/{Open}{Open} Open-File-Action>
1606    
1607     =item or hiding it
1608    
1609     B</File/{.anylabel}{Open} Open-File-Action>
1610    
1611     =back
1612    
1613     X<menuBarRemove>
1614    
1615     =head2 Removing menus
1616    
1617     =over 4
1618    
1619     =item B<< -/*+ >>
1620    
1621     remove all menus from the menuBar, the same as B<[clear]>
1622    
1623     =item B<< -+I</path>menu+ >>
1624    
1625     remove menu
1626    
1627     =item B<< -+I</path>{item}+ >>
1628    
1629     remove item
1630    
1631     =item B<< -+I</path>{-} >>
1632    
1633     remove separator)
1634    
1635     =item B<-/path/menu/*>
1636    
1637     remove all items, separators and submenus from menu
1638    
1639     =back
1640    
1641     X<menuBarArrows>
1642    
1643     =head2 Quick Arrows
1644    
1645     The menus also provide a hook for I<quick arrows> to provide easier
1646     user access. If nothing has been explicitly set, the default is to
1647     emulate the curror keys. The syntax permits each arrow to be altered
1648     individually or all four at once without re-entering their common
1649     beginning/end text. For example, to explicitly associate cursor actions
1650     with the arrows, any of the following forms could be used:
1651    
1652     =over 4
1653    
1654     =item B<< <r>+I<Right> >>
1655    
1656     =item B<< <l>+I<Left> >>
1657    
1658     =item B<< <u>+I<Up> >>
1659    
1660     =item B<< <d>+I<Down> >>
1661    
1662     Define actions for the respective arrow buttons
1663    
1664     =item B<< <b>+I<Begin> >>
1665    
1666     =item B<< <e>+I<End> >>
1667    
1668     Define common beginning/end parts for I<quick arrows> which used in
1669     conjunction with the above <r> <l> <u> <d> constructs
1670    
1671     =back
1672    
1673     =over 4
1674    
1675     =item For example, define arrows individually,
1676    
1677     <u>\E[A
1678    
1679     <d>\E[B
1680    
1681     <r>\E[C
1682    
1683     <l>\E[D
1684    
1685     =item or all at once
1686    
1687     <u>\E[AZ<><d>\E[BZ<><r>\E[CZ<><l>\E[D
1688    
1689     =item or more compactly (factoring out common parts)
1690    
1691     <b>\E[<u>AZ<><d>BZ<><r>CZ<><l>D
1692    
1693     =back
1694    
1695     X<menuBarSummary>
1696    
1697     =head2 Command Summary
1698    
1699     A short summary of the most I<common> commands:
1700    
1701     =over 4
1702    
1703     =item [menu:name]
1704    
1705     use an existing named menuBar or start a new one
1706    
1707     =item [menu]
1708    
1709     use the current menuBar
1710    
1711     =item [title:string]
1712    
1713     set menuBar title
1714    
1715     =item [done]
1716    
1717     set menu access to readonly and, if reading from a file, signal EOF
1718    
1719     =item [done:name]
1720    
1721     if reading from a file using [read:file;name] signal EOF
1722    
1723     =item [rm:name]
1724    
1725     remove named menuBar(s)
1726    
1727     =item [rm] [rm:]
1728    
1729     remove current menuBar
1730    
1731     =item [rm*] [rm:*]
1732    
1733     remove all menuBar(s)
1734    
1735     =item [swap]
1736    
1737     swap top two menuBars
1738    
1739     =item [prev]
1740    
1741     access the previous menuBar
1742    
1743     =item [next]
1744    
1745     access the next menuBar
1746    
1747     =item [show]
1748    
1749     map menuBar
1750    
1751     =item [hide]
1752    
1753     unmap menuBar
1754    
1755     =item [pixmap;file]
1756    
1757     =item [pixmap;file;scaling]
1758    
1759     set a background pixmap
1760    
1761     =item [read:file]
1762    
1763     =item [read:file;name]
1764    
1765     read in a menu from a file
1766    
1767     =item [dump]
1768    
1769     dump out all menuBars to /tmp/rxvt-PID
1770    
1771     =item /
1772    
1773     access menuBar top level
1774    
1775     =item ./
1776    
1777     =item ../
1778    
1779     =item ../../
1780    
1781     access current or parent menu level
1782    
1783     =item /path/menu
1784    
1785     add/access menu
1786    
1787     =item /path/{-}
1788    
1789     add separator
1790    
1791     =item /path/{item}{rtext} action
1792    
1793     add/alter menu item
1794    
1795     =item -/*
1796    
1797     remove all menus from the menuBar
1798    
1799     =item -/path/menu
1800    
1801     remove menu items, separators and submenus from menu
1802    
1803     =item -/path/menu
1804    
1805     remove menu
1806    
1807     =item -/path/{item}
1808    
1809     remove item
1810    
1811     =item -/path/{-}
1812    
1813     remove separator
1814    
1815     =item <b>Begin<r>Right<l>Left<u>Up<d>Down<e>End
1816    
1817     menu quick arrows
1818    
1819     =back
1820     X<XPM>
1821    
1822     =head1 XPM
1823    
1824     For the XPM XTerm escape sequence B<< C<ESC ] 20 ; Pt ST> >> then value
1825     of B<< C<Pt> >> can be the name of the background pixmap followed by a
1826     sequence of scaling/positioning commands separated by semi-colons. The
1827     scaling/positioning commands are as follows:
1828    
1829     =over 4
1830    
1831     =item query scale/position
1832    
1833     B<?>
1834    
1835     =item change scale and position
1836    
1837     B<WxH+X+Y>
1838    
1839     B<WxH+X> (== B<WxH+X+X>)
1840    
1841     B<WxH> (same as B<WxH+50+50>)
1842    
1843     B<W+X+Y> (same as B<WxW+X+Y>)
1844    
1845     B<W+X> (same as B<WxW+X+X>)
1846    
1847     B<W> (same as B<WxW+50+50>)
1848    
1849     =item change position (absolute)
1850    
1851     B<=+X+Y>
1852    
1853     B<=+X> (same as B<=+X+Y>)
1854    
1855     =item change position (relative)
1856    
1857     B<+X+Y>
1858    
1859     B<+X> (same as B<+X+Y>)
1860    
1861     =item rescale (relative)
1862    
1863     B<Wx0> -> B<W *= (W/100)>
1864    
1865     B<0xH> -> B<H *= (H/100)>
1866    
1867     =back
1868    
1869     For example:
1870    
1871     =over 4
1872    
1873     =item B<\E]20;funky\a>
1874    
1875     load B<funky.xpm> as a tiled image
1876    
1877     =item B<\E]20;mona;100\a>
1878    
1879     load B<mona.xpm> with a scaling of 100%
1880    
1881     =item B<\E]20;;200;?\a>
1882    
1883     rescale the current pixmap to 200% and display the image geometry in
1884     the title
1885    
1886     =back
1887     X<Mouse>
1888    
1889     =head1 Mouse Reporting
1890    
1891     =over 4
1892    
1893     =item B<< C<< ESC [ M <b> <x> <y> >> >>
1894    
1895     report mouse position
1896    
1897     =back
1898    
1899     The lower 2 bits of B<< C<< <b> >> >> indicate the button:
1900    
1901     =over 4
1902    
1903     =item Button = B<< C<< (<b> - SPACE) & 3 >> >>
1904    
1905     =begin table
1906    
1907     0 Button1 pressed
1908     1 Button2 pressed
1909     2 Button3 pressed
1910     3 button released (X11 mouse report)
1911    
1912     =end table
1913    
1914     =back
1915    
1916     The upper bits of B<< C<< <b> >> >> indicate the modifiers when the
1917     button was pressed and are added together (X11 mouse report only):
1918    
1919     =over 4
1920    
1921     =item State = B<< C<< (<b> - SPACE) & 60 >> >>
1922    
1923     =begin table
1924    
1925     4 Shift
1926     8 Meta
1927     16 Control
1928     32 Double Click I<(Rxvt extension)>
1929    
1930     =end table
1931    
1932     Col = B<< C<< <x> - SPACE >> >>
1933    
1934     Row = B<< C<< <y> - SPACE >> >>
1935    
1936     =back
1937     X<KeyCodes>
1938    
1939     =head1 Key Codes
1940    
1941     Note: B<Shift> + B<F1>-B<F10> generates B<F11>-B<F20>
1942    
1943     For the keypad, use B<Shift> to temporarily override Application-Keypad
1944     setting use B<Num_Lock> to toggle Application-Keypad setting if
1945     B<Num_Lock> is off, toggle Application-Keypad setting. Also note that
1946     values of B<Home>, B<End>, B<Delete> may have been compiled differently on
1947     your system.
1948    
1949     =begin table
1950    
1951     B<Normal> B<Shift> B<Control> B<Ctrl+Shift>
1952     Tab ^I ESC [ Z ^I ESC [ Z
1953     BackSpace ^H ^? ^? ^?
1954     Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
1955     Insert ESC [ 2 ~ I<paste> ESC [ 2 ^ ESC [ 2 @
1956     Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1957     Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
1958     Prior ESC [ 5 ~ I<scroll-up> ESC [ 5 ^ ESC [ 5 @
1959     Next ESC [ 6 ~ I<scroll-down> ESC [ 6 ^ ESC [ 6 @
1960     Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
1961     End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
1962     Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1963     F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
1964     F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
1965     F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
1966     F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
1967     F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
1968     F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
1969     F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
1970     F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
1971     F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
1972     F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
1973     F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
1974     F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
1975     F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
1976     F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
1977     F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
1978     F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
1979     F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
1980     F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
1981     F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
1982     F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
1983     B<Application>
1984     Up ESC [ A ESC [ a ESC O a ESC O A
1985     Down ESC [ B ESC [ b ESC O b ESC O B
1986     Right ESC [ C ESC [ c ESC O c ESC O C
1987     Left ESC [ D ESC [ d ESC O d ESC O D
1988     KP_Enter ^M ESC O M
1989     KP_F1 ESC O P ESC O P
1990     KP_F2 ESC O Q ESC O Q
1991     KP_F3 ESC O R ESC O R
1992     KP_F4 ESC O S ESC O S
1993     XK_KP_Multiply * ESC O j
1994     XK_KP_Add + ESC O k
1995     XK_KP_Separator , ESC O l
1996     XK_KP_Subtract - ESC O m
1997     XK_KP_Decimal . ESC O n
1998     XK_KP_Divide / ESC O o
1999     XK_KP_0 0 ESC O p
2000     XK_KP_1 1 ESC O q
2001     XK_KP_2 2 ESC O r
2002     XK_KP_3 3 ESC O s
2003     XK_KP_4 4 ESC O t
2004     XK_KP_5 5 ESC O u
2005     XK_KP_6 6 ESC O v
2006     XK_KP_7 7 ESC O w
2007     XK_KP_8 8 ESC O x
2008     XK_KP_9 9 ESC O y
2009    
2010     =end table
2011 root 1.2
2012 root 1.6 =head1 CONFIGURE OPTIONS
2013    
2014     General hint: if you get compile errors, then likely your configuration
2015     hasn't been tested well. Either try with --enable-everything or use the
2016     ./reconf script as a base for experiments. ./reconf is used by myself,
2017     so it should generally be a working config. Of course, you should always
2018     report when a combination doesn't work, so it can be fixed. Marc Lehmann
2019     <rxvt@schmorp.de>.
2020    
2021     =over 4
2022    
2023     =item --enable-everything
2024    
2025     Add support for all non-multichoice options listed in "./configure
2026     --help". Note that unlike other enable options this is order dependant.
2027     You can specify this and then disable options which this enables by
2028     I<following> this with the appropriate commands.
2029    
2030     =item --enable-xft
2031    
2032     Add support for Xft (anti-aliases, among others) fonts. Xft fonts are
2033     slower and require lots of memory, but as long as you don't use them, you
2034     don't pay for them.
2035    
2036 root 1.23 =item --enable-font-styles
2037    
2038     Add support for B<bold>, I<italic> and B<< I<bold italic> >> font
2039     styles. The fonts can be set manually or automatically.
2040    
2041 root 1.6 =item --with-codesets=NAME,...
2042    
2043 root 1.23 Compile in support for additional codeset (encoding) groups (eu, vn are
2044     always compiled in, which includes most 8-bit character sets). These
2045     codeset tables are currently only used for driving X11 core fonts, they
2046     are not required for Xft fonts. Compiling them in will make your binary
2047     bigger (together about 700kB), but it doesn't increase memory usage unless
2048     you use an X11 font requiring one of these encodings.
2049 root 1.6
2050     =begin table
2051    
2052 root 1.12 all all available codeset groups
2053 root 1.6 cn common chinese encodings
2054     cn_ext rarely used but very big chinese encodigs
2055     jp common japanese encodings
2056     jp_ext rarely used but big japanese encodings
2057     kr korean encodings
2058    
2059     =end table
2060    
2061     =item --enable-xim
2062    
2063     Add support for XIM (X Input Method) protocol. This allows using
2064     alternative input methods (e.g. kinput2) and will also correctly
2065     set up the input for people using dead keys or compose keys.
2066    
2067     =item --enable-unicode3
2068    
2069     Enable direct support for displaying unicode codepoints above
2070     65535 (the basic multilingual page). This increases storage
2071     requirements per character from 2 to 4 bytes. X11 fonts do not yet
2072     support these extra characters, but Xft does.
2073    
2074     Please note that rxvt-unicode can store unicode code points >65535
2075     even without this flag, but the number of such characters is
2076     limited to a view thousand (shared with combining characters,
2077     see next switch), and right now rxvt-unicode cannot display them
2078     (input/output and cut&paste still work, though).
2079    
2080     =item --enable-combining
2081    
2082     Enable automatic composition of combining characters into
2083     composite characters. This is required for proper viewing of text
2084     where accents are encoded as seperate unicode characters. This is
2085     done by using precomposited characters when available or creating
2086     new pseudo-characters when no precomposed form exists.
2087    
2088     Without --enable-unicode3, the number of additional precomposed
2089     characters is rather limited (2048, if this is full, rxvt will use the
2090     private use area, extending the number of combinations to 8448). With
2091     --enable-unicode3, no practical limit exists. This will also enable
2092     storage of characters >65535.
2093    
2094     The combining table also contains entries for arabic presentation forms,
2095     but these are not currently used. Bug me if you want these to be used.
2096    
2097     =item --enable-fallback(=CLASS)
2098    
2099     When reading resource settings, also read settings for class CLASS
2100     (default: Rxvt). To disable resource fallback use --disable-fallback.
2101    
2102     =item --with-res-name=NAME
2103    
2104     Use the given name (default: urxvt) as default application name when
2105     reading resources. Specify --with-res-name=rxvt to replace rxvt.
2106    
2107     =item --with-res-class=CLASS
2108    
2109     Use the given class (default: URxvt) as default application class
2110     when reading resources. Specify --with-res-class=Rxvt to replace
2111     rxvt.
2112    
2113     =item --enable-utmp
2114    
2115     Write user and tty to utmp file (used by programs like F<w>) at
2116     start of rxvt execution and delete information when rxvt exits.
2117    
2118     =item --enable-wtmp
2119    
2120     Write user and tty to wtmp file (used by programs like F<last>) at
2121     start of rxvt execution and write logout when rxvt exits. This
2122     option requires --enable-utmp to also be specified.
2123    
2124     =item --enable-lastlog
2125    
2126     Write user and tty to lastlog file (used by programs like
2127     F<lastlogin>) at start of rxvt execution. This option requires
2128     --enable-utmp to also be specified.
2129    
2130     =item --enable-xpm-background
2131    
2132     Add support for XPM background pixmaps.
2133    
2134     =item --enable-transparency
2135    
2136     Add support for inheriting parent backgrounds thus giving a fake
2137     transparency to the term.
2138    
2139     =item --enable-fading
2140    
2141     Add support for fading the text when focus is lost.
2142    
2143     =item --enable-tinting
2144    
2145     Add support for tinting of transparent backgrounds.
2146    
2147     =item --enable-menubar
2148    
2149     Add support for our menu bar system (this interacts badly with
2150     dynamic locale switching currently).
2151    
2152     =item --enable-rxvt-scroll
2153    
2154     Add support for the original rxvt scrollbar.
2155    
2156     =item --enable-next-scroll
2157    
2158     Add support for a NeXT-like scrollbar.
2159    
2160     =item --enable-xterm-scroll
2161    
2162     Add support for an Xterm-like scrollbar.
2163    
2164     =item --enable-plain-scroll
2165    
2166     Add support for a very unobtrusive, plain-looking scrollbar that
2167     is the favourite of the rxvt-unicode author, having used it for
2168     many years.
2169    
2170     =item --enable-half-shadow
2171    
2172     Make shadows on the scrollbar only half the normal width & height.
2173     only applicable to rxvt scrollbars.
2174    
2175     =item --enable-ttygid
2176    
2177     Change tty device setting to group "tty" - only use this if
2178     your system uses this type of security.
2179    
2180     =item --disable-backspace-key
2181    
2182     Disable any handling of the backspace key by us - let the X server
2183     do it.
2184    
2185     =item --disable-delete-key
2186    
2187     Disable any handling of the delete key by us - let the X server
2188     do it.
2189    
2190     =item --disable-resources
2191    
2192     Remove all resources checking.
2193    
2194     =item --enable-xgetdefault
2195    
2196     Make resources checking via XGetDefault() instead of our small
2197     version which only checks ~/.Xdefaults, or if that doesn't exist
2198     then ~/.Xresources.
2199    
2200     =item --enable-strings
2201    
2202     Add support for our possibly faster memset() function and other
2203     various routines, overriding your system's versions which may
2204     have been hand-crafted in assembly or may require extra libraries
2205     to link in. (this breaks ANSI-C rules and has problems on many
2206     GNU/Linux systems).
2207    
2208     =item --disable-swapscreen
2209    
2210     Remove support for swap screen.
2211    
2212     =item --enable-frills
2213    
2214     Add support for many small features that are not essential but nice to
2215     have. Normally you want this, but for very small binaries you may want to
2216     disable this.
2217    
2218 root 1.12 =item --enable-iso14755
2219    
2220     Enable extended ISO 14755 support (see @@RXVT_NAME@@(1), or
2221     F<doc/rxvt.1.txt>). Basic support (section 5.1) is enabled by
2222     C<--enable-frills>, while support for 5.2, 5.3 and 5.4 is enabled with
2223     this switch.
2224    
2225 root 1.6 =item --enable-linespace
2226    
2227     Add support to provide user specified line spacing between text rows.
2228    
2229     =item --enable-keepscrolling
2230    
2231     Add support for continual scrolling of the display when you hold
2232     the mouse button down on a scrollbar arrow.
2233    
2234     =item --enable-mousewheel
2235    
2236     Add support for scrolling via mouse wheel or buttons 4 & 5.
2237    
2238     =item --enable-slipwheeling
2239    
2240     Add support for continual scrolling (using the mouse wheel as an
2241     accelerator) while the control key is held down. This option
2242     requires --enable-mousewheel to also be specified.
2243    
2244     =item --disable-new-selection
2245    
2246     Remove support for mouse selection style like that of xterm.
2247    
2248     =item --enable-dmalloc
2249    
2250     Use Gray Watson's malloc - which is good for debugging See
2251     http://www.letters.com/dmalloc/ for details If you use either this or the
2252     next option, you may need to edit src/Makefile after compiling to point
2253     DINCLUDE and DLIB to the right places.
2254    
2255     You can only use either this option and the following (should
2256     you use either) .
2257    
2258     =item --enable-dlmalloc
2259    
2260     Use Doug Lea's malloc - which is good for a production version
2261     See L<http://g.oswego.edu/dl/html/malloc.html> for details.
2262    
2263     =item --enable-smart-resize
2264    
2265     Add smart growth/shrink behaviour when changing font size via from hot
2266     keys. This should keep in a fixed position the rxvt corner which is
2267     closest to a corner of the screen.
2268    
2269     =item --enable-cursor-blink
2270    
2271     Add support for a blinking cursor.
2272    
2273     =item --enable-pointer-blank
2274    
2275     Add support to have the pointer disappear when typing or inactive.
2276    
2277     =item --with-name=NAME
2278    
2279     Set the basename for the installed binaries (default: urxvt, resulting in
2280     urxvt, urxvtd etc.). Specify --with-name=rxvt to replace rxvt.
2281    
2282     =item --with-term=NAME
2283    
2284     Change the environmental variable for the terminal to NAME (default
2285     "rxvt")
2286    
2287     =item --with-terminfo=PATH
2288    
2289     Change the environmental variable for the path to the terminfo tree to
2290     PATH.
2291    
2292     =item --with-x
2293    
2294     Use the X Window System (pretty much default, eh?).
2295    
2296     =item --with-xpm-includes=DIR
2297    
2298     Look for the XPM includes in DIR.
2299    
2300     =item --with-xpm-library=DIR
2301    
2302     Look for the XPM library in DIR.
2303    
2304     =item --with-xpm
2305    
2306     Not needed - define via --enable-xpm-background.
2307    
2308     =back
2309    
2310 root 1.2 =head1 AUTHORS
2311    
2312 root 1.5 Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
2313 root 1.2 reworked it from the original Rxvt documentation, which was done by Geoff
2314     Wing <gcw@pobox.com>, who in turn used the XTerm documentation and other
2315     sources.
2316 root 1.1