ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.pod
Revision: 1.85
Committed: Mon Jan 16 15:12:48 2006 UTC (18 years, 6 months ago) by root
Branch: MAIN
Changes since 1.84: +2 -2 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 root 1.84 URxvt.imlocale: ja_JP.EUC-JP
622 root 1.25
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 root 1.85 followed by pixmap support and last by a description of all features
905     selectable at C<configure> time.
906 root 1.23
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 = 25> >>
1484    
1485     =begin table
1486    
1487     B<< C<h> >> Visible cursor {cnorm/cvvis}
1488     B<< C<l> >> Invisible cursor {civis}
1489    
1490     =end table
1491    
1492     =item B<< C<Ps = 30> >>
1493    
1494     =begin table
1495    
1496     B<< C<h> >> scrollBar visisble
1497     B<< C<l> >> scrollBar invisisble
1498    
1499     =end table
1500    
1501     =item B<< C<Ps = 35> >> (B<rxvt>)
1502    
1503     =begin table
1504    
1505     B<< C<h> >> Allow XTerm Shift+key sequences
1506     B<< C<l> >> Disallow XTerm Shift+key sequences
1507    
1508     =end table
1509    
1510     =item B<< C<Ps = 38> >> I<unimplemented>
1511    
1512     Enter Tektronix Mode (DECTEK)
1513    
1514     =item B<< C<Ps = 40> >>
1515    
1516     =begin table
1517    
1518     B<< C<h> >> Allow 80/132 Mode
1519     B<< C<l> >> Disallow 80/132 Mode
1520    
1521     =end table
1522    
1523     =item B<< C<Ps = 44> >> I<unimplemented>
1524    
1525     =begin table
1526    
1527     B<< C<h> >> Turn On Margin Bell
1528     B<< C<l> >> Turn Off Margin Bell
1529    
1530     =end table
1531    
1532     =item B<< C<Ps = 45> >> I<unimplemented>
1533    
1534     =begin table
1535    
1536     B<< C<h> >> Reverse-wraparound Mode
1537     B<< C<l> >> No Reverse-wraparound Mode
1538    
1539     =end table
1540    
1541     =item B<< C<Ps = 46> >> I<unimplemented>
1542    
1543     =item B<< C<Ps = 47> >>
1544    
1545     =begin table
1546    
1547     B<< C<h> >> Use Alternate Screen Buffer
1548     B<< C<l> >> Use Normal Screen Buffer
1549    
1550     =end table
1551    
1552     X<Priv66>
1553    
1554     =item B<< C<Ps = 66> >>
1555    
1556     =begin table
1557    
1558 root 1.2 B<< C<h> >> Application Keypad (DECPAM) == C<ESC =>
1559     B<< C<l> >> Normal Keypad (DECPNM) == C<< ESC > >>
1560 root 1.1
1561     =end table
1562    
1563     =item B<< C<Ps = 67> >>
1564    
1565     =begin table
1566    
1567     B<< C<h> >> Backspace key sends B<< C<BS> (DECBKM) >>
1568     B<< C<l> >> Backspace key sends B<< C<DEL> >>
1569    
1570     =end table
1571    
1572     =item B<< C<Ps = 1000> >> (X11 XTerm)
1573    
1574     =begin table
1575    
1576     B<< C<h> >> Send Mouse X & Y on button press and release.
1577     B<< C<l> >> No mouse reporting.
1578    
1579     =end table
1580    
1581     =item B<< C<Ps = 1001> >> (X11 XTerm) I<unimplemented>
1582    
1583     =begin table
1584    
1585     B<< C<h> >> Use Hilite Mouse Tracking.
1586     B<< C<l> >> No mouse reporting.
1587    
1588     =end table
1589    
1590 root 1.12 =item B<< C<Ps = 1010> >> (B<rxvt>)
1591 root 1.1
1592     =begin table
1593    
1594     B<< C<h> >> Don't scroll to bottom on TTY output
1595     B<< C<l> >> Scroll to bottom on TTY output
1596    
1597     =end table
1598    
1599 root 1.12 =item B<< C<Ps = 1011> >> (B<rxvt>)
1600 root 1.1
1601     =begin table
1602    
1603     B<< C<h> >> Scroll to bottom when a key is pressed
1604     B<< C<l> >> Don't scroll to bottom when a key is pressed
1605    
1606     =end table
1607    
1608 root 1.65 =item B<< C<Ps = 1021> >> (B<rxvt>)
1609    
1610     =begin table
1611    
1612     B<< C<h> >> Bold/italic implies high intensity (see option B<-is>)
1613 root 1.66 B<< C<l> >> Font styles have no effect on intensity (Compile styles)
1614 root 1.65
1615     =end table
1616    
1617 root 1.1 =item B<< C<Ps = 1047> >>
1618    
1619     =begin table
1620    
1621     B<< C<h> >> Use Alternate Screen Buffer
1622     B<< C<l> >> Use Normal Screen Buffer - clear Alternate Screen Buffer if returning from it
1623    
1624     =end table
1625    
1626     =item B<< C<Ps = 1048> >>
1627    
1628     =begin table
1629    
1630     B<< C<h> >> Save cursor position
1631     B<< C<l> >> Restore cursor position
1632    
1633     =end table
1634    
1635 root 1.12 =item B<< C<Ps = 1049> >>
1636    
1637     =begin table
1638    
1639     B<< C<h> >> Use Alternate Screen Buffer - clear Alternate Screen Buffer if switching to it
1640     B<< C<l> >> Use Normal Screen Buffer
1641    
1642     =end table
1643    
1644 root 1.1 =back
1645    
1646     =back
1647    
1648     X<XTerm>
1649    
1650     =head1 XTerm Operating System Commands
1651    
1652     =over 4
1653    
1654     =item B<< C<ESC ] Ps;Pt ST> >>
1655    
1656     Set XTerm Parameters. 8-bit ST: 0x9c, 7-bit ST sequence: ESC \ (0x1b,
1657     0x5c), backwards compatible terminator BEL (0x07) is also accepted. any
1658     B<octet> can be escaped by prefixing it with SYN (0x16, ^V).
1659    
1660     =begin table
1661    
1662     B<< C<Ps = 0> >> Change Icon Name and Window Title to B<< C<Pt> >>
1663     B<< C<Ps = 1> >> Change Icon Name to B<< C<Pt> >>
1664     B<< C<Ps = 2> >> Change Window Title to B<< C<Pt> >>
1665     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.
1666     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
1667     B<< C<Ps = 10> >> Change colour of text foreground to B<< C<Pt> >> B<(NB: may change in future)>
1668     B<< C<Ps = 11> >> Change colour of text background to B<< C<Pt> >> B<(NB: may change in future)>
1669     B<< C<Ps = 12> >> Change colour of text cursor foreground to B<< C<Pt> >>
1670     B<< C<Ps = 13> >> Change colour of mouse foreground to B<< C<Pt> >>
1671     B<< C<Ps = 17> >> Change colour of highlight characters to B<< C<Pt> >>
1672 root 1.75 B<< C<Ps = 18> >> Change colour of bold characters to B<< C<Pt> >> [deprecated, see 706]
1673     B<< C<Ps = 19> >> Change colour of underlined characters to B<< C<Pt> >> [deprecated, see 707]
1674 root 1.1 B<< C<Ps = 20> >> Change default background to B<< C<Pt> >>
1675 root 1.51 B<< C<Ps = 39> >> Change default foreground colour to B<< C<Pt> >>.
1676 root 1.1 B<< C<Ps = 46> >> Change Log File to B<< C<Pt> >> I<unimplemented>
1677 root 1.51 B<< C<Ps = 49> >> Change default background colour to B<< C<Pt> >>.
1678 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> >>
1679     B<< C<Ps = 55> >> Log all scrollback buffer and all of screen to B<< C<Pt> >>
1680 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).
1681 root 1.23 B<< C<Ps = 704> >> Change colour of italic characters to B<< C<Pt> >>
1682 root 1.51 B<< C<Ps = 705> >> Change background pixmap tint colour to B<< C<Pt> >> (Compile transparency).
1683 root 1.75 B<< C<Ps = 706> >> Change colour of bold characters to B<< C<Pt> >>
1684     B<< C<Ps = 707> >> Change colour of underlined characters to B<< C<Pt> >>
1685 root 1.23 B<< C<Ps = 710> >> Set normal fontset to B<< C<Pt> >>. Same as C<Ps = 50>.
1686 root 1.51 B<< C<Ps = 711> >> Set bold fontset to B<< C<Pt> >>. Similar to C<Ps = 50> (Compile styles).
1687     B<< C<Ps = 712> >> Set italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50> (Compile styles).
1688     B<< C<Ps = 713> >> Set bold-italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50> (Compile styles).
1689     B<< C<Ps = 720> >> Move viewing window up by B<< C<Pt> >> lines, or clear scrollback buffer if C<Pt = 0> (Compile frills).
1690     B<< C<Ps = 721> >> Move viewing window down by B<< C<Pt> >> lines, or clear scrollback buffer if C<Pt = 0> (Compile frills).
1691 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).
1692 root 1.1
1693     =end table
1694    
1695     =back
1696    
1697     X<XPM>
1698    
1699     =head1 XPM
1700    
1701     For the XPM XTerm escape sequence B<< C<ESC ] 20 ; Pt ST> >> then value
1702     of B<< C<Pt> >> can be the name of the background pixmap followed by a
1703     sequence of scaling/positioning commands separated by semi-colons. The
1704     scaling/positioning commands are as follows:
1705    
1706     =over 4
1707    
1708     =item query scale/position
1709    
1710     B<?>
1711    
1712     =item change scale and position
1713    
1714     B<WxH+X+Y>
1715    
1716     B<WxH+X> (== B<WxH+X+X>)
1717    
1718     B<WxH> (same as B<WxH+50+50>)
1719    
1720     B<W+X+Y> (same as B<WxW+X+Y>)
1721    
1722     B<W+X> (same as B<WxW+X+X>)
1723    
1724     B<W> (same as B<WxW+50+50>)
1725    
1726     =item change position (absolute)
1727    
1728     B<=+X+Y>
1729    
1730     B<=+X> (same as B<=+X+Y>)
1731    
1732     =item change position (relative)
1733    
1734     B<+X+Y>
1735    
1736     B<+X> (same as B<+X+Y>)
1737    
1738     =item rescale (relative)
1739    
1740     B<Wx0> -> B<W *= (W/100)>
1741    
1742     B<0xH> -> B<H *= (H/100)>
1743    
1744     =back
1745    
1746     For example:
1747    
1748     =over 4
1749    
1750     =item B<\E]20;funky\a>
1751    
1752     load B<funky.xpm> as a tiled image
1753    
1754     =item B<\E]20;mona;100\a>
1755    
1756     load B<mona.xpm> with a scaling of 100%
1757    
1758     =item B<\E]20;;200;?\a>
1759    
1760     rescale the current pixmap to 200% and display the image geometry in
1761     the title
1762    
1763     =back
1764     X<Mouse>
1765    
1766     =head1 Mouse Reporting
1767    
1768     =over 4
1769    
1770     =item B<< C<< ESC [ M <b> <x> <y> >> >>
1771    
1772     report mouse position
1773    
1774     =back
1775    
1776     The lower 2 bits of B<< C<< <b> >> >> indicate the button:
1777    
1778     =over 4
1779    
1780     =item Button = B<< C<< (<b> - SPACE) & 3 >> >>
1781    
1782     =begin table
1783    
1784     0 Button1 pressed
1785     1 Button2 pressed
1786     2 Button3 pressed
1787     3 button released (X11 mouse report)
1788    
1789     =end table
1790    
1791     =back
1792    
1793     The upper bits of B<< C<< <b> >> >> indicate the modifiers when the
1794     button was pressed and are added together (X11 mouse report only):
1795    
1796     =over 4
1797    
1798     =item State = B<< C<< (<b> - SPACE) & 60 >> >>
1799    
1800     =begin table
1801    
1802     4 Shift
1803     8 Meta
1804     16 Control
1805     32 Double Click I<(Rxvt extension)>
1806    
1807     =end table
1808    
1809     Col = B<< C<< <x> - SPACE >> >>
1810    
1811     Row = B<< C<< <y> - SPACE >> >>
1812    
1813     =back
1814     X<KeyCodes>
1815    
1816     =head1 Key Codes
1817    
1818     Note: B<Shift> + B<F1>-B<F10> generates B<F11>-B<F20>
1819    
1820     For the keypad, use B<Shift> to temporarily override Application-Keypad
1821     setting use B<Num_Lock> to toggle Application-Keypad setting if
1822     B<Num_Lock> is off, toggle Application-Keypad setting. Also note that
1823     values of B<Home>, B<End>, B<Delete> may have been compiled differently on
1824     your system.
1825    
1826     =begin table
1827    
1828     B<Normal> B<Shift> B<Control> B<Ctrl+Shift>
1829     Tab ^I ESC [ Z ^I ESC [ Z
1830     BackSpace ^H ^? ^? ^?
1831     Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
1832     Insert ESC [ 2 ~ I<paste> ESC [ 2 ^ ESC [ 2 @
1833     Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1834     Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
1835     Prior ESC [ 5 ~ I<scroll-up> ESC [ 5 ^ ESC [ 5 @
1836     Next ESC [ 6 ~ I<scroll-down> ESC [ 6 ^ ESC [ 6 @
1837     Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
1838     End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
1839     Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1840     F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
1841     F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
1842     F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
1843     F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
1844     F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
1845     F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
1846     F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
1847     F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
1848     F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
1849     F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
1850     F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
1851     F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
1852     F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
1853     F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
1854     F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
1855     F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
1856     F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
1857     F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
1858     F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
1859     F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
1860     B<Application>
1861     Up ESC [ A ESC [ a ESC O a ESC O A
1862     Down ESC [ B ESC [ b ESC O b ESC O B
1863     Right ESC [ C ESC [ c ESC O c ESC O C
1864     Left ESC [ D ESC [ d ESC O d ESC O D
1865     KP_Enter ^M ESC O M
1866     KP_F1 ESC O P ESC O P
1867     KP_F2 ESC O Q ESC O Q
1868     KP_F3 ESC O R ESC O R
1869     KP_F4 ESC O S ESC O S
1870     XK_KP_Multiply * ESC O j
1871     XK_KP_Add + ESC O k
1872     XK_KP_Separator , ESC O l
1873     XK_KP_Subtract - ESC O m
1874     XK_KP_Decimal . ESC O n
1875     XK_KP_Divide / ESC O o
1876     XK_KP_0 0 ESC O p
1877     XK_KP_1 1 ESC O q
1878     XK_KP_2 2 ESC O r
1879     XK_KP_3 3 ESC O s
1880     XK_KP_4 4 ESC O t
1881     XK_KP_5 5 ESC O u
1882     XK_KP_6 6 ESC O v
1883     XK_KP_7 7 ESC O w
1884     XK_KP_8 8 ESC O x
1885     XK_KP_9 9 ESC O y
1886    
1887     =end table
1888 root 1.2
1889 root 1.6 =head1 CONFIGURE OPTIONS
1890    
1891     General hint: if you get compile errors, then likely your configuration
1892 root 1.61 hasn't been tested well. Either try with C<--enable-everything> or use
1893     the F<./reconf> script as a base for experiments. F<./reconf> is used by
1894     myself, so it should generally be a working config. Of course, you should
1895     always report when a combination doesn't work, so it can be fixed. Marc
1896     Lehmann <rxvt@schmorp.de>.
1897    
1898     All
1899 root 1.6
1900     =over 4
1901    
1902     =item --enable-everything
1903    
1904 root 1.61 Add (or remove) support for all non-multichoice options listed in "./configure
1905     --help".
1906    
1907     You can specify this and then disable options you do not like by
1908     I<following> this with the appropriate C<--disable-...> arguments,
1909     or you can start with a minimal configuration by specifying
1910     C<--disable-everything> and than adding just the C<--enable-...> arguments
1911     you want.
1912 root 1.6
1913 root 1.61 =item --enable-xft (default: enabled)
1914 root 1.6
1915     Add support for Xft (anti-aliases, among others) fonts. Xft fonts are
1916     slower and require lots of memory, but as long as you don't use them, you
1917     don't pay for them.
1918    
1919 root 1.61 =item --enable-font-styles (default: on)
1920 root 1.23
1921     Add support for B<bold>, I<italic> and B<< I<bold italic> >> font
1922     styles. The fonts can be set manually or automatically.
1923    
1924 root 1.61 =item --with-codesets=NAME,... (default: all)
1925 root 1.6
1926 root 1.53 Compile in support for additional codeset (encoding) groups (C<eu>, C<vn>
1927     are always compiled in, which includes most 8-bit character sets). These
1928     codeset tables are used for driving X11 core fonts, they are not required
1929     for Xft fonts, although having them compiled in lets rxvt-unicode choose
1930     replacement fonts more intelligently. Compiling them in will make your
1931     binary bigger (all of together cost about 700kB), but it doesn't increase
1932     memory usage unless you use a font requiring one of these encodings.
1933 root 1.6
1934     =begin table
1935    
1936 root 1.12 all all available codeset groups
1937 root 1.27 zh common chinese encodings
1938     zh_ext rarely used but very big chinese encodigs
1939 root 1.6 jp common japanese encodings
1940     jp_ext rarely used but big japanese encodings
1941     kr korean encodings
1942    
1943     =end table
1944    
1945 root 1.61 =item --enable-xim (default: on)
1946 root 1.6
1947     Add support for XIM (X Input Method) protocol. This allows using
1948     alternative input methods (e.g. kinput2) and will also correctly
1949     set up the input for people using dead keys or compose keys.
1950    
1951 root 1.61 =item --enable-unicode3 (default: off)
1952 root 1.6
1953     Enable direct support for displaying unicode codepoints above
1954     65535 (the basic multilingual page). This increases storage
1955     requirements per character from 2 to 4 bytes. X11 fonts do not yet
1956     support these extra characters, but Xft does.
1957    
1958     Please note that rxvt-unicode can store unicode code points >65535
1959     even without this flag, but the number of such characters is
1960     limited to a view thousand (shared with combining characters,
1961     see next switch), and right now rxvt-unicode cannot display them
1962     (input/output and cut&paste still work, though).
1963    
1964 root 1.61 =item --enable-combining (default: on)
1965 root 1.6
1966     Enable automatic composition of combining characters into
1967     composite characters. This is required for proper viewing of text
1968     where accents are encoded as seperate unicode characters. This is
1969     done by using precomposited characters when available or creating
1970     new pseudo-characters when no precomposed form exists.
1971    
1972 root 1.46 Without --enable-unicode3, the number of additional precomposed characters
1973     is rather limited (2048, if this is full, rxvt-unicode will use the
1974 root 1.6 private use area, extending the number of combinations to 8448). With
1975 root 1.46 --enable-unicode3, no practical limit exists.
1976    
1977     This option will also enable storage (but not display) of characters
1978     beyond plane 0 (>65535) when --enable-unicode3 was not specified.
1979 root 1.6
1980     The combining table also contains entries for arabic presentation forms,
1981 root 1.46 but these are not currently used. Bug me if you want these to be used (and
1982     tell me how these are to be used...).
1983 root 1.6
1984 root 1.61 =item --enable-fallback(=CLASS) (default: Rxvt)
1985 root 1.6
1986 root 1.61 When reading resource settings, also read settings for class CLASS. To disable resource fallback use --disable-fallback.
1987 root 1.6
1988 root 1.61 =item --with-res-name=NAME (default: urxvt)
1989 root 1.6
1990 root 1.61 Use the given name as default application name when
1991 root 1.6 reading resources. Specify --with-res-name=rxvt to replace rxvt.
1992    
1993 root 1.61 =item --with-res-class=CLASS /default: URxvt)
1994 root 1.6
1995 root 1.61 Use the given class as default application class
1996     when reading resources. Specify --with-res-class=Rxvt to replace
1997 root 1.6 rxvt.
1998    
1999 root 1.61 =item --enable-utmp (default: on)
2000 root 1.6
2001     Write user and tty to utmp file (used by programs like F<w>) at
2002     start of rxvt execution and delete information when rxvt exits.
2003    
2004 root 1.61 =item --enable-wtmp (default: on)
2005 root 1.6
2006     Write user and tty to wtmp file (used by programs like F<last>) at
2007     start of rxvt execution and write logout when rxvt exits. This
2008     option requires --enable-utmp to also be specified.
2009    
2010 root 1.61 =item --enable-lastlog (default: on)
2011 root 1.6
2012     Write user and tty to lastlog file (used by programs like
2013     F<lastlogin>) at start of rxvt execution. This option requires
2014     --enable-utmp to also be specified.
2015    
2016 root 1.72 =item --enable-xpm-background (default: on)
2017 root 1.6
2018     Add support for XPM background pixmaps.
2019    
2020 root 1.72 =item --enable-transparency (default: on)
2021 root 1.6
2022     Add support for inheriting parent backgrounds thus giving a fake
2023     transparency to the term.
2024    
2025 root 1.61 =item --enable-fading (default: on)
2026 root 1.6
2027 root 1.61 Add support for fading the text when focus is lost (requires C<--enable-transparency>).
2028 root 1.6
2029 root 1.61 =item --enable-tinting (default: on)
2030 root 1.6
2031 root 1.61 Add support for tinting of transparent backgrounds (requires C<--enable-transparency>).
2032 root 1.6
2033 root 1.61 =item --enable-rxvt-scroll (default: on)
2034 root 1.6
2035     Add support for the original rxvt scrollbar.
2036    
2037 root 1.61 =item --enable-next-scroll (default: on)
2038 root 1.6
2039     Add support for a NeXT-like scrollbar.
2040    
2041 root 1.61 =item --enable-xterm-scroll (default: on)
2042 root 1.6
2043     Add support for an Xterm-like scrollbar.
2044    
2045 root 1.61 =item --enable-plain-scroll (default: on)
2046 root 1.6
2047     Add support for a very unobtrusive, plain-looking scrollbar that
2048     is the favourite of the rxvt-unicode author, having used it for
2049     many years.
2050    
2051 root 1.61 =item --enable-half-shadow (default: off)
2052 root 1.6
2053     Make shadows on the scrollbar only half the normal width & height.
2054     only applicable to rxvt scrollbars.
2055    
2056 root 1.61 =item --enable-ttygid (default: off)
2057 root 1.6
2058     Change tty device setting to group "tty" - only use this if
2059     your system uses this type of security.
2060    
2061     =item --disable-backspace-key
2062    
2063 root 1.61 Removes any handling of the backspace key by us - let the X server do it.
2064 root 1.6
2065     =item --disable-delete-key
2066    
2067 root 1.61 Removes any handling of the delete key by us - let the X server
2068 root 1.6 do it.
2069    
2070     =item --disable-resources
2071    
2072 root 1.61 Removes any support for resource checking.
2073 root 1.6
2074     =item --disable-swapscreen
2075    
2076 root 1.61 Remove support for secondary/swap screen.
2077 root 1.6
2078 root 1.61 =item --enable-frills (default: on)
2079 root 1.6
2080     Add support for many small features that are not essential but nice to
2081     have. Normally you want this, but for very small binaries you may want to
2082     disable this.
2083    
2084 root 1.33 A non-exhaustive list of features enabled by C<--enable-frills> (possibly
2085     in combination with other switches) is:
2086    
2087     MWM-hints
2088 root 1.50 EWMH-hints (pid, utf8 names) and protocols (ping)
2089 root 1.70 seperate underline colour (-underlineColor)
2090     settable border widths and borderless switch (-w, -b, -bl)
2091     settable extra linespacing /-lsp)
2092 root 1.33 iso-14755-2 and -3, and visual feedback
2093     backindex and forwardindex escape sequence
2094 root 1.51 window op and some xterm/OSC escape sequences
2095 root 1.70 tripleclickwords (-tcw)
2096     settable insecure mode (-insecure)
2097 root 1.44 keysym remapping support
2098 root 1.70 cursor blinking and underline cursor (-cb, -uc)
2099     XEmbed support (-embed)
2100     user-pty (-pty-fd)
2101     hold on exit (-hold)
2102     skip builtin block graphics (-sbg)
2103     sgr modes 90..97 and 100..107
2104 root 1.33
2105 root 1.61 =item --enable-iso14755 (default: on)
2106 root 1.12
2107     Enable extended ISO 14755 support (see @@RXVT_NAME@@(1), or
2108     F<doc/rxvt.1.txt>). Basic support (section 5.1) is enabled by
2109     C<--enable-frills>, while support for 5.2, 5.3 and 5.4 is enabled with
2110     this switch.
2111    
2112 root 1.61 =item --enable-keepscrolling (default: on)
2113 root 1.6
2114     Add support for continual scrolling of the display when you hold
2115     the mouse button down on a scrollbar arrow.
2116    
2117 root 1.61 =item --enable-mousewheel (default: on)
2118 root 1.6
2119     Add support for scrolling via mouse wheel or buttons 4 & 5.
2120    
2121 root 1.61 =item --enable-slipwheeling (default: on)
2122 root 1.6
2123     Add support for continual scrolling (using the mouse wheel as an
2124     accelerator) while the control key is held down. This option
2125     requires --enable-mousewheel to also be specified.
2126    
2127     =item --disable-new-selection
2128    
2129     Remove support for mouse selection style like that of xterm.
2130    
2131 root 1.61 =item --enable-dmalloc (default: off)
2132 root 1.6
2133     Use Gray Watson's malloc - which is good for debugging See
2134     http://www.letters.com/dmalloc/ for details If you use either this or the
2135     next option, you may need to edit src/Makefile after compiling to point
2136     DINCLUDE and DLIB to the right places.
2137    
2138     You can only use either this option and the following (should
2139     you use either) .
2140    
2141 root 1.61 =item --enable-dlmalloc (default: off)
2142 root 1.6
2143     Use Doug Lea's malloc - which is good for a production version
2144     See L<http://g.oswego.edu/dl/html/malloc.html> for details.
2145    
2146 root 1.61 =item --enable-smart-resize (default: on)
2147 root 1.6
2148 root 1.62 Add smart growth/shrink behaviour when changing font size via hot
2149     keys. This should keep the window corner which is closest to a corner of
2150     the screen in a fixed position.
2151 root 1.6
2152 root 1.61 =item --enable-pointer-blank (default: on)
2153 root 1.6
2154     Add support to have the pointer disappear when typing or inactive.
2155    
2156 root 1.67 =item --enable-perl (default: off)
2157    
2158 root 1.68 Enable an embedded perl interpreter. See the B<@@RXVT_NAME@@perl(3)>
2159     manpage (F<doc/rxvtperl.txt>) for more info on this feature, or the files
2160 root 1.71 in F<src/perl-ext/> for the extensions that are installed by default. The
2161     perl interpreter that is used can be specified via the C<PERL> environment
2162     variable when running configure.
2163 root 1.67
2164 root 1.61 =item --with-name=NAME (default: urxvt)
2165 root 1.6
2166 root 1.61 Set the basename for the installed binaries, resulting
2167 root 1.33 in C<urxvt>, C<urxvtd> etc.). Specify C<--with-name=rxvt> to replace with
2168     C<rxvt>.
2169 root 1.6
2170 root 1.61 =item --with-term=NAME (default: rxvt-unicode)
2171 root 1.6
2172 root 1.61 Change the environmental variable for the terminal to NAME.
2173 root 1.6
2174     =item --with-terminfo=PATH
2175    
2176     Change the environmental variable for the path to the terminfo tree to
2177     PATH.
2178    
2179     =item --with-x
2180    
2181     Use the X Window System (pretty much default, eh?).
2182    
2183     =item --with-xpm-includes=DIR
2184    
2185     Look for the XPM includes in DIR.
2186    
2187     =item --with-xpm-library=DIR
2188    
2189     Look for the XPM library in DIR.
2190    
2191     =item --with-xpm
2192    
2193     Not needed - define via --enable-xpm-background.
2194    
2195     =back
2196    
2197 root 1.2 =head1 AUTHORS
2198    
2199 root 1.5 Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
2200 root 1.2 reworked it from the original Rxvt documentation, which was done by Geoff
2201     Wing <gcw@pobox.com>, who in turn used the XTerm documentation and other
2202     sources.
2203 root 1.1