ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.pod
Revision: 1.82
Committed: Mon Jan 16 09:28:45 2006 UTC (18 years, 6 months ago) by root
Branch: MAIN
Changes since 1.81: +0 -8 lines
Log Message:
*** empty log message ***

File Contents

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