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