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