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