2 RXVT REFERENCE - FAQ, command sequences and other background information
6 printf '\33]50;%s\007' 9x15,xft:Kochi" Mincho"
8 # change the locale and tell rxvt-unicode about it
9 export LC_CTYPE=ja_JP.EUC-JP; printf "\33]701;$LC_CTYPE\007"
12 printf '\33]2;%s\007' "new window title"
15 This document contains the FAQ, the RXVT TECHNICAL REFERENCE documenting
16 all escape sequences, and other background information.
18 The newest version of this document is also available on the World Wide
20 <http://cvs.schmorp.de/browse/*checkout*/rxvt-unicode/doc/rxvt.7.html>.
22 FREQUENTLY ASKED QUESTIONS
23 How do I know which rxvt-unicode version I'm using?
24 The version number is displayed with the usage (-h). Also the escape
25 sequence "ESC [ 8 n" sets the window title to the version number.
27 I am using Debian GNU/Linux and have a problem...
28 The Debian GNU/Linux package of rxvt-unicode contains large patches
29 that considerably change the behaviour of rxvt-unicode. Before
30 reporting a bug to the original rxvt-unicode author please download
31 and install the genuine version
32 (<http://software.schmorp.de#rxvt-unicode>) and try to reproduce the
33 problem. If you cannot, chances are that the problems are specific
34 to Debian GNU/Linux, in which case it should be reported via the
35 Debian Bug Tracking System (use "reportbug" to report the bug).
37 For other problems that also affect the Debian package, you can and
38 probably should use the Debian BTS, too, because, after all, it's
39 also a bug in the Debian version and it serves as a reminder for
40 other users that might encounter the same issue.
42 When I log-in to another system it tells me about missing terminfo data?
43 The terminal description used by rxvt-unicode is not as widely
44 available as that for xterm, or even rxvt (for which the same
45 problem often arises).
47 The correct solution for this problem is to install the terminfo,
48 this can be done like this (with ncurses' infocmp):
50 REMOTE=remotesystem.domain
51 infocmp rxvt-unicode | ssh $REMOTE "cat >/tmp/ti && tic /tmp/ti"
53 ... or by installing rxvt-unicode normally on the remote system,
55 If you cannot or do not want to do this, then you can simply set
56 "TERM=rxvt" or even "TERM=xterm", and live with the small number of
57 problems arising, which includes wrong keymapping, less and
58 different colours and some refresh errors in fullscreen
59 applications. It's a nice quick-and-dirty workaround for rare cases,
62 If you always want to do this (and are fine with the consequences)
63 you can either recompile rxvt-unicode with the desired TERM value or
64 use a resource to set it:
68 If you don't plan to use rxvt (quite common...) you could also
69 replace the rxvt terminfo file with the rxvt-unicode one.
71 "bash"'s readline does not work correctly under rxvt.
72 I need a termcap file entry.
73 One reason you might want this is that some distributions or
74 operating systems still compile some programs using the
75 long-obsoleted termcap library (Fedora Core's bash is one example)
76 and rely on a termcap entry for "rxvt-unicode".
78 You could use rxvt's termcap entry with resonable results in many
79 cases. You can also create a termcap entry by using terminfo's
80 infocmp program like this:
82 infocmp -C rxvt-unicode
84 Or you could use this termcap entry, generated by the command above:
86 rxvt-unicode|rxvt-unicode terminal (X Window System):\
87 :am:bw:eo:km:mi:ms:xn:xo:\
88 :co#80:it#8:li#24:lm#0:\
89 :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
90 :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
91 :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=\E(B:al=\E[L:\
92 :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
93 :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
94 :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:\
95 :i1=\E[?47l\E=\E[?1l:ic=\E[@:im=\E[4h:\
96 :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
97 :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
98 :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:\
99 :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:\
100 :kh=\E[7~:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
101 :mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:\
102 :sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
103 :te=\E[r\E[?1049l:ti=\E[?1049h:ue=\E[24m:up=\E[A:\
104 :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:\
107 Why does "ls" no longer have coloured output?
108 The "ls" in the GNU coreutils unfortunately doesn't use terminfo to
109 decide wether a terminal has colour, but uses it's own configuration
110 file. Needless to say, "rxvt-unicode" is not in it's default file
111 (among with most other terminals supporting colour). Either add:
115 to "/etc/DIR_COLORS" or simply add:
117 alias ls='ls --color=auto'
119 to your ".profile" or ".bashrc".
121 Why doesn't vim/emacs etc. use the 88 colour mode?
122 Why doesn't vim/emacs etc. make use of italic?
123 Why are the secondary screen-related options not working properly?
124 Make sure you are using "TERM=rxvt-unicode". Some pre-packaged
125 distributions (most notably Debian GNU/Linux) break rxvt-unicode by
126 setting "TERM" to "rxvt", which doesn't have these extra features.
127 Unfortunately, some of these (most notably, again, Debian GNU/Linux)
128 furthermore fail to even install the "rxvt-unicode" terminfo file,
129 so you will need to install it on your own (See the question When I
130 log-in to another system it tells me about missing terminfo data? on
133 My numerical keypad acts weird and generates differing output?
134 Some Debian GNUL/Linux users seem to have this problem, although no
135 specific details were reported so far. It is possible that this is
136 caused by the wrong "TERM" setting, although the details of wether
137 and how this can happen are unknown, as "TERM=rxvt" should offer a
138 compatible keymap. See the answer to the previous question, and
139 please report if that helped.
141 Rxvt-unicode does not seem to understand the selected encoding?
142 Unicode does not seem to work?
143 If you encounter strange problems like typing an accented character
144 but getting two unrelated other characters or similar, or if program
145 output is subtly garbled, then you should check your locale
148 Rxvt-unicode must be started with the same "LC_CTYPE" setting as the
149 programs. Often rxvt-unicode is started in the "C" locale, while the
150 login script running within the rxvt-unicode window changes the
151 locale to something else, e.g. "en_GB.UTF-8". Needless to say, this
152 is not going to work.
154 The best thing is to fix your startup environment, as you will
155 likely run into other problems. If nothing works you can try this in
158 printf '\e]701;%s\007' "$LC_CTYPE"
160 If this doesn't work, then maybe you use a "LC_CTYPE" specification
161 not supported on your systems. Some systems have a "locale" command
162 which displays this (also, "perl -e0" can be used to check locale
163 settings, as it will complain loudly if it cannot set the locale).
164 If it displays something like:
166 locale: Cannot set LC_CTYPE to default locale: ...
168 Then the locale you specified is not supported on your system.
170 If nothing works and you are sure that everything is set correctly
171 then you will need to remember a little known fact: Some programs
172 just don't support locales :(
174 Why do some characters look so much different than others?
175 How does rxvt-unicode choose fonts?
176 Most fonts do not contain the full range of Unicode, which is fine.
177 Chances are that the font you (or the admin/package maintainer of
178 your system/os) have specified does not cover all the characters you
181 rxvt-unicode makes a best-effort try at finding a replacement font.
182 Often the result is fine, but sometimes the chosen font looks
183 bad/ugly/wrong. Some fonts have totally strange characters that
184 don't resemble the correct glyph at all, and rxvt-unicode lacks the
185 artificial intelligence to detect that a specific glyph is wrong: it
186 has to believe the font that the characters it claims to contain
189 In that case, select a font of your taste and add it to the font
192 rxvt -fn basefont,font2,font3...
194 When rxvt-unicode sees a character, it will first look at the base
195 font. If the base font does not contain the character, it will go to
196 the next font, and so on. Specifying your own fonts will also speed
197 up this search and use less resources within rxvt-unicode and the
200 The only limitation is that none of the fonts may be larger than the
201 base font, as the base font defines the terminal character cell
202 size, which must be the same due to the way terminals work.
204 Why do some chinese characters look so different than others?
205 This is because there is a difference between script and language --
206 rxvt-unicode does not know which language the text that is output
207 is, as it only knows the unicode character codes. If rxvt-unicode
208 first sees a japanese/chinese character, it might choose a japanese
209 font for display. Subsequent japanese characters will use that font.
210 Now, many chinese characters aren't represented in japanese fonts,
211 so when the first non-japanese character comes up, rxvt-unicode will
212 look for a chinese font -- unfortunately at this point, it will
213 still use the japanese font for chinese characters that are also in
216 The workaround is easy: just tag a chinese font at the end of your
217 font list (see the previous question). The key is to view the font
218 list as a preference list: If you expect more japanese, list a
219 japanese font first. If you expect more chinese, put a chinese font
222 In the future it might be possible to switch language preferences at
223 runtime (the internal data structure has no problem with using
224 different fonts for the same character at the same time, but no
225 interface for this has been designed yet).
227 Until then, you might get away with switching fonts at runtime (see
228 "Can I switch the fonts at runtime?" later in this document).
230 Why does rxvt-unicode sometimes leave pixel droppings?
231 Most fonts were not designed for terminal use, which means that
232 character size varies a lot. A font that is otherwise fine for
233 terminal use might contain some characters that are simply too wide.
234 Rxvt-unicode will avoid these characters. For characters that are
235 just "a bit" too wide a special "careful" rendering mode is used
236 that redraws adjacent characters.
238 All of this requires that fonts do not lie about character sizes,
239 however: Xft fonts often draw glyphs larger than their acclaimed
240 bounding box, and rxvt-unicode has no way of detecting this (the
241 correct way is to ask for the character bounding box, which
242 unfortunately is wrong in these cases).
244 It's not clear (to me at least), wether this is a bug in Xft,
245 freetype, or the respective font. If you encounter this problem you
246 might try using the "-lsp" option to give the font more height. If
247 that doesn't work, you might be forced to use a different font.
249 All of this is not a problem when using X11 core fonts, as their
250 bounding box data is correct.
252 My Compose (Multi_key) key is no longer working.
253 The most common causes for this are that either your locale is not
254 set correctly, or you specified a preeditStyle that is not supported
255 by your input method. For example, if you specified OverTheSpot and
256 your input method (e.g. the default input method handling Compose
257 keys) does not support this (for instance because it is not visual),
258 then rxvt-unicode will continue without an input method.
260 In this case either do not specify a preeditStyle or specify more
261 than one pre-edit style, such as OverTheSpot,Root,None.
263 I cannot type "Ctrl-Shift-2" to get an ASCII NUL character due to ISO
265 Either try "Ctrl-2" alone (it often is mapped to ASCII NUL even on
266 international keyboards) or simply use ISO 14755 support to your
267 advantage, typing <Ctrl-Shift-0> to get a ASCII NUL. This works for
268 other codes, too, such as "Ctrl-Shift-1-d" to type the default
269 telnet escape character and so on.
271 How can I keep rxvt-unicode from using reverse video so much?
272 First of all, make sure you are running with the right terminal
273 settings ("TERM=rxvt-unicode"), which will get rid of most of these
274 effects. Then make sure you have specified colours for italic and
275 bold, as otherwise rxvt-unicode might use reverse video to simulate
281 Some programs assume totally weird colours (red instead of blue), how
283 For some unexplainable reason, some rare programs assume a very
284 weird colour palette when confronted with a terminal with more than
285 the standard 8 colours (rxvt-unicode supports 88). The right fix is,
286 of course, to fix these programs not to assume non-ISO colours
287 without very good reasons.
289 In the meantime, you can either edit your "rxvt-unicode" terminfo
290 definition to only claim 8 colour support or use "TERM=rxvt", which
291 will fix colours but keep you from using other rxvt-unicode
294 I am on FreeBSD and rxvt-unicode does not seem to work at all.
295 Rxvt-unicode requires the symbol "__STDC_ISO_10646__" to be defined
296 in your compile environment, or an implementation that implements
297 it, wether it defines the symbol or not. "__STDC_ISO_10646__"
298 requires that wchar_t is represented as unicode.
300 As you might have guessed, FreeBSD does neither define this symobl
301 nor does it support it. Instead, it uses it's own internal
302 representation of wchar_t. This is, of course, completely fine with
303 respect to standards.
305 However, "__STDC_ISO_10646__" is the only sane way to support
306 multi-language apps in an OS, as using a locale-dependent (and
307 non-standardized) representation of wchar_t makes it impossible to
308 convert between wchar_t (as used by X11 and your applications) and
309 any other encoding without implementing OS-specific-wrappers for
310 each and every locale. There simply are no APIs to convert wchar_t
311 into anything except the current locale encoding.
313 Some applications (such as the formidable mlterm) work around this
314 by carrying their own replacement functions for character set
315 handling with them, and either implementing OS-dependent hacks or
316 doing multiple conversions (which is slow and unreliable in case the
317 OS implements encodings slightly different than the terminal
320 The rxvt-unicode author insists that the right way to fix this is in
321 the system libraries once and for all, instead of forcing every app
322 to carry complete replacements for them :)
324 How does rxvt-unicode determine the encoding to use?
325 Is there an option to switch encodings?
326 Unlike some other terminals, rxvt-unicode has no encoding switch,
327 and no specific "utf-8" mode, such as xterm. In fact, it doesn't
328 even know about UTF-8 or any other encodings with respect to
331 The reasons is that there exists a perfectly fine mechanism for
332 selecting the encoding, doing I/O and (most important) communicating
333 this to all applications so everybody agrees on character properties
334 such as width and code number. This mechanism is the *locale*.
335 Applications not using that info will have problems (for example,
336 "xterm" gets the width of characters wrong as it uses it's own,
337 locale-independent table under all locales).
339 Rxvt-unicode uses the "LC_CTYPE" locale category to select encoding.
340 All programs doing the same (that is, most) will automatically agree
341 in the interpretation of characters.
343 Unfortunately, there is no system-independent way to select locales,
344 nor is there a standard on how locale specifiers will look like.
346 On most systems, the content of the "LC_CTYPE" environment variable
347 contains an arbitrary string which corresponds to an
348 already-installed locale. Common names for locales are
349 "en_US.UTF-8", "de_DE.ISO-8859-15", "ja_JP.EUC-JP", i.e.
350 "language_country.encoding", but other forms (i.e. "de" or "german")
353 Rxvt-unicode ignores all other locale categories, and except for the
354 encoding, ignores country or language-specific settings, i.e.
355 "de_DE.UTF-8" and "ja_JP.UTF-8" are the normally same to
358 If you want to use a specific encoding you have to make sure you
359 start rxvt-unicode with the correct "LC_CTYPE" category.
361 Can I switch locales at runtime?
362 Yes, using an escape sequence. Try something like this, which sets
363 rxvt-unicode's idea of "LC_CTYPE".
365 printf '\e]701;%s\007' ja_JP.SJIS
367 See also the previous answer.
369 Sometimes this capability is rather handy when you want to work in
370 one locale (e.g. "de_DE.UTF-8") but some programs don't support it
371 (e.g. UTF-8). For example, I use this script to start "xjdic", which
372 first switches to a locale supported by xjdic and back later:
374 printf '\e]701;%s\007' ja_JP.SJIS
376 printf '\e]701;%s\007' de_DE.UTF-8
378 You can also use xterm's "luit" program, which usually works fine,
379 except for some locales where character width differs between
380 program- and rxvt-unicode-locales.
382 Can I switch the fonts at runtime?
383 Yes, using an escape sequence. Try something like this, which has
384 the same effect as using the "-fn" switch, and takes effect
387 printf '\e]50;%s\007' "9x15bold,xft:Kochi Gothic"
389 This is useful if you e.g. work primarily with japanese (and prefer
390 a japanese font), but you have to switch to chinese temporarily,
391 where japanese fonts would only be in your way.
393 You can think of this as a kind of manual ISO-2022 switching.
395 Why do italic characters look as if clipped?
396 Many fonts have difficulties with italic characters and hinting. For
397 example, the otherwise very nicely hinted font "xft:Bitstream Vera
398 Sans Mono" completely fails in it's italic face. A workaround might
399 be to enable freetype autohinting, i.e. like this:
401 URxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true
402 URxvt.boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true
404 My input method wants <some encoding> but I want UTF-8, what can I do?
405 You can specify separate locales for the input method and the rest
406 of the terminal, using the resource "imlocale":
408 URxvt*imlocale: ja_JP.EUC-JP
410 Now you can start your terminal with "LC_CTYPE=ja_JP.UTF-8" and
411 still use your input method. Please note, however, that you will not
412 be able to input characters outside "EUC-JP" in a normal way then,
413 as your input method limits you.
415 Rxvt-unicode crashes when the X Input Method changes or exits.
416 Unfortunately, this is unavoidable, as the XIM protocol is racy by
417 design. Applications can avoid some crashes at the expense of memory
418 leaks, and Input Methods can avoid some crashes by careful ordering
419 at exit time. kinput2 (and derived input methods) generally
420 succeeds, while SCIM (or similar input methods) fails. In the end,
421 however, crashes cannot be completely avoided even if both sides
424 So the only workaround is not to kill your Input Method Servers.
426 Rxvt-unicode uses gobs of memory, how can I reduce that?
427 Rxvt-unicode tries to obey the rule of not charging you for
428 something you don't use. One thing you should try is to configure
429 out all settings that you don't need, for example, Xft support is a
430 resource hog by design, when used. Compiling it out ensures that no
431 Xft font will be loaded accidentally when rxvt-unicode tries to find
432 a font for your characters.
434 Also, many people (me included) like large windows and even larger
435 scrollback buffers: Without "--enable-unicode3", rxvt-unicode will
436 use 6 bytes per screen cell. For a 160x?? window this amounts to
437 almost a kilobyte per line. A scrollback buffer of 10000 lines will
438 then (if full) use 10 Megabytes of memory. With "--enable-unicode3"
439 it gets worse, as rxvt-unicode then uses 8 bytes per screen cell.
441 Can I speed up Xft rendering somehow?
442 Yes, the most obvious way to speed it up is to avoid Xft entirely,
443 as it is simply slow. If you still want Xft fonts you might try to
444 disable antialiasing (by appending ":antialiasing=false"), which
445 saves lots of memory and also speeds up rendering considerably.
447 Rxvt-unicode doesn't seem to anti-alias its fonts, what is wrong?
448 Rxvt-unicode will use whatever you specify as a font. If it needs to
449 fall back to it's default font search list it will prefer X11 core
450 fonts, because they are small and fast, and then use Xft fonts. It
451 has antialiasing disabled for most of them, because the author
452 thinks they look best that way.
454 If you want antialiasing, you have to specify the fonts manually.
456 Mouse cut/paste suddenly no longer works.
457 Make sure that mouse reporting is actually turned off since killing
458 some editors prematurely may leave the mouse in mouse report mode.
459 I've heard that tcsh may use mouse reporting unless it otherwise
460 specified. A quick check is to see if cut/paste works when the Alt
461 or Shift keys are depressed. See rxvt(7)
463 What's with this bold/blink stuff?
464 If no bold colour is set via "colorBD:", bold will invert text using
465 the standard foreground colour.
467 For the standard background colour, blinking will actually make the
468 text blink when compiled with "--enable-blinking". with standard
469 colours. Without "--enable-blinking", the blink attribute will be
472 On ANSI colours, bold/blink attributes are used to set
473 high-intensity foreground/background colors.
475 color0-7 are the low-intensity colors.
477 color8-15 are the corresponding high-intensity colors.
479 I don't like the screen colors. How do I change them?
480 You can change the screen colors at run-time using ~/.Xdefaults
481 resources (or as long-options).
483 Here are values that are supposed to resemble a VGA screen,
484 including the murky brown that passes for low-intensity yellow:
486 URxvt.color0: #000000
487 URxvt.color1: #A80000
488 URxvt.color2: #00A800
489 URxvt.color3: #A8A800
490 URxvt.color4: #0000A8
491 URxvt.color5: #A800A8
492 URxvt.color6: #00A8A8
493 URxvt.color7: #A8A8A8
495 URxvt.color8: #000054
496 URxvt.color9: #FF0054
497 URxvt.color10: #00FF54
498 URxvt.color11: #FFFF54
499 URxvt.color12: #0000FF
500 URxvt.color13: #FF00FF
501 URxvt.color14: #00FFFF
502 URxvt.color15: #FFFFFF
504 And here is a more complete set of non-standard colors described
505 (not by me) as "pretty girly".
507 URxvt.cursorColor: #dc74d1
508 URxvt.pointerColor: #dc74d1
509 URxvt.background: #0e0e0e
510 URxvt.foreground: #4ad5e1
511 URxvt.color0: #000000
512 URxvt.color8: #8b8f93
513 URxvt.color1: #dc74d1
514 URxvt.color9: #dc74d1
515 URxvt.color2: #0eb8c7
516 URxvt.color10: #0eb8c7
517 URxvt.color3: #dfe37e
518 URxvt.color11: #dfe37e
519 URxvt.color5: #9e88f0
520 URxvt.color13: #9e88f0
521 URxvt.color6: #73f7ff
522 URxvt.color14: #73f7ff
523 URxvt.color7: #e1dddd
524 URxvt.color15: #e1dddd
526 How can I start rxvtd in a race-free way?
527 Despite it's name, rxvtd is not a real daemon, but more like a
528 server that answers rxvtc's requests, so it doesn't background
531 To ensure rxvtd is listening on it's socket, you can use the
532 following method to wait for the startup message before continuing:
536 What's with the strange Backspace/Delete key behaviour?
537 Assuming that the physical Backspace key corresponds to the
538 BackSpace keysym (not likely for Linux ... see the following
539 question) there are two standard values that can be used for
540 Backspace: "^H" and "^?".
542 Historically, either value is correct, but rxvt-unicode adopts the
543 debian policy of using "^?" when unsure, because it's the one only
544 only correct choice :).
546 Rxvt-unicode tries to inherit the current stty settings and uses the
547 value of `erase' to guess the value for backspace. If rxvt-unicode
548 wasn't started from a terminal (say, from a menu or by remote
549 shell), then the system value of `erase', which corresponds to
550 CERASE in <termios.h>, will be used (which may not be the same as
553 For starting a new rxvt-unicode:
563 Toggle with "ESC [ 36 h" / "ESC [ 36 l" as documented in rxvt(7).
565 For an existing rxvt-unicode:
575 This helps satisfy some of the Backspace discrepancies that occur,
576 but if you use Backspace = "^H", make sure that the termcap/terminfo
577 value properly reflects that.
579 The Delete key is a another casualty of the ill-defined Backspace
580 problem. To avoid confusion between the Backspace and Delete keys,
581 the Delete key has been assigned an escape sequence to match the
582 vt100 for Execute ("ESC [ 3 ~") and is in the supplied
585 Some other Backspace problems:
587 some editors use termcap/terminfo, some editors (vim I'm told)
588 expect Backspace = ^H, GNU Emacs (and Emacs-like editors) use ^H for
591 Perhaps someday this will all be resolved in a consistent manner.
593 I don't like the key-bindings. How do I change them?
594 There are some compile-time selections available via configure.
595 Unless you have run "configure" with the "--disable-resources"
596 option you can use the `keysym' resource to alter the keystrings
597 associated with keysyms.
599 Here's an example for a URxvt session started using "rxvt -name
602 URxvt.keysym.Home: \033[1~
603 URxvt.keysym.End: \033[4~
604 URxvt.keysym.C-apostrophe: \033<C-'>
605 URxvt.keysym.C-slash: \033<C-/>
606 URxvt.keysym.C-semicolon: \033<C-;>
607 URxvt.keysym.C-grave: \033<C-`>
608 URxvt.keysym.C-comma: \033<C-,>
609 URxvt.keysym.C-period: \033<C-.>
610 URxvt.keysym.C-0x60: \033<C-`>
611 URxvt.keysym.C-Tab: \033<C-Tab>
612 URxvt.keysym.C-Return: \033<C-Return>
613 URxvt.keysym.S-Return: \033<S-Return>
614 URxvt.keysym.S-space: \033<S-Space>
615 URxvt.keysym.M-Up: \033<M-Up>
616 URxvt.keysym.M-Down: \033<M-Down>
617 URxvt.keysym.M-Left: \033<M-Left>
618 URxvt.keysym.M-Right: \033<M-Right>
619 URxvt.keysym.M-C-0: list \033<M-C- 0123456789 >
620 URxvt.keysym.M-C-a: list \033<M-C- abcdefghijklmnopqrstuvwxyz >
621 URxvt.keysym.F12: command:\033]701;zh_CN.GBK\007
623 See some more examples in the documentation for the keysym resource.
625 I'm using keyboard model XXX that has extra Prior/Next/Insert keys. How
626 do I make use of them? For example, the Sun Keyboard type 4 has the
627 following mappings that rxvt-unicode doesn't recognize.
635 Rather than have rxvt-unicode try to accommodate all the various
636 possible keyboard mappings, it is better to use `xmodmap' to remap
637 the keys as required for your particular machine.
639 How do I distinguish wether I'm running rxvt-unicode or a regular xterm?
640 I need this to decide about setting colors etc.
641 rxvt and rxvt-unicode always export the variable "COLORTERM", so you
642 can check and see if that is set. Note that several programs, JED,
643 slrn, Midnight Commander automatically check this variable to decide
644 whether or not to use color.
646 How do I set the correct, full IP address for the DISPLAY variable?
647 If you've compiled rxvt-unicode with DISPLAY_IS_IP and have enabled
648 insecure mode then it is possible to use the following shell script
649 snippets to correctly set the display. If your version of
650 rxvt-unicode wasn't also compiled with ESCZ_ANSWER (as assumed in
651 these snippets) then the COLORTERM variable can be used to
652 distinguish rxvt-unicode from a regular xterm.
654 Courtesy of Chuck Blake <cblake@BBN.COM> with the following shell
657 # Bourne/Korn/POSIX family of shells:
658 [ ${TERM:-foo} = foo ] && TERM=xterm # assume an xterm if we don't know
659 if [ ${TERM:-foo} = xterm ]; then
660 stty -icanon -echo min 0 time 15 # see if enhanced rxvt or not
664 if [ ""${term_id} = '^[[?1;2C' -a ${DISPLAY:-foo} = foo ]; then
665 echo -n '^[[7n' # query the rxvt we are in for the DISPLAY string
666 read DISPLAY # set it in our local shell
670 How do I compile the manual pages for myself?
671 You need to have a recent version of perl installed as
672 /usr/bin/perl, one that comes with pod2man, pod2text and pod2html.
673 Then go to the doc subdirectory and enter "make alldoc".
675 My question isn't answered here, can I ask a human?
676 Before sending me mail, you could go to IRC: "irc.freenode.net",
677 channel "#rxvt-unicode" has some rxvt-unicode enthusiasts that might
678 be interested in learning about new and exciting problems (but not
681 RXVT TECHNICAL REFERENCE
683 The rest of this document describes various technical aspects of
684 rxvt-unicode. First the description of supported command sequences,
685 followed by menu and pixmap support and last by a description of all
686 features selectable at "configure" time.
689 "c" The literal character c.
691 "C" A single (required) character.
694 A single (usually optional) numeric parameter, composed of one or
698 A multiple numeric parameter composed of any number of single
699 numeric parameters, separated by ";" character(s).
702 A text parameter composed of printable characters.
706 Enquiry (Ctrl-E) = Send Device Attributes (DA) request attributes
707 from terminal. See "ESC [ Ps c".
716 Horizontal Tab (HT) (Ctrl-I)
719 Line Feed or New Line (NL) (Ctrl-J)
722 Vertical Tab (Ctrl-K) same as "LF"
725 Form Feed or New Page (NP) (Ctrl-L) same as "LF"
728 Carriage Return (Ctrl-M)
731 Shift Out (Ctrl-N), invokes the G1 character set. Switch to
732 Alternate Character Set
735 Shift In (Ctrl-O), invokes the G0 character set (the default).
736 Switch to Standard Character Set
743 DEC Screen Alignment Test (DECALN)
752 Application Keypad (SMKX). See also next sequence.
757 Note: If the numeric keypad is activated, eg, Num_Lock has been
758 pressed, numbers or control functions are generated by the numeric
759 keypad (see Key Codes).
774 Single Shift Select of G2 Character Set (SS2): affects next
775 character only *unimplemented*
778 Single Shift Select of G3 Character Set (SS3): affects next
779 character only *unimplemented*
782 Obsolete form of returns: "ESC [ ? 1 ; 2 C" *rxvt-unicode
789 Invoke the G2 Character Set (LS2)
792 Invoke the G3 Character Set (LS3)
795 Designate G0 Character Set (ISO 2022), see below for values of "C".
798 Designate G1 Character Set (ISO 2022), see below for values of "C".
801 Designate G2 Character Set (ISO 2022), see below for values of "C".
804 Designate G3 Character Set (ISO 2022), see below for values of "C".
807 Designate Kanji Character Set
811 C = 0 DEC Special Character and Line Drawing Set
812 C = A United Kingdom (UK)
813 C = B United States (USASCII)
814 C = < Multinational character set unimplemented
815 C = 5 Finnish character set unimplemented
816 C = C Finnish character set unimplemented
817 C = K German character set unimplemented
821 CSI (Command Sequence Introducer) Sequences
823 Insert "Ps" (Blank) Character(s) [default: 1] (ICH)
826 Cursor Up "Ps" Times [default: 1] (CUU)
829 Cursor Down "Ps" Times [default: 1] (CUD)
832 Cursor Forward "Ps" Times [default: 1] (CUF)
835 Cursor Backward "Ps" Times [default: 1] (CUB)
838 Cursor Down "Ps" Times [default: 1] and to first column
841 Cursor Up "Ps" Times [default: 1] and to first column
844 Cursor to Column "Ps" (HPA)
847 Cursor Position [row;column] [default: 1;1] (CUP)
850 Move forward "Ps" tab stops [default: 1]
853 Erase in Display (ED)
855 Ps = 0 Clear Below (default)
862 Ps = 0 Clear to Right (default)
867 Insert "Ps" Line(s) [default: 1] (IL)
870 Delete "Ps" Line(s) [default: 1] (DL)
873 Delete "Ps" Character(s) [default: 1] (DCH)
875 "ESC [ Ps;Ps;Ps;Ps;Ps T"
876 Initiate . *unimplemented* Parameters are
877 [func;startx;starty;firstrow;lastrow].
883 Ps = 2 Tab Clear (TBC), Clear Current Column (default)
884 Ps = 5 Tab Clear (TBC), Clear All
887 Erase "Ps" Character(s) [default: 1] (ECH)
890 Move backward "Ps" [default: 1] tab stops
899 Send Device Attributes (DA) "Ps = 0" (or omitted): request
900 attributes from terminal returns: "ESC [ ? 1 ; 2 c" (``I am a VT100
901 with Advanced Video Option'')
904 Cursor to Line "Ps" (VPA)
910 Horizontal and Vertical Position [row;column] (HVP) [default: 1;1]
915 Ps = 0 Clear Current Column (default)
916 Ps = 3 Clear All (TBC)
919 Set Mode (SM). See "ESC [ Pm l" sequence for description of "Pm".
922 Printing. See also the "print-pipe" resource.
924 Ps = 0 print screen (MC0)
925 Ps = 4 disable transparent print mode (MC4)
926 Ps = 5 enable transparent print mode (MC5)
933 l Replace Mode (RMIR)
935 "Ps = 20" (partially implemented)
936 h Automatic Newline (LNM)
937 l Normal Linefeed (LNM)
940 Character Attributes (SGR)
942 Ps = 0 Normal (default)
943 Ps = 1 / 21 On / Off Bold (bright fg)
944 Ps = 3 / 23 On / Off Italic
945 Ps = 4 / 24 On / Off Underline
946 Ps = 5 / 25 On / Off Slow Blink (bright bg)
947 Ps = 6 / 26 On / Off Rapid Blink (bright bg)
948 Ps = 7 / 27 On / Off Inverse
949 Ps = 8 / 27 On / Off Invisible (NYI)
950 Ps = 30 / 40 fg/bg Black
951 Ps = 31 / 41 fg/bg Red
952 Ps = 32 / 42 fg/bg Green
953 Ps = 33 / 43 fg/bg Yellow
954 Ps = 34 / 44 fg/bg Blue
955 Ps = 35 / 45 fg/bg Magenta
956 Ps = 36 / 46 fg/bg Cyan
957 Ps = 38;5 / 48;5 set fg/bg to color #m (ISO 8613-6)
958 Ps = 37 / 47 fg/bg White
959 Ps = 39 / 49 fg/bg Default
960 Ps = 90 / 100 fg/bg Bright Black
961 Ps = 91 / 101 fg/bg Bright Red
962 Ps = 92 / 102 fg/bg Bright Green
963 Ps = 93 / 103 fg/bg Bright Yellow
964 Ps = 94 / 104 fg/bg Bright Blue
965 Ps = 95 / 105 fg/bg Bright Magenta
966 Ps = 96 / 106 fg/bg Bright Cyan
967 Ps = 97 / 107 fg/bg Bright White
968 Ps = 99 / 109 fg/bg Bright Default
971 Device Status Report (DSR)
973 Ps = 5 Status Report ESC [ 0 n (``OK'')
974 Ps = 6 Report Cursor Position (CPR) [row;column] as ESC [ r ; c R
975 Ps = 7 Request Display Name
976 Ps = 8 Request Version Number (place in window title)
979 Set Scrolling Region [top;bottom] [default: full size of window]
988 Ps = 1 Deiconify (map) window
989 Ps = 2 Iconify window
990 Ps = 3 ESC [ 3 ; X ; Y t Move window to (X|Y)
991 Ps = 4 ESC [ 4 ; H ; W t Resize to WxH pixels
994 Ps = 7 Refresh screen once
995 Ps = 8 ESC [ 8 ; R ; C t Resize to R rows and C columns
996 Ps = 11 Report window state (responds with Ps = 1 or Ps = 2)
997 Ps = 13 Report window position (responds with Ps = 3)
998 Ps = 14 Report window pixel size (responds with Ps = 4)
999 Ps = 18 Report window text size (responds with Ps = 7)
1000 Ps = 19 Currently the same as Ps = 18, but responds with Ps = 9
1001 Ps = 20 Reports icon label (ESC ] L NAME \234)
1002 Ps = 21 Reports window title (ESC ] l NAME \234)
1003 Ps = 24.. Set window height to Ps rows
1009 Request Terminal Parameters (DECREQTPARM)
1015 DEC Private Mode Set (DECSET)
1018 DEC Private Mode Reset (DECRST)
1021 Restore previously saved DEC Private Mode Values.
1024 Save DEC Private Mode Values.
1027 Toggle DEC Private Mode Values (rxvt extension). *where*
1030 h Application Cursor Keys
1031 l Normal Cursor Keys
1033 "Ps = 2" (ANSI/VT52 mode)
1038 h 132 Column Mode (DECCOLM)
1039 l 80 Column Mode (DECCOLM)
1042 h Smooth (Slow) Scroll (DECSCLM)
1043 l Jump (Fast) Scroll (DECSCLM)
1046 h Reverse Video (DECSCNM)
1047 l Normal Video (DECSCNM)
1050 h Origin Mode (DECOM)
1051 l Normal Cursor Mode (DECOM)
1054 h Wraparound Mode (DECAWM)
1055 l No Wraparound Mode (DECAWM)
1057 "Ps = 8" *unimplemented*
1058 h Auto-repeat Keys (DECARM)
1059 l No Auto-repeat Keys (DECARM)
1062 h Send Mouse X & Y on button press.
1063 l No mouse reporting.
1070 h Visible cursor {cnorm/cvvis}
1071 l Invisible cursor {civis}
1074 h scrollBar visisble
1075 l scrollBar invisisble
1078 h Allow XTerm Shift+key sequences
1079 l Disallow XTerm Shift+key sequences
1081 "Ps = 38" *unimplemented*
1082 Enter Tektronix Mode (DECTEK)
1086 l Disallow 80/132 Mode
1088 "Ps = 44" *unimplemented*
1089 h Turn On Margin Bell
1090 l Turn Off Margin Bell
1092 "Ps = 45" *unimplemented*
1093 h Reverse-wraparound Mode
1094 l No Reverse-wraparound Mode
1096 "Ps = 46" *unimplemented*
1098 h Use Alternate Screen Buffer
1099 l Use Normal Screen Buffer
1104 h Application Keypad (DECPAM) == ESC =
1105 l Normal Keypad (DECPNM) == ESC >
1108 h Backspace key sends BS (DECBKM)
1109 l Backspace key sends DEL
1111 "Ps = 1000" (X11 XTerm)
1112 h Send Mouse X & Y on button press and release.
1113 l No mouse reporting.
1115 "Ps = 1001" (X11 XTerm) *unimplemented*
1116 h Use Hilite Mouse Tracking.
1117 l No mouse reporting.
1120 h Don't scroll to bottom on TTY output
1121 l Scroll to bottom on TTY output
1124 h Scroll to bottom when a key is pressed
1125 l Don't scroll to bottom when a key is pressed
1128 h Use Alternate Screen Buffer
1129 l Use Normal Screen Buffer - clear Alternate Screen Buffer if returning from it
1132 h Save cursor position
1133 l Restore cursor position
1136 h Use Alternate Screen Buffer - clear Alternate Screen Buffer if switching to it
1137 l Use Normal Screen Buffer
1141 XTerm Operating System Commands
1143 Set XTerm Parameters. 8-bit ST: 0x9c, 7-bit ST sequence: ESC \
1144 (0x1b, 0x5c), backwards compatible terminator BEL (0x07) is also
1145 accepted. any octet can be escaped by prefixing it with SYN (0x16,
1148 Ps = 0 Change Icon Name and Window Title to Pt
1149 Ps = 1 Change Icon Name to Pt
1150 Ps = 2 Change Window Title to Pt
1151 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.
1152 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
1153 Ps = 10 Change colour of text foreground to Pt (NB: may change in future)
1154 Ps = 11 Change colour of text background to Pt (NB: may change in future)
1155 Ps = 12 Change colour of text cursor foreground to Pt
1156 Ps = 13 Change colour of mouse foreground to Pt
1157 Ps = 17 Change colour of highlight characters to Pt
1158 Ps = 18 Change colour of bold characters to Pt
1159 Ps = 19 Change colour of underlined characters to Pt
1160 Ps = 20 Change default background to Pt
1161 Ps = 39 Change default foreground colour to Pt rxvt compile-time option
1162 Ps = 46 Change Log File to Pt unimplemented
1163 Ps = 49 Change default background colour to Pt rxvt compile-time option
1164 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
1165 Ps = 55 Log all scrollback buffer and all of screen to Pt
1166 Ps = 701 Change current locale to Pt, or, if Pt is ?, return the current locale (rxvt extension)
1167 Ps = 703 Menubar command Pt rxvt compile-time option (rxvt-unicode extension)
1168 Ps = 704 Change colour of italic characters to Pt
1169 Ps = 705 Change background pixmap tint colour to Pt
1170 Ps = 710 Set normal fontset to Pt. Same as Ps = 50.
1171 Ps = 711 Set bold fontset to Pt. Similar to Ps = 50.
1172 Ps = 712 Set italic fontset to Pt. Similar to Ps = 50.
1173 Ps = 713 Set bold-italic fontset to Pt. Similar to Ps = 50.
1178 The exact syntax used is *almost* solidified. In the menus, DON'T try to
1179 use menuBar commands that add or remove a menuBar.
1181 Note that in all of the commands, the */path/* *cannot* be omitted: use
1182 ./ to specify a menu relative to the current menu.
1184 Overview of menuBar operation
1185 For the menuBar XTerm escape sequence "ESC ] 703 ; Pt ST", the syntax of
1186 "Pt" can be used for a variety of tasks:
1188 At the top level is the current menuBar which is a member of a circular
1189 linked-list of other such menuBars.
1191 The menuBar acts as a parent for the various drop-down menus, which in
1192 turn, may have labels, separator lines, menuItems and subMenus.
1194 The menuItems are the useful bits: you can use them to mimic keyboard
1195 input or even to send text or escape sequences back to rxvt.
1197 The menuBar syntax is intended to provide a simple yet robust method of
1198 constructing and manipulating menus and navigating through the menuBars.
1200 The first step is to use the tag [menu:*name*] which creates the menuBar
1201 called *name* and allows access. You may now or menus, subMenus, and
1202 menuItems. Finally, use the tag [done] to set the menuBar access as
1203 readonly to prevent accidental corruption of the menus. To re-access the
1204 current menuBar for alterations, use the tag [menu], make the
1205 alterations and then use [done]
1211 access the named menuBar for creation or alteration. If a new
1212 menuBar is created, it is called *name* (max of 15 chars) and the
1213 current menuBar is pushed onto the stack
1216 access the current menuBar for alteration
1219 set the current menuBar's title to *string*, which may contain the
1220 following format specifiers:
1222 B<%n> rxvt name (as per the B<-name> command-line option)
1224 B<%%> literal B<%> character
1227 set menuBar access as readonly. End-of-file tag for [read:+*file*]
1231 read menu commands directly from *file* (extension ".menu" will be
1232 appended if required.) Start reading at a line with [menu] or
1233 [menu:+*name* and continuing until [done] is encountered.
1235 Blank and comment lines (starting with #) are ignored. Actually,
1236 since any invalid menu commands are also ignored, almost anything
1237 could be construed as a comment line, but this may be tightened up
1238 in the future ... so don't count on it!.
1240 [read:+*file*;+*name*]
1241 The same as [read:+*file*], but start reading at a line with
1242 [menu:+*name*] and continuing until [done:+*name*] or [done] is
1246 dump all menuBars to the file /tmp/rxvt-PID in a format suitable for
1250 remove the named menuBar
1253 remove the current menuBar
1259 swap the top two menuBars
1262 access the previous menuBar
1265 access the next menuBar
1268 Enable display of the menuBar
1271 Disable display of the menuBar
1274 [pixmap:+*name*;*scaling*]
1275 (set the background pixmap globally
1277 A Future implementation *may* make this local to the menubar)
1280 ignore the menu readonly status and issue a *command* to or a menu
1281 or menuitem or change the ; a useful shortcut for setting the quick
1282 arrows from a menuBar.
1286 Adding and accessing menus
1287 The following commands may also be + prefixed.
1289 /+ access menuBar top level
1291 ./+ access current menu level
1294 access parent menu (1 level up)
1297 access parent menu (multiple levels up)
1303 add/access menu and clear it if it exists
1311 */path/*{item} action
1312 add/alter *menuitem* with an associated *action*
1314 */path/*{item}{right-text}
1315 add/alter *menuitem* with right-text as the right-justified text and
1316 as the associated *action*
1318 */path/*{item}{rtext} action
1319 add/alter *menuitem* with an associated *action* and with rtext as
1320 the right-justified text.
1322 Special characters in *action* must be backslash-escaped:
1323 \a \b \E \e \n \r \t \octal
1325 or in control-character notation:
1326 ^@, ^A .. ^Z .. ^_, ^?
1328 To send a string starting with a NUL (^@) character to the program,
1329 start *action* with a pair of NUL characters (^@^@), the first of which
1330 will be stripped off and the balance directed to the program. Otherwise
1331 if *action* begins with NUL followed by non-+NUL characters, the leading
1332 NUL is stripped off and the balance is sent back to rxvt.
1334 As a convenience for the many Emacs-type editors, *action* may start
1335 with M- (eg, M-$ is equivalent to \E$) and a CR will be appended if
1336 missed from M-x commands.
1338 As a convenience for issuing XTerm ESC ] sequences from a menubar (or
1339 quick arrow), a BEL (^G) will be appended if needed.
1342 M-xapropos is equivalent to \Exapropos\r
1344 and \E]703;mona;100 is equivalent to \E]703;mona;100\a
1346 The option {*right-rtext*} will be right-justified. In the absence of a
1347 specified action, this text will be used as the *action* as well.
1350 /File/{Open}{^X^F} is equivalent to /File/{Open}{^X^F} ^X^F
1352 The left label *is* necessary, since it's used for matching, but
1353 implicitly hiding the left label (by using same name for both left and
1354 right labels), or explicitly hiding the left label (by preceeding it
1355 with a dot), makes it possible to have right-justified text only.
1358 /File/{Open}{Open} Open-File-Action
1361 /File/{.anylabel}{Open} Open-File-Action
1367 remove all menus from the menuBar, the same as [clear]
1379 remove all items, separators and submenus from menu
1384 The menus also provide a hook for *quick arrows* to provide easier user
1385 access. If nothing has been explicitly set, the default is to emulate
1386 the curror keys. The syntax permits each arrow to be altered
1387 individually or all four at once without re-entering their common
1388 beginning/end text. For example, to explicitly associate cursor actions
1389 with the arrows, any of the following forms could be used:
1395 Define actions for the respective arrow buttons
1399 Define common beginning/end parts for *quick arrows* which used in
1400 conjunction with the above <r> <l> <u> <d> constructs
1402 For example, define arrows individually,
1412 <u>\E[AZ<><d>\E[BZ<><r>\E[CZ<><l>\E[D
1414 or more compactly (factoring out common parts)
1415 <b>\E[<u>AZ<><d>BZ<><r>CZ<><l>D
1420 A short summary of the most *common* commands:
1423 use an existing named menuBar or start a new one
1426 use the current menuBar
1432 set menu access to readonly and, if reading from a file, signal EOF
1435 if reading from a file using [read:file;name] signal EOF
1438 remove named menuBar(s)
1441 remove current menuBar
1444 remove all menuBar(s)
1447 swap top two menuBars
1450 access the previous menuBar
1453 access the next menuBar
1462 [pixmap;file;scaling]
1463 set a background pixmap
1467 read in a menu from a file
1470 dump out all menuBars to /tmp/rxvt-PID
1472 / access menuBar top level
1477 access current or parent menu level
1485 /path/{item}{rtext} action
1488 -/* remove all menus from the menuBar
1491 remove menu items, separators and submenus from menu
1502 <b>Begin<r>Right<l>Left<u>Up<d>Down<e>End
1506 For the XPM XTerm escape sequence "ESC ] 20 ; Pt ST" then value of "Pt"
1507 can be the name of the background pixmap followed by a sequence of
1508 scaling/positioning commands separated by semi-colons. The
1509 scaling/positioning commands are as follows:
1511 query scale/position
1514 change scale and position
1519 WxH (same as WxH+50+50)
1521 W+X+Y (same as WxW+X+Y)
1523 W+X (same as WxW+X+X)
1525 W (same as WxW+50+50)
1527 change position (absolute)
1532 change position (relative)
1545 load funky.xpm as a tiled image
1548 load mona.xpm with a scaling of 100%
1551 rescale the current pixmap to 200% and display the image geometry in
1555 "ESC [ M <b> <x> <y>"
1556 report mouse position
1558 The lower 2 bits of "<b>" indicate the button:
1560 Button = "(<b> - SPACE) & 3"
1564 3 button released (X11 mouse report)
1566 The upper bits of "<b>" indicate the modifiers when the button was
1567 pressed and are added together (X11 mouse report only):
1569 State = "(<b> - SPACE) & 60"
1573 32 Double Click (Rxvt extension)
1580 Note: Shift + F1-F10 generates F11-F20
1582 For the keypad, use Shift to temporarily override Application-Keypad
1583 setting use Num_Lock to toggle Application-Keypad setting if Num_Lock is
1584 off, toggle Application-Keypad setting. Also note that values of Home,
1585 End, Delete may have been compiled differently on your system.
1587 Normal Shift Control Ctrl+Shift
1588 Tab ^I ESC [ Z ^I ESC [ Z
1589 BackSpace ^H ^? ^? ^?
1590 Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
1591 Insert ESC [ 2 ~ paste ESC [ 2 ^ ESC [ 2 @
1592 Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1593 Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
1594 Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @
1595 Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @
1596 Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
1597 End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
1598 Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1599 F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
1600 F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
1601 F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
1602 F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
1603 F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
1604 F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
1605 F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
1606 F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
1607 F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
1608 F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
1609 F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
1610 F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
1611 F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
1612 F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
1613 F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
1614 F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
1615 F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
1616 F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
1617 F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
1618 F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
1620 Up ESC [ A ESC [ a ESC O a ESC O A
1621 Down ESC [ B ESC [ b ESC O b ESC O B
1622 Right ESC [ C ESC [ c ESC O c ESC O C
1623 Left ESC [ D ESC [ d ESC O d ESC O D
1625 KP_F1 ESC O P ESC O P
1626 KP_F2 ESC O Q ESC O Q
1627 KP_F3 ESC O R ESC O R
1628 KP_F4 ESC O S ESC O S
1629 XK_KP_Multiply * ESC O j
1631 XK_KP_Separator , ESC O l
1632 XK_KP_Subtract - ESC O m
1633 XK_KP_Decimal . ESC O n
1634 XK_KP_Divide / ESC O o
1647 General hint: if you get compile errors, then likely your configuration
1648 hasn't been tested well. Either try with --enable-everything or use the
1649 ./reconf script as a base for experiments. ./reconf is used by myself,
1650 so it should generally be a working config. Of course, you should always
1651 report when a combination doesn't work, so it can be fixed. Marc Lehmann
1655 Add support for all non-multichoice options listed in "./configure
1656 --help". Note that unlike other enable options this is order
1657 dependant. You can specify this and then disable options which this
1658 enables by *following* this with the appropriate commands.
1661 Add support for Xft (anti-aliases, among others) fonts. Xft fonts
1662 are slower and require lots of memory, but as long as you don't use
1663 them, you don't pay for them.
1665 --enable-font-styles
1666 Add support for bold, *italic* and *bold italic* font styles. The
1667 fonts can be set manually or automatically.
1669 --with-codesets=NAME,...
1670 Compile in support for additional codeset (encoding) groups (eu, vn
1671 are always compiled in, which includes most 8-bit character sets).
1672 These codeset tables are currently only used for driving X11 core
1673 fonts, they are not required for Xft fonts. Compiling them in will
1674 make your binary bigger (together about 700kB), but it doesn't
1675 increase memory usage unless you use an X11 font requiring one of
1678 all all available codeset groups
1679 zh common chinese encodings
1680 zh_ext rarely used but very big chinese encodigs
1681 jp common japanese encodings
1682 jp_ext rarely used but big japanese encodings
1686 Add support for XIM (X Input Method) protocol. This allows using
1687 alternative input methods (e.g. kinput2) and will also correctly set
1688 up the input for people using dead keys or compose keys.
1691 Enable direct support for displaying unicode codepoints above 65535
1692 (the basic multilingual page). This increases storage requirements
1693 per character from 2 to 4 bytes. X11 fonts do not yet support these
1694 extra characters, but Xft does.
1696 Please note that rxvt-unicode can store unicode code points >65535
1697 even without this flag, but the number of such characters is limited
1698 to a view thousand (shared with combining characters, see next
1699 switch), and right now rxvt-unicode cannot display them
1700 (input/output and cut&paste still work, though).
1703 Enable automatic composition of combining characters into composite
1704 characters. This is required for proper viewing of text where
1705 accents are encoded as seperate unicode characters. This is done by
1706 using precomposited characters when available or creating new
1707 pseudo-characters when no precomposed form exists.
1709 Without --enable-unicode3, the number of additional precomposed
1710 characters is rather limited (2048, if this is full, rxvt-unicode
1711 will use the private use area, extending the number of combinations
1712 to 8448). With --enable-unicode3, no practical limit exists.
1714 This option will also enable storage (but not display) of characters
1715 beyond plane 0 (>65535) when --enable-unicode3 was not specified.
1717 The combining table also contains entries for arabic presentation
1718 forms, but these are not currently used. Bug me if you want these to
1719 be used (and tell me how these are to be used...).
1721 --enable-fallback(=CLASS)
1722 When reading resource settings, also read settings for class CLASS
1723 (default: Rxvt). To disable resource fallback use
1726 --with-res-name=NAME
1727 Use the given name (default: urxvt) as default application name when
1728 reading resources. Specify --with-res-name=rxvt to replace rxvt.
1730 --with-res-class=CLASS
1731 Use the given class (default: URxvt) as default application class
1732 when reading resources. Specify --with-res-class=Rxvt to replace
1736 Write user and tty to utmp file (used by programs like w) at start
1737 of rxvt execution and delete information when rxvt exits.
1740 Write user and tty to wtmp file (used by programs like last) at
1741 start of rxvt execution and write logout when rxvt exits. This
1742 option requires --enable-utmp to also be specified.
1745 Write user and tty to lastlog file (used by programs like lastlogin)
1746 at start of rxvt execution. This option requires --enable-utmp to
1749 --enable-xpm-background
1750 Add support for XPM background pixmaps.
1752 --enable-transparency
1753 Add support for inheriting parent backgrounds thus giving a fake
1754 transparency to the term.
1757 Add support for fading the text when focus is lost.
1760 Add support for tinting of transparent backgrounds.
1763 Add support for our menu bar system (this interacts badly with
1764 dynamic locale switching currently).
1766 --enable-rxvt-scroll
1767 Add support for the original rxvt scrollbar.
1769 --enable-next-scroll
1770 Add support for a NeXT-like scrollbar.
1772 --enable-xterm-scroll
1773 Add support for an Xterm-like scrollbar.
1775 --enable-plain-scroll
1776 Add support for a very unobtrusive, plain-looking scrollbar that is
1777 the favourite of the rxvt-unicode author, having used it for many
1780 --enable-half-shadow
1781 Make shadows on the scrollbar only half the normal width & height.
1782 only applicable to rxvt scrollbars.
1785 Change tty device setting to group "tty" - only use this if your
1786 system uses this type of security.
1788 --disable-backspace-key
1789 Disable any handling of the backspace key by us - let the X server
1792 --disable-delete-key
1793 Disable any handling of the delete key by us - let the X server do
1797 Remove all resources checking.
1799 --enable-xgetdefault
1800 Make resources checking via XGetDefault() instead of our small
1801 version which only checks ~/.Xdefaults, or if that doesn't exist
1804 Please note that nowadays, things like XIM will automatically pull
1805 in and use the full X resource manager, so the overhead of using it
1806 might be very small, if nonexistant.
1809 Add support for our possibly faster memset() function and other
1810 various routines, overriding your system's versions which may have
1811 been hand-crafted in assembly or may require extra libraries to link
1812 in. (this breaks ANSI-C rules and has problems on many GNU/Linux
1815 --disable-swapscreen
1816 Remove support for swap screen.
1819 Add support for many small features that are not essential but nice
1820 to have. Normally you want this, but for very small binaries you may
1821 want to disable this.
1823 A non-exhaustive list of features enabled by "--enable-frills"
1824 (possibly in combination with other switches) is:
1827 seperate underline colour
1828 settable border widths and borderless switch
1829 settable extra linespacing
1830 extra window properties (e.g. UTF-8 window names and PID)
1831 iso-14755-2 and -3, and visual feedback
1832 backindex and forwardindex escape sequence
1833 window op and locale change escape sequences
1835 settable insecure mode
1836 keysym remapping support
1837 -embed and -pty-fd options
1840 Enable extended ISO 14755 support (see rxvt(1), or doc/rxvt.1.txt).
1841 Basic support (section 5.1) is enabled by "--enable-frills", while
1842 support for 5.2, 5.3 and 5.4 is enabled with this switch.
1844 --enable-keepscrolling
1845 Add support for continual scrolling of the display when you hold the
1846 mouse button down on a scrollbar arrow.
1849 Add support for scrolling via mouse wheel or buttons 4 & 5.
1851 --enable-slipwheeling
1852 Add support for continual scrolling (using the mouse wheel as an
1853 accelerator) while the control key is held down. This option
1854 requires --enable-mousewheel to also be specified.
1856 --disable-new-selection
1857 Remove support for mouse selection style like that of xterm.
1860 Use Gray Watson's malloc - which is good for debugging See
1861 http://www.letters.com/dmalloc/ for details If you use either this
1862 or the next option, you may need to edit src/Makefile after
1863 compiling to point DINCLUDE and DLIB to the right places.
1865 You can only use either this option and the following (should you
1869 Use Doug Lea's malloc - which is good for a production version See
1870 <http://g.oswego.edu/dl/html/malloc.html> for details.
1872 --enable-smart-resize
1873 Add smart growth/shrink behaviour when changing font size via from
1874 hot keys. This should keep in a fixed position the rxvt corner which
1875 is closest to a corner of the screen.
1877 --enable-cursor-blink
1878 Add support for a blinking cursor.
1880 --enable-pointer-blank
1881 Add support to have the pointer disappear when typing or inactive.
1884 Set the basename for the installed binaries (default: "urxvt",
1885 resulting in "urxvt", "urxvtd" etc.). Specify "--with-name=rxvt" to
1886 replace with "rxvt".
1889 Change the environmental variable for the terminal to NAME (default
1892 --with-terminfo=PATH
1893 Change the environmental variable for the path to the terminfo tree
1897 Use the X Window System (pretty much default, eh?).
1899 --with-xpm-includes=DIR
1900 Look for the XPM includes in DIR.
1902 --with-xpm-library=DIR
1903 Look for the XPM library in DIR.
1906 Not needed - define via --enable-xpm-background.
1909 Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
1910 reworked it from the original Rxvt documentation, which was done by
1911 Geoff Wing <gcw@pobox.com>, who in turn used the XTerm documentation and