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

RXVT-UNICODE TECHNICAL REFERENCE

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

BACKGROUND IMAGE

1730       For the BACKGROUND IMAGE XTerm escape sequence "ESC ] 20 ; Pt ST" the
1731       value of "Pt" can be the name of the background image file followed by
1732       a sequence of scaling/positioning commands separated by semi-colons.
1733       The scaling/positioning commands are as follows:
1734
1735       query scale/position
1736           ?
1737
1738       change scale and position
1739           WxH+X+Y
1740
1741           WxH+X (== WxH+X+X)
1742
1743           WxH (same as WxH+50+50)
1744
1745           W+X+Y (same as WxW+X+Y)
1746
1747           W+X (same as WxW+X+X)
1748
1749           W (same as WxW+50+50)
1750
1751       change position (absolute)
1752           =+X+Y
1753
1754           =+X (same as =+X+Y)
1755
1756       change position (relative)
1757           +X+Y
1758
1759           +X (same as +X+Y)
1760
1761       rescale (relative)
1762           Wx0 -> W *= (W/100)
1763
1764           0xH -> H *= (H/100)
1765
1766       For example:
1767
1768       \E]20;funky.jpg\a
1769           load funky.jpg as a tiled image
1770
1771       \E]20;mona.jpg;100\a
1772           load mona.jpg with a scaling of 100%
1773
1774       \E]20;;200;?\a
1775           rescale the current pixmap to 200% and display the image geometry
1776           in the title
1777

Mouse Reporting

1779       "ESC [ M <b> <x> <y>"
1780           report mouse position
1781
1782       The lower 2 bits of "<b>" indicate the button:
1783
1784       Button = "(<b> - SPACE) & 3"
1785
1786           0   Button1 pressed
1787           1   Button2 pressed
1788           2   Button3 pressed
1789           3   button released (X11 mouse report)
1790
1791       The upper bits of "<b>" indicate the modifiers when the button was
1792       pressed and are added together (X11 mouse report only):
1793
1794       State = "(<b> - SPACE) & 60"
1795
1796           4    Shift
1797           8    Meta
1798           16   Control
1799           32   Double Click (rxvt extension)
1800           Col = "<x> - SPACE"
1801
1802           Row = "<y> - SPACE"
1803

Key Codes

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

CONFIGURE OPTIONS

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

AUTHORS

2132       Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
2133       reworked it from the original Rxvt documentation, which was done by
2134       Geoff Wing <gcw@pobox.com>, who in turn used the XTerm documentation
2135       and other sources.
2136

POD ERRORS

2138       Hey! The above document had some coding errors, which are explained
2139       below:
2140
2141       Around line 2681:
2142           =back doesn't take any parameters, but you said =back  X<Mouse>
2143
2144       Around line 2759:
2145           =back doesn't take any parameters, but you said =back  X<KeyCodes>
2146
2147
2148
21499.02                              2008-01-29                          urxvt(7)
Impressum