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

NAME

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

SYNOPSIS

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

DESCRIPTION

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

RXVT-UNICODE TECHNICAL REFERENCE

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

Mouse Reporting

1766       When mouse reporting is enabled and none of the extended mouse modes
1767       (1005, 1006, 1015) is active, urxvt sends the following sequence on a
1768       mouse event:
1769
1770       "ESC [ M <b> <x> <y>"
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           4    Shift
1787           8    Meta
1788           16   Control
1789           32   Motion Notify
1790           32   Double Click (rxvt extension), disabled by default
1791           64   Button1 is actually Button4, Button2 is actually Button5 etc.
1792
1793       "x" and "y" encode the coordinates (1|1 is the upper left corner, just
1794       as with cursor positioning):
1795
1796       Col = "<x> - SPACE"
1797       Row = "<y> - SPACE"
1798
1799       The parameters include an offset of 32 to ensure that they are
1800       printable characters.
1801
1802       Example: Shift-Button-1 press at top row, column 80.
1803
1804          ESC [ M $ p !
1805
1806       The largest coordinate that can be represented in this encoding is 223.
1807       The range can be extended by using one of the extended mouse modes,
1808       which should be enabled before enabling mouse reporting, for semi-
1809       obvious reasons.
1810
1811   Mode 1005
1812       If mode 1005 is active, urxvt sends the sequence
1813
1814       "ESC [ M <b> <x> <y>"
1815
1816       with the coordinates provided as characters in locale-encoding instead
1817       of 1 byte octets. This mode does not work sensibly in non-UTF-8 locales
1818       and should therefore be avoided.
1819
1820   Mode 1006
1821       If mode 1006 is active, urxvt sends the following sequences:
1822
1823       "ESC [ < <b>;<x>;<y> M"
1824           button press and motion
1825
1826       "ESC [ < <b>;<x>;<y> m"
1827           button release
1828
1829       where the parameters are provided as decimal numbers instead of octets
1830       and do not include an offset of 32.
1831
1832       The lower 2 bits of "b" encode the button number also on button release
1833       (instead of the value 3). The final character of the sequence (M or m)
1834       specifies the event type (press/motion or release).
1835
1836       Example: Shift-Button-1 press at top row, column 80.
1837
1838          ESC [ < 4 ; 80 ; 1 M
1839
1840   Mode 1015
1841       If mode 1015 is active, urxvt sends the sequence
1842
1843       "ESC [ <b>;<x>;<y> M"
1844
1845       where the parameters are provided as decimal numbers instead of octets
1846       and only "b" includes an offset of 32.
1847
1848       Example: Shift-Button-1 press at top row, column 80.
1849
1850          ESC [ 36 ; 80 ; 1 M
1851

Key Codes

1853       Note: Shift + F1-F10 generates F11-F20
1854
1855       For the keypad, use Shift to temporarily toggle Application Keypad mode
1856       and use Num_Lock to override Application Keypad mode, i.e. if Num_Lock
1857       is on the keypad is in normal mode. Also note that the values of
1858       BackSpace, Delete may have been compiled differently on your system.
1859
1860                      Normal       Shift         Control      Ctrl+Shift
1861       Tab            ^I           ESC [ Z       ^I           ESC [ Z
1862       BackSpace      ^?           ^?            ^H           ^H
1863       Find           ESC [ 1 ~    ESC [ 1 $     ESC [ 1 ^    ESC [ 1 @
1864       Insert         ESC [ 2 ~    paste         ESC [ 2 ^    ESC [ 2 @
1865       Execute        ESC [ 3 ~    ESC [ 3 $     ESC [ 3 ^    ESC [ 3 @
1866       Select         ESC [ 4 ~    ESC [ 4 $     ESC [ 4 ^    ESC [ 4 @
1867       Prior          ESC [ 5 ~    scroll-up     ESC [ 5 ^    ESC [ 5 @
1868       Next           ESC [ 6 ~    scroll-down   ESC [ 6 ^    ESC [ 6 @
1869       Home           ESC [ 7 ~    ESC [ 7 $     ESC [ 7 ^    ESC [ 7 @
1870       End            ESC [ 8 ~    ESC [ 8 $     ESC [ 8 ^    ESC [ 8 @
1871       Delete         ESC [ 3 ~    ESC [ 3 $     ESC [ 3 ^    ESC [ 3 @
1872       F1             ESC [ 11 ~   ESC [ 23 ~    ESC [ 11 ^   ESC [ 23 ^
1873       F2             ESC [ 12 ~   ESC [ 24 ~    ESC [ 12 ^   ESC [ 24 ^
1874       F3             ESC [ 13 ~   ESC [ 25 ~    ESC [ 13 ^   ESC [ 25 ^
1875       F4             ESC [ 14 ~   ESC [ 26 ~    ESC [ 14 ^   ESC [ 26 ^
1876       F5             ESC [ 15 ~   ESC [ 28 ~    ESC [ 15 ^   ESC [ 28 ^
1877       F6             ESC [ 17 ~   ESC [ 29 ~    ESC [ 17 ^   ESC [ 29 ^
1878       F7             ESC [ 18 ~   ESC [ 31 ~    ESC [ 18 ^   ESC [ 31 ^
1879       F8             ESC [ 19 ~   ESC [ 32 ~    ESC [ 19 ^   ESC [ 32 ^
1880       F9             ESC [ 20 ~   ESC [ 33 ~    ESC [ 20 ^   ESC [ 33 ^
1881       F10            ESC [ 21 ~   ESC [ 34 ~    ESC [ 21 ^   ESC [ 34 ^
1882       F11            ESC [ 23 ~   ESC [ 23 $    ESC [ 23 ^   ESC [ 23 @
1883       F12            ESC [ 24 ~   ESC [ 24 $    ESC [ 24 ^   ESC [ 24 @
1884       F13            ESC [ 25 ~   ESC [ 25 $    ESC [ 25 ^   ESC [ 25 @
1885       F14            ESC [ 26 ~   ESC [ 26 $    ESC [ 26 ^   ESC [ 26 @
1886       F15 (Help)     ESC [ 28 ~   ESC [ 28 $    ESC [ 28 ^   ESC [ 28 @
1887       F16 (Menu)     ESC [ 29 ~   ESC [ 29 $    ESC [ 29 ^   ESC [ 29 @
1888       F17            ESC [ 31 ~   ESC [ 31 $    ESC [ 31 ^   ESC [ 31 @
1889       F18            ESC [ 32 ~   ESC [ 32 $    ESC [ 32 ^   ESC [ 32 @
1890       F19            ESC [ 33 ~   ESC [ 33 $    ESC [ 33 ^   ESC [ 33 @
1891       F20            ESC [ 34 ~   ESC [ 34 $    ESC [ 34 ^   ESC [ 34 @
1892                                                              Application
1893       Up             ESC [ A      ESC [ a       ESC O a      ESC O A
1894
1895       Down           ESC [ B      ESC [ b       ESC O b      ESC O B
1896       Right          ESC [ C      ESC [ c       ESC O c      ESC O C
1897       Left           ESC [ D      ESC [ d       ESC O d      ESC O D
1898       KP_Enter       ^M                                      ESC O M
1899       KP_F1          ESC O P                                 ESC O P
1900       KP_F2          ESC O Q                                 ESC O Q
1901       KP_F3          ESC O R                                 ESC O R
1902       KP_F4          ESC O S                                 ESC O S
1903       KP_Multiply    *                                       ESC O j
1904       KP_Add         +                                       ESC O k
1905       KP_Separator   ,                                       ESC O l
1906       KP_Subtract    -                                       ESC O m
1907       KP_Decimal     .                                       ESC O n
1908       KP_Divide      /                                       ESC O o
1909       KP_0           0                                       ESC O p
1910       KP_1           1                                       ESC O q
1911       KP_2           2                                       ESC O r
1912       KP_3           3                                       ESC O s
1913       KP_4           4                                       ESC O t
1914       KP_5           5                                       ESC O u
1915       KP_6           6                                       ESC O v
1916       KP_7           7                                       ESC O w
1917       KP_8           8                                       ESC O x
1918       KP_9           9                                       ESC O y
1919

CONFIGURE OPTIONS

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

AUTHORS

2185       Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
2186       reworked it from the original Rxvt documentation, which was done by
2187       Geoff Wing <gcw@pobox.com>, who in turn used the XTerm documentation
2188       and other sources.
2189
2190
2191
21929.30                              2021-11-22                          urxvt(7)
Impressum