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