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