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