ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.txt
Revision: 1.40
Committed: Thu Jan 12 05:37:34 2006 UTC (18 years, 6 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.39: +22 -0 lines
Log Message:
*** empty log message ***

File Contents

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