ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.pod
Revision: 1.249
Committed: Sun May 9 05:53:10 2021 UTC (3 years, 2 months ago) by sf-exg
Branch: MAIN
CVS Tags: rxvt-unicode-rel-9_26, rxvt-unicode-rel-9_25
Changes since 1.248: +29 -0 lines
Log Message:
Add support for systemd socket activation

File Contents

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