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