ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.pod
Revision: 1.107
Committed: Tue Jan 31 21:04:14 2006 UTC (18 years, 5 months ago) by root
Branch: MAIN
Changes since 1.106: +3 -2 lines
Log Message:
*** empty log message ***

File Contents

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