1urxvt-ml(7) RXVT-UNICODE urxvt-ml(7)
2
3
4
6 RXVT REFERENCE - FAQ, command sequences and other background
7 information
8
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
20 This document contains the FAQ, the RXVT TECHNICAL REFERENCE
21 documenting all escape sequences, and other background information.
22
23 The newest version of this document is also available on the World Wide
24 Web at
25 <http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod>.
26
27 The main manual page for urxvt-ml itself is available at
28 <http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.1.pod>.
29
31 Meta, Features & Commandline Issues
32 My question isn't answered here, can I ask a human?
33
34 Before sending me mail, you could go to IRC: "irc.freenode.net",
35 channel "#rxvt-unicode" has some rxvt-unicode enthusiasts that might be
36 interested in learning about new and exciting problems (but not FAQs
37 :).
38
39 I use Gentoo, and I have a problem...
40
41 There are two big problems with Gentoo Linux: first, most if not all
42 Gentoo systems are completely broken (missing or mismatched header
43 files, broken compiler etc. are just the tip of the iceberg); secondly,
44 it should be called Gentoo GNU/Linux.
45
46 For these reasons, it is impossible to support rxvt-unicode on Gentoo.
47 Problems appearing on Gentoo systems will usually simply be ignored
48 unless they can be reproduced on non-Gentoo systems.
49
50 Does it support tabs, can I have a tabbed rxvt-unicode?
51
52 Beginning with version 7.3, there is a perl extension that implements a
53 simple tabbed terminal. It is installed by default, so any of these
54 should give you tabs:
55
56 urxvt -pe tabbed
57
58 URxvt.perl-ext-common: default,tabbed
59
60 It will also work fine with tabbing functionality of many window
61 managers or similar tabbing programs, and its embedding-features allow
62 it to be embedded into other programs, as witnessed by doc/rxvt-tabbed
63 or the upcoming "Gtk2::URxvt" perl module, which features a tabbed
64 urxvt (murxvt) terminal as an example embedding application.
65
66 How do I know which rxvt-unicode version I'm using?
67
68 The version number is displayed with the usage (-h). Also the escape
69 sequence "ESC [ 8 n" sets the window title to the version number. When
70 using the urxvtc client, the version displayed is that of the daemon.
71
72 Rxvt-unicode uses gobs of memory, how can I reduce that?
73
74 Rxvt-unicode tries to obey the rule of not charging you for something
75 you don't use. One thing you should try is to configure out all
76 settings that you don't need, for example, Xft support is a resource
77 hog by design, when used. Compiling it out ensures that no Xft font
78 will be loaded accidentally when rxvt-unicode tries to find a font for
79 your characters.
80
81 Also, many people (me included) like large windows and even larger
82 scrollback buffers: Without "--enable-unicode3", rxvt-unicode will use
83 6 bytes per screen cell. For a 160x?? window this amounts to almost a
84 kilobyte per line. A scrollback buffer of 10000 lines will then (if
85 full) use 10 Megabytes of memory. With "--enable-unicode3" it gets
86 worse, as rxvt-unicode then uses 8 bytes per screen cell.
87
88 How can I start urxvtd in a race-free way?
89
90 Try "urxvtd -f -o", which tells urxvtd to open the display, create the
91 listening socket and then fork.
92
93 How can I start urxvtd automatically when I run urxvtc?
94
95 If you want to start urxvtd automatically whenever you run urxvtc and
96 the daemon isn't running yet, use this script:
97
98 #!/bin/sh
99 urxvtc "$@"
100 if [ $? -eq 2 ]; then
101 urxvtd -q -o -f
102 urxvtc "$@"
103 fi
104
105 This tries to create a new terminal, and if fails with exit status 2,
106 meaning it couldn't connect to the daemon, it will start the daemon and
107 re-run the command. Subsequent invocations of the script will re-use
108 the existing daemon.
109
110 How do I distinguish whether I'm running rxvt-unicode or a regular
111 xterm? I need this to decide about setting colours etc.
112
113 The original rxvt and rxvt-unicode always export the variable
114 "COLORTERM", so you can check and see if that is set. Note that several
115 programs, JED, slrn, Midnight Commander automatically check this
116 variable to decide whether or not to use colour.
117
118 How do I set the correct, full IP address for the DISPLAY variable?
119
120 If you've compiled rxvt-unicode with DISPLAY_IS_IP and have enabled
121 insecure mode then it is possible to use the following shell script
122 snippets to correctly set the display. If your version of rxvt-unicode
123 wasn't also compiled with ESCZ_ANSWER (as assumed in these snippets)
124 then the COLORTERM variable can be used to distinguish rxvt-unicode
125 from a regular xterm.
126
127 Courtesy of Chuck Blake <cblake@BBN.COM> with the following shell
128 script snippets:
129
130 # Bourne/Korn/POSIX family of shells:
131 [ ${TERM:-foo} = foo ] && TERM=xterm # assume an xterm if we don't know
132 if [ ${TERM:-foo} = xterm ]; then
133 stty -icanon -echo min 0 time 15 # see if enhanced rxvt or not
134 printf "\eZ"
135 read term_id
136 stty icanon echo
137 if [ ""${term_id} = '^[[?1;2C' -a ${DISPLAY:-foo} = foo ]; then
138 printf '\e[7n' # query the rxvt we are in for the DISPLAY string
139 read DISPLAY # set it in our local shell
140 fi
141 fi
142
143 How do I compile the manual pages on my own?
144
145 You need to have a recent version of perl installed as /usr/bin/perl,
146 one that comes with pod2man, pod2text and pod2xhtml (from Pod::Xhtml).
147 Then go to the doc subdirectory and enter "make alldoc".
148
149 Isn't rxvt-unicode supposed to be small? Don't all those features
150 bloat?
151
152 I often get asked about this, and I think, no, they didn't cause extra
153 bloat. If you compare a minimal rxvt and a minimal urxvt, you can see
154 that the urxvt binary is larger (due to some encoding tables always
155 being compiled in), but it actually uses less memory (RSS) after
156 startup. Even with "--disable-everything", this comparison is a bit
157 unfair, as many features unique to urxvt (locale, encoding conversion,
158 iso14755 etc.) are already in use in this mode.
159
160 text data bss drs rss filename
161 98398 1664 24 15695 1824 rxvt --disable-everything
162 188985 9048 66616 18222 1788 urxvt --disable-everything
163
164 When you "--enable-everything" (which is unfair, as this involves xft
165 and full locale/XIM support which are quite bloaty inside libX11 and my
166 libc), the two diverge, but not unreasonably so.
167
168 text data bss drs rss filename
169 163431 2152 24 20123 2060 rxvt --enable-everything
170 1035683 49680 66648 29096 3680 urxvt --enable-everything
171
172 The very large size of the text section is explained by the east-asian
173 encoding tables, which, if unused, take up disk space but nothing else
174 and can be compiled out unless you rely on X11 core fonts that use
175 those encodings. The BSS size comes from the 64k emergency buffer that
176 my c++ compiler allocates (but of course doesn't use unless you are out
177 of memory). Also, using an xft font instead of a core font immediately
178 adds a few megabytes of RSS. Xft indeed is responsible for a lot of RSS
179 even when not used.
180
181 Of course, due to every character using two or four bytes instead of
182 one, a large scrollback buffer will ultimately make rxvt-unicode use
183 more memory.
184
185 Compared to e.g. Eterm (5112k), aterm (3132k) and xterm (4680k), this
186 still fares rather well. And compared to some monsters like gnome-
187 terminal (21152k + extra 4204k in separate processes) or konsole
188 (22200k + extra 43180k in daemons that stay around after exit, plus
189 half a minute of startup time, including the hundreds of warnings it
190 spits out), it fares extremely well *g*.
191
192 Why C++, isn't that unportable/bloated/uncool?
193
194 Is this a question? :) It comes up very often. The simple answer is: I
195 had to write it, and C++ allowed me to write and maintain it in a
196 fraction of the time and effort (which is a scarce resource for me).
197 Put even shorter: It simply wouldn't exist without C++.
198
199 My personal stance on this is that C++ is less portable than C, but in
200 the case of rxvt-unicode this hardly matters, as its portability limits
201 are defined by things like X11, pseudo terminals, locale support and
202 unix domain sockets, which are all less portable than C++ itself.
203
204 Regarding the bloat, see the above question: It's easy to write
205 programs in C that use gobs of memory, and certainly possible to write
206 programs in C++ that don't. C++ also often comes with large libraries,
207 but this is not necessarily the case with GCC. Here is what rxvt links
208 against on my system with a minimal config:
209
210 libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00002aaaaabc3000)
211 libc.so.6 => /lib/libc.so.6 (0x00002aaaaadde000)
212 libdl.so.2 => /lib/libdl.so.2 (0x00002aaaab01d000)
213 /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)
214
215 And here is rxvt-unicode:
216
217 libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00002aaaaabc3000)
218 libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002aaaaada2000)
219 libc.so.6 => /lib/libc.so.6 (0x00002aaaaaeb0000)
220 libdl.so.2 => /lib/libdl.so.2 (0x00002aaaab0ee000)
221 /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)
222
223 No large bloated libraries (of course, none were linked in statically),
224 except maybe libX11 :)
225
226 Rendering, Font & Look and Feel Issues
227 I can't get transparency working, what am I doing wrong?
228
229 First of all, transparency isn't officially supported in rxvt-unicode,
230 so you are mostly on your own. Do not bug the author about it (but you
231 may bug everybody else). Also, if you can't get it working consider it
232 a rite of passage: ... and you failed.
233
234 Here are four ways to get transparency. Do read the manpage and option
235 descriptions for the programs mentioned and rxvt-unicode. Really, do
236 it!
237
238 1. Use transparent mode:
239
240 Esetroot wallpaper.jpg
241 urxvt -tr -tint red -sh 40
242
243 That works. If you think it doesn't, you lack transparency and tinting
244 support, or you are unable to read. This method requires that the
245 background-setting program sets the _XROOTPMAP_ID or ESETROOT_PMAP_ID
246 property. Compatible programs are Esetroot, hsetroot and feh.
247
248 2. Use a simple pixmap and emulate pseudo-transparency. This enables
249 you to use effects other than tinting and shading: Just
250 shade/tint/whatever your picture with gimp or any other tool:
251
252 convert wallpaper.jpg -blur 20x20 -modulate 30 background.jpg
253 urxvt -pixmap "background.jpg;:root"
254
255 That works. If you think it doesn't, you lack GDK-PixBuf support, or
256 you are unable to read.
257
258 3. Use an ARGB visual:
259
260 urxvt -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc
261
262 This requires XFT support, and the support of your X-server. If that
263 doesn't work for you, blame Xorg and Keith Packard. ARGB visuals aren't
264 there yet, no matter what they claim. Rxvt-Unicode contains the
265 necessary bugfixes and workarounds for Xft and Xlib to make it work,
266 but that doesn't mean that your WM has the required kludges in place.
267
268 4. Use xcompmgr and let it do the job:
269
270 xprop -frame -f _NET_WM_WINDOW_OPACITY 32c \
271 -set _NET_WM_WINDOW_OPACITY 0xc0000000
272
273 Then click on a window you want to make transparent. Replace 0xc0000000
274 by other values to change the degree of opacity. If it doesn't work and
275 your server crashes, you got to keep the pieces.
276
277 Why does rxvt-unicode sometimes leave pixel droppings?
278
279 Most fonts were not designed for terminal use, which means that
280 character size varies a lot. A font that is otherwise fine for terminal
281 use might contain some characters that are simply too wide. Rxvt-
282 unicode will avoid these characters. For characters that are just "a
283 bit" too wide a special "careful" rendering mode is used that redraws
284 adjacent characters.
285
286 All of this requires that fonts do not lie about character sizes,
287 however: Xft fonts often draw glyphs larger than their acclaimed
288 bounding box, and rxvt-unicode has no way of detecting this (the
289 correct way is to ask for the character bounding box, which
290 unfortunately is wrong in these cases).
291
292 It's not clear (to me at least), whether this is a bug in Xft,
293 freetype, or the respective font. If you encounter this problem you
294 might try using the "-lsp" option to give the font more height. If that
295 doesn't work, you might be forced to use a different font.
296
297 All of this is not a problem when using X11 core fonts, as their
298 bounding box data is correct.
299
300 How can I keep rxvt-unicode from using reverse video so much?
301
302 First of all, make sure you are running with the right terminal
303 settings ("TERM=rxvt-unicode"), which will get rid of most of these
304 effects. Then make sure you have specified colours for italic and bold,
305 as otherwise rxvt-unicode might use reverse video to simulate the
306 effect:
307
308 URxvt.colorBD: white
309 URxvt.colorIT: green
310
311 Some programs assume totally weird colours (red instead of blue), how
312 can I fix that?
313
314 For some unexplainable reason, some rare programs assume a very weird
315 colour palette when confronted with a terminal with more than the
316 standard 8 colours (rxvt-unicode supports 88). The right fix is, of
317 course, to fix these programs not to assume non-ISO colours without
318 very good reasons.
319
320 In the meantime, you can either edit your "rxvt-unicode" terminfo
321 definition to only claim 8 colour support or use "TERM=rxvt", which
322 will fix colours but keep you from using other rxvt-unicode features.
323
324 Can I switch the fonts at runtime?
325
326 Yes, using an escape sequence. Try something like this, which has the
327 same effect as using the "-fn" switch, and takes effect immediately:
328
329 printf '\33]50;%s\007' "9x15bold,xft:Kochi Gothic"
330
331 This is useful if you e.g. work primarily with japanese (and prefer a
332 japanese font), but you have to switch to chinese temporarily, where
333 japanese fonts would only be in your way.
334
335 You can think of this as a kind of manual ISO-2022 switching.
336
337 Why do italic characters look as if clipped?
338
339 Many fonts have difficulties with italic characters and hinting. For
340 example, the otherwise very nicely hinted font "xft:Bitstream Vera Sans
341 Mono" completely fails in its italic face. A workaround might be to
342 enable freetype autohinting, i.e. like this:
343
344 URxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true
345 URxvt.boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true
346
347 Can I speed up Xft rendering somehow?
348
349 Yes, the most obvious way to speed it up is to avoid Xft entirely, as
350 it is simply slow. If you still want Xft fonts you might try to disable
351 antialiasing (by appending ":antialias=false"), which saves lots of
352 memory and also speeds up rendering considerably.
353
354 Rxvt-unicode doesn't seem to anti-alias its fonts, what is wrong?
355
356 Rxvt-unicode will use whatever you specify as a font. If it needs to
357 fall back to its default font search list it will prefer X11 core
358 fonts, because they are small and fast, and then use Xft fonts. It has
359 antialiasing disabled for most of them, because the author thinks they
360 look best that way.
361
362 If you want antialiasing, you have to specify the fonts manually.
363
364 What's with this bold/blink stuff?
365
366 If no bold colour is set via "colorBD:", bold will invert text using
367 the standard foreground colour.
368
369 For the standard background colour, blinking will actually make the
370 text blink when compiled with "--enable-text-blink". Without
371 "--enable-text-blink", the blink attribute will be ignored.
372
373 On ANSI colours, bold/blink attributes are used to set high-intensity
374 foreground/background colours.
375
376 color0-7 are the low-intensity colours.
377
378 color8-15 are the corresponding high-intensity colours.
379
380 I don't like the screen colours. How do I change them?
381
382 You can change the screen colours at run-time using ~/.Xdefaults
383 resources (or as long-options).
384
385 Here are values that are supposed to resemble a VGA screen, including
386 the murky brown that passes for low-intensity yellow:
387
388 URxvt.color0: #000000
389 URxvt.color1: #A80000
390 URxvt.color2: #00A800
391 URxvt.color3: #A8A800
392 URxvt.color4: #0000A8
393 URxvt.color5: #A800A8
394 URxvt.color6: #00A8A8
395 URxvt.color7: #A8A8A8
396
397 URxvt.color8: #000054
398 URxvt.color9: #FF0054
399 URxvt.color10: #00FF54
400 URxvt.color11: #FFFF54
401 URxvt.color12: #0000FF
402 URxvt.color13: #FF00FF
403 URxvt.color14: #00FFFF
404 URxvt.color15: #FFFFFF
405
406 And here is a more complete set of non-standard colours.
407
408 URxvt.cursorColor: #dc74d1
409 URxvt.pointerColor: #dc74d1
410 URxvt.background: #0e0e0e
411 URxvt.foreground: #4ad5e1
412 URxvt.color0: #000000
413 URxvt.color8: #8b8f93
414 URxvt.color1: #dc74d1
415 URxvt.color9: #dc74d1
416 URxvt.color2: #0eb8c7
417 URxvt.color10: #0eb8c7
418 URxvt.color3: #dfe37e
419 URxvt.color11: #dfe37e
420 URxvt.color5: #9e88f0
421 URxvt.color13: #9e88f0
422 URxvt.color6: #73f7ff
423 URxvt.color14: #73f7ff
424 URxvt.color7: #e1dddd
425 URxvt.color15: #e1dddd
426
427 They have been described (not by me) as "pretty girly".
428
429 Why do some characters look so much different than others?
430
431 See next entry.
432
433 How does rxvt-unicode choose fonts?
434
435 Most fonts do not contain the full range of Unicode, which is fine.
436 Chances are that the font you (or the admin/package maintainer of your
437 system/os) have specified does not cover all the characters you want to
438 display.
439
440 rxvt-unicode makes a best-effort try at finding a replacement font.
441 Often the result is fine, but sometimes the chosen font looks
442 bad/ugly/wrong. Some fonts have totally strange characters that don't
443 resemble the correct glyph at all, and rxvt-unicode lacks the
444 artificial intelligence to detect that a specific glyph is wrong: it
445 has to believe the font that the characters it claims to contain indeed
446 look correct.
447
448 In that case, select a font of your taste and add it to the font list,
449 e.g.:
450
451 urxvt -fn basefont,font2,font3...
452
453 When rxvt-unicode sees a character, it will first look at the base
454 font. If the base font does not contain the character, it will go to
455 the next font, and so on. Specifying your own fonts will also speed up
456 this search and use less resources within rxvt-unicode and the
457 X-server.
458
459 The only limitation is that none of the fonts may be larger than the
460 base font, as the base font defines the terminal character cell size,
461 which must be the same due to the way terminals work.
462
463 Why do some chinese characters look so different than others?
464
465 This is because there is a difference between script and language --
466 rxvt-unicode does not know which language the text that is output is,
467 as it only knows the unicode character codes. If rxvt-unicode first
468 sees a japanese/chinese character, it might choose a japanese font for
469 display. Subsequent japanese characters will use that font. Now, many
470 chinese characters aren't represented in japanese fonts, so when the
471 first non-japanese character comes up, rxvt-unicode will look for a
472 chinese font -- unfortunately at this point, it will still use the
473 japanese font for chinese characters that are also in the japanese
474 font.
475
476 The workaround is easy: just tag a chinese font at the end of your font
477 list (see the previous question). The key is to view the font list as a
478 preference list: If you expect more japanese, list a japanese font
479 first. If you expect more chinese, put a chinese font first.
480
481 In the future it might be possible to switch language preferences at
482 runtime (the internal data structure has no problem with using
483 different fonts for the same character at the same time, but no
484 interface for this has been designed yet).
485
486 Until then, you might get away with switching fonts at runtime (see
487 "Can I switch the fonts at runtime?" later in this document).
488
489 How can I make mplayer display video correctly?
490
491 We are working on it, in the meantime, as a workaround, use something
492 like:
493
494 urxvt -b 600 -geometry 20x1 -e sh -c 'mplayer -wid $WINDOWID file...'
495
496 Why is the cursor now blinking in emacs/vi/...?
497
498 This is likely caused by your editor/program's use of the "cvvis"
499 terminfo capability. Emacs uses it by default, as well as some versions
500 of vi and possibly other programs.
501
502 In emacs, you can switch that off by adding this to your ".emacs" file:
503
504 (setq visible-cursor nil)
505
506 For other programs, if they do not have an option, your have to remove
507 the "cvvis" capability from the terminfo description.
508
509 When urxvt first added the blinking cursor option, it didn't add a
510 "cvvis" capability, which served no purpose before. Version 9.21
511 introduced "cvvis" (and the ability to control blinking independent of
512 cursor shape) for compatibility with other terminals, which
513 traditionally use a blinking cursor for "cvvis". This also reflects the
514 intent of programs such as emacs, who expect "cvvis" to enable a
515 blinking cursor.
516
517 Keyboard, Mouse & User Interaction
518 The new selection selects pieces that are too big, how can I select
519 single words?
520
521 If you want to select e.g. alphanumeric words, you can use the
522 following setting:
523
524 URxvt.selection.pattern-0: ([[:word:]]+)
525
526 If you click more than twice, the selection will be extended more and
527 more.
528
529 To get a selection that is very similar to the old code, try this
530 pattern:
531
532 URxvt.selection.pattern-0: ([^"&'()*,;<=>?@[\\\\]^`{|})]+)
533
534 Please also note that the LeftClick Shift-LeftClick combination also
535 selects words like the old code.
536
537 I don't like the new selection/popups/hotkeys/perl, how do I
538 change/disable it?
539
540 You can disable the perl extension completely by setting the perl-ext-
541 common resource to the empty string, which also keeps rxvt-unicode from
542 initialising perl, saving memory.
543
544 If you only want to disable specific features, you first have to
545 identify which perl extension is responsible. For this, read the
546 section PREPACKAGED EXTENSIONS in the urxvtperl(3) manpage. For
547 example, to disable the selection-popup and option-popup, specify this
548 perl-ext-common resource:
549
550 URxvt.perl-ext-common: default,-selection-popup,-option-popup
551
552 This will keep the default extensions, but disable the two popup
553 extensions. Some extensions can also be configured, for example,
554 scrollback search mode is triggered by M-s. You can move it to any
555 other combination by adding a keysym resource that binds the desired
556 combination to the "start" action of "searchable-scrollback" and
557 another one that binds M-s to the "builtin:" action:
558
559 URxvt.keysym.CM-s: searchable-scrollback:start
560 URxvt.keysym.M-s: builtin:
561
562 The cursor moves when selecting text in the current input line, how do
563 I switch this off?
564
565 See next entry.
566
567 During rlogin/ssh/telnet/etc. sessions, clicking near the cursor
568 outputs strange escape sequences, how do I fix this?
569
570 These are caused by the "readline" perl extension. Under normal
571 circumstances, it will move your cursor around when you click into the
572 line that contains it. It tries hard not to do this at the wrong
573 moment, but when running a program that doesn't parse cursor movements
574 or in some cases during rlogin sessions, it fails to detect this
575 properly.
576
577 You can permanently switch this feature off by disabling the "readline"
578 extension:
579
580 URxvt.perl-ext-common: default,-readline
581
582 My numeric keypad acts weird and generates differing output?
583
584 Some Debian GNU/Linux users seem to have this problem, although no
585 specific details were reported so far. It is possible that this is
586 caused by the wrong "TERM" setting, although the details of whether and
587 how this can happen are unknown, as "TERM=rxvt" should offer a
588 compatible keymap. See the answer to the previous question, and please
589 report if that helped.
590
591 My Compose (Multi_key) key is no longer working.
592
593 The most common causes for this are that either your locale is not set
594 correctly, or you specified a preeditType that is not supported by your
595 input method. For example, if you specified OverTheSpot and your input
596 method (e.g. the default input method handling Compose keys) does not
597 support this (for instance because it is not visual), then rxvt-unicode
598 will continue without an input method.
599
600 In this case either do not specify a preeditType or specify more than
601 one pre-edit style, such as OverTheSpot,Root,None.
602
603 If it still doesn't work, then maybe your input method doesn't support
604 compose sequences - to fall back to the built-in one, make sure you
605 don't specify an input method via "-im" or "XMODIFIERS".
606
607 I cannot type "Ctrl-Shift-2" to get an ASCII NUL character due to ISO
608 14755
609
610 Either try "Ctrl-2" alone (it often is mapped to ASCII NUL even on
611 international keyboards) or simply use ISO 14755 support to your
612 advantage, typing <Ctrl-Shift-0> to get a ASCII NUL. This works for
613 other codes, too, such as "Ctrl-Shift-1-d" to type the default telnet
614 escape character and so on.
615
616 Mouse cut/paste suddenly no longer works.
617
618 Make sure that mouse reporting is actually turned off since killing
619 some editors prematurely may leave it active. I've heard that tcsh may
620 use mouse reporting unless it is otherwise specified. A quick check is
621 to see if cut/paste works when the Alt or Shift keys are pressed.
622
623 What's with the strange Backspace/Delete key behaviour?
624
625 Assuming that the physical Backspace key corresponds to the Backspace
626 keysym (not likely for Linux ... see the following question) there are
627 two standard values that can be used for Backspace: "^H" and "^?".
628
629 Historically, either value is correct, but rxvt-unicode adopts the
630 debian policy of using "^?" when unsure, because it's the one and only
631 correct choice :).
632
633 It is possible to toggle between "^H" and "^?" with the DECBKM private
634 mode:
635
636 # use Backspace = ^H
637 $ stty erase ^H
638 $ printf "\e[?67h"
639
640 # use Backspace = ^?
641 $ stty erase ^?
642 $ printf "\e[?67l"
643
644 This helps satisfy some of the Backspace discrepancies that occur, but
645 if you use Backspace = "^H", make sure that the termcap/terminfo value
646 properly reflects that.
647
648 The Delete key is a another casualty of the ill-defined Backspace
649 problem. To avoid confusion between the Backspace and Delete keys, the
650 Delete key has been assigned an escape sequence to match the vt100 for
651 Execute ("ESC [ 3 ~") and is in the supplied termcap/terminfo.
652
653 Some other Backspace problems:
654
655 some editors use termcap/terminfo, some editors (vim I'm told) expect
656 Backspace = ^H, GNU Emacs (and Emacs-like editors) use ^H for help.
657
658 Perhaps someday this will all be resolved in a consistent manner.
659
660 I don't like the key-bindings. How do I change them?
661
662 There are some compile-time selections available via configure. Unless
663 you have run "configure" with the "--disable-resources" option you can
664 use the `keysym' resource to alter the keystrings associated with
665 keysyms.
666
667 Here's an example for a URxvt session started using "urxvt -name URxvt"
668
669 URxvt.keysym.Prior: \033[5~
670 URxvt.keysym.Next: \033[6~
671 URxvt.keysym.Home: \033[7~
672 URxvt.keysym.End: \033[8~
673 URxvt.keysym.Up: \033[A
674 URxvt.keysym.Down: \033[B
675 URxvt.keysym.Right: \033[C
676 URxvt.keysym.Left: \033[D
677
678 See some more examples in the documentation for the keysym resource.
679
680 I'm using keyboard model XXX that has extra Prior/Next/Insert keys. How
681 do I make use of them? For example, the Sun Keyboard type 4 has the
682 following map
683
684 KP_Insert == Insert
685 F22 == Print
686 F27 == Home
687 F29 == Prior
688 F33 == End
689 F35 == Next
690
691 Rather than have rxvt-unicode try to accommodate all the various
692 possible keyboard mappings, it is better to use `xmodmap' to remap the
693 keys as required for your particular machine.
694
695 Terminal Configuration
696 Can I see a typical configuration?
697
698 The default configuration tries to be xterm-like, which I don't like
699 that much, but it's least surprise to regular users.
700
701 As a rxvt or rxvt-unicode user, you are practically supposed to invest
702 time into customising your terminal. To get you started, here is the
703 author's .Xdefaults entries, with comments on what they do. It's
704 certainly not typical, but what's typical...
705
706 URxvt.cutchars: "()*,<>[]{}|'
707 URxvt.print-pipe: cat >/tmp/xxx
708
709 These are just for testing stuff.
710
711 URxvt.imLocale: ja_JP.UTF-8
712 URxvt.preeditType: OnTheSpot,None
713
714 This tells rxvt-unicode to use a special locale when communicating with
715 the X Input Method, and also tells it to only use the OnTheSpot pre-
716 edit type, which requires the "xim-onthespot" perl extension but
717 rewards me with correct-looking fonts.
718
719 URxvt.perl-lib: /root/lib/urxvt
720 URxvt.perl-ext-common: default,selection-autotransform,selection-pastebin,xim-onthespot,remote-clipboard
721 URxvt.selection.pattern-0: ( at .*? line \\d+)
722 URxvt.selection.pattern-1: ^(/[^:]+):\
723 URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/:e \\Q$1\\E\\x0d:$2\\x0d/
724 URxvt.selection-autotransform.1: s/^ at (.*?) line (\\d+)$/:e \\Q$1\\E\\x0d:$2\\x0d/
725
726 This is my perl configuration. The first two set the perl library
727 directory and also tells urxvt to use a large number of extensions. I
728 develop for myself mostly, so I actually use most of the extensions I
729 write.
730
731 The selection stuff mainly makes the selection perl-error-message aware
732 and tells it to convert perl error messages into vi-commands to load
733 the relevant file and go to the error line number.
734
735 URxvt.scrollstyle: plain
736 URxvt.secondaryScroll: true
737
738 As the documentation says: plain is the preferred scrollbar for the
739 author. The "secondaryScroll" configures urxvt to scroll in full-screen
740 apps, like screen, so lines scrolled out of screen end up in urxvt's
741 scrollback buffer.
742
743 URxvt.background: #000000
744 URxvt.foreground: gray90
745 URxvt.color7: gray90
746 URxvt.colorBD: #ffffff
747 URxvt.cursorColor: #e0e080
748 URxvt.throughColor: #8080f0
749 URxvt.highlightColor: #f0f0f0
750
751 Some colours. Not sure which ones are being used or even non-defaults,
752 but these are in my .Xdefaults. Most notably, they set
753 foreground/background to light gray/black, and also make sure that the
754 colour 7 matches the default foreground colour.
755
756 URxvt.underlineColor: yellow
757
758 Another colour, makes underline lines look different. Sometimes hurts,
759 but is mostly a nice effect.
760
761 URxvt.geometry: 154x36
762 URxvt.loginShell: false
763 URxvt.meta: ignore
764 URxvt.utmpInhibit: true
765
766 Uh, well, should be mostly self-explanatory. By specifying some
767 defaults manually, I can quickly switch them for testing.
768
769 URxvt.saveLines: 8192
770
771 A large scrollback buffer is essential. Really.
772
773 URxvt.mapAlert: true
774
775 The only case I use it is for my IRC window, which I like to keep
776 iconified till people msg me (which beeps).
777
778 URxvt.visualBell: true
779
780 The audible bell is often annoying, especially when in a crowd.
781
782 URxvt.insecure: true
783
784 Please don't hack my mutt! Ooops...
785
786 URxvt.pastableTabs: false
787
788 I once thought this is a great idea.
789
790 urxvt.font: 9x15bold,\
791 -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso10646-1,\
792 -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1, \
793 [codeset=JISX0208]xft:Kochi Gothic, \
794 xft:Bitstream Vera Sans Mono:autohint=true, \
795 xft:Code2000:antialias=false
796 urxvt.boldFont: -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-15
797 urxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true
798 urxvt.boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true
799
800 I wrote rxvt-unicode to be able to specify fonts exactly. So don't be
801 overwhelmed. A special note: the "9x15bold" mentioned above is actually
802 the version from XFree-3.3, as XFree-4 replaced it by a totally
803 different font (different glyphs for ";" and many other harmless
804 characters), while the second font is actually the "9x15bold" from
805 XFree4/XOrg. The bold version has less chars than the medium version,
806 so I use it for rare characters, too. When editing sources with vim, I
807 use italic for comments and other stuff, which looks quite good with
808 Bitstream Vera anti-aliased.
809
810 Terminus is a quite bad font (many very wrong glyphs), but for most of
811 my purposes, it works, and gives a different look, as my normal (Non-
812 bold) font is already bold, and I want to see a difference between bold
813 and normal fonts.
814
815 Please note that I used the "urxvt" instance name and not the "URxvt"
816 class name. That is because I use different configs for different
817 purposes, for example, my IRC window is started with "-name IRC", and
818 uses these defaults:
819
820 IRC*title: IRC
821 IRC*geometry: 87x12+535+542
822 IRC*saveLines: 0
823 IRC*mapAlert: true
824 IRC*font: suxuseuro
825 IRC*boldFont: suxuseuro
826 IRC*colorBD: white
827 IRC*keysym.M-C-1: command:\033]710;suxuseuro\007\033]711;suxuseuro\007
828 IRC*keysym.M-C-2: command:\033]710;9x15bold\007\033]711;9x15bold\007
829
830 "Alt-Ctrl-1" and "Alt-Ctrl-2" switch between two different font sizes.
831 "suxuseuro" allows me to keep an eye (and actually read) stuff while
832 keeping a very small window. If somebody pastes something complicated
833 (e.g. japanese), I temporarily switch to a larger font.
834
835 The above is all in my ".Xdefaults" (I don't use ".Xresources" nor
836 "xrdb"). I also have some resources in a separate ".Xdefaults-hostname"
837 file for different hosts, for example, on my main desktop, I use:
838
839 URxvt.keysym.C-M-q: command:\033[3;5;5t
840 URxvt.keysym.C-M-y: command:\033[3;5;606t
841 URxvt.keysym.C-M-e: command:\033[3;1605;5t
842 URxvt.keysym.C-M-c: command:\033[3;1605;606t
843 URxvt.keysym.C-M-p: perl:test
844
845 The first for keysym definitions allow me to quickly bring some windows
846 in the layout I like most. Ion users might start laughing but will stop
847 immediately when I tell them that I use my own Fvwm2 module for much
848 the same effect as Ion provides, and I only very rarely use the above
849 key combinations :->
850
851 Why doesn't rxvt-unicode read my resources?
852
853 Well, why, indeed? It does, in a way very similar to other X
854 applications. Most importantly, this means that if you or your OS loads
855 resources into the X display (the right way to do it), rxvt-unicode
856 will ignore any resource files in your home directory. It will only
857 read $HOME/.Xdefaults when no resources are attached to the display.
858
859 If you have or use an $HOME/.Xresources file, chances are that
860 resources are loaded into your X-server. In this case, you have to re-
861 login after every change (or run xrdb -merge $HOME/.Xresources).
862
863 Also consider the form resources have to use:
864
865 URxvt.resource: value
866
867 If you want to use another form (there are lots of different ways of
868 specifying resources), make sure you understand whether and why it
869 works. If unsure, use the form above.
870
871 When I log-in to another system it tells me about missing terminfo
872 data?
873
874 The terminal description used by rxvt-unicode is not as widely
875 available as that for xterm, or even rxvt (for which the same problem
876 often arises).
877
878 The correct solution for this problem is to install the terminfo, this
879 can be done by simply installing rxvt-unicode on the remote system as
880 well (in case you have a nice package manager ready), or you can
881 install the terminfo database manually like this (with ncurses infocmp.
882 works as user and root):
883
884 REMOTE=remotesystem.domain
885 infocmp rxvt-unicode | ssh $REMOTE "mkdir -p .terminfo && cat >/tmp/ti && tic /tmp/ti"
886
887 One some systems you might need to set $TERMINFO to the full path of
888 $HOME/.terminfo for this to work.
889
890 If you cannot or do not want to do this, then you can simply set
891 "TERM=rxvt" or even "TERM=xterm", and live with the small number of
892 problems arising, which includes wrong keymapping, less and different
893 colours and some refresh errors in fullscreen applications. It's a nice
894 quick-and-dirty workaround for rare cases, though.
895
896 If you always want to do this (and are fine with the consequences) you
897 can either recompile rxvt-unicode with the desired TERM value or use a
898 resource to set it:
899
900 URxvt.termName: rxvt
901
902 If you don't plan to use rxvt (quite common...) you could also replace
903 the rxvt terminfo file with the rxvt-unicode one and use "TERM=rxvt".
904
905 nano fails with "Error opening terminal: rxvt-unicode"
906
907 This exceptionally confusing and useless error message is printed by
908 nano when it can't find the terminfo database. Nothing is wrong with
909 your terminal, read the previous answer for a solution.
910
911 "tic" outputs some error when compiling the terminfo entry.
912
913 Most likely it's the empty definition for "enacs=". Just replace it by
914 "enacs=\E[0@" and try again.
915
916 "bash"'s readline does not work correctly under urxvt.
917
918 See next entry.
919
920 I need a termcap file entry.
921
922 One reason you might want this is that some distributions or operating
923 systems still compile some programs using the long-obsoleted termcap
924 library (Fedora's bash is one example) and rely on a termcap entry for
925 "rxvt-unicode".
926
927 You could use rxvt's termcap entry with reasonable results in many
928 cases. You can also create a termcap entry by using terminfo's infocmp
929 program like this:
930
931 infocmp -C rxvt-unicode
932
933 Or you could use the termcap entry in doc/etc/rxvt-unicode.termcap,
934 generated by the command above.
935
936 Why does "ls" no longer have coloured output?
937
938 The "ls" in the GNU coreutils unfortunately doesn't use terminfo to
939 decide whether a terminal has colour, but uses its own configuration
940 file. Needless to say, "rxvt-unicode" is not in its default file (among
941 with most other terminals supporting colour). Either add:
942
943 TERM rxvt-unicode
944
945 to "/etc/DIR_COLORS" or simply add:
946
947 alias ls='ls --color=auto'
948
949 to your ".profile" or ".bashrc".
950
951 Why doesn't vim/emacs etc. use the 88 colour mode?
952
953 See next entry.
954
955 Why doesn't vim/emacs etc. make use of italic?
956
957 See next entry.
958
959 Why are the secondary screen-related options not working properly?
960
961 Make sure you are using "TERM=rxvt-unicode". Some pre-packaged
962 distributions break rxvt-unicode by setting "TERM" to "rxvt", which
963 doesn't have these extra features. Unfortunately, some of these
964 furthermore fail to even install the "rxvt-unicode" terminfo file, so
965 you will need to install it on your own (See the question When I log-in
966 to another system it tells me about missing terminfo data? on how to do
967 this).
968
969 Encoding / Locale / Input Method Issues
970 Rxvt-unicode does not seem to understand the selected encoding?
971
972 See next entry.
973
974 Unicode does not seem to work?
975
976 If you encounter strange problems like typing an accented character but
977 getting two unrelated other characters or similar, or if program output
978 is subtly garbled, then you should check your locale settings.
979
980 Rxvt-unicode must be started with the same "LC_CTYPE" setting as the
981 programs running in it. Often rxvt-unicode is started in the "C"
982 locale, while the login script running within the rxvt-unicode window
983 changes the locale to something else, e.g. "en_GB.UTF-8". Needless to
984 say, this is not going to work, and is the most common cause for
985 problems.
986
987 The best thing is to fix your startup environment, as you will likely
988 run into other problems. If nothing works you can try this in your
989 .profile.
990
991 printf '\33]701;%s\007' "$LC_CTYPE" # $LANG or $LC_ALL are worth a try, too
992
993 If this doesn't work, then maybe you use a "LC_CTYPE" specification not
994 supported on your systems. Some systems have a "locale" command which
995 displays this (also, "perl -e0" can be used to check locale settings,
996 as it will complain loudly if it cannot set the locale). If it displays
997 something like:
998
999 locale: Cannot set LC_CTYPE to default locale: ...
1000
1001 Then the locale you specified is not supported on your system.
1002
1003 If nothing works and you are sure that everything is set correctly then
1004 you will need to remember a little known fact: Some programs just don't
1005 support locales :(
1006
1007 How does rxvt-unicode determine the encoding to use?
1008
1009 See next entry.
1010
1011 Is there an option to switch encodings?
1012
1013 Unlike some other terminals, rxvt-unicode has no encoding switch, and
1014 no specific "utf-8" mode, such as xterm. In fact, it doesn't even know
1015 about UTF-8 or any other encodings with respect to terminal I/O.
1016
1017 The reasons is that there exists a perfectly fine mechanism for
1018 selecting the encoding, doing I/O and (most important) communicating
1019 this to all applications so everybody agrees on character properties
1020 such as width and code number. This mechanism is the locale.
1021 Applications not using that info will have problems (for example,
1022 "xterm" gets the width of characters wrong as it uses its own, locale-
1023 independent table under all locales).
1024
1025 Rxvt-unicode uses the "LC_CTYPE" locale category to select encoding.
1026 All programs doing the same (that is, most) will automatically agree in
1027 the interpretation of characters.
1028
1029 Unfortunately, there is no system-independent way to select locales,
1030 nor is there a standard on how locale specifiers will look like.
1031
1032 On most systems, the content of the "LC_CTYPE" environment variable
1033 contains an arbitrary string which corresponds to an already-installed
1034 locale. Common names for locales are "en_US.UTF-8",
1035 "de_DE.ISO-8859-15", "ja_JP.EUC-JP", i.e. "language_country.encoding",
1036 but other forms (i.e. "de" or "german") are also common.
1037
1038 Rxvt-unicode ignores all other locale categories, and except for the
1039 encoding, ignores country or language-specific settings, i.e.
1040 "de_DE.UTF-8" and "ja_JP.UTF-8" are the normally same to rxvt-unicode.
1041
1042 If you want to use a specific encoding you have to make sure you start
1043 rxvt-unicode with the correct "LC_CTYPE" category.
1044
1045 Can I switch locales at runtime?
1046
1047 Yes, using an escape sequence. Try something like this, which sets
1048 rxvt-unicode's idea of "LC_CTYPE".
1049
1050 printf '\33]701;%s\007' ja_JP.SJIS
1051
1052 See also the previous answer.
1053
1054 Sometimes this capability is rather handy when you want to work in one
1055 locale (e.g. "de_DE.UTF-8") but some programs don't support it (e.g.
1056 UTF-8). For example, I use this script to start "xjdic", which first
1057 switches to a locale supported by xjdic and back later:
1058
1059 printf '\33]701;%s\007' ja_JP.SJIS
1060 xjdic -js
1061 printf '\33]701;%s\007' de_DE.UTF-8
1062
1063 You can also use xterm's "luit" program, which usually works fine,
1064 except for some locales where character width differs between program-
1065 and rxvt-unicode-locales.
1066
1067 I have problems getting my input method working.
1068
1069 Try a search engine, as this is slightly different for every input
1070 method server.
1071
1072 Here is a checklist:
1073
1074 - Make sure your locale and the imLocale are supported on your OS.
1075 Try "locale -a" or check the documentation for your OS.
1076
1077 - Make sure your locale or imLocale matches a locale supported by your
1078 XIM.
1079 For example, kinput2 does not support UTF-8 locales, you should use
1080 "ja_JP.EUC-JP" or equivalent.
1081
1082 - Make sure your XIM server is actually running.
1083 - Make sure the "XMODIFIERS" environment variable is set correctly when
1084 starting rxvt-unicode.
1085 When you want to use e.g. kinput2, it must be set to "@im=kinput2".
1086 For scim, use "@im=SCIM". You can see what input method servers are
1087 running with this command:
1088
1089 xprop -root XIM_SERVERS
1090
1091 My input method wants <some encoding> but I want UTF-8, what can I do?
1092
1093 You can specify separate locales for the input method and the rest of
1094 the terminal, using the resource "imlocale":
1095
1096 URxvt.imlocale: ja_JP.EUC-JP
1097
1098 Now you can start your terminal with "LC_CTYPE=ja_JP.UTF-8" and still
1099 use your input method. Please note, however, that, depending on your
1100 Xlib version, you may not be able to input characters outside "EUC-JP"
1101 in a normal way then, as your input method limits you.
1102
1103 Rxvt-unicode crashes when the X Input Method changes or exits.
1104
1105 Unfortunately, this is unavoidable, as the XIM protocol is racy by
1106 design. Applications can avoid some crashes at the expense of memory
1107 leaks, and Input Methods can avoid some crashes by careful ordering at
1108 exit time. kinput2 (and derived input methods) generally succeeds,
1109 while SCIM (or similar input methods) fails. In the end, however,
1110 crashes cannot be completely avoided even if both sides cooperate.
1111
1112 So the only workaround is not to kill your Input Method Servers.
1113
1114 Operating Systems / Package Maintaining
1115 I am maintaining rxvt-unicode for distribution/OS XXX, any
1116 recommendation?
1117
1118 You should build one binary with the default options. configure now
1119 enables most useful options, and the trend goes to making them runtime-
1120 switchable, too, so there is usually no drawback to enabling them,
1121 except higher disk and possibly memory usage. The perl interpreter
1122 should be enabled, as important functionality (menus, selection, likely
1123 more in the future) depends on it.
1124
1125 You should not overwrite the "perl-ext-common" and "perl-ext" resources
1126 system-wide (except maybe with "defaults"). This will result in useful
1127 behaviour. If your distribution aims at low memory, add an empty
1128 "perl-ext-common" resource to the app-defaults file. This will keep the
1129 perl interpreter disabled until the user enables it.
1130
1131 If you can/want build more binaries, I recommend building a minimal one
1132 with "--disable-everything" (very useful) and a maximal one with
1133 "--enable-everything" (less useful, it will be very big due to a lot of
1134 encodings built-in that increase download times and are rarely used).
1135
1136 I need to make it setuid/setgid to support utmp/ptys on my OS, is this
1137 safe?
1138
1139 It should be, starting with release 7.1. You are encouraged to properly
1140 install urxvt with privileges necessary for your OS now.
1141
1142 When rxvt-unicode detects that it runs setuid or setgid, it will fork
1143 into a helper process for privileged operations (pty handling on some
1144 systems, utmp/wtmp/lastlog handling on others) and drop privileges
1145 immediately. This is much safer than most other terminals that keep
1146 privileges while running (but is more relevant to urxvt, as it contains
1147 things as perl interpreters, which might be "helpful" to attackers).
1148
1149 This forking is done as the very first within main(), which is very
1150 early and reduces possible bugs to initialisation code run before
1151 main(), or things like the dynamic loader of your system, which should
1152 result in very little risk.
1153
1154 I am on FreeBSD and rxvt-unicode does not seem to work at all.
1155
1156 Rxvt-unicode requires the symbol "__STDC_ISO_10646__" to be defined in
1157 your compile environment, or an implementation that implements it,
1158 whether it defines the symbol or not. "__STDC_ISO_10646__" requires
1159 that wchar_t is represented as unicode.
1160
1161 As you might have guessed, FreeBSD does neither define this symbol nor
1162 does it support it. Instead, it uses its own internal representation of
1163 wchar_t. This is, of course, completely fine with respect to standards.
1164
1165 However, that means rxvt-unicode only works in "POSIX", "ISO-8859-1"
1166 and "UTF-8" locales under FreeBSD (which all use Unicode as wchar_t).
1167
1168 "__STDC_ISO_10646__" is the only sane way to support multi-language
1169 apps in an OS, as using a locale-dependent (and non-standardized)
1170 representation of wchar_t makes it impossible to convert between
1171 wchar_t (as used by X11 and your applications) and any other encoding
1172 without implementing OS-specific-wrappers for each and every locale.
1173 There simply are no APIs to convert wchar_t into anything except the
1174 current locale encoding.
1175
1176 Some applications (such as the formidable mlterm) work around this by
1177 carrying their own replacement functions for character set handling
1178 with them, and either implementing OS-dependent hacks or doing multiple
1179 conversions (which is slow and unreliable in case the OS implements
1180 encodings slightly different than the terminal emulator).
1181
1182 The rxvt-unicode author insists that the right way to fix this is in
1183 the system libraries once and for all, instead of forcing every app to
1184 carry complete replacements for them :)
1185
1186 How can I use rxvt-unicode under cygwin?
1187
1188 rxvt-unicode should compile and run out of the box on cygwin, using the
1189 X11 libraries that come with cygwin. libW11 emulation is no longer
1190 supported (and makes no sense, either, as it only supported a single
1191 font). I recommend starting the X-server in "-multiwindow" or
1192 "-rootless" mode instead, which will result in similar look&feel as the
1193 old libW11 emulation.
1194
1195 At the time of this writing, cygwin didn't seem to support any multi-
1196 byte encodings (you might try "LC_CTYPE=C-UTF-8"), so you are likely
1197 limited to 8-bit encodings.
1198
1199 Character widths are not correct.
1200
1201 urxvt uses the system wcwidth function to know the information about
1202 the width of characters, so on systems with incorrect locale data you
1203 will likely get bad results. Two notorious examples are Solaris 9,
1204 where single-width characters like U+2514 are reported as double-width,
1205 and Darwin 8, where combining chars are reported having width 1.
1206
1207 The solution is to upgrade your system or switch to a better one. A
1208 possibly working workaround is to use a wcwidth implementation like
1209
1210 http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
1211
1213 The rest of this document describes various technical aspects of rxvt-
1214 unicode. First the description of supported command sequences, followed
1215 by pixmap support and last by a description of all features selectable
1216 at "configure" time.
1217
1218 Definitions
1219 "c" The literal character c (potentially a multi-byte character).
1220
1221 "C" A single (required) character.
1222
1223 "Ps"
1224 A single (usually optional) numeric parameter, composed of one or
1225 more digits.
1226
1227 "Pm"
1228 A multiple numeric parameter composed of any number of single
1229 numeric parameters, separated by ";" character(s).
1230
1231 "Pt"
1232 A text parameter composed of printable characters.
1233
1234 Values
1235 "ENQ"
1236 Enquiry (Ctrl-E) = Send Device Attributes (DA) request attributes
1237 from terminal. See "ESC [ Ps c".
1238
1239 "BEL"
1240 Bell (Ctrl-G)
1241
1242 "BS"
1243 Backspace (Ctrl-H)
1244
1245 "TAB"
1246 Horizontal Tab (HT) (Ctrl-I)
1247
1248 "LF"
1249 Line Feed or New Line (NL) (Ctrl-J)
1250
1251 "VT"
1252 Vertical Tab (Ctrl-K) same as "LF"
1253
1254 "FF"
1255 Form Feed or New Page (NP) (Ctrl-L) same as "LF"
1256
1257 "CR"
1258 Carriage Return (Ctrl-M)
1259
1260 "SO"
1261 Shift Out (Ctrl-N), invokes the G1 character set. Switch to
1262 Alternate Character Set
1263
1264 "SI"
1265 Shift In (Ctrl-O), invokes the G0 character set (the default).
1266 Switch to Standard Character Set
1267
1268 "SP"
1269 Space Character
1270
1271 Escape Sequences
1272 "ESC # 8"
1273 DEC Screen Alignment Test (DECALN)
1274
1275 "ESC 7"
1276 Save Cursor (SC)
1277
1278 "ESC 8"
1279 Restore Cursor
1280
1281 "ESC ="
1282 Application Keypad (SMKX). See also next sequence.
1283
1284 "ESC >"
1285 Normal Keypad (RMKX)
1286
1287 Note: numbers or control functions are generated by the numeric
1288 keypad in normal or application mode, respectively (see Key Codes).
1289
1290 "ESC D"
1291 Index (IND)
1292
1293 "ESC E"
1294 Next Line (NEL)
1295
1296 "ESC H"
1297 Tab Set (HTS)
1298
1299 "ESC M"
1300 Reverse Index (RI)
1301
1302 "ESC N"
1303 Single Shift Select of G2 Character Set (SS2): affects next
1304 character only unimplemented
1305
1306 "ESC O"
1307 Single Shift Select of G3 Character Set (SS3): affects next
1308 character only unimplemented
1309
1310 "ESC Z"
1311 Obsolete form of returns: "ESC [ ? 1 ; 2 C" rxvt-unicode compile-
1312 time option
1313
1314 "ESC c"
1315 Full reset (RIS)
1316
1317 "ESC n"
1318 Invoke the G2 Character Set (LS2)
1319
1320 "ESC o"
1321 Invoke the G3 Character Set (LS3)
1322
1323 "ESC ( C"
1324 Designate G0 Character Set (ISO 2022), see below for values of "C".
1325
1326 "ESC ) C"
1327 Designate G1 Character Set (ISO 2022), see below for values of "C".
1328
1329 "ESC * C"
1330 Designate G2 Character Set (ISO 2022), see below for values of "C".
1331
1332 "ESC + C"
1333 Designate G3 Character Set (ISO 2022), see below for values of "C".
1334
1335 "ESC $ C"
1336 Designate Kanji Character Set
1337
1338 Where "C" is one of:
1339
1340 C = 0 DEC Special Character and Line Drawing Set
1341 C = A United Kingdom (UK)
1342 C = B United States (USASCII)
1343 C = < Multinational character set unimplemented
1344 C = 5 Finnish character set unimplemented
1345 C = C Finnish character set unimplemented
1346 C = K German character set unimplemented
1347
1348 CSI (Command Sequence Introducer) Sequences
1349 "ESC [ Ps @"
1350 Insert "Ps" (Blank) Character(s) [default: 1] (ICH)
1351
1352 "ESC [ Ps A"
1353 Cursor Up "Ps" Times [default: 1] (CUU)
1354
1355 "ESC [ Ps B"
1356 Cursor Down "Ps" Times [default: 1] (CUD)
1357
1358 "ESC [ Ps C"
1359 Cursor Forward "Ps" Times [default: 1] (CUF)
1360
1361 "ESC [ Ps D"
1362 Cursor Backward "Ps" Times [default: 1] (CUB)
1363
1364 "ESC [ Ps E"
1365 Cursor Down "Ps" Times [default: 1] and to first column
1366
1367 "ESC [ Ps F"
1368 Cursor Up "Ps" Times [default: 1] and to first column
1369
1370 "ESC [ Ps G"
1371 Cursor to Column "Ps" (HPA)
1372
1373 "ESC [ Ps;Ps H"
1374 Cursor Position [row;column] [default: 1;1] (CUP)
1375
1376 "ESC [ Ps I"
1377 Move forward "Ps" tab stops [default: 1]
1378
1379 "ESC [ Ps J"
1380 Erase in Display (ED)
1381
1382 Ps = 0 Clear Right and Below (default)
1383 Ps = 1 Clear Left and Above
1384 Ps = 2 Clear All
1385
1386 "ESC [ Ps K"
1387 Erase in Line (EL)
1388
1389 Ps = 0 Clear to Right (default)
1390 Ps = 1 Clear to Left
1391 Ps = 2 Clear All
1392 Ps = 3 Like Ps = 0, but is ignored when wrapped
1393 (urxvt-ml extension)
1394
1395 "ESC [ Ps L"
1396 Insert "Ps" Line(s) [default: 1] (IL)
1397
1398 "ESC [ Ps M"
1399 Delete "Ps" Line(s) [default: 1] (DL)
1400
1401 "ESC [ Ps P"
1402 Delete "Ps" Character(s) [default: 1] (DCH)
1403
1404 "ESC [ Ps;Ps;Ps;Ps;Ps T"
1405 Initiate . unimplemented Parameters are
1406 [func;startx;starty;firstrow;lastrow].
1407
1408 "ESC [ Ps W"
1409 Tabulator functions
1410
1411 Ps = 0 Tab Set (HTS)
1412 Ps = 2 Tab Clear (TBC), Clear Current Column (default)
1413 Ps = 5 Tab Clear (TBC), Clear All
1414
1415 "ESC [ Ps X"
1416 Erase "Ps" Character(s) [default: 1] (ECH)
1417
1418 "ESC [ Ps Z"
1419 Move backward "Ps" [default: 1] tab stops
1420
1421 "ESC [ Ps '"
1422 See "ESC [ Ps G"
1423
1424 "ESC [ Ps a"
1425 See "ESC [ Ps C"
1426
1427 "ESC [ Ps c"
1428 Send Device Attributes (DA) "Ps = 0" (or omitted): request
1429 attributes from terminal returns: "ESC [ ? 1 ; 2 c" (``I am a VT100
1430 with Advanced Video Option'')
1431
1432 "ESC [ Ps d"
1433 Cursor to Line "Ps" (VPA)
1434
1435 "ESC [ Ps e"
1436 See "ESC [ Ps A"
1437
1438 "ESC [ Ps;Ps f"
1439 Horizontal and Vertical Position [row;column] (HVP) [default: 1;1]
1440
1441 "ESC [ Ps g"
1442 Tab Clear (TBC)
1443
1444 Ps = 0 Clear Current Column (default)
1445 Ps = 3 Clear All (TBC)
1446
1447 "ESC [ Pm h"
1448 Set Mode (SM). See "ESC [ Pm l" sequence for description of "Pm".
1449
1450 "ESC [ Ps i"
1451 Printing. See also the "print-pipe" resource.
1452
1453 Ps = 0 print screen (MC0)
1454 Ps = 4 disable transparent print mode (MC4)
1455 Ps = 5 enable transparent print mode (MC5)
1456
1457 "ESC [ Pm l"
1458 Reset Mode (RM)
1459
1460 "Ps = 4"
1461
1462 h Insert Mode (SMIR)
1463 l Replace Mode (RMIR)
1464 "Ps = 20" (partially implemented)
1465 h Automatic Newline (LNM)
1466 l Normal Linefeed (LNM)
1467 "ESC [ Pm m"
1468 Character Attributes (SGR)
1469
1470 Pm = 0 Normal (default)
1471 Pm = 1 / 21 On / Off Bold (bright fg)
1472 Pm = 3 / 23 On / Off Italic
1473 Pm = 4 / 24 On / Off Underline
1474 Pm = 5 / 25 On / Off Slow Blink (bright bg)
1475 Pm = 6 / 26 On / Off Rapid Blink (bright bg)
1476 Pm = 7 / 27 On / Off Inverse
1477 Pm = 8 / 27 On / Off Invisible (NYI)
1478 Pm = 30 / 40 fg/bg Black
1479 Pm = 31 / 41 fg/bg Red
1480 Pm = 32 / 42 fg/bg Green
1481 Pm = 33 / 43 fg/bg Yellow
1482 Pm = 34 / 44 fg/bg Blue
1483 Pm = 35 / 45 fg/bg Magenta
1484 Pm = 36 / 46 fg/bg Cyan
1485 Pm = 37 / 47 fg/bg White
1486 Pm = 38;5 / 48;5 set fg/bg to colour #m (ISO 8613-6)
1487 Pm = 39 / 49 fg/bg Default
1488 Pm = 90 / 100 fg/bg Bright Black
1489 Pm = 91 / 101 fg/bg Bright Red
1490 Pm = 92 / 102 fg/bg Bright Green
1491 Pm = 93 / 103 fg/bg Bright Yellow
1492 Pm = 94 / 104 fg/bg Bright Blue
1493 Pm = 95 / 105 fg/bg Bright Magenta
1494 Pm = 96 / 106 fg/bg Bright Cyan
1495 Pm = 97 / 107 fg/bg Bright White
1496 Pm = 99 / 109 fg/bg Bright Default
1497
1498 "ESC [ Ps n"
1499 Device Status Report (DSR)
1500
1501 Ps = 5 Status Report ESC [ 0 n (``OK'')
1502 Ps = 6 Report Cursor Position (CPR) [row;column] as ESC [ r ; c R
1503 Ps = 7 Request Display Name
1504 Ps = 8 Request Version Number (place in window title)
1505
1506 "ESC [ Ps SP q"
1507 Set Cursor Style (DECSCUSR)
1508
1509 Ps = 0 Blink Block
1510 Ps = 1 Blink Block
1511 Ps = 2 Steady Block
1512 Ps = 3 Blink Underline
1513 Ps = 4 Steady Underline
1514 Ps = 5 Blink Bar (XTerm)
1515 Ps = 6 Steady Bar (XTerm)
1516
1517 "ESC [ Ps;Ps r"
1518 Set Scrolling Region [top;bottom] [default: full size of window]
1519 (CSR)
1520
1521 "ESC [ s"
1522 Save Cursor (SC)
1523
1524 "ESC [ Ps;Pt t"
1525 Window Operations
1526
1527 Ps = 1 Deiconify (map) window
1528 Ps = 2 Iconify window
1529 Ps = 3 ESC [ 3 ; X ; Y t Move window to (X|Y)
1530 Ps = 4 ESC [ 4 ; H ; W t Resize to WxH pixels
1531 Ps = 5 Raise window
1532 Ps = 6 Lower window
1533 Ps = 7 Refresh screen once
1534 Ps = 8 ESC [ 8 ; R ; C t Resize to R rows and C columns
1535 Ps = 11 Report window state (responds with Ps = 1 or Ps = 2)
1536 Ps = 13 Report window position (responds with Ps = 3)
1537 Ps = 14 Report window pixel size (responds with Ps = 4)
1538 Ps = 18 Report window text size (responds with Ps = 7)
1539 Ps = 19 Currently the same as Ps = 18, but responds with Ps = 9
1540 Ps = 20 Reports icon label (ESC ] L NAME 234)
1541 Ps = 21 Reports window title (ESC ] l NAME 234)
1542 Ps = 24.. Set window height to Ps rows
1543
1544 "ESC [ u"
1545 Restore Cursor
1546
1547 "ESC [ Ps x"
1548 Request Terminal Parameters (DECREQTPARM)
1549
1550 DEC Private Modes
1551 "ESC [ ? Pm h"
1552 DEC Private Mode Set (DECSET)
1553
1554 "ESC [ ? Pm l"
1555 DEC Private Mode Reset (DECRST)
1556
1557 "ESC [ ? Pm r"
1558 Restore previously saved DEC Private Mode Values.
1559
1560 "ESC [ ? Pm s"
1561 Save DEC Private Mode Values.
1562
1563 "ESC [ ? Pm t"
1564 Toggle DEC Private Mode Values (rxvt extension). where
1565
1566 "Pm = 1" (DECCKM)
1567
1568 h Application Cursor Keys
1569 l Normal Cursor Keys
1570 "Pm = 2" (DECANM)
1571 h Enter VT52 mode
1572 l Enter VT52 mode
1573 "Pm = 3" (DECCOLM)
1574 h 132 Column Mode
1575 l 80 Column Mode
1576 "Pm = 4" (DECSCLM)
1577 h Smooth (Slow) Scroll
1578 l Jump (Fast) Scroll
1579 "Pm = 5" (DECSCNM)
1580 h Reverse Video
1581 l Normal Video
1582 "Pm = 6" (DECOM)
1583 h Origin Mode
1584 l Normal Cursor Mode
1585 "Pm = 7" (DECAWM)
1586 h Wraparound Mode
1587 l No Wraparound Mode
1588 "Pm = 8" (DECARM) unimplemented
1589 h Auto-repeat Keys
1590 l No Auto-repeat Keys
1591 "Pm = 9" (X10 XTerm mouse protocol)
1592 h Send Mouse X & Y on button press.
1593 l No mouse reporting.
1594 "Pm = 12" (AT&T 610, XTerm)
1595 h Blinking cursor (cvvis)
1596 l Steady cursor (cnorm)
1597 "Pm = 25" (DECTCEM)
1598 h Visible cursor {cnorm/cvvis}
1599 l Invisible cursor {civis}
1600 "Pm = 30" (rxvt)
1601 h scrollBar visible
1602 l scrollBar invisible
1603 "Pm = 35" (rxvt)
1604 h Allow XTerm Shift+key sequences
1605 l Disallow XTerm Shift+key sequences
1606 "Pm = 38" unimplemented
1607 Enter Tektronix Mode (DECTEK)
1608
1609 "Pm = 40"
1610
1611 h Allow 80/132 Mode
1612
1613 l Disallow 80/132 Mode
1614 "Pm = 44" unimplemented
1615 h Turn On Margin Bell
1616 l Turn Off Margin Bell
1617 "Pm = 45" unimplemented
1618 h Reverse-wraparound Mode
1619 l No Reverse-wraparound Mode
1620 "Pm = 46" unimplemented
1621 "Pm = 47"
1622 h Use Alternate Screen Buffer
1623 l Use Normal Screen Buffer
1624
1625
1626 "Pm = 66" (DECNKM)
1627
1628 h Application Keypad (DECKPAM/DECPAM) == ESC =
1629 l Normal Keypad (DECKPNM/DECPNM) == ESC >
1630 "Pm = 67" (DECBKM)
1631 h Backspace key sends BS
1632 l Backspace key sends DEL
1633 "Pm = 1000" (X11 XTerm mouse protocol)
1634 h Send Mouse X & Y on button press and release.
1635 l No mouse reporting.
1636 "Pm = 1001" (X11 XTerm) unimplemented
1637 h Use Hilite Mouse Tracking.
1638 l No mouse reporting.
1639 "Pm = 1002" (X11 XTerm cell motion mouse tracking)
1640 h Send Mouse X & Y on button press and release, and motion with a button pressed.
1641 l No mouse reporting.
1642 "Pm = 1003" (X11 XTerm all motion mouse tracking)
1643 h Send Mouse X & Y on button press and release, and motion.
1644 l No mouse reporting.
1645 "Pm = 1004" (X11 XTerm focus in/focus out events) unimplemented
1646 h Send Mouse focus in/focus out events.
1647 l Don'T send focus events.
1648 "Pm = 1005" (X11 XTerm UTF-8 mouse mode) (Compile frills)
1649 Try to avoid this mode, it doesn't work sensibly in non-UTF-8
1650 locales. Use mode 1015 instead.
1651
1652 Unlike XTerm, coordinates larger than 2015) will work fine.
1653
1654 h Enable mouse coordinates in locale-specific encoding.
1655 l Enable mouse coordinates as binary octets.
1656
1657 "Pm = 1010" (rxvt)
1658
1659 h Don't scroll to bottom on TTY output
1660 l Scroll to bottom on TTY output
1661 "Pm = 1011" (rxvt)
1662 h Scroll to bottom when a key is pressed
1663 l Don't scroll to bottom when a key is pressed
1664 "Pm = 1015" (rxvt-unicode) (Compile frills)
1665 h Enable urxvt mouse coordinate reporting.
1666 l Use old-style CSI M C C C encoding.
1667 Changes all mouse reporting codes to use decimal parameters
1668 instead of octets or characters.
1669
1670 This mode should be enabled before actually enabling mouse
1671 reporting, for semi-obvious reasons.
1672
1673 The sequences received for various modes are as follows:
1674
1675 ESC [ M o o o !1005, !1015 (three octets)
1676 ESC [ M c c c 1005, !1015 (three characters)
1677 ESC [ Pm M 1015 (three or more numeric parameters)
1678
1679 The first three parameters are "code", "x" and "y". Code is the
1680 numeric code as for the other modes (but encoded as a decimal
1681 number, including the additional offset of 32, so you have to
1682 subtract 32 first), "x" and "y" are the coordinates (1|1 is the
1683 upper left corner, just as with cursor positioning).
1684
1685 Example: Shift-Button-1 press at top row, column 80.
1686
1687 ESC [ 37 ; 80 ; 1 M
1688
1689 One can use this feature by simply enabling it and then looking
1690 for parameters to the "ESC [ M" reply - if there are any, this
1691 mode is active, otherwise one of the old reporting styles is
1692 used.
1693
1694 Other (to be implemented) reply sequences will use a similar
1695 encoding.
1696
1697 In the future, more parameters might get added (pixel
1698 coordinates for example - anybody out there who needs this?).
1699
1700 "Pm = 1021" (rxvt)
1701
1702 h Bold/italic implies high intensity (see option -is)
1703 l Font styles have no effect on intensity (Compile styles)
1704 "Pm = 1047" (X11 XTerm alternate screen buffer)
1705 h Use Alternate Screen Buffer
1706 l Use Normal Screen Buffer - clear Alternate Screen Buffer if returning from it
1707 "Pm = 1048" (X11 XTerm alternate DECSC)
1708 h Save cursor position
1709 l Restore cursor position
1710 "Pm = 1049" (X11 XTerm 1047 + 1048)
1711 h Use Alternate Screen Buffer - clear Alternate Screen Buffer if switching to it
1712 l Use Normal Screen Buffer
1713 "Pm = 2004" (X11 XTerm bracketed paste mode)
1714 h Enable bracketed paste mode - prepend / append to the pasted text the control sequences ESC [ 200 ~ / ESC [ 201 ~
1715 l Disable bracketed paste mode
1716
1717 XTerm Operating System Commands
1718 "ESC ] Ps;Pt ST"
1719 Set XTerm Parameters. 8-bit ST: 0x9c, 7-bit ST sequence: ESC \
1720 (0x1b, 0x5c), backwards compatible terminator BEL (0x07) is also
1721 accepted. any octet can be escaped by prefixing it with SYN (0x16,
1722 ^V).
1723
1724 Ps = 0 Change Icon Name and Window Title to Pt
1725 Ps = 1 Change Icon Name to Pt
1726 Ps = 2 Change Window Title to Pt
1727 Ps = 3 If Pt starts with a ?, query the (STRING) property of the window and return it. If Pt contains a =, set the named property to the given value, else delete the specified property.
1728 Ps = 4 Pt is a semi-colon separated sequence of one or more semi-colon separated number/name pairs, where number is an index to a colour and name is the name of a colour. Each pair causes the numbered colour to be changed to name. Numbers 0-7 corresponds to low-intensity (normal) colours and 8-15 corresponds to high-intensity colours. 0=black, 1=red, 2=green, 3=yellow, 4=blue, 5=magenta, 6=cyan, 7=white
1729 Ps = 10 Change colour of text foreground to Pt
1730 Ps = 11 Change colour of text background to Pt
1731 Ps = 12 Change colour of text cursor foreground to Pt
1732 Ps = 13 Change colour of mouse foreground to Pt
1733 Ps = 17 Change background colour of highlight characters to Pt
1734 Ps = 19 Change foreground colour of highlight characters to Pt
1735 Ps = 20 Change background pixmap parameters (see section BACKGROUND IMAGE) (Compile pixbuf).
1736 Ps = 39 Change default foreground colour to Pt. [deprecated, use 10]
1737 Ps = 46 Change Log File to Pt unimplemented
1738 Ps = 49 Change default background colour to Pt. [deprecated, use 11]
1739 Ps = 50 Set fontset to Pt, with the following special values of Pt (rxvt) #+n change up n #-n change down n if n is missing of 0, a value of 1 is used empty change to font0 n change to font n
1740 Ps = 55 Log all scrollback buffer and all of screen to Pt [disabled]
1741 Ps = 701 Change current locale to Pt, or, if Pt is ?, return the current locale (Compile frills).
1742 Ps = 702 Request version if Pt is ?, returning rxvt-unicode, the resource name, the major and minor version numbers, e.g. ESC ] 702 ; rxvt-unicode ; urxvt ; 7 ; 4 ST.
1743 Ps = 704 Change colour of italic characters to Pt
1744 Ps = 705 Change background pixmap tint colour to Pt (Compile transparency).
1745 Ps = 706 Change colour of bold characters to Pt
1746 Ps = 707 Change colour of underlined characters to Pt
1747 Ps = 708 Change colour of the border to Pt
1748 Ps = 710 Set normal fontset to Pt. Same as Ps = 50.
1749 Ps = 711 Set bold fontset to Pt. Similar to Ps = 50 (Compile styles).
1750 Ps = 712 Set italic fontset to Pt. Similar to Ps = 50 (Compile styles).
1751 Ps = 713 Set bold-italic fontset to Pt. Similar to Ps = 50 (Compile styles).
1752 Ps = 720 Move viewing window up by Pt lines, or clear scrollback buffer if Pt = 0 (Compile frills).
1753 Ps = 721 Move viewing window down by Pt lines, or clear scrollback buffer if Pt = 0 (Compile frills).
1754 Ps = 777 Call the perl extension with the given string, which should be of the form extension:parameters (Compile perl).
1755
1757 For the BACKGROUND IMAGE XTerm escape sequence "ESC ] 20 ; Pt ST" the
1758 value of "Pt" can be one of the following commands:
1759
1760 "?" display scale and position in the title
1761
1762 ";WxH+X+Y"
1763 change scale and/or position
1764
1765 "FILE;WxH+X+Y"
1766 change background image
1767
1769 "ESC [ M <b> <x> <y>"
1770 report mouse position
1771
1772 The lower 2 bits of "<b>" indicate the button:
1773
1774 Button = "(<b> - SPACE) & 3"
1775
1776 0 Button1 pressed
1777 1 Button2 pressed
1778 2 Button3 pressed
1779 3 button released (X11 mouse report)
1780
1781 The upper bits of "<b>" indicate the modifiers when the button was
1782 pressed and are added together (X11 mouse report only):
1783
1784 State = "(<b> - SPACE) & ~3"
1785
1786
1787 4 Shift
1788 8 Meta
1789 16 Control
1790 32 Motion Notify
1791 32 Double Click (rxvt extension), disabled by default
1792 64 Button1 is actually Button4, Button2 is actually Button5 etc.
1793 Col = "<x> - SPACE"
1794
1795 Row = "<y> - SPACE"
1796
1798 Note: Shift + F1-F10 generates F11-F20
1799
1800 For the keypad, use Shift to temporarily toggle Application Keypad mode
1801 and use Num_Lock to override Application Keypad mode, i.e. if Num_Lock
1802 is on the keypad is in normal mode. Also note that the values of
1803 BackSpace, Delete may have been compiled differently on your system.
1804
1805 Normal Shift Control Ctrl+Shift
1806 Tab ^I ESC [ Z ^I ESC [ Z
1807 BackSpace ^? ^? ^H ^H
1808 Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
1809 Insert ESC [ 2 ~ paste ESC [ 2 ^ ESC [ 2 @
1810 Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1811 Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
1812 Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @
1813 Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @
1814 Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
1815 End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
1816 Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1817 F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
1818 F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
1819 F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
1820 F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
1821 F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
1822 F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
1823 F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
1824 F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
1825 F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
1826 F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
1827 F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
1828 F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
1829 F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
1830 F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
1831 F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
1832 F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
1833 F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
1834 F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
1835 F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
1836 F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
1837 Application
1838 Up ESC [ A ESC [ a ESC O a ESC O A
1839 Down ESC [ B ESC [ b ESC O b ESC O B
1840 Right ESC [ C ESC [ c ESC O c ESC O C
1841 Left ESC [ D ESC [ d ESC O d ESC O D
1842 KP_Enter ^M ESC O M
1843 KP_F1 ESC O P ESC O P
1844 KP_F2 ESC O Q ESC O Q
1845 KP_F3 ESC O R ESC O R
1846 KP_F4 ESC O S ESC O S
1847 KP_Multiply * ESC O j
1848 KP_Add + ESC O k
1849 KP_Separator , ESC O l
1850 KP_Subtract - ESC O m
1851 KP_Decimal . ESC O n
1852 KP_Divide / ESC O o
1853 KP_0 0 ESC O p
1854 KP_1 1 ESC O q
1855 KP_2 2 ESC O r
1856 KP_3 3 ESC O s
1857 KP_4 4 ESC O t
1858 KP_5 5 ESC O u
1859 KP_6 6 ESC O v
1860 KP_7 7 ESC O w
1861 KP_8 8 ESC O x
1862 KP_9 9 ESC O y
1863
1865 General hint: if you get compile errors, then likely your configuration
1866 hasn't been tested well. Either try with "--enable-everything" or use
1867 the default configuration (i.e. no "--enable-xxx" or "--disable-xxx"
1868 switches). Of course, you should always report when a combination
1869 doesn't work, so it can be fixed. Marc Lehmann <rxvt@schmorp.de>.
1870
1871 All
1872
1873 --enable-everything
1874 Add (or remove) support for all non-multichoice options listed in
1875 "./configure --help", except for "--enable-assert" and
1876 "--enable-256-color".
1877
1878 You can specify this and then disable options you do not like by
1879 following this with the appropriate "--disable-..." arguments, or
1880 you can start with a minimal configuration by specifying
1881 "--disable-everything" and than adding just the "--enable-..."
1882 arguments you want.
1883
1884 --enable-xft (default: on)
1885 Add support for Xft (anti-aliased, among others) fonts. Xft fonts
1886 are slower and require lots of memory, but as long as you don't use
1887 them, you don't pay for them.
1888
1889 --enable-font-styles (default: on)
1890 Add support for bold, italic and bold italic font styles. The fonts
1891 can be set manually or automatically.
1892
1893 --with-codesets=CS,... (default: all)
1894 Compile in support for additional codeset (encoding) groups ("eu",
1895 "vn" are always compiled in, which includes most 8-bit character
1896 sets). These codeset tables are used for driving X11 core fonts,
1897 they are not required for Xft fonts, although having them compiled
1898 in lets rxvt-unicode choose replacement fonts more intelligently.
1899 Compiling them in will make your binary bigger (all of together
1900 cost about 700kB), but it doesn't increase memory usage unless you
1901 use a font requiring one of these encodings.
1902
1903 all all available codeset groups
1904 zh common chinese encodings
1905 zh_ext rarely used but very big chinese encodings
1906 jp common japanese encodings
1907 jp_ext rarely used but big japanese encodings
1908 kr korean encodings
1909
1910 --enable-xim (default: on)
1911 Add support for XIM (X Input Method) protocol. This allows using
1912 alternative input methods (e.g. kinput2) and will also correctly
1913 set up the input for people using dead keys or compose keys.
1914
1915 --enable-unicode3 (default: off)
1916 Recommended to stay off unless you really need non-BMP characters.
1917
1918 Enable direct support for displaying unicode codepoints above 65535
1919 (the basic multilingual page). This increases storage requirements
1920 per character from 2 to 4 bytes. X11 fonts do not yet support these
1921 extra characters, but Xft does.
1922
1923 Please note that rxvt-unicode can store unicode code points >65535
1924 even without this flag, but the number of such characters is
1925 limited to a few thousand (shared with combining characters, see
1926 next switch), and right now rxvt-unicode cannot display them
1927 (input/output and cut&paste still work, though).
1928
1929 --enable-combining (default: on)
1930 Enable automatic composition of combining characters into composite
1931 characters. This is required for proper viewing of text where
1932 accents are encoded as separate unicode characters. This is done by
1933 using precomposed characters when available or creating new pseudo-
1934 characters when no precomposed form exists.
1935
1936 Without --enable-unicode3, the number of additional precomposed
1937 characters is somewhat limited (the 6400 private use characters
1938 will be (ab-)used). With --enable-unicode3, no practical limit
1939 exists.
1940
1941 This option will also enable storage (but not display) of
1942 characters beyond plane 0 (>65535) when --enable-unicode3 was not
1943 specified.
1944
1945 The combining table also contains entries for arabic presentation
1946 forms, but these are not currently used. Bug me if you want these
1947 to be used (and tell me how these are to be used...).
1948
1949 --enable-fallback[=CLASS] (default: Rxvt)
1950 When reading resource settings, also read settings for class CLASS.
1951 To disable resource fallback use --disable-fallback.
1952
1953 --with-res-name=NAME (default: urxvt)
1954 Use the given name as default application name when reading
1955 resources. Specify --with-res-name=rxvt to replace rxvt.
1956
1957 --with-res-class=CLASS (default: URxvt)
1958 Use the given class as default application class when reading
1959 resources. Specify --with-res-class=Rxvt to replace rxvt.
1960
1961 --enable-utmp (default: on)
1962 Write user and tty to utmp file (used by programs like w) at start
1963 of rxvt execution and delete information when rxvt exits.
1964
1965 --enable-wtmp (default: on)
1966 Write user and tty to wtmp file (used by programs like last) at
1967 start of rxvt execution and write logout when rxvt exits. This
1968 option requires --enable-utmp to also be specified.
1969
1970 --enable-lastlog (default: on)
1971 Write user and tty to lastlog file (used by programs like
1972 lastlogin) at start of rxvt execution. This option requires
1973 --enable-utmp to also be specified.
1974
1975 --enable-pixbuf (default: on)
1976 Add support for GDK-PixBuf to be used for background images. It
1977 adds support for many file formats including JPG, PNG, TIFF, GIF,
1978 XPM, BMP, ICO and TGA.
1979
1980 --enable-startup-notification (default: on)
1981 Add support for freedesktop startup notifications. This allows
1982 window managers to display some kind of progress indicator during
1983 startup.
1984
1985 --enable-transparency (default: on)
1986 Add support for using the root pixmap as background to simulate
1987 transparency. Note that this feature depends on libXrender and on
1988 the availability of the RENDER extension in the X server.
1989
1990 --enable-fading (default: on)
1991 Add support for fading the text when focus is lost.
1992
1993 --enable-rxvt-scroll (default: on)
1994 Add support for the original rxvt scrollbar.
1995
1996 --enable-next-scroll (default: on)
1997 Add support for a NeXT-like scrollbar.
1998
1999 --enable-xterm-scroll (default: on)
2000 Add support for an Xterm-like scrollbar.
2001
2002 --disable-backspace-key
2003 Removes any handling of the backspace key by us - let the X server
2004 do it.
2005
2006 --disable-delete-key
2007 Removes any handling of the delete key by us - let the X server do
2008 it.
2009
2010 --disable-resources
2011 Removes any support for resource checking.
2012
2013 --disable-swapscreen
2014 Remove support for secondary/swap screen.
2015
2016 --enable-frills (default: on)
2017 Add support for many small features that are not essential but nice
2018 to have. Normally you want this, but for very small binaries you
2019 may want to disable this.
2020
2021 A non-exhaustive list of features enabled by "--enable-frills"
2022 (possibly in combination with other switches) is:
2023
2024 MWM-hints
2025 EWMH-hints (pid, utf8 names) and protocols (ping)
2026 urgency hint
2027 separate underline colour (-underlineColor)
2028 settable border widths and borderless switch (-w, -b, -bl)
2029 visual depth selection (-depth)
2030 settable extra linespacing (-lsp)
2031 iso-14755 5.1 (basic) support
2032 tripleclickwords (-tcw)
2033 settable insecure mode (-insecure)
2034 keysym remapping support
2035 cursor blinking and underline cursor (-bc, -uc)
2036 XEmbed support (-embed)
2037 user-pty (-pty-fd)
2038 hold on exit (-hold)
2039 compile in built-in block graphics
2040 skip builtin block graphics (-sbg)
2041 separate highlight colour (-highlightColor, -highlightTextColor)
2042 extended mouse reporting modes (1005 and 1015).
2043 visual selection via -visual and -depth.
2044
2045 It also enables some non-essential features otherwise disabled,
2046 such as:
2047
2048 some round-trip time optimisations
2049 nearest colour allocation on pseudocolor screens
2050 UTF8_STRING support for selection
2051 sgr modes 90..97 and 100..107
2052 backindex and forwardindex escape sequences
2053 view change/zero scrollback escape sequences
2054 locale switching escape sequence
2055 window op and some xterm/OSC escape sequences
2056 rectangular selections
2057 trailing space removal for selections
2058 verbose X error handling
2059
2060 --enable-iso14755 (default: on)
2061 Enable extended ISO 14755 support (see urxvt-ml(1)). Basic support
2062 (section 5.1) is enabled by "--enable-frills", while support for
2063 5.2, 5.3 and 5.4 is enabled with this switch.
2064
2065 --enable-keepscrolling (default: on)
2066 Add support for continual scrolling of the display when you hold
2067 the mouse button down on a scrollbar arrow.
2068
2069 --enable-selectionscrolling (default: on)
2070 Add support for scrolling when the selection moves to the top or
2071 bottom of the screen.
2072
2073 --enable-mousewheel (default: on)
2074 Add support for scrolling via mouse wheel or buttons 4 & 5.
2075
2076 --enable-slipwheeling (default: on)
2077 Add support for continual scrolling (using the mouse wheel as an
2078 accelerator) while the control key is held down. This option
2079 requires --enable-mousewheel to also be specified.
2080
2081 --enable-smart-resize (default: off)
2082 Add smart growth/shrink behaviour when resizing. This should keep
2083 the window corner which is closest to a corner of the screen in a
2084 fixed position.
2085
2086 --enable-text-blink (default: on)
2087 Add support for blinking text.
2088
2089 --enable-pointer-blank (default: on)
2090 Add support to have the pointer disappear when typing or inactive.
2091
2092 --enable-perl (default: on)
2093 Enable an embedded perl interpreter. See the urxvt-mlperl(3)
2094 manpage for more info on this feature, or the files in src/perl/
2095 for the extensions that are installed by default. The perl
2096 interpreter that is used can be specified via the "PERL"
2097 environment variable when running configure. Even when compiled in,
2098 perl will not be initialised when all extensions have been disabled
2099 "-pe "" --perl-ext-common """, so it should be safe to enable from
2100 a resource standpoint.
2101
2102 --enable-assert (default: off)
2103 Enables the assertions in the code, normally disabled. This switch
2104 is only useful when developing rxvt-unicode.
2105
2106 --enable-256-color (default: off)
2107 Force use of so-called 256 colour mode, to work around buggy
2108 applications that do not support termcap/terminfo, or simply
2109 improve support for applications hardcoding the xterm 256 colour
2110 table.
2111
2112 This switch breaks termcap/terminfo compatibility to
2113 "TERM=rxvt-unicode", and consequently sets "TERM" to
2114 "rxvt-unicode-256color" by default (doc/etc/ contains
2115 termcap/terminfo definitions for both).
2116
2117 It also results in higher memory usage and can slow down urxvt-ml
2118 dramatically when more than six fonts are in use by a terminal
2119 instance.
2120
2121 --with-name=NAME (default: urxvt)
2122 Set the basename for the installed binaries, resulting in "urxvt",
2123 "urxvtd" etc.). Specify "--with-name=rxvt" to replace with "rxvt".
2124
2125 --with-term=NAME (default: rxvt-unicode)
2126 Change the environmental variable for the terminal to NAME.
2127
2128 --with-terminfo=PATH
2129 Change the environmental variable for the path to the terminfo tree
2130 to PATH.
2131
2132 --with-x
2133 Use the X Window System (pretty much default, eh?).
2134
2136 Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
2137 reworked it from the original Rxvt documentation, which was done by
2138 Geoff Wing <gcw@pobox.com>, who in turn used the XTerm documentation
2139 and other sources.
2140
2141
2142
21439.22 2016-01-23 urxvt-ml(7)