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 (urxvt extension)
1419
1420       "ESC [ Ps L"
1421           Insert "Ps" Line(s) [default: 1] (IL)
1422
1423       "ESC [ Ps M"
1424           Delete "Ps" Line(s) [default: 1] (DL)
1425
1426       "ESC [ Ps P"
1427           Delete "Ps" Character(s) [default: 1] (DCH)
1428
1429       "ESC [ Ps;Ps;Ps;Ps;Ps T"
1430           Initiate . unimplemented Parameters are
1431           [func;startx;starty;firstrow;lastrow].
1432
1433       "ESC [ Ps W"
1434           Tabulator functions
1435
1436           Ps = 0   Tab Set (HTS)
1437           Ps = 2   Tab Clear (TBC), Clear Current Column (default)
1438           Ps = 5   Tab Clear (TBC), Clear All
1439
1440       "ESC [ Ps X"
1441           Erase "Ps" Character(s) [default: 1] (ECH)
1442
1443       "ESC [ Ps Z"
1444           Move backward "Ps" [default: 1] tab stops
1445
1446       "ESC [ Ps '"
1447           See "ESC [ Ps G"
1448
1449       "ESC [ Ps a"
1450           See "ESC [ Ps C"
1451
1452       "ESC [ Ps c"
1453           Send Device Attributes (DA) "Ps = 0" (or omitted): request
1454           attributes from terminal returns: "ESC [ ? 1 ; 2 c" (``I am a VT100
1455           with Advanced Video Option'')
1456
1457       "ESC [ Ps d"
1458           Cursor to Line "Ps" (VPA)
1459
1460       "ESC [ Ps e"
1461           See "ESC [ Ps A"
1462
1463       "ESC [ Ps;Ps f"
1464           Horizontal and Vertical Position [row;column] (HVP) [default: 1;1]
1465
1466       "ESC [ Ps g"
1467           Tab Clear (TBC)
1468
1469           Ps = 0   Clear Current Column (default)
1470           Ps = 3   Clear All (TBC)
1471
1472       "ESC [ Pm h"
1473           Set Mode (SM). See "ESC [ Pm l" sequence for description of "Pm".
1474
1475       "ESC [ Ps i"
1476           Printing. See also the "print-pipe" resource.
1477
1478           Ps = 0   print screen (MC0)
1479           Ps = 4   disable transparent print mode (MC4)
1480
1481           Ps = 5   enable transparent print mode (MC5)
1482
1483       "ESC [ Pm l"
1484           Reset Mode (RM)
1485
1486           "Ps = 4"
1487
1488               h   Insert Mode (SMIR)
1489               l   Replace Mode (RMIR)
1490           "Ps = 20" (partially implemented)
1491               h   Automatic Newline (LNM)
1492               l   Normal Linefeed (LNM)
1493       "ESC [ Pm m"
1494           Character Attributes (SGR)
1495
1496           Pm = 0             Normal (default)
1497           Pm = 1 / 21        On / Off Bold (bright fg)
1498           Pm = 3 / 23        On / Off Italic
1499           Pm = 4 / 24        On / Off Underline
1500           Pm = 5 / 25        On / Off Slow Blink (bright bg)
1501           Pm = 6 / 26        On / Off Rapid Blink (bright bg)
1502           Pm = 7 / 27        On / Off Inverse
1503           Pm = 8 / 27        On / Off Invisible (NYI)
1504           Pm = 30 / 40       fg/bg Black
1505           Pm = 31 / 41       fg/bg Red
1506           Pm = 32 / 42       fg/bg Green
1507           Pm = 33 / 43       fg/bg Yellow
1508           Pm = 34 / 44       fg/bg Blue
1509           Pm = 35 / 45       fg/bg Magenta
1510           Pm = 36 / 46       fg/bg Cyan
1511           Pm = 37 / 47       fg/bg White
1512           Pm = 38;5 / 48;5   set fg/bg to colour #m (ISO 8613-6)
1513           Pm = 38;2;R;G;B    set fg to 24-bit colour #RGB (ISO 8613-3)
1514           Pm = 48;2;R;G;B    set bg to 24-bit colour #RGB (ISO 8613-3)
1515           Pm = 39 / 49       fg/bg Default
1516           Pm = 90 / 100      fg/bg Bright Black
1517           Pm = 91 / 101      fg/bg Bright Red
1518           Pm = 92 / 102      fg/bg Bright Green
1519           Pm = 93 / 103      fg/bg Bright Yellow
1520           Pm = 94 / 104      fg/bg Bright Blue
1521           Pm = 95 / 105      fg/bg Bright Magenta
1522           Pm = 96 / 106      fg/bg Bright Cyan
1523           Pm = 97 / 107      fg/bg Bright White
1524           Pm = 99 / 109      fg/bg Bright Default
1525
1526       "ESC [ Ps n"
1527           Device Status Report (DSR)
1528
1529           Ps = 5   Status Report ESC [ 0 n (``OK'')
1530           Ps = 6   Report Cursor Position (CPR) [row;column] as ESC [ r ; c R
1531           Ps = 7   Request Display Name (insecure mode)
1532           Ps = 8   Request Version Number (place in window title)
1533
1534       "ESC [ Ps SP q"
1535           Set Cursor Style (DECSCUSR)
1536
1537           Ps = 0   Blink Block
1538           Ps = 1   Blink Block
1539           Ps = 2   Steady Block
1540           Ps = 3   Blink Underline
1541           Ps = 4   Steady Underline
1542           Ps = 5   Blink Bar (XTerm)
1543           Ps = 6   Steady Bar (XTerm)
1544
1545       "ESC [ Ps;Ps r"
1546           Set Scrolling Region [top;bottom] [default: full size of window]
1547           (CSR)
1548
1549       "ESC [ s"
1550           Save Cursor (SC)
1551
1552       "ESC [ Ps;Pt t"
1553           Window Operations
1554
1555           Ps = 1      Deiconify (map) window
1556           Ps = 2      Iconify window
1557           Ps = 3      ESC [ 3 ; X ; Y t Move window to (X|Y)
1558           Ps = 4      ESC [ 4 ; H ; W t Resize to WxH pixels
1559           Ps = 5      Raise window
1560           Ps = 6      Lower window
1561           Ps = 7      Refresh screen once
1562           Ps = 8      ESC [ 8 ; R ; C t Resize to R rows and C columns
1563           Ps = 11     Report window state (responds with Ps = 1 or Ps = 2)
1564           Ps = 13     Report window position (responds with Ps = 3)
1565           Ps = 14     Report window pixel size (responds with Ps = 4)
1566           Ps = 18     Report window text size (responds with Ps = 7)
1567           Ps = 19     Currently the same as Ps = 18, but responds with Ps = 9
1568           Ps = 20     Reports icon label (ESC ] L NAME 234) (insecure mode)
1569           Ps = 21     Reports window title (ESC ] l NAME 234) (insecure mode)
1570           Ps = 24..   Set window height to Ps rows
1571
1572       "ESC [ u"
1573           Restore Cursor
1574
1575       "ESC [ Ps x"
1576           Request Terminal Parameters (DECREQTPARM)
1577
1578   DEC Private Modes
1579       "ESC [ ? Pm h"
1580           DEC Private Mode Set (DECSET)
1581
1582       "ESC [ ? Pm l"
1583           DEC Private Mode Reset (DECRST)
1584
1585       "ESC [ ? Pm $ p"
1586           DEC Private Mode Request (DECRQM)
1587
1588       "ESC [ ? Pm r"
1589           Restore previously saved DEC Private Mode Values.
1590
1591       "ESC [ ? Pm s"
1592           Save DEC Private Mode Values.
1593
1594       "ESC [ ? Pm t"
1595           Toggle DEC Private Mode Values (rxvt extension).
1596
1597       where
1598
1599       "Pm = 1" (DECCKM)
1600
1601           h   Application Cursor Keys
1602           l   Normal Cursor Keys
1603       "Pm = 2" (DECANM)
1604           h   Enter VT52 mode
1605           l   Enter VT52 mode
1606       "Pm = 3" (DECCOLM)
1607           h   132 Column Mode
1608           l   80 Column Mode
1609       "Pm = 4" (DECSCLM)
1610           h   Smooth (Slow) Scroll
1611           l   Jump (Fast) Scroll
1612       "Pm = 5" (DECSCNM)
1613           h   Reverse Video
1614           l   Normal Video
1615       "Pm = 6" (DECOM)
1616           h   Origin Mode
1617           l   Normal Cursor Mode
1618       "Pm = 7" (DECAWM)
1619           h   Wraparound Mode
1620           l   No Wraparound Mode
1621       "Pm = 8" (DECARM) unimplemented
1622           h   Auto-repeat Keys
1623
1624           l   No Auto-repeat Keys
1625       "Pm = 9" (X10 XTerm mouse protocol)
1626           h   Send Mouse X & Y on button press.
1627           l   No mouse reporting.
1628       "Pm = 12" (AT&T 610, XTerm)
1629           h   Blinking cursor (cvvis)
1630           l   Steady cursor (cnorm)
1631       "Pm = 25" (DECTCEM)
1632           h   Visible cursor {cnorm/cvvis}
1633           l   Invisible cursor {civis}
1634       "Pm = 30" (rxvt)
1635           h   scrollBar visible
1636           l   scrollBar invisible
1637       "Pm = 35" (rxvt)
1638           h   Allow XTerm Shift+key sequences
1639           l   Disallow XTerm Shift+key sequences
1640       "Pm = 38" unimplemented
1641           Enter Tektronix Mode (DECTEK)
1642
1643       "Pm = 40"
1644
1645           h   Allow 80/132 Mode
1646           l   Disallow 80/132 Mode
1647       "Pm = 44" unimplemented
1648           h   Turn On Margin Bell
1649           l   Turn Off Margin Bell
1650       "Pm = 45" unimplemented
1651           h   Reverse-wraparound Mode
1652           l   No Reverse-wraparound Mode
1653       "Pm = 46" unimplemented
1654       "Pm = 47"
1655           h   Use Alternate Screen Buffer
1656           l   Use Normal Screen Buffer
1657
1658
1659       "Pm = 66" (DECNKM)
1660
1661           h   Application Keypad (DECKPAM/DECPAM) == ESC =
1662           l   Normal Keypad (DECKPNM/DECPNM) == ESC >
1663       "Pm = 67" (DECBKM)
1664           h   Backspace key sends BS
1665           l   Backspace key sends DEL
1666       "Pm = 1000" (X11 XTerm mouse protocol)
1667           h   Send Mouse X & Y on button press and release.
1668           l   No mouse reporting.
1669       "Pm = 1001" (X11 XTerm) unimplemented
1670           h   Use Hilite Mouse Tracking.
1671           l   No mouse reporting.
1672       "Pm = 1002" (X11 XTerm cell motion mouse tracking)
1673           h   Send Mouse X & Y on button press and release, and motion with a button pressed.
1674           l   No mouse reporting.
1675       "Pm = 1003" (X11 XTerm all motion mouse tracking)
1676           h   Send Mouse X & Y on button press and release, and motion.
1677           l   No mouse reporting.
1678       "Pm = 1004" (X11 XTerm focus in/focus out events)
1679           h   Send Mouse focus in/focus out events.
1680           l   Don't send focus events.
1681       "Pm = 1005" (X11 XTerm UTF-8 mouse mode) (Compile frills)
1682           Try to avoid this mode, it doesn't work sensibly in non-UTF-8
1683           locales. Use mode 1015 instead.
1684
1685           Unlike XTerm, coordinates larger than 2015 will work fine.
1686
1687           h   Enable mouse coordinates in locale-specific encoding.
1688           l   Disable mouse coordinates in locale-specific encoding.
1689
1690       "Pm = 1006" (X11 XTerm SGR mouse mode) (Compile frills)
1691
1692           h   Enable xterm SGR mouse coordinate reporting.
1693           l   Disable xterm SGR mouse coordinate reporting.
1694       "Pm = 1010" (rxvt)
1695           h   Don't scroll to bottom on TTY output
1696
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           Ps = 711   Set bold fontset to Pt. Similar to Ps = 50 (Compile styles).
1757           Ps = 712   Set italic fontset to Pt. Similar to Ps = 50 (Compile styles).
1758           Ps = 713   Set bold-italic fontset to Pt. Similar to Ps = 50 (Compile styles).
1759           Ps = 720   Move viewing window up by Pt lines, or clear scrollback buffer if Pt = 0 (Compile frills).
1760           Ps = 721   Move viewing window down by Pt lines, or clear scrollback buffer if Pt = 0 (Compile frills).
1761           Ps = 776   (urxvt 9.29) Returns info about the character cell size, replies with ESC ] 776 ; cell-width ; cell-height ; font-ascent ST
1762           Ps = 777   Call the perl extension with the given string, which should be of the form extension;parameters (Compile perl).
1763

Mouse Reporting

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

Key Codes

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

CONFIGURE OPTIONS

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

AUTHORS

2182       Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
2183       reworked it from the original Rxvt documentation, which was done by
2184       Geoff Wing <gcw@pobox.com>, who in turn used the XTerm documentation
2185       and other sources.
2186
2187
2188
21899.31                              2023-01-02                          urxvt(7)
Impressum