1urxvt-ml(7)                      RXVT-UNICODE                      urxvt-ml(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
27       The main manual page for urxvt-ml itself is available at
28       <http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.1.pod>.
29

RXVT-UNICODE/URXVT FREQUENTLY ASKED QUESTIONS

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

RXVT-UNICODE TECHNICAL REFERENCE

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

BACKGROUND IMAGE

1757       For the BACKGROUND IMAGE XTerm escape sequence "ESC ] 20 ; Pt ST" the
1758       value of "Pt" can be one of the following commands:
1759
1760       "?" display scale and position in the title
1761
1762       ";WxH+X+Y"
1763           change scale and/or position
1764
1765       "FILE;WxH+X+Y"
1766           change background image
1767

Mouse Reporting

1769       "ESC [ M <b> <x> <y>"
1770           report mouse position
1771
1772       The lower 2 bits of "<b>" indicate the button:
1773
1774       Button = "(<b> - SPACE) & 3"
1775
1776           0   Button1 pressed
1777           1   Button2 pressed
1778           2   Button3 pressed
1779           3   button released (X11 mouse report)
1780
1781       The upper bits of "<b>" indicate the modifiers when the button was
1782       pressed and are added together (X11 mouse report only):
1783
1784       State = "(<b> - SPACE) & ~3"
1785
1786
1787           4    Shift
1788           8    Meta
1789           16   Control
1790           32   Motion Notify
1791           32   Double Click (rxvt extension), disabled by default
1792           64   Button1 is actually Button4, Button2 is actually Button5 etc.
1793           Col = "<x> - SPACE"
1794
1795           Row = "<y> - SPACE"
1796

Key Codes

1798       Note: Shift + F1-F10 generates F11-F20
1799
1800       For the keypad, use Shift to temporarily toggle Application Keypad mode
1801       and use Num_Lock to override Application Keypad mode, i.e. if Num_Lock
1802       is on the keypad is in normal mode. Also note that the values of
1803       BackSpace, Delete may have been compiled differently on your system.
1804
1805                      Normal       Shift         Control      Ctrl+Shift
1806       Tab            ^I           ESC [ Z       ^I           ESC [ Z
1807       BackSpace      ^?           ^?            ^H           ^H
1808       Find           ESC [ 1 ~    ESC [ 1 $     ESC [ 1 ^    ESC [ 1 @
1809       Insert         ESC [ 2 ~    paste         ESC [ 2 ^    ESC [ 2 @
1810       Execute        ESC [ 3 ~    ESC [ 3 $     ESC [ 3 ^    ESC [ 3 @
1811       Select         ESC [ 4 ~    ESC [ 4 $     ESC [ 4 ^    ESC [ 4 @
1812       Prior          ESC [ 5 ~    scroll-up     ESC [ 5 ^    ESC [ 5 @
1813       Next           ESC [ 6 ~    scroll-down   ESC [ 6 ^    ESC [ 6 @
1814       Home           ESC [ 7 ~    ESC [ 7 $     ESC [ 7 ^    ESC [ 7 @
1815       End            ESC [ 8 ~    ESC [ 8 $     ESC [ 8 ^    ESC [ 8 @
1816       Delete         ESC [ 3 ~    ESC [ 3 $     ESC [ 3 ^    ESC [ 3 @
1817       F1             ESC [ 11 ~   ESC [ 23 ~    ESC [ 11 ^   ESC [ 23 ^
1818       F2             ESC [ 12 ~   ESC [ 24 ~    ESC [ 12 ^   ESC [ 24 ^
1819       F3             ESC [ 13 ~   ESC [ 25 ~    ESC [ 13 ^   ESC [ 25 ^
1820       F4             ESC [ 14 ~   ESC [ 26 ~    ESC [ 14 ^   ESC [ 26 ^
1821       F5             ESC [ 15 ~   ESC [ 28 ~    ESC [ 15 ^   ESC [ 28 ^
1822       F6             ESC [ 17 ~   ESC [ 29 ~    ESC [ 17 ^   ESC [ 29 ^
1823       F7             ESC [ 18 ~   ESC [ 31 ~    ESC [ 18 ^   ESC [ 31 ^
1824       F8             ESC [ 19 ~   ESC [ 32 ~    ESC [ 19 ^   ESC [ 32 ^
1825       F9             ESC [ 20 ~   ESC [ 33 ~    ESC [ 20 ^   ESC [ 33 ^
1826       F10            ESC [ 21 ~   ESC [ 34 ~    ESC [ 21 ^   ESC [ 34 ^
1827       F11            ESC [ 23 ~   ESC [ 23 $    ESC [ 23 ^   ESC [ 23 @
1828       F12            ESC [ 24 ~   ESC [ 24 $    ESC [ 24 ^   ESC [ 24 @
1829       F13            ESC [ 25 ~   ESC [ 25 $    ESC [ 25 ^   ESC [ 25 @
1830       F14            ESC [ 26 ~   ESC [ 26 $    ESC [ 26 ^   ESC [ 26 @
1831       F15 (Help)     ESC [ 28 ~   ESC [ 28 $    ESC [ 28 ^   ESC [ 28 @
1832       F16 (Menu)     ESC [ 29 ~   ESC [ 29 $    ESC [ 29 ^   ESC [ 29 @
1833       F17            ESC [ 31 ~   ESC [ 31 $    ESC [ 31 ^   ESC [ 31 @
1834       F18            ESC [ 32 ~   ESC [ 32 $    ESC [ 32 ^   ESC [ 32 @
1835       F19            ESC [ 33 ~   ESC [ 33 $    ESC [ 33 ^   ESC [ 33 @
1836       F20            ESC [ 34 ~   ESC [ 34 $    ESC [ 34 ^   ESC [ 34 @
1837                                                              Application
1838       Up             ESC [ A      ESC [ a       ESC O a      ESC O A
1839       Down           ESC [ B      ESC [ b       ESC O b      ESC O B
1840       Right          ESC [ C      ESC [ c       ESC O c      ESC O C
1841       Left           ESC [ D      ESC [ d       ESC O d      ESC O D
1842       KP_Enter       ^M                                      ESC O M
1843       KP_F1          ESC O P                                 ESC O P
1844       KP_F2          ESC O Q                                 ESC O Q
1845       KP_F3          ESC O R                                 ESC O R
1846       KP_F4          ESC O S                                 ESC O S
1847       KP_Multiply    *                                       ESC O j
1848       KP_Add         +                                       ESC O k
1849       KP_Separator   ,                                       ESC O l
1850       KP_Subtract    -                                       ESC O m
1851       KP_Decimal     .                                       ESC O n
1852       KP_Divide      /                                       ESC O o
1853       KP_0           0                                       ESC O p
1854       KP_1           1                                       ESC O q
1855       KP_2           2                                       ESC O r
1856       KP_3           3                                       ESC O s
1857       KP_4           4                                       ESC O t
1858       KP_5           5                                       ESC O u
1859       KP_6           6                                       ESC O v
1860       KP_7           7                                       ESC O w
1861       KP_8           8                                       ESC O x
1862       KP_9           9                                       ESC O y
1863

CONFIGURE OPTIONS

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

AUTHORS

2136       Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
2137       reworked it from the original Rxvt documentation, which was done by
2138       Geoff Wing <gcw@pobox.com>, who in turn used the XTerm documentation
2139       and other sources.
2140
2141
2142
21439.22                              2016-01-23                       urxvt-ml(7)
Impressum