1urxvt(7)                         RXVT-UNICODE                         urxvt(7)
2
3
4

NAME

6       RXVT REFERENCE - FAQ, command sequences and other background
7       information
8

SYNOPSIS

10          # set a new font set
11          printf '\33]50;%s\007' 9x15,xft:Kochi" Mincho"
12
13          # change the locale and tell rxvt-unicode about it
14          export LC_CTYPE=ja_JP.EUC-JP; printf "\33]701;$LC_CTYPE\007"
15
16          # set window title
17          printf '\33]2;%s\007' "new window title"
18

DESCRIPTION

20       This document contains the FAQ, the RXVT TECHNICAL REFERENCE
21       documenting all escape sequences, and other background information.
22
23       The newest version of this document is also available on the World Wide
24       Web at
25       http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod
26       <http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod>.
27
28       The main manual page for urxvt itself is available at
29       http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.1.pod
30       <http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.1.pod>.
31

RXVT-UNICODE/URXVT FREQUENTLY ASKED QUESTIONS

33   Meta, Features & Commandline Issues
34       My question isn't answered here, can I ask a human?
35
36       Before sending me mail, you could go to IRC: "irc.freenode.net",
37       channel "#rxvt-unicode" has some rxvt-unicode enthusiasts that might be
38       interested in learning about new and exciting problems (but not FAQs
39       :).
40
41       I use Gentoo, and I have a problem...
42
43       There are three big problems with Gentoo Linux: first of all, most if
44       not all Gentoo systems are completely broken (missing or mismatched
45       header files, broken compiler etc. are just the tip of the iceberg);
46       secondly, the Gentoo maintainer thinks it is a good idea to add broken
47       patches to the code; and lastly, it should be called Gentoo GNU/Linux.
48
49       For these reasons, it is impossible to support rxvt-unicode on Gentoo.
50       Problems appearing on Gentoo systems will usually simply be ignored
51       unless they can be reproduced on non-Gentoo systems.
52
53       Does it support tabs, can I have a tabbed rxvt-unicode?
54
55       Beginning with version 7.3, there is a perl extension that implements a
56       simple tabbed terminal. It is installed by default, so any of these
57       should give you tabs:
58
59          urxvt -pe tabbed
60
61          URxvt.perl-ext-common: default,tabbed
62
63       It will also work fine with tabbing functionality of many window
64       managers or similar tabbing programs, and its embedding-features allow
65       it to be embedded into other programs, as witnessed by doc/rxvt-tabbed
66       or the upcoming "Gtk2::URxvt" perl module, which features a tabbed
67       urxvt (murxvt) terminal as an example embedding application.
68
69       How do I know which rxvt-unicode version I'm using?
70
71       The version number is displayed with the usage (-h). Also the escape
72       sequence "ESC [ 8 n" sets the window title to the version number. When
73       using the urxvtc client, the version displayed is that of the daemon.
74
75       Rxvt-unicode uses gobs of memory, how can I reduce that?
76
77       Rxvt-unicode tries to obey the rule of not charging you for something
78       you don't use. One thing you should try is to configure out all
79       settings that you don't need, for example, Xft support is a resource
80       hog by design, when used. Compiling it out ensures that no Xft font
81       will be loaded accidentally when rxvt-unicode tries to find a font for
82       your characters.
83
84       Also, many people (me included) like large windows and even larger
85       scrollback buffers: Without "--enable-unicode3", rxvt-unicode will use
86       6 bytes per screen cell. For a 160x?? window this amounts to almost a
87       kilobyte per line. A scrollback buffer of 10000 lines will then (if
88       full) use 10 Megabytes of memory. With "--enable-unicode3" it gets
89       worse, as rxvt-unicode then uses 8 bytes per screen cell.
90
91       How can I start urxvtd in a race-free way?
92
93       Try "urxvtd -f -o", which tells urxvtd to open the display, create the
94       listening socket and then fork.
95
96       How can I start urxvtd automatically when I run urxvtc?
97
98       If you want to start urxvtd automatically whenever you run urxvtc and
99       the daemon isn't running yet, use this script:
100
101          #!/bin/sh
102          urxvtc "$@"
103          if [ $? -eq 2 ]; then
104             urxvtd -q -o -f
105             urxvtc "$@"
106          fi
107
108       This tries to create a new terminal, and if fails with exit status 2,
109       meaning it couldn't connect to the daemon, it will start the daemon and
110       re-run the command. Subsequent invocations of the script will re-use
111       the existing daemon.
112
113       How do I distinguish whether I'm running rxvt-unicode or a regular
114       xterm? I need this to decide about setting colours etc.
115
116       The original rxvt and rxvt-unicode always export the variable
117       "COLORTERM", so you can check and see if that is set. Note that several
118       programs, JED, slrn, Midnight Commander automatically check this
119       variable to decide whether or not to use colour.
120
121       How do I set the correct, full IP address for the DISPLAY variable?
122
123       If you've compiled rxvt-unicode with DISPLAY_IS_IP and have enabled
124       insecure mode then it is possible to use the following shell script
125       snippets to correctly set the display. If your version of rxvt-unicode
126       wasn't also compiled with ESCZ_ANSWER (as assumed in these snippets)
127       then the COLORTERM variable can be used to distinguish rxvt-unicode
128       from a regular xterm.
129
130       Courtesy of Chuck Blake <cblake@BBN.COM> with the following shell
131       script snippets:
132
133          # Bourne/Korn/POSIX family of shells:
134          [ ${TERM:-foo} = foo ] && TERM=xterm # assume an xterm if we don't know
135          if [ ${TERM:-foo} = xterm ]; then
136             stty -icanon -echo min 0 time 15 # see if enhanced rxvt or not
137             echo -n '^[Z'
138             read term_id
139             stty icanon echo
140             if [ ""${term_id} = '^[[?1;2C' -a ${DISPLAY:-foo} = foo ]; then
141                echo -n '^[[7n'        # query the rxvt we are in for the DISPLAY string
142                read DISPLAY           # set it in our local shell
143             fi
144          fi
145
146       How do I compile the manual pages on my own?
147
148       You need to have a recent version of perl installed as /usr/bin/perl,
149       one that comes with pod2man, pod2text and pod2xhtml (from Pod::Xhtml).
150       Then go to the doc subdirectory and enter "make alldoc".
151
152       Isn't rxvt-unicode supposed to be small? Don't all those features
153       bloat?
154
155       I often get asked about this, and I think, no, they didn't cause extra
156       bloat. If you compare a minimal rxvt and a minimal urxvt, you can see
157       that the urxvt binary is larger (due to some encoding tables always
158       being compiled in), but it actually uses less memory (RSS) after
159       startup. Even with "--disable-everything", this comparison is a bit
160       unfair, as many features unique to urxvt (locale, encoding conversion,
161       iso14755 etc.) are already in use in this mode.
162
163           text    data     bss     drs     rss filename
164          98398    1664      24   15695    1824 rxvt --disable-everything
165         188985    9048   66616   18222    1788 urxvt --disable-everything
166
167       When you "--enable-everything" (which is unfair, as this involves xft
168       and full locale/XIM support which are quite bloaty inside libX11 and my
169       libc), the two diverge, but not unreasonably so.
170
171           text    data     bss     drs     rss filename
172         163431    2152      24   20123    2060 rxvt --enable-everything
173        1035683   49680   66648   29096    3680 urxvt --enable-everything
174
175       The very large size of the text section is explained by the east-asian
176       encoding tables, which, if unused, take up disk space but nothing else
177       and can be compiled out unless you rely on X11 core fonts that use
178       those encodings. The BSS size comes from the 64k emergency buffer that
179       my c++ compiler allocates (but of course doesn't use unless you are out
180       of memory). Also, using an xft font instead of a core font immediately
181       adds a few megabytes of RSS. Xft indeed is responsible for a lot of RSS
182       even when not used.
183
184       Of course, due to every character using two or four bytes instead of
185       one, a large scrollback buffer will ultimately make rxvt-unicode use
186       more memory.
187
188       Compared to e.g. Eterm (5112k), aterm (3132k) and xterm (4680k), this
189       still fares rather well. And compared to some monsters like gnome-
190       terminal (21152k + extra 4204k in separate processes) or konsole
191       (22200k + extra 43180k in daemons that stay around after exit, plus
192       half a minute of startup time, including the hundreds of warnings it
193       spits out), it fares extremely well *g*.
194
195       Why C++, isn't that unportable/bloated/uncool?
196
197       Is this a question? :) It comes up very often. The simple answer is: I
198       had to write it, and C++ allowed me to write and maintain it in a
199       fraction of the time and effort (which is a scarce resource for me).
200       Put even shorter: It simply wouldn't exist without C++.
201
202       My personal stance on this is that C++ is less portable than C, but in
203       the case of rxvt-unicode this hardly matters, as its portability limits
204       are defined by things like X11, pseudo terminals, locale support and
205       unix domain sockets, which are all less portable than C++ itself.
206
207       Regarding the bloat, see the above question: It's easy to write
208       programs in C that use gobs of memory, and certainly possible to write
209       programs in C++ that don't. C++ also often comes with large libraries,
210       but this is not necessarily the case with GCC. Here is what rxvt links
211       against on my system with a minimal config:
212
213          libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00002aaaaabc3000)
214          libc.so.6 => /lib/libc.so.6 (0x00002aaaaadde000)
215          libdl.so.2 => /lib/libdl.so.2 (0x00002aaaab01d000)
216          /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)
217
218       And here is rxvt-unicode:
219
220          libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00002aaaaabc3000)
221          libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002aaaaada2000)
222          libc.so.6 => /lib/libc.so.6 (0x00002aaaaaeb0000)
223          libdl.so.2 => /lib/libdl.so.2 (0x00002aaaab0ee000)
224          /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)
225
226       No large bloated libraries (of course, none were linked in statically),
227       except maybe libX11 :)
228
229   Rendering, Font & Look and Feel Issues
230       I can't get transparency working, what am I doing wrong?
231
232       First of all, transparency isn't officially supported in rxvt-unicode,
233       so you are mostly on your own. Do not bug the author about it (but you
234       may bug everybody else). Also, if you can't get it working consider it
235       a rite of passage: ... and you failed.
236
237       Here are four ways to get transparency. Do read the manpage and option
238       descriptions for the programs mentioned and rxvt-unicode. Really, do
239       it!
240
241       1. Use transparent mode:
242
243          Esetroot wallpaper.jpg
244          urxvt -tr -tint red -sh 40
245
246       That works. If you think it doesn't, you lack transparency and tinting
247       support, or you are unable to read.  This method requires that the
248       background-setting program sets the _XROOTPMAP_ID or ESETROOT_PMAP_ID
249       property. Compatible programs are Esetroot, hsetroot and feh.
250
251       2. Use a simple pixmap and emulate pseudo-transparency. This enables
252       you to use effects other than tinting and shading: Just
253       shade/tint/whatever your picture with gimp or any other tool:
254
255          convert wallpaper.jpg -blur 20x20 -modulate 30 background.jpg
256          urxvt -pixmap "background.jpg;:root"
257
258       That works. If you think it doesn't, you lack libAfterImage or GDK-
259       PixBuf support, or you are unable to read.
260
261       3. Use an ARGB visual:
262
263          urxvt -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc
264
265       This requires XFT support, and the support of your X-server. If that
266       doesn't work for you, blame Xorg and Keith Packard. ARGB visuals aren't
267       there yet, no matter what they claim. Rxvt-Unicode contains the
268       necessary bugfixes and workarounds for Xft and Xlib to make it work,
269       but that doesn't mean that your WM has the required kludges in place.
270
271       4. Use xcompmgr and let it do the job:
272
273         xprop -frame -f _NET_WM_WINDOW_OPACITY 32c \
274               -set _NET_WM_WINDOW_OPACITY 0xc0000000
275
276       Then click on a window you want to make transparent. Replace 0xc0000000
277       by other values to change the degree of opacity. If it doesn't work and
278       your server crashes, you got to keep the pieces.
279
280       Why does rxvt-unicode sometimes leave pixel droppings?
281
282       Most fonts were not designed for terminal use, which means that
283       character size varies a lot. A font that is otherwise fine for terminal
284       use might contain some characters that are simply too wide. Rxvt-
285       unicode will avoid these characters. For characters that are just "a
286       bit" too wide a special "careful" rendering mode is used that redraws
287       adjacent characters.
288
289       All of this requires that fonts do not lie about character sizes,
290       however: Xft fonts often draw glyphs larger than their acclaimed
291       bounding box, and rxvt-unicode has no way of detecting this (the
292       correct way is to ask for the character bounding box, which
293       unfortunately is wrong in these cases).
294
295       It's not clear (to me at least), whether this is a bug in Xft,
296       freetype, or the respective font. If you encounter this problem you
297       might try using the "-lsp" option to give the font more height. If that
298       doesn't work, you might be forced to use a different font.
299
300       All of this is not a problem when using X11 core fonts, as their
301       bounding box data is correct.
302
303       How can I keep rxvt-unicode from using reverse video so much?
304
305       First of all, make sure you are running with the right terminal
306       settings ("TERM=rxvt-unicode"), which will get rid of most of these
307       effects. Then make sure you have specified colours for italic and bold,
308       as otherwise rxvt-unicode might use reverse video to simulate the
309       effect:
310
311          URxvt.colorBD:  white
312          URxvt.colorIT:  green
313
314       Some programs assume totally weird colours (red instead of blue), how
315       can I fix that?
316
317       For some unexplainable reason, some rare programs assume a very weird
318       colour palette when confronted with a terminal with more than the
319       standard 8 colours (rxvt-unicode supports 88). The right fix is, of
320       course, to fix these programs not to assume non-ISO colours without
321       very good reasons.
322
323       In the meantime, you can either edit your "rxvt-unicode" terminfo
324       definition to only claim 8 colour support or use "TERM=rxvt", which
325       will fix colours but keep you from using other rxvt-unicode features.
326
327       Can I switch the fonts at runtime?
328
329       Yes, using an escape sequence. Try something like this, which has the
330       same effect as using the "-fn" switch, and takes effect immediately:
331
332          printf '\33]50;%s\007' "9x15bold,xft:Kochi Gothic"
333
334       This is useful if you e.g. work primarily with japanese (and prefer a
335       japanese font), but you have to switch to chinese temporarily, where
336       japanese fonts would only be in your way.
337
338       You can think of this as a kind of manual ISO-2022 switching.
339
340       Why do italic characters look as if clipped?
341
342       Many fonts have difficulties with italic characters and hinting. For
343       example, the otherwise very nicely hinted font "xft:Bitstream Vera Sans
344       Mono" completely fails in its italic face. A workaround might be to
345       enable freetype autohinting, i.e. like this:
346
347          URxvt.italicFont:        xft:Bitstream Vera Sans Mono:italic:autohint=true
348          URxvt.boldItalicFont:    xft:Bitstream Vera Sans Mono:bold:italic:autohint=true
349
350       Can I speed up Xft rendering somehow?
351
352       Yes, the most obvious way to speed it up is to avoid Xft entirely, as
353       it is simply slow. If you still want Xft fonts you might try to disable
354       antialiasing (by appending ":antialias=false"), which saves lots of
355       memory and also speeds up rendering considerably.
356
357       Rxvt-unicode doesn't seem to anti-alias its fonts, what is wrong?
358
359       Rxvt-unicode will use whatever you specify as a font. If it needs to
360       fall back to its default font search list it will prefer X11 core
361       fonts, because they are small and fast, and then use Xft fonts. It has
362       antialiasing disabled for most of them, because the author thinks they
363       look best that way.
364
365       If you want antialiasing, you have to specify the fonts manually.
366
367       What's with this bold/blink stuff?
368
369       If no bold colour is set via "colorBD:", bold will invert text using
370       the standard foreground colour.
371
372       For the standard background colour, blinking will actually make the
373       text blink when compiled with "--enable-text-blink". Without
374       "--enable-text-blink", the blink attribute will be ignored.
375
376       On ANSI colours, bold/blink attributes are used to set high-intensity
377       foreground/background colours.
378
379       color0-7 are the low-intensity colours.
380
381       color8-15 are the corresponding high-intensity colours.
382
383       I don't like the screen colours.  How do I change them?
384
385       You can change the screen colours at run-time using ~/.Xdefaults
386       resources (or as long-options).
387
388       Here are values that are supposed to resemble a VGA screen, including
389       the murky brown that passes for low-intensity yellow:
390
391          URxvt.color0:   #000000
392          URxvt.color1:   #A80000
393          URxvt.color2:   #00A800
394          URxvt.color3:   #A8A800
395          URxvt.color4:   #0000A8
396          URxvt.color5:   #A800A8
397          URxvt.color6:   #00A8A8
398          URxvt.color7:   #A8A8A8
399
400          URxvt.color8:   #000054
401          URxvt.color9:   #FF0054
402          URxvt.color10:  #00FF54
403          URxvt.color11:  #FFFF54
404          URxvt.color12:  #0000FF
405          URxvt.color13:  #FF00FF
406          URxvt.color14:  #00FFFF
407          URxvt.color15:  #FFFFFF
408
409       And here is a more complete set of non-standard colours.
410
411          URxvt.cursorColor:  #dc74d1
412          URxvt.pointerColor: #dc74d1
413          URxvt.background:   #0e0e0e
414          URxvt.foreground:   #4ad5e1
415          URxvt.color0:       #000000
416          URxvt.color8:       #8b8f93
417          URxvt.color1:       #dc74d1
418          URxvt.color9:       #dc74d1
419          URxvt.color2:       #0eb8c7
420          URxvt.color10:      #0eb8c7
421          URxvt.color3:       #dfe37e
422          URxvt.color11:      #dfe37e
423          URxvt.color5:       #9e88f0
424          URxvt.color13:      #9e88f0
425          URxvt.color6:       #73f7ff
426          URxvt.color14:      #73f7ff
427          URxvt.color7:       #e1dddd
428          URxvt.color15:      #e1dddd
429
430       They have been described (not by me) as "pretty girly".
431
432       Why do some characters look so much different than others?
433
434       See next entry.
435
436       How does rxvt-unicode choose fonts?
437
438       Most fonts do not contain the full range of Unicode, which is fine.
439       Chances are that the font you (or the admin/package maintainer of your
440       system/os) have specified does not cover all the characters you want to
441       display.
442
443       rxvt-unicode makes a best-effort try at finding a replacement font.
444       Often the result is fine, but sometimes the chosen font looks
445       bad/ugly/wrong. Some fonts have totally strange characters that don't
446       resemble the correct glyph at all, and rxvt-unicode lacks the
447       artificial intelligence to detect that a specific glyph is wrong: it
448       has to believe the font that the characters it claims to contain indeed
449       look correct.
450
451       In that case, select a font of your taste and add it to the font list,
452       e.g.:
453
454          urxvt -fn basefont,font2,font3...
455
456       When rxvt-unicode sees a character, it will first look at the base
457       font. If the base font does not contain the character, it will go to
458       the next font, and so on. Specifying your own fonts will also speed up
459       this search and use less resources within rxvt-unicode and the
460       X-server.
461
462       The only limitation is that none of the fonts may be larger than the
463       base font, as the base font defines the terminal character cell size,
464       which must be the same due to the way terminals work.
465
466       Why do some chinese characters look so different than others?
467
468       This is because there is a difference between script and language --
469       rxvt-unicode does not know which language the text that is output is,
470       as it only knows the unicode character codes. If rxvt-unicode first
471       sees a japanese/chinese character, it might choose a japanese font for
472       display. Subsequent japanese characters will use that font. Now, many
473       chinese characters aren't represented in japanese fonts, so when the
474       first non-japanese character comes up, rxvt-unicode will look for a
475       chinese font -- unfortunately at this point, it will still use the
476       japanese font for chinese characters that are also in the japanese
477       font.
478
479       The workaround is easy: just tag a chinese font at the end of your font
480       list (see the previous question). The key is to view the font list as a
481       preference list: If you expect more japanese, list a japanese font
482       first. If you expect more chinese, put a chinese font first.
483
484       In the future it might be possible to switch language preferences at
485       runtime (the internal data structure has no problem with using
486       different fonts for the same character at the same time, but no
487       interface for this has been designed yet).
488
489       Until then, you might get away with switching fonts at runtime (see
490       "Can I switch the fonts at runtime?" later in this document).
491
492       How can I make mplayer display video correctly?
493
494       We are working on it, in the meantime, as a workaround, use something
495       like:
496
497          urxvt -b 600 -geometry 20x1 -e sh -c 'mplayer -wid $WINDOWID file...'
498
499   Keyboard, Mouse & User Interaction
500       The new selection selects pieces that are too big, how can I select
501       single words?
502
503       If you want to select e.g. alphanumeric words, you can use the
504       following setting:
505
506          URxvt.selection.pattern-0: ([[:word:]]+)
507
508       If you click more than twice, the selection will be extended more and
509       more.
510
511       To get a selection that is very similar to the old code, try this
512       pattern:
513
514          URxvt.selection.pattern-0: ([^"&'()*,;<=>?@[\\\\]^`{|})]+)
515
516       Please also note that the LeftClick Shift-LeftClick combination also
517       selects words like the old code.
518
519       I don't like the new selection/popups/hotkeys/perl, how do I
520       change/disable it?
521
522       You can disable the perl extension completely by setting the perl-ext-
523       common resource to the empty string, which also keeps rxvt-unicode from
524       initialising perl, saving memory.
525
526       If you only want to disable specific features, you first have to
527       identify which perl extension is responsible. For this, read the
528       section PREPACKAGED EXTENSIONS in the urxvtperl(3) manpage. For
529       example, to disable the selection-popup and option-popup, specify this
530       perl-ext-common resource:
531
532          URxvt.perl-ext-common: default,-selection-popup,-option-popup
533
534       This will keep the default extensions, but disable the two popup
535       extensions. Some extensions can also be configured, for example,
536       scrollback search mode is triggered by M-s. You can move it to any
537       other combination either by setting the searchable-scrollback resource:
538
539          URxvt.searchable-scrollback: CM-s
540
541       The cursor moves when selecting text in the current input line, how do
542       I switch this off?
543
544       See next entry.
545
546       During rlogin/ssh/telnet/etc. sessions, clicking near the cursor
547       outputs strange escape sequences, how do I fix this?
548
549       These are caused by the "readline" perl extension. Under normal
550       circumstances, it will move your cursor around when you click into the
551       line that contains it. It tries hard not to do this at the wrong
552       moment, but when running a program that doesn't parse cursor movements
553       or in some cases during rlogin sessions, it fails to detect this
554       properly.
555
556       You can permanently switch this feature off by disabling the "readline"
557       extension:
558
559          URxvt.perl-ext-common: default,-readline
560
561       My numerical keypad acts weird and generates differing output?
562
563       Some Debian GNUL/Linux users seem to have this problem, although no
564       specific details were reported so far. It is possible that this is
565       caused by the wrong "TERM" setting, although the details of whether and
566       how this can happen are unknown, as "TERM=rxvt" should offer a
567       compatible keymap. See the answer to the previous question, and please
568       report if that helped.
569
570       My Compose (Multi_key) key is no longer working.
571
572       The most common causes for this are that either your locale is not set
573       correctly, or you specified a preeditStyle that is not supported by
574       your input method. For example, if you specified OverTheSpot and your
575       input method (e.g. the default input method handling Compose keys) does
576       not support this (for instance because it is not visual), then rxvt-
577       unicode will continue without an input method.
578
579       In this case either do not specify a preeditStyle or specify more than
580       one pre-edit style, such as OverTheSpot,Root,None.
581
582       If it still doesn't work, then maybe your input method doesn't support
583       compose sequences - to fall back to the built-in one, make sure you
584       don't specify an input method via "-im" or "XMODIFIERS".
585
586       I cannot type "Ctrl-Shift-2" to get an ASCII NUL character due to ISO
587       14755
588
589       Either try "Ctrl-2" alone (it often is mapped to ASCII NUL even on
590       international keyboards) or simply use ISO 14755 support to your
591       advantage, typing <Ctrl-Shift-0> to get a ASCII NUL. This works for
592       other codes, too, such as "Ctrl-Shift-1-d" to type the default telnet
593       escape character and so on.
594
595       Mouse cut/paste suddenly no longer works.
596
597       Make sure that mouse reporting is actually turned off since killing
598       some editors prematurely may leave it active. I've heard that tcsh may
599       use mouse reporting unless it is otherwise specified. A quick check is
600       to see if cut/paste works when the Alt or Shift keys are pressed.
601
602       What's with the strange Backspace/Delete key behaviour?
603
604       Assuming that the physical Backspace key corresponds to the Backspace
605       keysym (not likely for Linux ... see the following question) there are
606       two standard values that can be used for Backspace: "^H" and "^?".
607
608       Historically, either value is correct, but rxvt-unicode adopts the
609       debian policy of using "^?" when unsure, because it's the one and only
610       correct choice :).
611
612       It is possible to toggle between "^H" and "^?" with the DECBKM private
613       mode:
614
615          # use Backspace = ^H
616          $ stty erase ^H
617          $ echo -n "^[[?67h"
618
619          # use Backspace = ^?
620          $ stty erase ^?
621          $ echo -n "^[[?67l"
622
623       This helps satisfy some of the Backspace discrepancies that occur, but
624       if you use Backspace = "^H", make sure that the termcap/terminfo value
625       properly reflects that.
626
627       The Delete key is a another casualty of the ill-defined Backspace
628       problem.  To avoid confusion between the Backspace and Delete keys, the
629       Delete key has been assigned an escape sequence to match the vt100 for
630       Execute ("ESC [ 3 ~") and is in the supplied termcap/terminfo.
631
632       Some other Backspace problems:
633
634       some editors use termcap/terminfo, some editors (vim I'm told) expect
635       Backspace = ^H, GNU Emacs (and Emacs-like editors) use ^H for help.
636
637       Perhaps someday this will all be resolved in a consistent manner.
638
639       I don't like the key-bindings.  How do I change them?
640
641       There are some compile-time selections available via configure. Unless
642       you have run "configure" with the "--disable-resources" option you can
643       use the `keysym' resource to alter the keystrings associated with
644       keysyms.
645
646       Here's an example for a URxvt session started using "urxvt -name URxvt"
647
648          URxvt.keysym.Prior:         \033[5~
649          URxvt.keysym.Next:          \033[6~
650          URxvt.keysym.Home:          \033[7~
651          URxvt.keysym.End:           \033[8~
652          URxvt.keysym.Up:            \033[A
653          URxvt.keysym.Down:          \033[B
654          URxvt.keysym.Right:         \033[C
655          URxvt.keysym.Left:          \033[D
656
657       See some more examples in the documentation for the keysym resource.
658
659       I'm using keyboard model XXX that has extra Prior/Next/Insert keys. How
660       do I make use of them? For example, the Sun Keyboard type 4 has the
661       following map
662
663          KP_Insert == Insert
664          F22 == Print
665          F27 == Home
666          F29 == Prior
667          F33 == End
668          F35 == Next
669
670       Rather than have rxvt-unicode try to accommodate all the various
671       possible keyboard mappings, it is better to use `xmodmap' to remap the
672       keys as required for your particular machine.
673
674   Terminal Configuration
675       Can I see a typical configuration?
676
677       The default configuration tries to be xterm-like, which I don't like
678       that much, but it's least surprise to regular users.
679
680       As a rxvt or rxvt-unicode user, you are practically supposed to invest
681       time into customising your terminal. To get you started, here is the
682       author's .Xdefaults entries, with comments on what they do. It's
683       certainly not typical, but what's typical...
684
685          URxvt.cutchars: "()*,<>[]{}|'
686          URxvt.print-pipe: cat >/tmp/xxx
687
688       These are just for testing stuff.
689
690          URxvt.imLocale: ja_JP.UTF-8
691          URxvt.preeditType: OnTheSpot,None
692
693       This tells rxvt-unicode to use a special locale when communicating with
694       the X Input Method, and also tells it to only use the OnTheSpot pre-
695       edit type, which requires the "xim-onthespot" perl extension but
696       rewards me with correct-looking fonts.
697
698          URxvt.perl-lib: /root/lib/urxvt
699          URxvt.perl-ext-common: default,selection-autotransform,selection-pastebin,xim-onthespot,remote-clipboard
700          URxvt.selection.pattern-0: ( at .*? line \\d+)
701          URxvt.selection.pattern-1: ^(/[^:]+):\
702          URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/:e \\Q$1\\E\\x0d:$2\\x0d/
703          URxvt.selection-autotransform.1: s/^ at (.*?) line (\\d+)$/:e \\Q$1\\E\\x0d:$2\\x0d/
704
705       This is my perl configuration. The first two set the perl library
706       directory and also tells urxvt to use a large number of extensions. I
707       develop for myself mostly, so I actually use most of the extensions I
708       write.
709
710       The selection stuff mainly makes the selection perl-error-message aware
711       and tells it to convert perl error messages into vi-commands to load
712       the relevant file and go to the error line number.
713
714          URxvt.scrollstyle:      plain
715          URxvt.secondaryScroll:  true
716
717       As the documentation says: plain is the preferred scrollbar for the
718       author. The "secondaryScroll" configures urxvt to scroll in full-screen
719       apps, like screen, so lines scrolled out of screen end up in urxvt's
720       scrollback buffer.
721
722          URxvt.background:       #000000
723          URxvt.foreground:       gray90
724          URxvt.color7:           gray90
725          URxvt.colorBD:          #ffffff
726          URxvt.cursorColor:      #e0e080
727          URxvt.throughColor:     #8080f0
728          URxvt.highlightColor:   #f0f0f0
729
730       Some colours. Not sure which ones are being used or even non-defaults,
731       but these are in my .Xdefaults. Most notably, they set
732       foreground/background to light gray/black, and also make sure that the
733       colour 7 matches the default foreground colour.
734
735          URxvt.underlineColor:   yellow
736
737       Another colour, makes underline lines look different. Sometimes hurts,
738       but is mostly a nice effect.
739
740          URxvt.geometry:         154x36
741          URxvt.loginShell:       false
742          URxvt.meta:             ignore
743          URxvt.utmpInhibit:      true
744
745       Uh, well, should be mostly self-explanatory. By specifying some
746       defaults manually, I can quickly switch them for testing.
747
748          URxvt.saveLines:        8192
749
750       A large scrollback buffer is essential. Really.
751
752          URxvt.mapAlert:         true
753
754       The only case I use it is for my IRC window, which I like to keep
755       iconified till people msg me (which beeps).
756
757          URxvt.visualBell:       true
758
759       The audible bell is often annoying, especially when in a crowd.
760
761          URxvt.insecure:         true
762
763       Please don't hack my mutt! Ooops...
764
765          URxvt.pastableTabs:     false
766
767       I once thought this is a great idea.
768
769          urxvt.font:             9x15bold,\
770                                  -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso10646-1,\
771                                  -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1, \
772                                  [codeset=JISX0208]xft:Kochi Gothic, \
773                                  xft:Bitstream Vera Sans Mono:autohint=true, \
774                                  xft:Code2000:antialias=false
775          urxvt.boldFont:         -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-15
776          urxvt.italicFont:       xft:Bitstream Vera Sans Mono:italic:autohint=true
777          urxvt.boldItalicFont:   xft:Bitstream Vera Sans Mono:bold:italic:autohint=true
778
779       I wrote rxvt-unicode to be able to specify fonts exactly. So don't be
780       overwhelmed. A special note: the "9x15bold" mentioned above is actually
781       the version from XFree-3.3, as XFree-4 replaced it by a totally
782       different font (different glyphs for ";" and many other harmless
783       characters), while the second font is actually the "9x15bold" from
784       XFree4/XOrg. The bold version has less chars than the medium version,
785       so I use it for rare characters, too. When editing sources with vim, I
786       use italic for comments and other stuff, which looks quite good with
787       Bitstream Vera anti-aliased.
788
789       Terminus is a quite bad font (many very wrong glyphs), but for most of
790       my purposes, it works, and gives a different look, as my normal (Non-
791       bold) font is already bold, and I want to see a difference between bold
792       and normal fonts.
793
794       Please note that I used the "urxvt" instance name and not the "URxvt"
795       class name. That is because I use different configs for different
796       purposes, for example, my IRC window is started with "-name IRC", and
797       uses these defaults:
798
799          IRC*title:              IRC
800          IRC*geometry:           87x12+535+542
801          IRC*saveLines:          0
802          IRC*mapAlert:           true
803          IRC*font:               suxuseuro
804          IRC*boldFont:           suxuseuro
805          IRC*colorBD:            white
806          IRC*keysym.M-C-1:       command:\033]710;suxuseuro\007\033]711;suxuseuro\007
807          IRC*keysym.M-C-2:       command:\033]710;9x15bold\007\033]711;9x15bold\007
808
809       "Alt-Ctrl-1" and "Alt-Ctrl-2" switch between two different font sizes.
810       "suxuseuro" allows me to keep an eye (and actually read) stuff while
811       keeping a very small window. If somebody pastes something complicated
812       (e.g. japanese), I temporarily switch to a larger font.
813
814       The above is all in my ".Xdefaults" (I don't use ".Xresources" nor
815       "xrdb"). I also have some resources in a separate ".Xdefaults-hostname"
816       file for different hosts, for example, on my main desktop, I use:
817
818          URxvt.keysym.C-M-q: command:\033[3;5;5t
819          URxvt.keysym.C-M-y: command:\033[3;5;606t
820          URxvt.keysym.C-M-e: command:\033[3;1605;5t
821          URxvt.keysym.C-M-c: command:\033[3;1605;606t
822          URxvt.keysym.C-M-p: perl:test
823
824       The first for keysym definitions allow me to quickly bring some windows
825       in the layout I like most. Ion users might start laughing but will stop
826       immediately when I tell them that I use my own Fvwm2 module for much
827       the same effect as Ion provides, and I only very rarely use the above
828       key combinations :->
829
830       Why doesn't rxvt-unicode read my resources?
831
832       Well, why, indeed? It does, in a way very similar to other X
833       applications. Most importantly, this means that if you or your OS loads
834       resources into the X display (the right way to do it), rxvt-unicode
835       will ignore any resource files in your home directory. It will only
836       read $HOME/.Xdefaults when no resources are attached to the display.
837
838       If you have or use an $HOME/.Xresources file, chances are that
839       resources are loaded into your X-server. In this case, you have to re-
840       login after every change (or run xrdb -merge $HOME/.Xresources).
841
842       Also consider the form resources have to use:
843
844         URxvt.resource: value
845
846       If you want to use another form (there are lots of different ways of
847       specifying resources), make sure you understand whether and why it
848       works. If unsure, use the form above.
849
850       When I log-in to another system it tells me about missing terminfo
851       data?
852
853       The terminal description used by rxvt-unicode is not as widely
854       available as that for xterm, or even rxvt (for which the same problem
855       often arises).
856
857       The correct solution for this problem is to install the terminfo, this
858       can be done by simply installing rxvt-unicode on the remote system as
859       well (in case you have a nice package manager ready), or you can
860       install the terminfo database manually like this (with ncurses infocmp.
861       works as user and root):
862
863          REMOTE=remotesystem.domain
864          infocmp rxvt-unicode | ssh $REMOTE "mkdir -p .terminfo && cat >/tmp/ti && tic /tmp/ti"
865
866       One some systems you might need to set $TERMINFO to the full path of
867       $HOME/.terminfo for this to work.
868
869       If you cannot or do not want to do this, then you can simply set
870       "TERM=rxvt" or even "TERM=xterm", and live with the small number of
871       problems arising, which includes wrong keymapping, less and different
872       colours and some refresh errors in fullscreen applications. It's a nice
873       quick-and-dirty workaround for rare cases, though.
874
875       If you always want to do this (and are fine with the consequences) you
876       can either recompile rxvt-unicode with the desired TERM value or use a
877       resource to set it:
878
879          URxvt.termName: rxvt
880
881       If you don't plan to use rxvt (quite common...) you could also replace
882       the rxvt terminfo file with the rxvt-unicode one and use "TERM=rxvt".
883
884       nano fails with "Error opening terminal: rxvt-unicode"
885
886       This exceptionally confusing and useless error message is printed by
887       nano when it can't find the terminfo database. Nothing is wrong with
888       your terminal, read the previous answer for a solution.
889
890       "tic" outputs some error when compiling the terminfo entry.
891
892       Most likely it's the empty definition for "enacs=". Just replace it by
893       "enacs=\E[0@" and try again.
894
895       "bash"'s readline does not work correctly under urxvt.
896
897       See next entry.
898
899       I need a termcap file entry.
900
901       One reason you might want this is that some distributions or operating
902       systems still compile some programs using the long-obsoleted termcap
903       library (Fedora Core's bash is one example) and rely on a termcap entry
904       for "rxvt-unicode".
905
906       You could use rxvt's termcap entry with reasonable results in many
907       cases.  You can also create a termcap entry by using terminfo's infocmp
908       program like this:
909
910          infocmp -C rxvt-unicode
911
912       Or you could use the termcap entry in doc/etc/rxvt-unicode.termcap,
913       generated by the command above.
914
915       Why does "ls" no longer have coloured output?
916
917       The "ls" in the GNU coreutils unfortunately doesn't use terminfo to
918       decide whether a terminal has colour, but uses its own configuration
919       file. Needless to say, "rxvt-unicode" is not in its default file (among
920       with most other terminals supporting colour). Either add:
921
922          TERM rxvt-unicode
923
924       to "/etc/DIR_COLORS" or simply add:
925
926          alias ls='ls --color=auto'
927
928       to your ".profile" or ".bashrc".
929
930       Why doesn't vim/emacs etc. use the 88 colour mode?
931
932       See next entry.
933
934       Why doesn't vim/emacs etc. make use of italic?
935
936       See next entry.
937
938       Why are the secondary screen-related options not working properly?
939
940       Make sure you are using "TERM=rxvt-unicode". Some pre-packaged
941       distributions (most notably Debian GNU/Linux) break rxvt-unicode by
942       setting "TERM" to "rxvt", which doesn't have these extra features.
943       Unfortunately, some of these (most notably, again, Debian GNU/Linux)
944       furthermore fail to even install the "rxvt-unicode" terminfo file, so
945       you will need to install it on your own (See the question When I log-in
946       to another system it tells me about missing terminfo data? on how to do
947       this).
948
949   Encoding / Locale / Input Method Issues
950       Rxvt-unicode does not seem to understand the selected encoding?
951
952       See next entry.
953
954       Unicode does not seem to work?
955
956       If you encounter strange problems like typing an accented character but
957       getting two unrelated other characters or similar, or if program output
958       is subtly garbled, then you should check your locale settings.
959
960       Rxvt-unicode must be started with the same "LC_CTYPE" setting as the
961       programs running in it. Often rxvt-unicode is started in the "C"
962       locale, while the login script running within the rxvt-unicode window
963       changes the locale to something else, e.g. "en_GB.UTF-8". Needless to
964       say, this is not going to work, and is the most common cause for
965       problems.
966
967       The best thing is to fix your startup environment, as you will likely
968       run into other problems. If nothing works you can try this in your
969       .profile.
970
971         printf '\33]701;%s\007' "$LC_CTYPE"   # $LANG or $LC_ALL are worth a try, too
972
973       If this doesn't work, then maybe you use a "LC_CTYPE" specification not
974       supported on your systems. Some systems have a "locale" command which
975       displays this (also, "perl -e0" can be used to check locale settings,
976       as it will complain loudly if it cannot set the locale). If it displays
977       something like:
978
979         locale: Cannot set LC_CTYPE to default locale: ...
980
981       Then the locale you specified is not supported on your system.
982
983       If nothing works and you are sure that everything is set correctly then
984       you will need to remember a little known fact: Some programs just don't
985       support locales :(
986
987       How does rxvt-unicode determine the encoding to use?
988
989       See next entry.
990
991       Is there an option to switch encodings?
992
993       Unlike some other terminals, rxvt-unicode has no encoding switch, and
994       no specific "utf-8" mode, such as xterm. In fact, it doesn't even know
995       about UTF-8 or any other encodings with respect to terminal I/O.
996
997       The reasons is that there exists a perfectly fine mechanism for
998       selecting the encoding, doing I/O and (most important) communicating
999       this to all applications so everybody agrees on character properties
1000       such as width and code number. This mechanism is the locale.
1001       Applications not using that info will have problems (for example,
1002       "xterm" gets the width of characters wrong as it uses its own, locale-
1003       independent table under all locales).
1004
1005       Rxvt-unicode uses the "LC_CTYPE" locale category to select encoding.
1006       All programs doing the same (that is, most) will automatically agree in
1007       the interpretation of characters.
1008
1009       Unfortunately, there is no system-independent way to select locales,
1010       nor is there a standard on how locale specifiers will look like.
1011
1012       On most systems, the content of the "LC_CTYPE" environment variable
1013       contains an arbitrary string which corresponds to an already-installed
1014       locale. Common names for locales are "en_US.UTF-8",
1015       "de_DE.ISO-8859-15", "ja_JP.EUC-JP", i.e. "language_country.encoding",
1016       but other forms (i.e. "de" or "german") are also common.
1017
1018       Rxvt-unicode ignores all other locale categories, and except for the
1019       encoding, ignores country or language-specific settings, i.e.
1020       "de_DE.UTF-8" and "ja_JP.UTF-8" are the normally same to rxvt-unicode.
1021
1022       If you want to use a specific encoding you have to make sure you start
1023       rxvt-unicode with the correct "LC_CTYPE" category.
1024
1025       Can I switch locales at runtime?
1026
1027       Yes, using an escape sequence. Try something like this, which sets
1028       rxvt-unicode's idea of "LC_CTYPE".
1029
1030         printf '\33]701;%s\007' ja_JP.SJIS
1031
1032       See also the previous answer.
1033
1034       Sometimes this capability is rather handy when you want to work in one
1035       locale (e.g. "de_DE.UTF-8") but some programs don't support it (e.g.
1036       UTF-8). For example, I use this script to start "xjdic", which first
1037       switches to a locale supported by xjdic and back later:
1038
1039          printf '\33]701;%s\007' ja_JP.SJIS
1040          xjdic -js
1041          printf '\33]701;%s\007' de_DE.UTF-8
1042
1043       You can also use xterm's "luit" program, which usually works fine,
1044       except for some locales where character width differs between program-
1045       and rxvt-unicode-locales.
1046
1047       I have problems getting my input method working.
1048
1049       Try a search engine, as this is slightly different for every input
1050       method server.
1051
1052       Here is a checklist:
1053
1054       - Make sure your locale and the imLocale are supported on your OS.
1055           Try "locale -a" or check the documentation for your OS.
1056
1057       - Make sure your locale or imLocale matches a locale supported by your
1058       XIM.
1059           For example, kinput2 does not support UTF-8 locales, you should use
1060           "ja_JP.EUC-JP" or equivalent.
1061
1062       - Make sure your XIM server is actually running.
1063       - Make sure the "XMODIFIERS" environment variable is set correctly when
1064       starting rxvt-unicode.
1065           When you want to use e.g. kinput2, it must be set to "@im=kinput2".
1066           For scim, use "@im=SCIM". You can see what input method servers are
1067           running with this command:
1068
1069              xprop -root XIM_SERVERS
1070
1071
1072
1073       My input method wants <some encoding> but I want UTF-8, what can I do?
1074
1075       You can specify separate locales for the input method and the rest of
1076       the terminal, using the resource "imlocale":
1077
1078          URxvt.imlocale: ja_JP.EUC-JP
1079
1080       Now you can start your terminal with "LC_CTYPE=ja_JP.UTF-8" and still
1081       use your input method. Please note, however, that, depending on your
1082       Xlib version, you may not be able to input characters outside "EUC-JP"
1083       in a normal way then, as your input method limits you.
1084
1085       Rxvt-unicode crashes when the X Input Method changes or exits.
1086
1087       Unfortunately, this is unavoidable, as the XIM protocol is racy by
1088       design. Applications can avoid some crashes at the expense of memory
1089       leaks, and Input Methods can avoid some crashes by careful ordering at
1090       exit time. kinput2 (and derived input methods) generally succeeds,
1091       while SCIM (or similar input methods) fails. In the end, however,
1092       crashes cannot be completely avoided even if both sides cooperate.
1093
1094       So the only workaround is not to kill your Input Method Servers.
1095
1096   Operating Systems / Package Maintaining
1097       I am using Debian GNU/Linux and have a problem...
1098
1099       The Debian GNU/Linux package of rxvt-unicode in sarge contains large
1100       patches that considerably change the behaviour of rxvt-unicode (but
1101       unfortunately this notice has been removed). Before reporting a bug to
1102       the original rxvt-unicode author please download and install the
1103       genuine version (http://software.schmorp.de/pkg/rxvt-unicode.html
1104       <http://software.schmorp.de/pkg/rxvt-unicode.html>) and try to
1105       reproduce the problem. If you cannot, chances are that the problems are
1106       specific to Debian GNU/Linux, in which case it should be reported via
1107       the Debian Bug Tracking System (use "reportbug" to report the bug).
1108
1109       For other problems that also affect the Debian package, you can and
1110       probably should use the Debian BTS, too, because, after all, it's also
1111       a bug in the Debian version and it serves as a reminder for other users
1112       that might encounter the same issue.
1113
1114       I am maintaining rxvt-unicode for distribution/OS XXX, any
1115       recommendation?
1116
1117       You should build one binary with the default options. configure now
1118       enables most useful options, and the trend goes to making them runtime-
1119       switchable, too, so there is usually no drawback to enabling them,
1120       except higher disk and possibly memory usage. The perl interpreter
1121       should be enabled, as important functionality (menus, selection, likely
1122       more in the future) depends on it.
1123
1124       You should not overwrite the "perl-ext-common" and "perl-ext" resources
1125       system-wide (except maybe with "defaults"). This will result in useful
1126       behaviour. If your distribution aims at low memory, add an empty
1127       "perl-ext-common" resource to the app-defaults file. This will keep the
1128       perl interpreter disabled until the user enables it.
1129
1130       If you can/want build more binaries, I recommend building a minimal one
1131       with "--disable-everything" (very useful) and a maximal one with
1132       "--enable-everything" (less useful, it will be very big due to a lot of
1133       encodings built-in that increase download times and are rarely used).
1134
1135       I need to make it setuid/setgid to support utmp/ptys on my OS, is this
1136       safe?
1137
1138       It should be, starting with release 7.1. You are encouraged to properly
1139       install urxvt with privileges necessary for your OS now.
1140
1141       When rxvt-unicode detects that it runs setuid or setgid, it will fork
1142       into a helper process for privileged operations (pty handling on some
1143       systems, utmp/wtmp/lastlog handling on others) and drop privileges
1144       immediately. This is much safer than most other terminals that keep
1145       privileges while running (but is more relevant to urxvt, as it contains
1146       things as perl interpreters, which might be "helpful" to attackers).
1147
1148       This forking is done as the very first within main(), which is very
1149       early and reduces possible bugs to initialisation code run before
1150       main(), or things like the dynamic loader of your system, which should
1151       result in very little risk.
1152
1153       I am on FreeBSD and rxvt-unicode does not seem to work at all.
1154
1155       Rxvt-unicode requires the symbol "__STDC_ISO_10646__" to be defined in
1156       your compile environment, or an implementation that implements it,
1157       whether it defines the symbol or not. "__STDC_ISO_10646__" requires
1158       that wchar_t is represented as unicode.
1159
1160       As you might have guessed, FreeBSD does neither define this symbol nor
1161       does it support it. Instead, it uses its own internal representation of
1162       wchar_t. This is, of course, completely fine with respect to standards.
1163
1164       However, that means rxvt-unicode only works in "POSIX", "ISO-8859-1"
1165       and "UTF-8" locales under FreeBSD (which all use Unicode as wchar_t).
1166
1167       "__STDC_ISO_10646__" is the only sane way to support multi-language
1168       apps in an OS, as using a locale-dependent (and non-standardized)
1169       representation of wchar_t makes it impossible to convert between
1170       wchar_t (as used by X11 and your applications) and any other encoding
1171       without implementing OS-specific-wrappers for each and every locale.
1172       There simply are no APIs to convert wchar_t into anything except the
1173       current locale encoding.
1174
1175       Some applications (such as the formidable mlterm) work around this by
1176       carrying their own replacement functions for character set handling
1177       with them, and either implementing OS-dependent hacks or doing multiple
1178       conversions (which is slow and unreliable in case the OS implements
1179       encodings slightly different than the terminal emulator).
1180
1181       The rxvt-unicode author insists that the right way to fix this is in
1182       the system libraries once and for all, instead of forcing every app to
1183       carry complete replacements for them :)
1184
1185       How can I use rxvt-unicode under cygwin?
1186
1187       rxvt-unicode should compile and run out of the box on cygwin, using the
1188       X11 libraries that come with cygwin. libW11 emulation is no longer
1189       supported (and makes no sense, either, as it only supported a single
1190       font). I recommend starting the X-server in "-multiwindow" or
1191       "-rootless" mode instead, which will result in similar look&feel as the
1192       old libW11 emulation.
1193
1194       At the time of this writing, cygwin didn't seem to support any multi-
1195       byte encodings (you might try "LC_CTYPE=C-UTF-8"), so you are likely
1196       limited to 8-bit encodings.
1197
1198       Character widths are not correct.
1199
1200       urxvt uses the system wcwidth function to know the information about
1201       the width of characters, so on systems with incorrect locale data you
1202       will likely get bad results. Two notorious examples are Solaris 9,
1203       where single-width characters like U+2514 are reported as double-width,
1204       and Darwin 8, where combining chars are reported having width 1.
1205
1206       The solution is to upgrade your system or switch to a better one. A
1207       possibly working workaround is to use a wcwidth implementation like
1208
1209       http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
1210

RXVT-UNICODE TECHNICAL REFERENCE

1212       The rest of this document describes various technical aspects of rxvt-
1213       unicode. First the description of supported command sequences, followed
1214       by pixmap support and last by a description of all features selectable
1215       at "configure" time.
1216
1217   Definitions
1218       "c" The literal character c (potentially a multi-byte character).
1219
1220       "C" A single (required) character.
1221
1222       "Ps"
1223           A single (usually optional) numeric parameter, composed of one or
1224           more digits.
1225
1226       "Pm"
1227           A multiple numeric parameter composed of any number of single
1228           numeric parameters, separated by ";" character(s).
1229
1230       "Pt"
1231           A text parameter composed of printable characters.
1232
1233   Values
1234       "ENQ"
1235           Enquiry (Ctrl-E) = Send Device Attributes (DA) request attributes
1236           from terminal. See "ESC [ Ps c".
1237
1238       "BEL"
1239           Bell (Ctrl-G)
1240
1241       "BS"
1242           Backspace (Ctrl-H)
1243
1244       "TAB"
1245           Horizontal Tab (HT) (Ctrl-I)
1246
1247       "LF"
1248           Line Feed or New Line (NL) (Ctrl-J)
1249
1250       "VT"
1251           Vertical Tab (Ctrl-K) same as "LF"
1252
1253       "FF"
1254           Form Feed or New Page (NP) (Ctrl-L) same as "LF"
1255
1256       "CR"
1257           Carriage Return (Ctrl-M)
1258
1259       "SO"
1260           Shift Out (Ctrl-N), invokes the G1 character set.  Switch to
1261           Alternate Character Set
1262
1263       "SI"
1264           Shift In (Ctrl-O), invokes the G0 character set (the default).
1265           Switch to Standard Character Set
1266
1267       "SPC"
1268           Space Character
1269
1270   Escape Sequences
1271       "ESC # 8"
1272           DEC Screen Alignment Test (DECALN)
1273
1274       "ESC 7"
1275           Save Cursor (SC)
1276
1277       "ESC 8"
1278           Restore Cursor
1279
1280       "ESC ="
1281           Application Keypad (SMKX). See also next sequence.
1282
1283       "ESC >"
1284           Normal Keypad (RMKX)
1285
1286           Note: If the numeric keypad is activated, eg, Num_Lock has been
1287           pressed, numbers or control functions are generated by the numeric
1288           keypad (see Key Codes).
1289
1290       "ESC D"
1291           Index (IND)
1292
1293       "ESC E"
1294           Next Line (NEL)
1295
1296       "ESC H"
1297           Tab Set (HTS)
1298
1299       "ESC M"
1300           Reverse Index (RI)
1301
1302       "ESC N"
1303           Single Shift Select of G2 Character Set (SS2): affects next
1304           character only unimplemented
1305
1306       "ESC O"
1307           Single Shift Select of G3 Character Set (SS3): affects next
1308           character only unimplemented
1309
1310       "ESC Z"
1311           Obsolete form of returns: "ESC [ ? 1 ; 2 C" rxvt-unicode compile-
1312           time option
1313
1314       "ESC c"
1315           Full reset (RIS)
1316
1317       "ESC n"
1318           Invoke the G2 Character Set (LS2)
1319
1320       "ESC o"
1321           Invoke the G3 Character Set (LS3)
1322
1323       "ESC ( C"
1324           Designate G0 Character Set (ISO 2022), see below for values of "C".
1325
1326       "ESC ) C"
1327           Designate G1 Character Set (ISO 2022), see below for values of "C".
1328
1329       "ESC * C"
1330           Designate G2 Character Set (ISO 2022), see below for values of "C".
1331
1332       "ESC + C"
1333           Designate G3 Character Set (ISO 2022), see below for values of "C".
1334
1335       "ESC $ C"
1336           Designate Kanji Character Set
1337
1338           Where "C" is one of:
1339
1340           C = 0    DEC Special Character and Line Drawing Set
1341           C = A    United Kingdom (UK)
1342           C = B    United States (USASCII)
1343           C = <    Multinational character set unimplemented
1344           C = 5    Finnish character set unimplemented
1345           C = C    Finnish character set unimplemented
1346           C = K    German character set unimplemented
1347
1348   CSI (Command Sequence Introducer) Sequences
1349       "ESC [ Ps @"
1350           Insert "Ps" (Blank) Character(s) [default: 1] (ICH)
1351
1352       "ESC [ Ps A"
1353           Cursor Up "Ps" Times [default: 1] (CUU)
1354
1355       "ESC [ Ps B"
1356           Cursor Down "Ps" Times [default: 1] (CUD)
1357
1358       "ESC [ Ps C"
1359           Cursor Forward "Ps" Times [default: 1] (CUF)
1360
1361       "ESC [ Ps D"
1362           Cursor Backward "Ps" Times [default: 1] (CUB)
1363
1364       "ESC [ Ps E"
1365           Cursor Down "Ps" Times [default: 1] and to first column
1366
1367       "ESC [ Ps F"
1368           Cursor Up "Ps" Times [default: 1] and to first column
1369
1370       "ESC [ Ps G"
1371           Cursor to Column "Ps" (HPA)
1372
1373       "ESC [ Ps;Ps H"
1374           Cursor Position [row;column] [default: 1;1] (CUP)
1375
1376       "ESC [ Ps I"
1377           Move forward "Ps" tab stops [default: 1]
1378
1379       "ESC [ Ps J"
1380           Erase in Display (ED)
1381
1382           Ps = 0   Clear Below (default)
1383           Ps = 1   Clear Above
1384           Ps = 2   Clear All
1385
1386       "ESC [ Ps K"
1387           Erase in Line (EL)
1388
1389
1390           Ps = 0             Clear to Right (default)
1391           Ps = 1             Clear to Left
1392           Ps = 2             Clear All
1393           Ps = 3             Like Ps = 0, but is ignored when wrapped
1394                              (urxvt extension)
1395
1396       "ESC [ Ps L"
1397           Insert "Ps" Line(s) [default: 1] (IL)
1398
1399       "ESC [ Ps M"
1400           Delete "Ps" Line(s) [default: 1] (DL)
1401
1402       "ESC [ Ps P"
1403           Delete "Ps" Character(s) [default: 1] (DCH)
1404
1405       "ESC [ Ps;Ps;Ps;Ps;Ps T"
1406           Initiate . unimplemented Parameters are
1407           [func;startx;starty;firstrow;lastrow].
1408
1409       "ESC [ Ps W"
1410           Tabulator functions
1411
1412           Ps = 0   Tab Set (HTS)
1413           Ps = 2   Tab Clear (TBC), Clear Current Column (default)
1414           Ps = 5   Tab Clear (TBC), Clear All
1415
1416       "ESC [ Ps X"
1417           Erase "Ps" Character(s) [default: 1] (ECH)
1418
1419       "ESC [ Ps Z"
1420           Move backward "Ps" [default: 1] tab stops
1421
1422       "ESC [ Ps '"
1423           See "ESC [ Ps G"
1424
1425       "ESC [ Ps a"
1426           See "ESC [ Ps C"
1427
1428       "ESC [ Ps c"
1429           Send Device Attributes (DA) "Ps = 0" (or omitted): request
1430           attributes from terminal returns: "ESC [ ? 1 ; 2 c" (``I am a VT100
1431           with Advanced Video Option'')
1432
1433       "ESC [ Ps d"
1434           Cursor to Line "Ps" (VPA)
1435
1436       "ESC [ Ps e"
1437           See "ESC [ Ps A"
1438
1439       "ESC [ Ps;Ps f"
1440           Horizontal and Vertical Position [row;column] (HVP) [default: 1;1]
1441
1442       "ESC [ Ps g"
1443           Tab Clear (TBC)
1444
1445           Ps = 0   Clear Current Column (default)
1446           Ps = 3   Clear All (TBC)
1447
1448       "ESC [ Pm h"
1449           Set Mode (SM). See "ESC [ Pm l" sequence for description of "Pm".
1450
1451       "ESC [ Ps i"
1452           Printing. See also the "print-pipe" resource.
1453
1454           Ps = 0   print screen (MC0)
1455           Ps = 4   disable transparent print mode (MC4)
1456           Ps = 5   enable transparent print mode (MC5)
1457
1458       "ESC [ Pm l"
1459           Reset Mode (RM)
1460
1461           "Ps = 4"
1462
1463
1464               h   Insert Mode (SMIR)
1465               l   Replace Mode (RMIR)
1466           "Ps = 20" (partially implemented)
1467               h   Automatic Newline (LNM)
1468               l   Normal Linefeed (LNM)
1469       "ESC [ Pm m"
1470           Character Attributes (SGR)
1471
1472           Ps = 0             Normal (default)
1473           Ps = 1 / 21        On / Off Bold (bright fg)
1474           Ps = 3 / 23        On / Off Italic
1475           Ps = 4 / 24        On / Off Underline
1476           Ps = 5 / 25        On / Off Slow Blink (bright bg)
1477           Ps = 6 / 26        On / Off Rapid Blink (bright bg)
1478           Ps = 7 / 27        On / Off Inverse
1479           Ps = 8 / 27        On / Off Invisible (NYI)
1480           Ps = 30 / 40       fg/bg Black
1481           Ps = 31 / 41       fg/bg Red
1482           Ps = 32 / 42       fg/bg Green
1483           Ps = 33 / 43       fg/bg Yellow
1484           Ps = 34 / 44       fg/bg Blue
1485           Ps = 35 / 45       fg/bg Magenta
1486           Ps = 36 / 46       fg/bg Cyan
1487           Ps = 38;5 / 48;5   set fg/bg to colour #m (ISO 8613-6)
1488           Ps = 37 / 47       fg/bg White
1489           Ps = 39 / 49       fg/bg Default
1490           Ps = 90 / 100      fg/bg Bright Black
1491           Ps = 91 / 101      fg/bg Bright Red
1492           Ps = 92 / 102      fg/bg Bright Green
1493           Ps = 93 / 103      fg/bg Bright Yellow
1494           Ps = 94 / 104      fg/bg Bright Blue
1495           Ps = 95 / 105      fg/bg Bright Magenta
1496           Ps = 96 / 106      fg/bg Bright Cyan
1497           Ps = 97 / 107      fg/bg Bright White
1498           Ps = 99 / 109      fg/bg Bright Default
1499
1500       "ESC [ Ps n"
1501           Device Status Report (DSR)
1502
1503           Ps = 5   Status Report ESC [ 0 n (``OK'')
1504           Ps = 6   Report Cursor Position (CPR) [row;column] as ESC [ r ; c R
1505           Ps = 7   Request Display Name
1506           Ps = 8   Request Version Number (place in window title)
1507
1508       "ESC [ Ps;Ps r"
1509           Set Scrolling Region [top;bottom] [default: full size of window]
1510           (CSR)
1511
1512       "ESC [ s"
1513           Save Cursor (SC)
1514
1515       "ESC [ Ps;Pt t"
1516           Window Operations
1517
1518           Ps = 1      Deiconify (map) window
1519           Ps = 2      Iconify window
1520           Ps = 3      ESC [ 3 ; X ; Y t Move window to (X|Y)
1521           Ps = 4      ESC [ 4 ; H ; W t Resize to WxH pixels
1522           Ps = 5      Raise window
1523           Ps = 6      Lower window
1524           Ps = 7      Refresh screen once
1525           Ps = 8      ESC [ 8 ; R ; C t Resize to R rows and C columns
1526           Ps = 11     Report window state (responds with Ps = 1 or Ps = 2)
1527           Ps = 13     Report window position (responds with Ps = 3)
1528           Ps = 14     Report window pixel size (responds with Ps = 4)
1529           Ps = 18     Report window text size (responds with Ps = 7)
1530           Ps = 19     Currently the same as Ps = 18, but responds with Ps = 9
1531           Ps = 20     Reports icon label (ESC ] L NAME 234)
1532           Ps = 21     Reports window title (ESC ] l NAME 234)
1533           Ps = 24..   Set window height to Ps rows
1534
1535       "ESC [ u"
1536           Restore Cursor
1537
1538       "ESC [ Ps x"
1539           Request Terminal Parameters (DECREQTPARM)
1540
1541   DEC Private Modes
1542       "ESC [ ? Pm h"
1543           DEC Private Mode Set (DECSET)
1544
1545       "ESC [ ? Pm l"
1546           DEC Private Mode Reset (DECRST)
1547
1548       "ESC [ ? Pm r"
1549           Restore previously saved DEC Private Mode Values.
1550
1551       "ESC [ ? Pm s"
1552           Save DEC Private Mode Values.
1553
1554       "ESC [ ? Pm t"
1555           Toggle DEC Private Mode Values (rxvt extension). where
1556
1557           "Pm = 1" (DECCKM)
1558
1559               h   Application Cursor Keys
1560               l   Normal Cursor Keys
1561           "Pm = 2" (ANSI/VT52 mode)
1562               h   Enter VT52 mode
1563               l   Enter VT52 mode
1564           "Pm = 3"
1565               h   132 Column Mode (DECCOLM)
1566               l   80 Column Mode (DECCOLM)
1567           "Pm = 4"
1568               h   Smooth (Slow) Scroll (DECSCLM)
1569               l   Jump (Fast) Scroll (DECSCLM)
1570           "Pm = 5"
1571               h   Reverse Video (DECSCNM)
1572               l   Normal Video (DECSCNM)
1573           "Pm = 6"
1574               h   Origin Mode (DECOM)
1575               l   Normal Cursor Mode (DECOM)
1576           "Pm = 7"
1577               h   Wraparound Mode (DECAWM)
1578               l   No Wraparound Mode (DECAWM)
1579           "Pm = 8" unimplemented
1580               h   Auto-repeat Keys (DECARM)
1581               l   No Auto-repeat Keys (DECARM)
1582           "Pm = 9" X10 XTerm
1583               h   Send Mouse X & Y on button press.
1584               l   No mouse reporting.
1585           "Pm = 25"
1586               h   Visible cursor {cnorm/cvvis}
1587               l   Invisible cursor {civis}
1588           "Pm = 30"
1589               h   scrollBar visible
1590               l   scrollBar invisible
1591           "Pm = 35" (rxvt)
1592               h   Allow XTerm Shift+key sequences
1593               l   Disallow XTerm Shift+key sequences
1594           "Pm = 38" unimplemented
1595               Enter Tektronix Mode (DECTEK)
1596
1597           "Pm = 40"
1598
1599               h   Allow 80/132 Mode
1600               l   Disallow 80/132 Mode
1601           "Pm = 44" unimplemented
1602               h   Turn On Margin Bell
1603               l   Turn Off Margin Bell
1604           "Pm = 45" unimplemented
1605               h   Reverse-wraparound Mode
1606               l   No Reverse-wraparound Mode
1607           "Pm = 46" unimplemented
1608           "Pm = 47"
1609               h   Use Alternate Screen Buffer
1610               l   Use Normal Screen Buffer
1611
1612
1613           "Pm = 66"
1614
1615               h   Application Keypad (DECKPAM/DECPAM) == ESC =
1616               l   Normal Keypad (DECKPNM/DECPNM) == ESC >
1617           "Pm = 67"
1618               h   Backspace key sends BS (DECBKM)
1619               l   Backspace key sends DEL
1620           "Pm = 1000" (X11 XTerm)
1621               h   Send Mouse X & Y on button press and release.
1622               l   No mouse reporting.
1623           "Pm = 1001" (X11 XTerm) unimplemented
1624               h   Use Hilite Mouse Tracking.
1625               l   No mouse reporting.
1626           "Pm = 1002" (X11 XTerm)
1627               h   Send Mouse X & Y on button press and release, and motion with a button pressed.
1628               l   No mouse reporting.
1629           "Pm = 1003" (X11 XTerm)
1630               h   Send Mouse X & Y on button press and release, and motion.
1631               l   No mouse reporting.
1632           "Pm = 1005" (X11 XTerm) (Compile frills)
1633               Try to avoid this mode, it doesn't work sensibly in non-UTF-8
1634               locales. Use mode 1015 instead.
1635
1636               Unlike XTerm, coordinates larger than 2015) will work fine.
1637
1638               h   Enable mouse coordinates in locale-specific encoding.
1639               l   Enable mouse coordinates as binary octets.
1640
1641           "Pm = 1010" (rxvt)
1642
1643               h   Don't scroll to bottom on TTY output
1644               l   Scroll to bottom on TTY output
1645           "Pm = 1011" (rxvt)
1646               h   Scroll to bottom when a key is pressed
1647               l   Don't scroll to bottom when a key is pressed
1648           "Pm = 1015" (rxvt-unicode) (Compile frills)
1649               Changes all mouse reporting codes to use decimal parameters
1650               instead of octets or characters.
1651
1652               This mode should be enabled before actually enabling mouse
1653               reporting, for semi-obvious reasons.
1654
1655               The sequences received for various modes are as follows:
1656
1657                  ESC [ M o o o    !1005, !1015 (three octets)
1658                  ESC [ M c c c    1005, !1015 (three characters)
1659                  ESC [ Pm M       1015 (three or more numeric parameters)
1660
1661               The first three parameters are "code", "x" and "y". Code is the
1662               numeric code as for the other modes (but encoded as a decimal
1663               number, including the additional offset of 32, so you have to
1664               subtract 32 first), "x" and "y" are the coordinates (1|1 is the
1665               upper left corner, just as with cursor positioning).
1666
1667               Example: Shift-Button-1 press at top row, column 80.
1668
1669                  ESC [ 37 ; 80 ; 1 M
1670
1671               One can use this feature by simply enabling it and then looking
1672               for parameters to the "ESC [ M" reply - if there are any, this
1673               mode is active, otherwise one of the old reporting styles is
1674               used.
1675
1676               Other (to be implemented) reply sequences will use a similar
1677               encoding.
1678
1679               In the future, more parameters might get added (pixel
1680               coordinates for example - anybody out there who needs this?).
1681
1682               h   Enable new mouse coordinate reporting.
1683               l   Use old-style CSI M C C C encoding.
1684
1685           "Pm = 1021" (rxvt)
1686
1687
1688               h   Bold/italic implies high intensity (see option -is)
1689               l   Font styles have no effect on intensity (Compile styles)
1690           "Pm = 1047"
1691               h   Use Alternate Screen Buffer
1692               l   Use Normal Screen Buffer - clear Alternate Screen Buffer if returning from it
1693           "Pm = 1048"
1694               h   Save cursor position
1695               l   Restore cursor position
1696           "Pm = 1049"
1697               h   Use Alternate Screen Buffer - clear Alternate Screen Buffer if switching to it
1698               l   Use Normal Screen Buffer
1699           "Pm = 2004"
1700               h   Enable bracketed paste mode - prepend / append to the pasted text the control sequences ESC [ 200 ~ / ESC [ 201 ~
1701               l   Disable bracketed paste mode
1702
1703   XTerm Operating System Commands
1704       "ESC ] Ps;Pt ST"
1705           Set XTerm Parameters. 8-bit ST: 0x9c, 7-bit ST sequence: ESC \
1706           (0x1b, 0x5c), backwards compatible terminator BEL (0x07) is also
1707           accepted. any octet can be escaped by prefixing it with SYN (0x16,
1708           ^V).
1709
1710           Ps = 0     Change Icon Name and Window Title to Pt
1711           Ps = 1     Change Icon Name to Pt
1712           Ps = 2     Change Window Title to Pt
1713           Ps = 3     If Pt starts with a ?, query the (STRING) property of the window and return it. If Pt contains a =, set the named property to the given value, else delete the specified property.
1714           Ps = 4     Pt is a semi-colon separated sequence of one or more semi-colon separated number/name pairs, where number is an index to a colour and name is the name of a colour. Each pair causes the numbered colour to be changed to name. Numbers 0-7 corresponds to low-intensity (normal) colours and 8-15 corresponds to high-intensity colours. 0=black, 1=red, 2=green, 3=yellow, 4=blue, 5=magenta, 6=cyan, 7=white
1715           Ps = 10    Change colour of text foreground to Pt
1716           Ps = 11    Change colour of text background to Pt
1717           Ps = 12    Change colour of text cursor foreground to Pt
1718           Ps = 13    Change colour of mouse foreground to Pt
1719           Ps = 17    Change background colour of highlight characters to Pt
1720           Ps = 19    Change foreground colour of highlight characters to Pt
1721           Ps = 20    Change background pixmap parameters (see section BACKGROUND IMAGE) (Compile afterimage or pixbuf).
1722           Ps = 39    Change default foreground colour to Pt. [deprecated, use 10]
1723           Ps = 46    Change Log File to Pt unimplemented
1724           Ps = 49    Change default background colour to Pt. [deprecated, use 11]
1725           Ps = 50    Set fontset to Pt, with the following special values of Pt (rxvt) #+n change up n #-n change down n if n is missing of 0, a value of 1 is used empty change to font0 n change to font n
1726           Ps = 55    Log all scrollback buffer and all of screen to Pt [disabled]
1727           Ps = 701   Change current locale to Pt, or, if Pt is ?, return the current locale (Compile frills).
1728           Ps = 702   Request version if Pt is ?, returning rxvt-unicode, the resource name, the major and minor version numbers, e.g. ESC ] 702 ; rxvt-unicode ; urxvt ; 7 ; 4 ST.
1729           Ps = 704   Change colour of italic characters to Pt
1730           Ps = 705   Change background pixmap tint colour to Pt (Compile transparency).
1731           Ps = 706   Change colour of bold characters to Pt
1732           Ps = 707   Change colour of underlined characters to Pt
1733           Ps = 708   Change colour of the border to Pt
1734           Ps = 710   Set normal fontset to Pt. Same as Ps = 50.
1735           Ps = 711   Set bold fontset to Pt. Similar to Ps = 50 (Compile styles).
1736           Ps = 712   Set italic fontset to Pt. Similar to Ps = 50 (Compile styles).
1737           Ps = 713   Set bold-italic fontset to Pt. Similar to Ps = 50 (Compile styles).
1738           Ps = 720   Move viewing window up by Pt lines, or clear scrollback buffer if Pt = 0 (Compile frills).
1739           Ps = 721   Move viewing window down by Pt lines, or clear scrollback buffer if Pt = 0 (Compile frills).
1740           Ps = 777   Call the perl extension with the given string, which should be of the form extension:parameters (Compile perl).
1741

BACKGROUND IMAGE

1743       For the BACKGROUND IMAGE XTerm escape sequence "ESC ] 20 ; Pt ST" the
1744       value of "Pt" can be one of the following commands:
1745
1746       "?" display scale and position in the title
1747
1748       ";WxH+X+Y"
1749           change scale and/or position
1750
1751       "FILE;WxH+X+Y"
1752           change background image
1753

Mouse Reporting

1755       "ESC [ M <b> <x> <y>"
1756           report mouse position
1757
1758       The lower 2 bits of "<b>" indicate the button:
1759
1760       Button = "(<b> - SPACE) & 3"
1761
1762           0   Button1 pressed
1763
1764           1   Button2 pressed
1765           2   Button3 pressed
1766           3   button released (X11 mouse report)
1767
1768       The upper bits of "<b>" indicate the modifiers when the button was
1769       pressed and are added together (X11 mouse report only):
1770
1771       State = "(<b> - SPACE) & ~3"
1772
1773           4    Shift
1774           8    Meta
1775           16   Control
1776           32   Motion Notify
1777           32   Double Click (rxvt extension), disabled by default
1778           64   Button1 is actually Button4, Button2 is actually Button5 etc.
1779           Col = "<x> - SPACE"
1780
1781           Row = "<y> - SPACE"
1782

Key Codes

1784       Note: Shift + F1-F10 generates F11-F20
1785
1786       For the keypad, use Shift to temporarily override Application-Keypad
1787       setting use Num_Lock to toggle Application-Keypad setting if Num_Lock
1788       is off, toggle Application-Keypad setting. Also note that values of
1789       BackSpace, Delete may have been compiled differently on your system.
1790
1791                         Normal       Shift         Control      Ctrl+Shift
1792       Tab               ^I           ESC [ Z       ^I           ESC [ Z
1793       BackSpace         ^H           ^?            ^?           ^?
1794       Find              ESC [ 1 ~    ESC [ 1 $     ESC [ 1 ^    ESC [ 1 @
1795       Insert            ESC [ 2 ~    paste         ESC [ 2 ^    ESC [ 2 @
1796       Execute           ESC [ 3 ~    ESC [ 3 $     ESC [ 3 ^    ESC [ 3 @
1797       Select            ESC [ 4 ~    ESC [ 4 $     ESC [ 4 ^    ESC [ 4 @
1798       Prior             ESC [ 5 ~    scroll-up     ESC [ 5 ^    ESC [ 5 @
1799       Next              ESC [ 6 ~    scroll-down   ESC [ 6 ^    ESC [ 6 @
1800       Home              ESC [ 7 ~    ESC [ 7 $     ESC [ 7 ^    ESC [ 7 @
1801       End               ESC [ 8 ~    ESC [ 8 $     ESC [ 8 ^    ESC [ 8 @
1802       Delete            ESC [ 3 ~    ESC [ 3 $     ESC [ 3 ^    ESC [ 3 @
1803       F1                ESC [ 11 ~   ESC [ 23 ~    ESC [ 11 ^   ESC [ 23 ^
1804       F2                ESC [ 12 ~   ESC [ 24 ~    ESC [ 12 ^   ESC [ 24 ^
1805       F3                ESC [ 13 ~   ESC [ 25 ~    ESC [ 13 ^   ESC [ 25 ^
1806       F4                ESC [ 14 ~   ESC [ 26 ~    ESC [ 14 ^   ESC [ 26 ^
1807       F5                ESC [ 15 ~   ESC [ 28 ~    ESC [ 15 ^   ESC [ 28 ^
1808       F6                ESC [ 17 ~   ESC [ 29 ~    ESC [ 17 ^   ESC [ 29 ^
1809       F7                ESC [ 18 ~   ESC [ 31 ~    ESC [ 18 ^   ESC [ 31 ^
1810       F8                ESC [ 19 ~   ESC [ 32 ~    ESC [ 19 ^   ESC [ 32 ^
1811       F9                ESC [ 20 ~   ESC [ 33 ~    ESC [ 20 ^   ESC [ 33 ^
1812       F10               ESC [ 21 ~   ESC [ 34 ~    ESC [ 21 ^   ESC [ 34 ^
1813       F11               ESC [ 23 ~   ESC [ 23 $    ESC [ 23 ^   ESC [ 23 @
1814       F12               ESC [ 24 ~   ESC [ 24 $    ESC [ 24 ^   ESC [ 24 @
1815       F13               ESC [ 25 ~   ESC [ 25 $    ESC [ 25 ^   ESC [ 25 @
1816       F14               ESC [ 26 ~   ESC [ 26 $    ESC [ 26 ^   ESC [ 26 @
1817       F15 (Help)        ESC [ 28 ~   ESC [ 28 $    ESC [ 28 ^   ESC [ 28 @
1818       F16 (Menu)        ESC [ 29 ~   ESC [ 29 $    ESC [ 29 ^   ESC [ 29 @
1819       F17               ESC [ 31 ~   ESC [ 31 $    ESC [ 31 ^   ESC [ 31 @
1820       F18               ESC [ 32 ~   ESC [ 32 $    ESC [ 32 ^   ESC [ 32 @
1821       F19               ESC [ 33 ~   ESC [ 33 $    ESC [ 33 ^   ESC [ 33 @
1822       F20               ESC [ 34 ~   ESC [ 34 $    ESC [ 34 ^   ESC [ 34 @
1823                                                                 Application
1824       Up                ESC [ A      ESC [ a       ESC O a      ESC O A
1825       Down              ESC [ B      ESC [ b       ESC O b      ESC O B
1826       Right             ESC [ C      ESC [ c       ESC O c      ESC O C
1827       Left              ESC [ D      ESC [ d       ESC O d      ESC O D
1828       KP_Enter          ^M                                      ESC O M
1829       KP_F1             ESC O P                                 ESC O P
1830       KP_F2             ESC O Q                                 ESC O Q
1831       KP_F3             ESC O R                                 ESC O R
1832       KP_F4             ESC O S                                 ESC O S
1833       XK_KP_Multiply    *                                       ESC O j
1834       XK_KP_Add         +                                       ESC O k
1835       XK_KP_Separator   ,                                       ESC O l
1836       XK_KP_Subtract    -                                       ESC O m
1837       XK_KP_Decimal     .                                       ESC O n
1838       XK_KP_Divide      /                                       ESC O o
1839
1840       XK_KP_0           0                                       ESC O p
1841       XK_KP_1           1                                       ESC O q
1842       XK_KP_2           2                                       ESC O r
1843       XK_KP_3           3                                       ESC O s
1844       XK_KP_4           4                                       ESC O t
1845       XK_KP_5           5                                       ESC O u
1846       XK_KP_6           6                                       ESC O v
1847       XK_KP_7           7                                       ESC O w
1848       XK_KP_8           8                                       ESC O x
1849       XK_KP_9           9                                       ESC O y
1850

CONFIGURE OPTIONS

1852       General hint: if you get compile errors, then likely your configuration
1853       hasn't been tested well. Either try with "--enable-everything" or use
1854       the default configuration (i.e. no "--enable-xxx" or "--disable-xxx"
1855       switches). Of course, you should always report when a combination
1856       doesn't work, so it can be fixed. Marc Lehmann <rxvt@schmorp.de>.
1857
1858       All
1859
1860       --enable-everything
1861           Add (or remove) support for all non-multichoice options listed in
1862           "./configure --help", except for "--enable-assert" and
1863           "--enable-256-color".
1864
1865           You can specify this and then disable options you do not like by
1866           following this with the appropriate "--disable-..." arguments, or
1867           you can start with a minimal configuration by specifying
1868           "--disable-everything" and than adding just the "--enable-..."
1869           arguments you want.
1870
1871       --enable-xft (default: on)
1872           Add support for Xft (anti-aliased, among others) fonts. Xft fonts
1873           are slower and require lots of memory, but as long as you don't use
1874           them, you don't pay for them.
1875
1876       --enable-font-styles (default: on)
1877           Add support for bold, italic and bold italic font styles. The fonts
1878           can be set manually or automatically.
1879
1880       --with-codesets=CS,... (default: all)
1881           Compile in support for additional codeset (encoding) groups ("eu",
1882           "vn" are always compiled in, which includes most 8-bit character
1883           sets). These codeset tables are used for driving X11 core fonts,
1884           they are not required for Xft fonts, although having them compiled
1885           in lets rxvt-unicode choose replacement fonts more intelligently.
1886           Compiling them in will make your binary bigger (all of together
1887           cost about 700kB), but it doesn't increase memory usage unless you
1888           use a font requiring one of these encodings.
1889
1890           all      all available codeset groups
1891           zh       common chinese encodings
1892           zh_ext   rarely used but very big chinese encodings
1893           jp       common japanese encodings
1894           jp_ext   rarely used but big japanese encodings
1895           kr       korean encodings
1896
1897       --enable-xim (default: on)
1898           Add support for XIM (X Input Method) protocol. This allows using
1899           alternative input methods (e.g. kinput2) and will also correctly
1900           set up the input for people using dead keys or compose keys.
1901
1902       --enable-unicode3 (default: off)
1903           Recommended to stay off unless you really need non-BMP characters.
1904
1905           Enable direct support for displaying unicode codepoints above 65535
1906           (the basic multilingual page). This increases storage requirements
1907           per character from 2 to 4 bytes. X11 fonts do not yet support these
1908           extra characters, but Xft does.
1909
1910           Please note that rxvt-unicode can store unicode code points >65535
1911           even without this flag, but the number of such characters is
1912           limited to a few thousand (shared with combining characters, see
1913           next switch), and right now rxvt-unicode cannot display them
1914           (input/output and cut&paste still work, though).
1915
1916       --enable-combining (default: on)
1917           Enable automatic composition of combining characters into composite
1918           characters. This is required for proper viewing of text where
1919           accents are encoded as separate unicode characters. This is done by
1920           using precomposed characters when available or creating new pseudo-
1921           characters when no precomposed form exists.
1922
1923           Without --enable-unicode3, the number of additional precomposed
1924           characters is somewhat limited (the 6400 private use characters
1925           will be (ab-)used). With --enable-unicode3, no practical limit
1926           exists.
1927
1928           This option will also enable storage (but not display) of
1929           characters beyond plane 0 (>65535) when --enable-unicode3 was not
1930           specified.
1931
1932           The combining table also contains entries for arabic presentation
1933           forms, but these are not currently used. Bug me if you want these
1934           to be used (and tell me how these are to be used...).
1935
1936       --enable-fallback[=CLASS] (default: Rxvt)
1937           When reading resource settings, also read settings for class CLASS.
1938           To disable resource fallback use --disable-fallback.
1939
1940       --with-res-name=NAME (default: urxvt)
1941           Use the given name as default application name when reading
1942           resources. Specify --with-res-name=rxvt to replace rxvt.
1943
1944       --with-res-class=CLASS (default: URxvt)
1945           Use the given class as default application class when reading
1946           resources. Specify --with-res-class=Rxvt to replace rxvt.
1947
1948       --enable-utmp (default: on)
1949           Write user and tty to utmp file (used by programs like w) at start
1950           of rxvt execution and delete information when rxvt exits.
1951
1952       --enable-wtmp (default: on)
1953           Write user and tty to wtmp file (used by programs like last) at
1954           start of rxvt execution and write logout when rxvt exits.  This
1955           option requires --enable-utmp to also be specified.
1956
1957       --enable-lastlog (default: on)
1958           Write user and tty to lastlog file (used by programs like
1959           lastlogin) at start of rxvt execution.  This option requires
1960           --enable-utmp to also be specified.
1961
1962       --enable-afterimage (default: on)
1963           Add support for libAfterImage to be used for background images. It
1964           adds support for many file formats including JPG, PNG, SVG, TIFF,
1965           GIF, XPM, BMP, ICO, XCF, TGA and AfterStep image XML
1966           (<http://www.afterstep.org/visualdoc.php?show=asimagexml>).
1967
1968           Note that with this option enabled, urxvt's memory footprint might
1969           increase by a few megabytes even if no extra features are used
1970           (mostly due to third-party libraries used by libAI). Memory
1971           footprint may somewhat be lowered if libAfterImage is configured
1972           without support for SVG.
1973
1974       --enable-pixbuf (default: on)
1975           Add support for GDK-PixBuf to be used for background images.  It
1976           adds support for many file formats including JPG, PNG, TIFF, GIF,
1977           XPM, BMP, ICO and TGA.
1978
1979       --enable-transparency (default: on)
1980           Add support for using the root pixmap as background to simulate
1981           transparency.  Note that blur and blend effects depend on
1982           libAfterImage or on libXrender and on the availability of the
1983           RENDER extension in the X server.
1984
1985       --enable-fading (default: on)
1986           Add support for fading the text when focus is lost.
1987
1988       --enable-rxvt-scroll (default: on)
1989           Add support for the original rxvt scrollbar.
1990
1991       --enable-next-scroll (default: on)
1992           Add support for a NeXT-like scrollbar.
1993
1994       --enable-xterm-scroll (default: on)
1995           Add support for an Xterm-like scrollbar.
1996
1997       --disable-backspace-key
1998           Removes any handling of the backspace key by us - let the X server
1999           do it.
2000
2001       --disable-delete-key
2002           Removes any handling of the delete key by us - let the X server do
2003           it.
2004
2005       --disable-resources
2006           Removes any support for resource checking.
2007
2008       --disable-swapscreen
2009           Remove support for secondary/swap screen.
2010
2011       --enable-frills (default: on)
2012           Add support for many small features that are not essential but nice
2013           to have. Normally you want this, but for very small binaries you
2014           may want to disable this.
2015
2016           A non-exhaustive list of features enabled by "--enable-frills"
2017           (possibly in combination with other switches) is:
2018
2019             MWM-hints
2020             EWMH-hints (pid, utf8 names) and protocols (ping)
2021             urgency hint
2022             separate underline colour (-underlineColor)
2023             settable border widths and borderless switch (-w, -b, -bl)
2024             visual depth selection (-depth)
2025             settable extra linespacing (-lsp)
2026             iso-14755 5.1 (basic) support
2027             tripleclickwords (-tcw)
2028             settable insecure mode (-insecure)
2029             keysym remapping support
2030             cursor blinking and underline cursor (-bc, -uc)
2031             XEmbed support (-embed)
2032             user-pty (-pty-fd)
2033             hold on exit (-hold)
2034             compile in built-in block graphics
2035             skip builtin block graphics (-sbg)
2036             separate highlight colour (-highlightColor, -highlightTextColor)
2037             extended mouse reporting modes (1005 and 1015).
2038
2039           It also enables some non-essential features otherwise disabled,
2040           such as:
2041
2042             some round-trip time optimisations
2043             nearest colour allocation on pseudocolor screens
2044             UTF8_STRING support for selection
2045             sgr modes 90..97 and 100..107
2046             backindex and forwardindex escape sequences
2047             view change/zero scrollback escape sequences
2048             locale switching escape sequence
2049             window op and some xterm/OSC escape sequences
2050             rectangular selections
2051             trailing space removal for selections
2052             verbose X error handling
2053
2054       --enable-iso14755 (default: on)
2055           Enable extended ISO 14755 support (see urxvt(1)).  Basic support
2056           (section 5.1) is enabled by "--enable-frills", while support for
2057           5.2, 5.3 and 5.4 is enabled with this switch.
2058
2059       --enable-keepscrolling (default: on)
2060           Add support for continual scrolling of the display when you hold
2061           the mouse button down on a scrollbar arrow.
2062
2063       --enable-selectionscrolling (default: on)
2064           Add support for scrolling when the selection moves to the top or
2065           bottom of the screen.
2066
2067       --enable-mousewheel (default: on)
2068           Add support for scrolling via mouse wheel or buttons 4 & 5.
2069
2070       --enable-slipwheeling (default: on)
2071           Add support for continual scrolling (using the mouse wheel as an
2072           accelerator) while the control key is held down.  This option
2073           requires --enable-mousewheel to also be specified.
2074
2075       --enable-smart-resize (default: off)
2076           Add smart growth/shrink behaviour when resizing.  This should keep
2077           the window corner which is closest to a corner of the screen in a
2078           fixed position.
2079
2080       --enable-text-blink (default: on)
2081           Add support for blinking text.
2082
2083       --enable-pointer-blank (default: on)
2084           Add support to have the pointer disappear when typing or inactive.
2085
2086       --enable-perl (default: on)
2087           Enable an embedded perl interpreter. See the urxvtperl(3) manpage
2088           for more info on this feature, or the files in src/perl/ for the
2089           extensions that are installed by default.  The perl interpreter
2090           that is used can be specified via the "PERL" environment variable
2091           when running configure. Even when compiled in, perl will not be
2092           initialised when all extensions have been disabled "-pe ""
2093           --perl-ext-common """, so it should be safe to enable from a
2094           resource standpoint.
2095
2096       --enable-assert (default: off)
2097           Enables the assertions in the code, normally disabled. This switch
2098           is only useful when developing rxvt-unicode.
2099
2100       --enable-256-color (default: off)
2101           Force use of so-called 256 colour mode, to work around buggy
2102           applications that do not support termcap/terminfo, or simply
2103           improve support for applications hardcoding the xterm 256 colour
2104           table.
2105
2106           This switch breaks termcap/terminfo compatibility to
2107           "TERM=rxvt-unicode", and consequently sets "TERM" to
2108           "rxvt-unicode-256color" by default (doc/etc/ contains
2109           termcap/terminfo definitions for both).
2110
2111           It also results in higher memory usage and can slow down urxvt
2112           dramatically when more than six fonts are in use by a terminal
2113           instance.
2114
2115       --with-afterimage-config=DIR
2116           Look for the libAfterImage config script in DIR.
2117
2118       --with-name=NAME (default: urxvt)
2119           Set the basename for the installed binaries, resulting in "urxvt",
2120           "urxvtd" etc.). Specify "--with-name=rxvt" to replace with "rxvt".
2121
2122       --with-term=NAME (default: rxvt-unicode)
2123           Change the environmental variable for the terminal to NAME.
2124
2125       --with-terminfo=PATH
2126           Change the environmental variable for the path to the terminfo tree
2127           to PATH.
2128
2129       --with-x
2130           Use the X Window System (pretty much default, eh?).
2131

AUTHORS

2133       Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
2134       reworked it from the original Rxvt documentation, which was done by
2135       Geoff Wing <gcw@pobox.com>, who in turn used the XTerm documentation
2136       and other sources.
2137
2138
2139
21409.12                              2011-06-29                          urxvt(7)
Impressum