ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.pod
(Generate patch)

Comparing rxvt-unicode/doc/rxvt.7.pod (file contents):
Revision 1.1 by root, Thu Aug 12 20:42:12 2004 UTC vs.
Revision 1.249 by sf-exg, Sun May 9 05:53:10 2021 UTC

1=head1 Rxvt Technical Reference 1=head1 NAME
2 2
3Marc Lehmann <rxvt@schmorp.de>, converted to pod and reworked from the 3RXVT REFERENCE - FAQ, command sequences and other background information
4original Rxvt documentation by Geoff Wing <gcw@pobox.com>, who in turn used
5the XTerm documentation and other sources.
6 4
7=head1 Definitions 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
18This document contains the FAQ, the RXVT TECHNICAL REFERENCE documenting
19all escape sequences, and other background information.
20
21The newest version of this document is also available on the World Wide Web at
22L<http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod>.
23
24The main manual page for @@RXVT_NAME@@ itself is available at
25L<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
34Before sending me mail, you could go to IRC: C<irc.freenode.net>,
35channel C<#rxvt-unicode> has some rxvt-unicode enthusiasts that might be
36interested in learning about new and exciting problems (but not FAQs :).
37
38=head3 I use Gentoo, and I have a problem...
39
40There are two big problems with Gentoo Linux: first, most if not all
41Gentoo systems are completely broken (missing or mismatched header
42files, broken compiler etc. are just the tip of the iceberg);
43secondly, it should be called Gentoo GNU/Linux.
44
45For these reasons, it is impossible to support rxvt-unicode on
46Gentoo. Problems appearing on Gentoo systems will usually simply be
47ignored unless they can be reproduced on non-Gentoo systems.
48
49=head3 Does it support tabs, can I have a tabbed rxvt-unicode?
50
51Beginning with version 7.3, there is a perl extension that implements a
52simple tabbed terminal. It is installed by default, so any of these should
53give you tabs:
54
55 @@URXVT_NAME@@ -pe tabbed
56
57 URxvt.perl-ext-common: default,tabbed
58
59It will also work fine with tabbing functionality of many window managers
60or similar tabbing programs, and its embedding-features allow it to be
61embedded into other programs, as witnessed by F<doc/rxvt-tabbed> or
62the 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
67The version number is displayed with the usage (-h). Also the escape
68sequence C<ESC [ 8 n> sets the window title to the version number. When
69using the @@URXVT_NAME@@c client, the version displayed is that of the
70daemon.
71
72=head3 Rxvt-unicode uses gobs of memory, how can I reduce that?
73
74Rxvt-unicode tries to obey the rule of not charging you for something you
75don't use. One thing you should try is to configure out all settings that
76you don't need, for example, Xft support is a resource hog by design,
77when used. Compiling it out ensures that no Xft font will be loaded
78accidentally when rxvt-unicode tries to find a font for your characters.
79
80Also, many people (me included) like large windows and even larger
81scrollback buffers: Without C<--enable-unicode3>, rxvt-unicode will use
826 bytes per screen cell. For a 160x?? window this amounts to almost a
83kilobyte per line. A scrollback buffer of 10000 lines will then (if full)
84use 10 Megabytes of memory. With C<--enable-unicode3> it gets worse, as
85rxvt-unicode then uses 8 bytes per screen cell.
86
87=head3 How can I start @@URXVT_NAME@@d in a race-free way?
88
89Try C<@@URXVT_NAME@@d -f -o>, which tells @@URXVT_NAME@@d to open the
90display, 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
94If 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
104This tries to create a new terminal, and if fails with exit status 2,
105meaning it couldn't connect to the daemon, it will start the daemon and
106re-run the command. Subsequent invocations of the script will re-use the
107existing daemon.
108
109Another option is to use systemd socket-based activation (see
110systemd.socket(5)). Here is an example of a service unit file and of a
111socket unit file for the default socket path:
8 112
9=over 4 113=over 4
10 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
138xterm? I need this to decide about setting colours etc.
139
140The original rxvt and rxvt-unicode always export the variable "COLORTERM",
141so you can check and see if that is set. Note that several programs, JED,
142slrn, Midnight Commander automatically check this variable to decide
143whether or not to use colour.
144
145=head3 How do I set the correct, full IP address for the DISPLAY variable?
146
147If you've compiled rxvt-unicode with DISPLAY_IS_IP and have enabled
148insecure mode then it is possible to use the following shell script
149snippets to correctly set the display. If your version of rxvt-unicode
150wasn't also compiled with ESCZ_ANSWER (as assumed in these snippets) then
151the COLORTERM variable can be used to distinguish rxvt-unicode from a
152regular xterm.
153
154Courtesy of Chuck Blake <cblake@BBN.COM> with the following shell script
155snippets:
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
172You need to have a recent version of perl installed as F</usr/bin/perl>,
173one that comes with F<pod2man>, F<pod2text> and F<pod2xhtml> (from
174F<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
178I often get asked about this, and I think, no, they didn't cause extra
179bloat. If you compare a minimal rxvt and a minimal urxvt, you can see
180that the urxvt binary is larger (due to some encoding tables always being
181compiled in), but it actually uses less memory (RSS) after startup. Even
182with C<--disable-everything>, this comparison is a bit unfair, as many
183features unique to urxvt (locale, encoding conversion, iso14755 etc.) are
184already 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
190When you C<--enable-everything> (which I<is> unfair, as this involves xft
191and full locale/XIM support which are quite bloaty inside libX11 and my
192libc), 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
198The very large size of the text section is explained by the east-asian
199encoding tables, which, if unused, take up disk space but nothing else
200and can be compiled out unless you rely on X11 core fonts that use those
201encodings. The BSS size comes from the 64k emergency buffer that my c++
202compiler allocates (but of course doesn't use unless you are out of
203memory). Also, using an xft font instead of a core font immediately adds a
204few megabytes of RSS. Xft indeed is responsible for a lot of RSS even when
205not used.
206
207Of course, due to every character using two or four bytes instead of one,
208a large scrollback buffer will ultimately make rxvt-unicode use more
209memory.
210
211Compared to e.g. Eterm (5112k), aterm (3132k) and xterm (4680k), this
212still fares rather well. And compared to some monsters like gnome-terminal
213(21152k + extra 4204k in separate processes) or konsole (22200k + extra
21443180k in daemons that stay around after exit, plus half a minute of
215startup time, including the hundreds of warnings it spits out), it fares
216extremely well *g*.
217
218=head3 Why C++, isn't that unportable/bloated/uncool?
219
220Is this a question? :) It comes up very often. The simple answer is: I had
221to write it, and C++ allowed me to write and maintain it in a fraction
222of the time and effort (which is a scarce resource for me). Put even
223shorter: It simply wouldn't exist without C++.
224
225My personal stance on this is that C++ is less portable than C, but in
226the case of rxvt-unicode this hardly matters, as its portability limits
227are defined by things like X11, pseudo terminals, locale support and unix
228domain sockets, which are all less portable than C++ itself.
229
230Regarding the bloat, see the above question: It's easy to write programs
231in C that use gobs of memory, and certainly possible to write programs in
232C++ that don't. C++ also often comes with large libraries, but this is
233not necessarily the case with GCC. Here is what rxvt links against on my
234system 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
241And 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
249No large bloated libraries (of course, none were linked in statically),
250except 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
257First of all, transparency isn't officially supported in rxvt-unicode, so
258you are mostly on your own. Do not bug the author about it (but you may
259bug everybody else). Also, if you can't get it working consider it a rite
260of passage: ... and you failed.
261
262Here are four ways to get transparency. B<Do> read the manpage and option
263descriptions for the programs mentioned and rxvt-unicode. Really, do it!
264
2651. Use transparent mode:
266
267 Esetroot wallpaper.jpg
268 @@URXVT_NAME@@ -tr -tint red -sh 40
269
270That works. If you think it doesn't, you lack transparency and tinting
271support, or you are unable to read.
272This method requires that the background-setting program sets the
273_XROOTPMAP_ID or ESETROOT_PMAP_ID property. Compatible programs
274are Esetroot, hsetroot and feh.
275
2762. Use a simple pixmap and emulate pseudo-transparency. This enables you
277to use effects other than tinting and shading: Just shade/tint/whatever
278your 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
283That works. If you think it doesn't, you lack GDK-PixBuf support, or you
284are unable to read.
285
2863. Use an ARGB visual:
287
288 @@URXVT_NAME@@ -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc
289
290This requires XFT support, and the support of your X-server. If that
291doesn't work for you, blame Xorg and Keith Packard. ARGB visuals aren't
292there yet, no matter what they claim. Rxvt-Unicode contains the necessary
293bugfixes and workarounds for Xft and Xlib to make it work, but that
294doesn't mean that your WM has the required kludges in place.
295
2964. 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
301Then click on a window you want to make transparent. Replace C<0xc0000000>
302by other values to change the degree of opacity. If it doesn't work and
303your server crashes, you got to keep the pieces.
304
305=head3 Why does rxvt-unicode sometimes leave pixel droppings?
306
307Most fonts were not designed for terminal use, which means that character
308size varies a lot. A font that is otherwise fine for terminal use might
309contain some characters that are simply too wide. Rxvt-unicode will avoid
310these characters. For characters that are just "a bit" too wide a special
311"careful" rendering mode is used that redraws adjacent characters.
312
313All of this requires that fonts do not lie about character sizes,
314however: Xft fonts often draw glyphs larger than their acclaimed bounding
315box, and rxvt-unicode has no way of detecting this (the correct way is to
316ask for the character bounding box, which unfortunately is wrong in these
317cases).
318
319It's not clear (to me at least), whether this is a bug in Xft, freetype,
320or the respective font. If you encounter this problem you might try using
321the C<-lsp> option to give the font more height. If that doesn't work, you
322might be forced to use a different font.
323
324All of this is not a problem when using X11 core fonts, as their bounding
325box data is correct.
326
327=head3 How can I keep rxvt-unicode from using reverse video so much?
328
329First 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
331make sure you have specified colours for italic and bold, as otherwise
332rxvt-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
339For some unexplainable reason, some rare programs assume a very weird
340colour palette when confronted with a terminal with more than the standard
3418 colours (rxvt-unicode supports 88). The right fix is, of course, to fix
342these programs not to assume non-ISO colours without very good reasons.
343
344In the meantime, you can either edit your C<rxvt-unicode> terminfo
345definition to only claim 8 colour support or use C<TERM=rxvt>, which will
346fix colours but keep you from using other rxvt-unicode features.
347
348=head3 Can I switch the fonts at runtime?
349
350Yes, using an escape sequence. Try something like this, which has the same
351effect as using the C<-fn> switch, and takes effect immediately:
352
353 printf '\33]50;%s\007' "9x15bold,xft:Kochi Gothic"
354
355This is useful if you e.g. work primarily with japanese (and prefer a
356japanese font), but you have to switch to chinese temporarily, where
357japanese fonts would only be in your way.
358
359You can think of this as a kind of manual ISO-2022 switching.
360
361=head3 Why do italic characters look as if clipped?
362
363Many fonts have difficulties with italic characters and hinting. For
364example, the otherwise very nicely hinted font C<xft:Bitstream Vera Sans
365Mono> completely fails in its italic face. A workaround might be to
366enable 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
373Yes, the most obvious way to speed it up is to avoid Xft entirely, as
374it is simply slow. If you still want Xft fonts you might try to disable
375antialiasing (by appending C<:antialias=false>), which saves lots of
376memory and also speeds up rendering considerably.
377
378=head3 Rxvt-unicode doesn't seem to anti-alias its fonts, what is wrong?
379
380Rxvt-unicode will use whatever you specify as a font. If it needs to
381fall back to its default font search list it will prefer X11 core
382fonts, because they are small and fast, and then use Xft fonts. It has
383antialiasing disabled for most of them, because the author thinks they
384look best that way.
385
386If you want antialiasing, you have to specify the fonts manually.
387
388=head3 What's with this bold/blink stuff?
389
390If no bold colour is set via C<colorBD:>, bold will invert text using the
391standard foreground colour.
392
393For the standard background colour, blinking will actually make
394the text blink when compiled with C<--enable-text-blink>. Without
395C<--enable-text-blink>, the blink attribute will be ignored.
396
397On ANSI colours, bold/blink attributes are used to set high-intensity
398foreground/background colours.
399
400color0-7 are the low-intensity colours.
401
402color8-15 are the corresponding high-intensity colours.
403
404=head3 I don't like the screen colours. How do I change them?
405
406You can change the screen colours at run-time using F<~/.Xdefaults>
407resources (or as long-options).
408
409Here are values that are supposed to resemble a VGA screen,
410including 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
430And 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
451They have been described (not by me) as "pretty girly".
452
453=head3 Why do some characters look so much different than others?
454
455See next entry.
456
457=head3 How does rxvt-unicode choose fonts?
458
459Most fonts do not contain the full range of Unicode, which is
460fine. Chances are that the font you (or the admin/package maintainer of
461your system/os) have specified does not cover all the characters you want
462to display.
463
464B<rxvt-unicode> makes a best-effort try at finding a replacement
465font. Often the result is fine, but sometimes the chosen font looks
466bad/ugly/wrong. Some fonts have totally strange characters that don't
467resemble the correct glyph at all, and rxvt-unicode lacks the artificial
468intelligence to detect that a specific glyph is wrong: it has to believe
469the font that the characters it claims to contain indeed look correct.
470
471In that case, select a font of your taste and add it to the font list,
472e.g.:
473
474 @@URXVT_NAME@@ -fn basefont,font2,font3...
475
476When rxvt-unicode sees a character, it will first look at the base
477font. If the base font does not contain the character, it will go to the
478next font, and so on. Specifying your own fonts will also speed up this
479search and use less resources within rxvt-unicode and the X-server.
480
481The only limitation is that none of the fonts may be larger than the base
482font, as the base font defines the terminal character cell size, which
483must be the same due to the way terminals work.
484
485=head3 Why do some chinese characters look so different than others?
486
487This is because there is a difference between script and language --
488rxvt-unicode does not know which language the text that is output is,
489as it only knows the unicode character codes. If rxvt-unicode first
490sees a japanese/chinese character, it might choose a japanese font for
491display. Subsequent japanese characters will use that font. Now, many
492chinese characters aren't represented in japanese fonts, so when the first
493non-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
495chinese characters that are also in the japanese font.
496
497The workaround is easy: just tag a chinese font at the end of your font
498list (see the previous question). The key is to view the font list as
499a preference list: If you expect more japanese, list a japanese font
500first. If you expect more chinese, put a chinese font first.
501
502In the future it might be possible to switch language preferences at
503runtime (the internal data structure has no problem with using different
504fonts for the same character at the same time, but no interface for this
505has been designed yet).
506
507Until then, you might get away with switching fonts at runtime (see L<Can
508I switch the fonts at runtime?> later in this document).
509
510=head3 How can I make mplayer display video correctly?
511
512We 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
518This is likely caused by your editor/program's use of the C<cvvis>
519terminfo capability. Emacs uses it by default, as well as some versions of
520vi and possibly other programs.
521
522In emacs, you can switch that off by adding this to your C<.emacs> file:
523
524 (setq visible-cursor nil)
525
526For other programs, if they do not have an option, your have to remove the
527C<cvvis> capability from the terminfo description.
528
529When @@URXVT_NAME@@ first added the blinking cursor option, it didn't
530add a C<cvvis> capability, which served no purpose before. Version 9.21
531introduced C<cvvis> (and the ability to control blinking independent of
532cursor shape) for compatibility with other terminals, which traditionally
533use a blinking cursor for C<cvvis>. This also reflects the intent of
534programs 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
540If you want to select e.g. alphanumeric words, you can use the following
541setting:
542
543 URxvt.selection.pattern-0: ([[:word:]]+)
544
545If you click more than twice, the selection will be extended
546more and more.
547
548To get a selection that is very similar to the old code, try this pattern:
549
550 URxvt.selection.pattern-0: ([^"&'()*,;<=>?@[\\\\]^`{|})]+)
551
552Please also note that the I<LeftClick Shift-LeftClick> combination also
553selects 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
557You can disable the perl extension completely by setting the
558B<perl-ext-common> resource to the empty string, which also keeps
559rxvt-unicode from initialising perl, saving memory.
560
561If you only want to disable specific features, you first have to
562identify which perl extension is responsible. For this, read the section
563B<PREPACKAGED EXTENSIONS> in the @@URXVT_NAME@@perl(3) manpage. For
564example, to disable the B<selection-popup> and B<option-popup>, specify
565this B<perl-ext-common> resource:
566
567 URxvt.perl-ext-common: default,-selection-popup,-option-popup
568
569This will keep the default extensions, but disable the two popup
570extensions. Some extensions can also be configured, for example,
571scrollback search mode is triggered by B<M-s>. You can move it to any
572other combination by adding a B<keysym> resource that binds the desired
573combination to the C<start> action of C<searchable-scrollback> and another
574one 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
581See 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
585These are caused by the C<readline> perl extension. Under normal
586circumstances, it will move your cursor around when you click into the
587line that contains it. It tries hard not to do this at the wrong moment,
588but when running a program that doesn't parse cursor movements or in some
589cases during rlogin sessions, it fails to detect this properly.
590
591You can permanently switch this feature off by disabling the C<readline>
592extension:
593
594 URxvt.perl-ext-common: default,-readline
595
596=head3 My numeric keypad acts weird and generates differing output?
597
598Some Debian GNU/Linux users seem to have this problem, although no
599specific details were reported so far. It is possible that this is caused
600by the wrong C<TERM> setting, although the details of whether and how
601this can happen are unknown, as C<TERM=rxvt> should offer a compatible
602keymap. See the answer to the previous question, and please report if that
603helped.
604
605=head3 My Compose (Multi_key) key is no longer working.
606
607The most common causes for this are that either your locale is not set
608correctly, or you specified a B<preeditType> that is not supported by
609your input method. For example, if you specified B<OverTheSpot> and
610your input method (e.g. the default input method handling Compose keys)
611does not support this (for instance because it is not visual), then
612rxvt-unicode will continue without an input method.
613
614In this case either do not specify a B<preeditType> or specify more than
615one pre-edit style, such as B<OverTheSpot,Root,None>.
616
617If it still doesn't work, then maybe your input method doesn't support
618compose sequences - to fall back to the built-in one, make sure you don't
619specify 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
623Either try C<Ctrl-2> alone (it often is mapped to ASCII NUL even on
624international keyboards) or simply use ISO 14755 support to your
625advantage, typing <Ctrl-Shift-0> to get a ASCII NUL. This works for other
626codes, too, such as C<Ctrl-Shift-1-d> to type the default telnet escape
627character and so on.
628
629=head3 Mouse cut/paste suddenly no longer works.
630
631Make sure that mouse reporting is actually turned off since killing
632some editors prematurely may leave it active. I've
633heard that tcsh may use mouse reporting unless it is otherwise specified. A
634quick check is to see if cut/paste works when the Alt or Shift keys are
635pressed.
636
637=head3 What's with the strange Backspace/Delete key behaviour?
638
639Assuming that the physical Backspace key corresponds to the
640Backspace keysym (not likely for Linux ... see the following
641question) there are two standard values that can be used for
642Backspace: C<^H> and C<^?>.
643
644Historically, either value is correct, but rxvt-unicode adopts the debian
645policy of using C<^?> when unsure, because it's the one and only correct
646choice :).
647
648It is possible to toggle between C<^H> and C<^?> with the DECBKM
649private 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
659This helps satisfy some of the Backspace discrepancies that occur, but
660if you use Backspace = C<^H>, make sure that the termcap/terminfo value
661properly reflects that.
662
663The Delete key is a another casualty of the ill-defined Backspace problem.
664To avoid confusion between the Backspace and Delete keys, the Delete
665key has been assigned an escape sequence to match the vt100 for Execute
666(C<ESC [ 3 ~>) and is in the supplied termcap/terminfo.
667
668Some other Backspace problems:
669
670some editors use termcap/terminfo,
671some editors (vim I'm told) expect Backspace = ^H,
672GNU Emacs (and Emacs-like editors) use ^H for help.
673
674Perhaps 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
678There are some compile-time selections available via configure. Unless
679you have run "configure" with the C<--disable-resources> option you can
680use the `keysym' resource to alter the keystrings associated with keysyms.
681
682Here'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
693See 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
704Rather than have rxvt-unicode try to accommodate all the various possible
705keyboard mappings, it is better to use `xmodmap' to remap the keys as
706required for your particular machine.
707
708
709=head2 Terminal Configuration
710
711=head3 Can I see a typical configuration?
712
713The default configuration tries to be xterm-like, which I don't like that
714much, but it's least surprise to regular users.
715
716As a rxvt or rxvt-unicode user, you are practically supposed to invest
717time into customising your terminal. To get you started, here is the
718author's .Xdefaults entries, with comments on what they do. It's certainly
719not I<typical>, but what's typical...
720
721 URxvt.cutchars: "()*,<>[]{}|'
722 URxvt.print-pipe: cat >/some/path
723
724These are just for testing stuff.
725
726 URxvt.imLocale: ja_JP.UTF-8
727 URxvt.preeditType: OnTheSpot,None
728
729This tells rxvt-unicode to use a special locale when communicating with
730the X Input Method, and also tells it to only use the OnTheSpot pre-edit
731type, which requires the C<xim-onthespot> perl extension but rewards me
732with 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
741This is my perl configuration. The first two set the perl library
742directory and also tells urxvt to use a large number of extensions. I
743develop for myself mostly, so I actually use most of the extensions I
744write.
745
746The selection stuff mainly makes the selection perl-error-message aware
747and tells it to convert perl error messages into vi-commands to load the
748relevant file and go to the error line number.
749
750 URxvt.scrollstyle: plain
751 URxvt.secondaryScroll: true
752
753As the documentation says: plain is the preferred scrollbar for the
754author. The C<secondaryScroll> configures urxvt to scroll in full-screen
755apps, like screen, so lines scrolled out of screen end up in urxvt's
756scrollback 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
766Some colours. Not sure which ones are being used or even non-defaults, but
767these are in my .Xdefaults. Most notably, they set foreground/background
768to light gray/black, and also make sure that the colour 7 matches the
769default foreground colour.
770
771 URxvt.underlineColor: yellow
772
773Another colour, makes underline lines look different. Sometimes hurts, but
774is mostly a nice effect.
775
776 URxvt.geometry: 154x36
777 URxvt.loginShell: false
778 URxvt.meta: ignore
779 URxvt.utmpInhibit: true
780
781Uh, well, should be mostly self-explanatory. By specifying some defaults
782manually, I can quickly switch them for testing.
783
784 URxvt.saveLines: 8192
785
786A large scrollback buffer is essential. Really.
787
788 URxvt.mapAlert: true
789
790The only case I use it is for my IRC window, which I like to keep
791iconified till people msg me (which beeps).
792
793 URxvt.visualBell: true
794
795The audible bell is often annoying, especially when in a crowd.
796
797 URxvt.insecure: true
798
799Please don't hack my mutt! Ooops...
800
801 URxvt.pastableTabs: false
802
803I 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
815I wrote rxvt-unicode to be able to specify fonts exactly. So don't be
816overwhelmed. A special note: the C<9x15bold> mentioned above is actually
817the version from XFree-3.3, as XFree-4 replaced it by a totally different
818font (different glyphs for C<;> and many other harmless characters),
819while the second font is actually the C<9x15bold> from XFree4/XOrg. The
820bold version has less chars than the medium version, so I use it for rare
821characters, too. When editing sources with vim, I use italic for comments
822and other stuff, which looks quite good with Bitstream Vera anti-aliased.
823
824Terminus is a quite bad font (many very wrong glyphs), but for most of my
825purposes, it works, and gives a different look, as my normal (Non-bold)
826font is already bold, and I want to see a difference between bold and
827normal fonts.
828
829Please note that I used the C<urxvt> instance name and not the C<URxvt>
830class name. That is because I use different configs for different purposes,
831for example, my IRC window is started with C<-name IRC>, and uses these
832defaults:
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
844C<Alt-Ctrl-1> and C<Alt-Ctrl-2> switch between two different font
845sizes. C<suxuseuro> allows me to keep an eye (and actually read)
846stuff while keeping a very small window. If somebody pastes something
847complicated (e.g. japanese), I temporarily switch to a larger font.
848
849The above is all in my C<.Xdefaults> (I don't use C<.Xresources> nor
850C<xrdb>). I also have some resources in a separate C<.Xdefaults-hostname>
851file 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
859The first for keysym definitions allow me to quickly bring some windows
860in the layout I like most. Ion users might start laughing but will stop
861immediately when I tell them that I use my own Fvwm2 module for much the
862same effect as Ion provides, and I only very rarely use the above key
863combinations :->
864
865=head3 Why doesn't rxvt-unicode read my resources?
866
867Well, why, indeed? It does, in a way very similar to other X
868applications. Most importantly, this means that if you or your OS loads
869resources into the X display (the right way to do it), rxvt-unicode will
870ignore any resource files in your home directory. It will only read
871F<$HOME/.Xdefaults> when no resources are attached to the display.
872
873If you have or use an F<$HOME/.Xresources> file, chances are that
874resources are loaded into your X-server. In this case, you have to
875re-login after every change (or run F<xrdb -merge $HOME/.Xresources>).
876
877Also consider the form resources have to use:
878
879 URxvt.resource: value
880
881If you want to use another form (there are lots of different ways of
882specifying resources), make sure you understand whether and why it
883works. If unsure, use the form above.
884
885=head3 When I log-in to another system it tells me about missing terminfo data?
886
887The terminal description used by rxvt-unicode is not as widely available
888as that for xterm, or even rxvt (for which the same problem often arises).
889
890The correct solution for this problem is to install the terminfo, this can
891be 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
893terminfo database manually like this (with ncurses infocmp. works as
894user and root):
895
896 REMOTE=remotesystem.domain
897 infocmp rxvt-unicode | ssh $REMOTE "mkdir -p .terminfo && cat >/tmp/ti && tic /tmp/ti"
898
899One some systems you might need to set C<$TERMINFO> to the full path of
900F<$HOME/.terminfo> for this to work.
901
902If you cannot or do not want to do this, then you can simply set
903C<TERM=rxvt> or even C<TERM=xterm>, and live with the small number of
904problems arising, which includes wrong keymapping, less and different
905colours and some refresh errors in fullscreen applications. It's a nice
906quick-and-dirty workaround for rare cases, though.
907
908If you always want to do this (and are fine with the consequences) you
909can either recompile rxvt-unicode with the desired TERM value or use a
910resource to set it:
911
912 URxvt.termName: rxvt
913
914If you don't plan to use B<rxvt> (quite common...) you could also replace
915the 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
919This exceptionally confusing and useless error message is printed by nano
920when it can't find the terminfo database. Nothing is wrong with your
921terminal, read the previous answer for a solution.
922
923=head3 C<tic> outputs some error when compiling the terminfo entry.
924
925Most likely it's the empty definition for C<enacs=>. Just replace it by
926C<enacs=\E[0@> and try again.
927
928=head3 C<bash>'s readline does not work correctly under @@URXVT_NAME@@.
929
930See next entry.
931
932=head3 I need a termcap file entry.
933
934One reason you might want this is that some distributions or operating
935systems still compile some programs using the long-obsoleted termcap
936library (Fedora's bash is one example) and rely on a termcap entry
937for C<rxvt-unicode>.
938
939You could use rxvt's termcap entry with reasonable results in many cases.
940You can also create a termcap entry by using terminfo's infocmp program
941like this:
942
943 infocmp -C rxvt-unicode
944
945Or you could use the termcap entry in doc/etc/rxvt-unicode.termcap,
946generated by the command above.
947
948=head3 Why does C<ls> no longer have coloured output?
949
950The C<ls> in the GNU coreutils unfortunately doesn't use terminfo to
951decide whether a terminal has colour, but uses its own configuration
952file. Needless to say, C<rxvt-unicode> is not in its default file (among
953with most other terminals supporting colour). Either add:
954
955 TERM rxvt-unicode
956
957to C</etc/DIR_COLORS> or simply add:
958
959 alias ls='ls --color=auto'
960
961to your C<.profile> or C<.bashrc>.
962
963=head3 Why doesn't vim/emacs etc. use the 88 colour mode?
964
965See next entry.
966
967=head3 Why doesn't vim/emacs etc. make use of italic?
968
969See next entry.
970
971=head3 Why are the secondary screen-related options not working properly?
972
973Make sure you are using C<TERM=rxvt-unicode>. Some pre-packaged
974distributions break rxvt-unicode by setting C<TERM> to C<rxvt>, which
975doesn't have these extra features. Unfortunately, some of these
976furthermore fail to even install the C<rxvt-unicode> terminfo file, so
977you will need to install it on your own (See the question B<When I
978log-in to another system it tells me about missing terminfo data?> on
979how 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
986See next entry.
987
988=head3 Unicode does not seem to work?
989
990If you encounter strange problems like typing an accented character but
991getting two unrelated other characters or similar, or if program output is
992subtly garbled, then you should check your locale settings.
993
994Rxvt-unicode must be started with the same C<LC_CTYPE> setting as the
995programs running in it. Often rxvt-unicode is started in the C<C> locale,
996while the login script running within the rxvt-unicode window changes the
997locale to something else, e.g. C<en_GB.UTF-8>. Needless to say, this is
998not going to work, and is the most common cause for problems.
999
1000The best thing is to fix your startup environment, as you will likely run
1001into 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
1005If this doesn't work, then maybe you use a C<LC_CTYPE> specification not
1006supported on your systems. Some systems have a C<locale> command which
1007displays this (also, C<perl -e0> can be used to check locale settings, as
1008it will complain loudly if it cannot set the locale). If it displays something
1009like:
1010
1011 locale: Cannot set LC_CTYPE to default locale: ...
1012
1013Then the locale you specified is not supported on your system.
1014
1015If nothing works and you are sure that everything is set correctly then
1016you will need to remember a little known fact: Some programs just don't
1017support locales :(
1018
1019=head3 How does rxvt-unicode determine the encoding to use?
1020
1021See next entry.
1022
1023=head3 Is there an option to switch encodings?
1024
1025Unlike some other terminals, rxvt-unicode has no encoding switch, and no
1026specific "utf-8" mode, such as xterm. In fact, it doesn't even know about
1027UTF-8 or any other encodings with respect to terminal I/O.
1028
1029The reasons is that there exists a perfectly fine mechanism for selecting
1030the encoding, doing I/O and (most important) communicating this to all
1031applications so everybody agrees on character properties such as width
1032and code number. This mechanism is the I<locale>. Applications not using
1033that info will have problems (for example, C<xterm> gets the width of
1034characters wrong as it uses its own, locale-independent table under all
1035locales).
1036
1037Rxvt-unicode uses the C<LC_CTYPE> locale category to select encoding. All
1038programs doing the same (that is, most) will automatically agree in the
1039interpretation of characters.
1040
1041Unfortunately, there is no system-independent way to select locales, nor
1042is there a standard on how locale specifiers will look like.
1043
1044On most systems, the content of the C<LC_CTYPE> environment variable
1045contains an arbitrary string which corresponds to an already-installed
1046locale. Common names for locales are C<en_US.UTF-8>, C<de_DE.ISO-8859-15>,
1047C<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
1050Rxvt-unicode ignores all other locale categories, and except for
1051the encoding, ignores country or language-specific settings,
1052i.e. C<de_DE.UTF-8> and C<ja_JP.UTF-8> are the normally same to
1053rxvt-unicode.
1054
1055If you want to use a specific encoding you have to make sure you start
1056rxvt-unicode with the correct C<LC_CTYPE> category.
1057
1058=head3 Can I switch locales at runtime?
1059
1060Yes, using an escape sequence. Try something like this, which sets
1061rxvt-unicode's idea of C<LC_CTYPE>.
1062
1063 printf '\33]701;%s\007' ja_JP.SJIS
1064
1065See also the previous answer.
1066
1067Sometimes this capability is rather handy when you want to work in
1068one 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
1070first 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
1076You can also use xterm's C<luit> program, which usually works fine, except
1077for some locales where character width differs between program- and
1078rxvt-unicode-locales.
1079
1080=head3 I have problems getting my input method working.
1081
1082Try a search engine, as this is slightly different for every input method server.
1083
1084Here is a checklist:
1085
1086=over 4
1087
1088=item - Make sure your locale I<and> the imLocale are supported on your OS.
1089
1090Try 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
1094For example, B<kinput2> does not support UTF-8 locales, you should use
1095C<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
1101When you want to use e.g. B<kinput2>, it must be set to
1102C<@im=kinput2>. For B<scim>, use C<@im=SCIM>. You can see what input
1103method 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
1111You can specify separate locales for the input method and the rest of the
1112terminal, using the resource C<imlocale>:
1113
1114 URxvt.imlocale: ja_JP.EUC-JP
1115
1116Now you can start your terminal with C<LC_CTYPE=ja_JP.UTF-8> and still
1117use your input method. Please note, however, that, depending on your Xlib
1118version, you may not be able to input characters outside C<EUC-JP> in a
1119normal way then, as your input method limits you.
1120
1121=head3 Rxvt-unicode crashes when the X Input Method changes or exits.
1122
1123Unfortunately, this is unavoidable, as the XIM protocol is racy by
1124design. Applications can avoid some crashes at the expense of memory
1125leaks, and Input Methods can avoid some crashes by careful ordering at
1126exit time. B<kinput2> (and derived input methods) generally succeeds,
1127while B<SCIM> (or similar input methods) fails. In the end, however,
1128crashes cannot be completely avoided even if both sides cooperate.
1129
1130So 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
1137You should build one binary with the default options. F<configure>
1138now enables most useful options, and the trend goes to making them
1139runtime-switchable, too, so there is usually no drawback to enabling them,
1140except higher disk and possibly memory usage. The perl interpreter should
1141be enabled, as important functionality (menus, selection, likely more in
1142the future) depends on it.
1143
1144You should not overwrite the C<perl-ext-common> and C<perl-ext> resources
1145system-wide (except maybe with C<defaults>). This will result in useful
1146behaviour. If your distribution aims at low memory, add an empty
1147C<perl-ext-common> resource to the app-defaults file. This will keep the
1148perl interpreter disabled until the user enables it.
1149
1150If you can/want build more binaries, I recommend building a minimal
1151one with C<--disable-everything> (very useful) and a maximal one with
1152C<--enable-everything> (less useful, it will be very big due to a lot of
1153encodings 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
1157It should be, starting with release 7.1. You are encouraged to properly
1158install urxvt with privileges necessary for your OS now.
1159
1160When rxvt-unicode detects that it runs setuid or setgid, it will fork
1161into a helper process for privileged operations (pty handling on some
1162systems, utmp/wtmp/lastlog handling on others) and drop privileges
1163immediately. This is much safer than most other terminals that keep
1164privileges while running (but is more relevant to urxvt, as it contains
1165things as perl interpreters, which might be "helpful" to attackers).
1166
1167This forking is done as the very first within main(), which is very early
1168and reduces possible bugs to initialisation code run before main(), or
1169things like the dynamic loader of your system, which should result in very
1170little risk.
1171
1172=head3 I am on FreeBSD and rxvt-unicode does not seem to work at all.
1173
1174Rxvt-unicode requires the symbol C<__STDC_ISO_10646__> to be defined
1175in your compile environment, or an implementation that implements it,
1176whether it defines the symbol or not. C<__STDC_ISO_10646__> requires that
1177B<wchar_t> is represented as unicode.
1178
1179As you might have guessed, FreeBSD does neither define this symbol nor
1180does it support it. Instead, it uses its own internal representation of
1181B<wchar_t>. This is, of course, completely fine with respect to standards.
1182
1183However, that means rxvt-unicode only works in C<POSIX>, C<ISO-8859-1> and
1184C<UTF-8> locales under FreeBSD (which all use Unicode as B<wchar_t>).
1185
1186C<__STDC_ISO_10646__> is the only sane way to support multi-language
1187apps in an OS, as using a locale-dependent (and non-standardized)
1188representation of B<wchar_t> makes it impossible to convert between
1189B<wchar_t> (as used by X11 and your applications) and any other encoding
1190without implementing OS-specific-wrappers for each and every locale. There
1191simply are no APIs to convert B<wchar_t> into anything except the current
1192locale encoding.
1193
1194Some applications (such as the formidable B<mlterm>) work around this
1195by carrying their own replacement functions for character set handling
1196with them, and either implementing OS-dependent hacks or doing multiple
1197conversions (which is slow and unreliable in case the OS implements
1198encodings slightly different than the terminal emulator).
1199
1200The rxvt-unicode author insists that the right way to fix this is in the
1201system libraries once and for all, instead of forcing every app to carry
1202complete replacements for them :)
1203
1204=head3 How can I use rxvt-unicode under cygwin?
1205
1206rxvt-unicode should compile and run out of the box on cygwin, using
1207the X11 libraries that come with cygwin. libW11 emulation is no
1208longer supported (and makes no sense, either, as it only supported a
1209single font). I recommend starting the X-server in C<-multiwindow> or
1210C<-rootless> mode instead, which will result in similar look&feel as the
1211old libW11 emulation.
1212
1213At the time of this writing, cygwin didn't seem to support any multi-byte
1214encodings (you might try C<LC_CTYPE=C-UTF-8>), so you are likely limited
1215to 8-bit encodings.
1216
1217=head3 Character widths are not correct.
1218
1219urxvt uses the system wcwidth function to know the information about
1220the width of characters, so on systems with incorrect locale data you
1221will likely get bad results. Two notorious examples are Solaris 9,
1222where single-width characters like U+2514 are reported as double-width,
1223and Darwin 8, where combining chars are reported having width 1.
1224
1225The solution is to upgrade your system or switch to a better one. A
1226possibly working workaround is to use a wcwidth implementation like
1227
1228http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
1229
1230=head1 RXVT-UNICODE TECHNICAL REFERENCE
1231
1232The rest of this document describes various technical aspects of
1233B<rxvt-unicode>. First the description of supported command sequences,
1234followed by pixmap support and last by a description of all features
1235selectable at C<configure> time.
1236
1237When some functionality is marked as (insecure mode), then it requires
1238insecure mode to be enabled to work fully, e.g. by using the B<insecure>
1239resource or command line switch. As that name implies, a terminal running
1240in insecure mode might not be secure against attackers that can output
1241arbitrary sequences to the terminal.
1242
1243=head2 Definitions
1244
1245=over 4
1246
11=item B<< C<c> >> 1247=item B<< C<c> >>
12 1248
13The literal character c. 1249The literal character c (potentially a multi-byte character).
14 1250
15=item B<< C<C> >> 1251=item B<< C<C> >>
16 1252
17A single (required) character. 1253A single (required) character.
18 1254
30 1266
31A text parameter composed of printable characters. 1267A text parameter composed of printable characters.
32 1268
33=back 1269=back
34 1270
35=head1 Values 1271=head2 Values
36 1272
37=over 4 1273=over 4
38 1274
39=item B<< C<ENQ> >> 1275=item B<< C<ENQ> >>
40 1276
41Enquiry (Ctrl-E) = Send Device Attributes (DA) 1277Enquiry (Ctrl-E) = Send Device Attributes (DA)
42request attributes from terminal == 1278request attributes from terminal. See B<< C<ESC [ Ps c> >>.
43 1279
44=item B<< C<BEL> >> 1280=item B<< C<BEL> >>
45 1281
46Bell (Ctrl-G) 1282Bell (Ctrl-G)
47 1283
77=item B<< C<SI> >> 1313=item B<< C<SI> >>
78 1314
79Shift In (Ctrl-O), invokes the G0 character set (the default). 1315Shift In (Ctrl-O), invokes the G0 character set (the default).
80Switch to Standard Character Set 1316Switch to Standard Character Set
81 1317
82=item B<< C<SPC> >> 1318=item B<< C<SP> >>
83 1319
84Space Character 1320Space Character
85 1321
86=back 1322=back
87 1323
88=head1 Escape Sequences 1324=head2 Escape Sequences
89 1325
90=over 4 1326=over 4
91 1327
92=item B<< C<ESC # 8> >> 1328=item B<< C<ESC # 8> >>
93 1329
103 1339
104=item B<< C<ESC => >> 1340=item B<< C<ESC => >>
105 1341
106Application Keypad (SMKX). See also next sequence. 1342Application Keypad (SMKX). See also next sequence.
107 1343
108=item B<<< C<< ESC >> >>> 1344=item B<<< C<< ESC > >> >>>
109 1345
110Normal Keypad (RMKX) 1346Normal Keypad (RMKX)
111 1347
112B<Note:> If the numeric keypad is activated, eg, B<Num_Lock> has been
113pressed, numbers or control functions are generated by the numeric keypad 1348B<Note:> numbers or control functions are generated by the numeric
114(see Key Codes). 1349keypad in normal or application mode, respectively (see Key Codes).
1350
115 1351
116=item B<< C<ESC D> >> 1352=item B<< C<ESC D> >>
117 1353
118Index (IND) 1354Index (IND)
119 1355
139Single Shift Select of G3 Character Set (SS3): affects next character 1375Single Shift Select of G3 Character Set (SS3): affects next character
140only I<unimplemented> 1376only I<unimplemented>
141 1377
142=item B<< C<ESC Z> >> 1378=item B<< C<ESC Z> >>
143 1379
144Obsolete form of returns: B<< C<ESC[?1;2C> >> I<rxvt compile-time option> 1380Obsolete form of returns: B<< C<ESC [ ? 1 ; 2 C> >> I<rxvt-unicode compile-time option>
145 1381
146=item B<< C<ESC c> >> 1382=item B<< C<ESC c> >>
147 1383
148Full reset (RIS) 1384Full reset (RIS)
149 1385
153 1389
154=item B<< C<ESC o> >> 1390=item B<< C<ESC o> >>
155 1391
156Invoke the G3 Character Set (LS3) 1392Invoke the G3 Character Set (LS3)
157 1393
158=item B<< C<ESC>(C<C> >> 1394=item B<< C<ESC ( C> >>
159 1395
160Designate G0 Character Set (ISO 2022), see below for values of C<C>. 1396Designate G0 Character Set (ISO 2022), see below for values of C<C>.
161 1397
162=item B<< C<ESC>)C<C> >> 1398=item B<< C<ESC ) C> >>
163 1399
164Designate G1 Character Set (ISO 2022), see below for values of C<C>. 1400Designate G1 Character Set (ISO 2022), see below for values of C<C>.
165 1401
166=item B<< C<ESC * C> >> 1402=item B<< C<ESC * C> >>
167 1403
177 1413
178Where B<< C<C> >> is one of: 1414Where B<< C<C> >> is one of:
179 1415
180=begin table 1416=begin table
181 1417
182 C = C<0> DEC Special Character and Line Drawing Set 1418 C = C<0> DEC Special Character and Line Drawing Set
183 C = C<A> United Kingdom (UK) 1419 C = C<A> United Kingdom (UK)
184 C = C<B> United States (USASCII) 1420 C = C<B> United States (USASCII)
185 C = C<< < >> Multinational character set I<unimplemented> 1421 C = C<< < >> Multinational character set I<unimplemented>
186 C = C<5> Finnish character set I<unimplemented> 1422 C = C<5> Finnish character set I<unimplemented>
187 C = C<C> Finnish character set I<unimplemented> 1423 C = C<C> Finnish character set I<unimplemented>
188 C = C<K> German character set I<unimplemented> 1424 C = C<K> German character set I<unimplemented>
189 1425
190=end table 1426=end table
191 1427
192=back 1428=back
193 1429
194X<CSI> 1430X<CSI>
195 1431
196=head1 CSI (Code Sequence Introducer) Sequences 1432=head2 CSI (Command Sequence Introducer) Sequences
197 1433
198=over 4 1434=over 4
199 1435
200=item B<< C<ESC [ Ps @> >> 1436=item B<< C<ESC [ Ps @> >>
201 1437
241 1477
242Erase in Display (ED) 1478Erase in Display (ED)
243 1479
244=begin table 1480=begin table
245 1481
246 B<< C<Ps = 0> >> Clear Below (default) 1482 B<< C<Ps = 0> >> Clear Right and Below (default)
247 B<< C<Ps = 1> >> Clear Above 1483 B<< C<Ps = 1> >> Clear Left and Above
248 B<< C<Ps = 2> >> Clear All 1484 B<< C<Ps = 2> >> Clear All
249 1485
250=end table 1486=end table
251 1487
252=item B<< C<ESC [ Ps K> >> 1488=item B<< C<ESC [ Ps K> >>
256=begin table 1492=begin table
257 1493
258 B<< C<Ps = 0> >> Clear to Right (default) 1494 B<< C<Ps = 0> >> Clear to Right (default)
259 B<< C<Ps = 1> >> Clear to Left 1495 B<< C<Ps = 1> >> Clear to Left
260 B<< C<Ps = 2> >> Clear All 1496 B<< C<Ps = 2> >> Clear All
1497 B<< C<Ps = 3> >> Like Ps = 0, but is ignored when wrapped
1498 (@@RXVT_NAME@@ extension)
261 1499
262=end table 1500=end table
263 1501
264=item B<< C<ESC [ Ps L> >> 1502=item B<< C<ESC [ Ps L> >>
265 1503
298 1536
299Move backward B<< C<Ps> >> [default: 1] tab stops 1537Move backward B<< C<Ps> >> [default: 1] tab stops
300 1538
301=item B<< C<ESC [ Ps '> >> 1539=item B<< C<ESC [ Ps '> >>
302 1540
303== 1541See B<< C<ESC [ Ps G> >>
304 1542
305=item B<< C<ESC [ Ps a> >> 1543=item B<< C<ESC [ Ps a> >>
306 1544
307==X<ESCOBPsc> 1545See B<< C<ESC [ Ps C> >>
308 1546
309=item B<< C<ESC [ Ps c> >> 1547=item B<< C<ESC [ Ps c> >>
310 1548
311Send Device Attributes (DA) 1549Send Device Attributes (DA)
312B<< C<Ps = 0> >> (or omitted): request attributes from terminal 1550B<< C<Ps = 0> >> (or omitted): request attributes from terminal
313returns: B<< C<ESC[?1;2c> >> (``I am a VT100 with Advanced Video 1551returns: B<< C<ESC [ ? 1 ; 2 c> >> (``I am a VT100 with Advanced Video
314Option'') 1552Option'')
315 1553
316=item B<< C<ESC [ Ps d> >> 1554=item B<< C<ESC [ Ps d> >>
317 1555
318Cursor to Line B<< C<Ps> >> (VPA) 1556Cursor to Line B<< C<Ps> >> (VPA)
319 1557
320=item B<< C<ESC [ Ps e> >> 1558=item B<< C<ESC [ Ps e> >>
321 1559
322== 1560See B<< C<ESC [ Ps A> >>
323 1561
324=item B<< C<ESC [ Ps;Ps f> >> 1562=item B<< C<ESC [ Ps;Ps f> >>
325 1563
326Horizontal and Vertical Position [row;column] (HVP) [default: 1;1] 1564Horizontal and Vertical Position [row;column] (HVP) [default: 1;1]
327 1565
334 B<< C<Ps = 0> >> Clear Current Column (default) 1572 B<< C<Ps = 0> >> Clear Current Column (default)
335 B<< C<Ps = 3> >> Clear All (TBC) 1573 B<< C<Ps = 3> >> Clear All (TBC)
336 1574
337=end table 1575=end table
338 1576
1577=item B<< C<ESC [ Pm h> >>
1578
1579Set Mode (SM). See B<< C<ESC [ Pm l> >> sequence for description of C<Pm>.
1580
339=item B<< C<ESC [ Ps i> >> 1581=item B<< C<ESC [ Ps i> >>
340 1582
341Printing 1583Printing. See also the C<print-pipe> resource.
342 1584
343=begin table 1585=begin table
344 1586
1587 B<< C<Ps = 0> >> print screen (MC0)
345 B<< C<Ps = 4> >> disable transparent print mode (MC4) 1588 B<< C<Ps = 4> >> disable transparent print mode (MC4)
346 B<< C<Ps = 5> >> enable transparent print mode (MC5) I<unimplemented> 1589 B<< C<Ps = 5> >> enable transparent print mode (MC5)
347 1590
348=end table 1591=end table
349
350=item B<< C<ESC [ Pm h> >>
351
352Set Mode (SM). See next sequence for description of C<Pm>.
353 1592
354=item B<< C<ESC [ Pm l> >> 1593=item B<< C<ESC [ Pm l> >>
355 1594
356Reset Mode (RM) 1595Reset Mode (RM)
357 1596
364 B<< C<h> >> Insert Mode (SMIR) 1603 B<< C<h> >> Insert Mode (SMIR)
365 B<< C<l> >> Replace Mode (RMIR) 1604 B<< C<l> >> Replace Mode (RMIR)
366 1605
367=end table 1606=end table
368 1607
369=item B<< C<Ps = 20> >> I<unimplemented> 1608=item B<< C<Ps = 20> >> (partially implemented)
370 1609
371=begin table 1610=begin table
372 1611
373 B<< C<h> >> Automatic Newline (LNM) 1612 B<< C<h> >> Automatic Newline (LNM)
374 B<< C<h> >> Normal Linefeed (LNM) 1613 B<< C<l> >> Normal Linefeed (LNM)
375 1614
376=end table 1615=end table
377 1616
378=back 1617=back
379 1618
381 1620
382Character Attributes (SGR) 1621Character Attributes (SGR)
383 1622
384=begin table 1623=begin table
385 1624
386 B<< C<Ps = 0> >> Normal (default) 1625 B<< C<Pm = 0> >> Normal (default)
387 B<< C<Ps = 1 / 22> >> On / Off Bold (bright fg) 1626 B<< C<Pm = 1 / 21> >> On / Off Bold (bright fg)
1627 B<< C<Pm = 3 / 23> >> On / Off Italic
388 B<< C<Ps = 4 / 24> >> On / Off Underline 1628 B<< C<Pm = 4 / 24> >> On / Off Underline
389 B<< C<Ps = 5 / 25> >> On / Off Blink (bright bg) 1629 B<< C<Pm = 5 / 25> >> On / Off Slow Blink (bright bg)
1630 B<< C<Pm = 6 / 26> >> On / Off Rapid Blink (bright bg)
390 B<< C<Ps = 7 / 27> >> On / Off Inverse 1631 B<< C<Pm = 7 / 27> >> On / Off Inverse
1632 B<< C<Pm = 8 / 27> >> On / Off Invisible (NYI)
391 B<< C<Ps = 30 / 40> >> fg/bg Black 1633 B<< C<Pm = 30 / 40> >> fg/bg Black
392 B<< C<Ps = 31 / 41> >> fg/bg Red 1634 B<< C<Pm = 31 / 41> >> fg/bg Red
393 B<< C<Ps = 32 / 42> >> fg/bg Green 1635 B<< C<Pm = 32 / 42> >> fg/bg Green
394 B<< C<Ps = 33 / 43> >> fg/bg Yellow 1636 B<< C<Pm = 33 / 43> >> fg/bg Yellow
395 B<< C<Ps = 34 / 44> >> fg/bg Blue 1637 B<< C<Pm = 34 / 44> >> fg/bg Blue
396 B<< C<Ps = 35 / 45> >> fg/bg Magenta 1638 B<< C<Pm = 35 / 45> >> fg/bg Magenta
397 B<< C<Ps = 36 / 46> >> fg/bg Cyan 1639 B<< C<Pm = 36 / 46> >> fg/bg Cyan
398 B<< C<Ps = 37 / 47> >> fg/bg White 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)
399 B<< C<Ps = 39 / 49> >> fg/bg Default 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
400 1654
401=end table 1655=end table
402 1656
403=item B<< C<ESC [ Ps n> >> 1657=item B<< C<ESC [ Ps n> >>
404 1658
406 1660
407=begin table 1661=begin table
408 1662
409 B<< C<Ps = 5> >> Status Report B<< C<ESC [ 0 n> >> (``OK'') 1663 B<< C<Ps = 5> >> Status Report B<< C<ESC [ 0 n> >> (``OK'')
410 B<< C<Ps = 6> >> Report Cursor Position (CPR) [row;column] as B<< C<ESC [ r ; c R> >> 1664 B<< C<Ps = 6> >> Report Cursor Position (CPR) [row;column] as B<< C<ESC [ r ; c R> >>
411 B<< C<Ps = 7> >> Request Display Name 1665 B<< C<Ps = 7> >> Request Display Name (insecure mode)
412 B<< C<Ps = 8> >> Request Version Number (place in window title) 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
1672Set 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)
413 1683
414=end table 1684=end table
415 1685
416=item B<< C<ESC [ Ps;Ps r> >> 1686=item B<< C<ESC [ Ps;Ps r> >>
417 1687
420 1690
421=item B<< C<ESC [ s> >> 1691=item B<< C<ESC [ s> >>
422 1692
423Save Cursor (SC) 1693Save Cursor (SC)
424 1694
1695=item B<< C<ESC [ Ps;Pt t> >>
1696
1697Window 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
1722Restore Cursor
1723
425=item B<< C<ESC [ Ps x> >> 1724=item B<< C<ESC [ Ps x> >>
426 1725
427Request Terminal Parameters (DECREQTPARM) 1726Request Terminal Parameters (DECREQTPARM)
428 1727
429=item B<< C<ESC [ u> >>
430
431Restore Cursor
432
433=back 1728=back
434 1729
435X<PrivateModes> 1730X<PrivateModes>
436 1731
437=head1 DEC Private Modes 1732=head2 DEC Private Modes
438 1733
439=over 4 1734=over 4
440 1735
441=item B<< C<ESC [ ? Pm h> >> 1736=item B<< C<ESC [ ? Pm h> >>
442 1737
458 1753
459Toggle DEC Private Mode Values (rxvt extension). I<where> 1754Toggle DEC Private Mode Values (rxvt extension). I<where>
460 1755
461=over 4 1756=over 4
462 1757
463=item B<< C<Ps = 1> >> (DECCKM) 1758=item B<< C<Pm = 1> >> (DECCKM)
464 1759
465=begin table 1760=begin table
466 1761
467 B<< C<h> >> Application Cursor Keys 1762 B<< C<h> >> Application Cursor Keys
468 B<< C<l> >> Normal Cursor Keys 1763 B<< C<l> >> Normal Cursor Keys
469 1764
470=end table 1765=end table
471 1766
472=item B<< C<Ps = 2> >> (ANSI/VT52 mode) 1767=item B<< C<Pm = 2> >> (DECANM)
473 1768
474=begin table 1769=begin table
475 1770
476 B<< C<h> >> Enter VT52 mode 1771 B<< C<h> >> Enter VT52 mode
477 B<< C<l> >> Enter VT52 mode 1772 B<< C<l> >> Enter VT52 mode
478 1773
479=end table 1774=end table
480 1775
481=item B<< C<Ps = 3> >> 1776=item B<< C<Pm = 3> >> (DECCOLM)
482 1777
483=begin table 1778=begin table
484 1779
485 B<< C<h> >> 132 Column Mode (DECCOLM) 1780 B<< C<h> >> 132 Column Mode
486 B<< C<l> >> 80 Column Mode (DECCOLM) 1781 B<< C<l> >> 80 Column Mode
487 1782
488=end table
489
490=item B<< C<Ps = 4> >>
491
492=begin table 1783=end table
493 1784
1785=item B<< C<Pm = 4> >> (DECSCLM)
1786
1787=begin table
1788
494 B<< C<h> >> Smooth (Slow) Scroll (DECSCLM) 1789 B<< C<h> >> Smooth (Slow) Scroll
495 B<< C<l> >> Jump (Fast) Scroll (DECSCLM) 1790 B<< C<l> >> Jump (Fast) Scroll
496 1791
497=end table
498
499=item B<< C<Ps = 5> >>
500
501=begin table 1792=end table
502 1793
1794=item B<< C<Pm = 5> >> (DECSCNM)
1795
1796=begin table
1797
503 B<< C<h> >> Reverse Video (DECSCNM) 1798 B<< C<h> >> Reverse Video
504 B<< C<l> >> Normal Video (DECSCNM) 1799 B<< C<l> >> Normal Video
505 1800
506=end table
507
508=item B<< C<Ps = 6> >>
509
510=begin table 1801=end table
511 1802
1803=item B<< C<Pm = 6> >> (DECOM)
1804
1805=begin table
1806
512 B<< C<h> >> Origin Mode (DECOM) 1807 B<< C<h> >> Origin Mode
513 B<< C<l> >> Normal Cursor Mode (DECOM) 1808 B<< C<l> >> Normal Cursor Mode
514 1809
515=end table
516
517=item B<< C<Ps = 7> >>
518
519=begin table 1810=end table
520 1811
1812=item B<< C<Pm = 7> >> (DECAWM)
1813
1814=begin table
1815
521 B<< C<h> >> Wraparound Mode (DECAWM) 1816 B<< C<h> >> Wraparound Mode
522 B<< C<l> >> No Wraparound Mode (DECAWM) 1817 B<< C<l> >> No Wraparound Mode
523 1818
524=end table 1819=end table
525 1820
526=item B<< C<Ps = 8> >> I<unimplemented> 1821=item B<< C<Pm = 8> >> (DECARM) I<unimplemented>
527 1822
528=begin table 1823=begin table
529 1824
530 B<< C<h> >> Auto-repeat Keys (DECARM) 1825 B<< C<h> >> Auto-repeat Keys
531 B<< C<l> >> No Auto-repeat Keys (DECARM) 1826 B<< C<l> >> No Auto-repeat Keys
532 1827
533=end table 1828=end table
534 1829
535=item B<< C<Ps = 9> >> X10 XTerm 1830=item B<< C<Pm = 9> >> (X10 XTerm mouse protocol)
536 1831
537=begin table 1832=begin table
538 1833
539 B<< C<h> >> Send Mouse X & Y on button press. 1834 B<< C<h> >> Send Mouse X & Y on button press.
540 B<< C<l> >> No mouse reporting. 1835 B<< C<l> >> No mouse reporting.
541 1836
542=end table 1837=end table
543 1838
544)X<Priv10> 1839=item B<< C<Pm = 12> >> (AT&T 610, XTerm)
545 1840
546=item B<< C<Ps = 10> >> (B<rxvt>)
547
548=begin table
549
550 B<< C<h> >> visible
551 B<< C<l> >> invisible
552
553=end table 1841=begin table
554 1842
1843 B<< C<h> >> Blinking cursor (cvvis)
1844 B<< C<l> >> Steady cursor (cnorm)
1845
1846=end table
1847
555=item B<< C<Ps = 25> >> 1848=item B<< C<Pm = 25> >> (DECTCEM)
556 1849
557=begin table 1850=begin table
558 1851
559 B<< C<h> >> Visible cursor {cnorm/cvvis} 1852 B<< C<h> >> Visible cursor {cnorm/cvvis}
560 B<< C<l> >> Invisible cursor {civis} 1853 B<< C<l> >> Invisible cursor {civis}
561 1854
562=end table 1855=end table
563 1856
564=item B<< C<Ps = 30> >> 1857=item B<< C<Pm = 30> >> (B<rxvt>)
565 1858
566=begin table 1859=begin table
567 1860
568 B<< C<h> >> scrollBar visisble 1861 B<< C<h> >> scrollBar visible
569 B<< C<l> >> scrollBar invisisble 1862 B<< C<l> >> scrollBar invisible
570 1863
571=end table 1864=end table
572 1865
573=item B<< C<Ps = 35> >> (B<rxvt>) 1866=item B<< C<Pm = 35> >> (B<rxvt>)
574 1867
575=begin table 1868=begin table
576 1869
577 B<< C<h> >> Allow XTerm Shift+key sequences 1870 B<< C<h> >> Allow XTerm Shift+key sequences
578 B<< C<l> >> Disallow XTerm Shift+key sequences 1871 B<< C<l> >> Disallow XTerm Shift+key sequences
579 1872
580=end table 1873=end table
581 1874
582=item B<< C<Ps = 38> >> I<unimplemented> 1875=item B<< C<Pm = 38> >> I<unimplemented>
583 1876
584Enter Tektronix Mode (DECTEK) 1877Enter Tektronix Mode (DECTEK)
585 1878
586=item B<< C<Ps = 40> >> 1879=item B<< C<Pm = 40> >>
587 1880
588=begin table 1881=begin table
589 1882
590 B<< C<h> >> Allow 80/132 Mode 1883 B<< C<h> >> Allow 80/132 Mode
591 B<< C<l> >> Disallow 80/132 Mode 1884 B<< C<l> >> Disallow 80/132 Mode
592 1885
593=end table 1886=end table
594 1887
595=item B<< C<Ps = 44> >> I<unimplemented> 1888=item B<< C<Pm = 44> >> I<unimplemented>
596 1889
597=begin table 1890=begin table
598 1891
599 B<< C<h> >> Turn On Margin Bell 1892 B<< C<h> >> Turn On Margin Bell
600 B<< C<l> >> Turn Off Margin Bell 1893 B<< C<l> >> Turn Off Margin Bell
601 1894
602=end table 1895=end table
603 1896
604=item B<< C<Ps = 45> >> I<unimplemented> 1897=item B<< C<Pm = 45> >> I<unimplemented>
605 1898
606=begin table 1899=begin table
607 1900
608 B<< C<h> >> Reverse-wraparound Mode 1901 B<< C<h> >> Reverse-wraparound Mode
609 B<< C<l> >> No Reverse-wraparound Mode 1902 B<< C<l> >> No Reverse-wraparound Mode
610 1903
611=end table 1904=end table
612 1905
613=item B<< C<Ps = 46> >> I<unimplemented> 1906=item B<< C<Pm = 46> >> I<unimplemented>
614 1907
615=item B<< C<Ps = 47> >> 1908=item B<< C<Pm = 47> >>
616 1909
617=begin table 1910=begin table
618 1911
619 B<< C<h> >> Use Alternate Screen Buffer 1912 B<< C<h> >> Use Alternate Screen Buffer
620 B<< C<l> >> Use Normal Screen Buffer 1913 B<< C<l> >> Use Normal Screen Buffer
621 1914
622=end table 1915=end table
623 1916
624X<Priv66> 1917X<Priv66>
625 1918
626=item B<< C<Ps = 66> >> 1919=item B<< C<Pm = 66> >> (DECNKM)
627 1920
628=begin table 1921=begin table
629 1922
630 B<< C<h> >> Application Keypad (DECPAM) == 1923 B<< C<h> >> Application Keypad (DECKPAM/DECPAM) == C<ESC =>
631 B<< C<l> >> Normal Keypad (DECPNM) == 1924 B<< C<l> >> Normal Keypad (DECKPNM/DECPNM) == C<< ESC > >>
632 1925
633=end table
634
635=item B<< C<Ps = 67> >>
636
637=begin table 1926=end table
638 1927
1928=item B<< C<Pm = 67> >> (DECBKM)
1929
1930=begin table
1931
639 B<< C<h> >> Backspace key sends B<< C<BS> (DECBKM) >> 1932 B<< C<h> >> Backspace key sends B<< C<BS> >>
640 B<< C<l> >> Backspace key sends B<< C<DEL> >> 1933 B<< C<l> >> Backspace key sends B<< C<DEL> >>
641 1934
642=end table 1935=end table
643 1936
644=item B<< C<Ps = 1000> >> (X11 XTerm) 1937=item B<< C<Pm = 1000> >> (X11 XTerm mouse protocol)
645 1938
646=begin table 1939=begin table
647 1940
648 B<< C<h> >> Send Mouse X & Y on button press and release. 1941 B<< C<h> >> Send Mouse X & Y on button press and release.
649 B<< C<l> >> No mouse reporting. 1942 B<< C<l> >> No mouse reporting.
650 1943
651=end table 1944=end table
652 1945
653=item B<< C<Ps = 1001> >> (X11 XTerm) I<unimplemented> 1946=item B<< C<Pm = 1001> >> (X11 XTerm) I<unimplemented>
654 1947
655=begin table 1948=begin table
656 1949
657 B<< C<h> >> Use Hilite Mouse Tracking. 1950 B<< C<h> >> Use Hilite Mouse Tracking.
658 B<< C<l> >> No mouse reporting. 1951 B<< C<l> >> No mouse reporting.
659 1952
660=end table 1953=end table
661 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
1984Try to avoid this mode, it doesn't work sensibly in non-UTF-8 locales. Use
1985mode C<1015> instead.
1986
1987Unlike 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
662=item B<< C<Ps = 1010> >> 2005=item B<< C<Pm = 1010> >> (B<rxvt>)
663 2006
664=begin table 2007=begin table
665 2008
666 B<< C<h> >> Don't scroll to bottom on TTY output 2009 B<< C<h> >> Don't scroll to bottom on TTY output
667 B<< C<l> >> Scroll to bottom on TTY output 2010 B<< C<l> >> Scroll to bottom on TTY output
668 2011
669=end table 2012=end table
670 2013
671=item B<< C<Ps = 1011> >> 2014=item B<< C<Pm = 1011> >> (B<rxvt>)
672 2015
673=begin table 2016=begin table
674 2017
675 B<< C<h> >> Scroll to bottom when a key is pressed 2018 B<< C<h> >> Scroll to bottom when a key is pressed
676 B<< C<l> >> Don't scroll to bottom when a key is pressed 2019 B<< C<l> >> Don't scroll to bottom when a key is pressed
677 2020
678=end table 2021=end table
679 2022
680=item B<< C<Ps = 1047> >> 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)
681 2042
682=begin table 2043=begin table
683 2044
684 B<< C<h> >> Use Alternate Screen Buffer 2045 B<< C<h> >> Use Alternate Screen Buffer
685 B<< C<l> >> Use Normal Screen Buffer - clear Alternate Screen Buffer if returning from it 2046 B<< C<l> >> Use Normal Screen Buffer - clear Alternate Screen Buffer if returning from it
686 2047
687=end table 2048=end table
688 2049
689=item B<< C<Ps = 1048> >> 2050=item B<< C<Pm = 1048> >> (X11 XTerm alternate DECSC)
690 2051
691=begin table 2052=begin table
692 2053
693 B<< C<h> >> Save cursor position 2054 B<< C<h> >> Save cursor position
694 B<< C<l> >> Restore cursor position 2055 B<< C<l> >> Restore cursor position
695 2056
696=end table 2057=end table
697 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
698=back 2077=back
699 2078
700=back 2079=back
701 2080
702X<XTerm> 2081X<XTerm>
703 2082
704=head1 XTerm Operating System Commands 2083=head2 XTerm Operating System Commands
705 2084
706=over 4 2085=over 4
707 2086
708=item B<< C<ESC ] Ps;Pt ST> >> 2087=item B<< C<ESC ] Ps;Pt ST> >>
709 2088
710Set XTerm Parameters. 8-bit ST: 0x9c, 7-bit ST sequence: ESC \ (0x1b, 2089Set XTerm Parameters. 8-bit ST: 0x9c, 7-bit ST sequence: ESC \ (0x1b,
7110x5c), backwards compatible terminator BEL (0x07) is also accepted. any 20900x5c), backwards compatible terminator BEL (0x07) is also accepted. any
712B<octet> can be escaped by prefixing it with SYN (0x16, ^V). 2091B<octet> can be escaped by prefixing it with SYN (0x16, ^V).
713 2092
2093Many of these settings can be queried by specifying C<?> as parameter, but
2094this requires insecure mode to be enabled for most of these.
2095
714=begin table 2096=begin table
715 2097
716 B<< C<Ps = 0> >> Change Icon Name and Window Title to B<< C<Pt> >> 2098 B<< C<Ps = 0> >> Change Icon Name and Window Title to B<< C<Pt> >>
717 B<< C<Ps = 1> >> Change Icon Name to B<< C<Pt> >> 2099 B<< C<Ps = 1> >> Change Icon Name to B<< C<Pt> >>
718 B<< C<Ps = 2> >> Change Window Title to B<< C<Pt> >> 2100 B<< C<Ps = 2> >> Change Window Title to B<< C<Pt> >>
719 B<< C<Ps = 3> >> If B<< C<Pt> >> starts with a B<< C<?> >>, query the (STRING) property of the window and return it. If B<< C<Pt> >> contains a B<< C<=> >>, set the named property to the given value, else delete the specified property. 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.
720 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 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
721 B<< C<Ps = 10> >> Change colour of text foreground to B<< C<Pt> >> B<(NB: may change in future)> 2103 B<< C<Ps = 10> >> Change colour of text foreground to B<< C<Pt> >>
722 B<< C<Ps = 11> >> Change colour of text background to B<< C<Pt> >> B<(NB: may change in future)> 2104 B<< C<Ps = 11> >> Change colour of text background to B<< C<Pt> >>
723 B<< C<Ps = 12> >> Change colour of text cursor foreground to B<< C<Pt> >> 2105 B<< C<Ps = 12> >> Change colour of text cursor foreground to B<< C<Pt> >>
724 B<< C<Ps = 13> >> Change colour of mouse foreground to B<< C<Pt> >> 2106 B<< C<Ps = 13> >> Change colour of mouse foreground to B<< C<Pt> >>
725 B<< C<Ps = 17> >> Change colour of highlight characters to B<< C<Pt> >> 2107 B<< C<Ps = 17> >> Change background colour of highlight characters to B<< C<Pt> >>
726 B<< C<Ps = 18> >> Change colour of bold characters to B<< C<Pt> >> 2108 B<< C<Ps = 19> >> Change foreground colour of highlight characters to B<< C<Pt> >>
727 B<< C<Ps = 19> >> Change colour of underlined characters to B<< C<Pt> >> 2109 B<< C<Ps = 20> >> Change background image to B<< C<Pt> >> (see the L<urxvt-background>) extension documentation)
728 B<< C<Ps = 20> >> Change default background to B<< C<Pt> >>
729 B<< C<Ps = 39> >> Change default foreground colour to B<< C<Pt> >> I<rxvt compile-time option> 2110 B<< C<Ps = 39> >> Change default foreground colour to B<< C<Pt> >>. [deprecated, use 10]
730 B<< C<Ps = 46> >> Change Log File to B<< C<Pt> >> I<unimplemented> 2111 B<< C<Ps = 46> >> Change Log File to B<< C<Pt> >> I<unimplemented>
731 B<< C<Ps = 49> >> Change default background colour to B<< C<Pt> >> I<rxvt compile-time option> 2112 B<< C<Ps = 49> >> Change default background colour to B<< C<Pt> >>. [deprecated, use 11]
732 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> >> 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> >>
733 B<< C<Ps = 55> >> Log all scrollback buffer and all of screen to B<< C<Pt> >> 2114 B<< C<Ps = 55> >> Log all scrollback buffer and all of screen to B<< C<Pt> >> [disabled]
734 B<< C<Ps = 701> >> Change current locale to B<< C<Pt> >>, or, if B<< C<Pt> >> is B<< C<?> >>, return the current locale (@@RXVTNAME@@ extension) 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).
735 B<< C<Ps = 702> >> find font for character, used for debugging (@@RXVTNAME@@ extension) 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>.
736 B<< C<Ps = 703> >> command B<< C<Pt> >> I<rxvt compile-time option> (@@RXVTNAME@@ extension) 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).
737 2129
738=end table 2130=end table
739 2131
740=back 2132=back
741 2133
742X<menuBar> 2134X<Mouse>
743 2135
744=head1 menuBar 2136=head1 Mouse Reporting
745 2137
746B<< The exact syntax used is I<almost> solidified. >> 2138When mouse reporting is enabled and none of the extended mouse modes
747In the menus, B<DON'T> try to use menuBar commands that add or remove a 2139(1005, 1006, 1015) is active, urxvt sends the following sequence on a
748menuBar. 2140mouse event:
749
750Note that in all of the commands, the B<< I</path/> >> I<cannot> be
751omitted: use B<./> to specify a menu relative to the current menu.
752
753=head2 Overview of menuBar operation
754
755For the menuBar XTerm escape sequence C<ESC ] 703 ; Pt ST>, the syntax
756of C<Pt> can be used for a variety of tasks:
757
758At the top level is the current menuBar which is a member of a circular
759linked-list of other such menuBars.
760
761The menuBar acts as a parent for the various drop-down menus, which in
762turn, may have labels, separator lines, menuItems and subMenus.
763
764The menuItems are the useful bits: you can use them to mimic keyboard
765input or even to send text or escape sequences back to rxvt.
766
767The menuBar syntax is intended to provide a simple yet robust method of
768constructing and manipulating menus and navigating through the
769menuBars.
770
771The first step is to use the tag B<< [menu:I<name>] >> which creates
772the menuBar called I<name> and allows access. You may now or menus,
773subMenus, and menuItems. Finally, use the tag B<[done]> to set the
774menuBar access as B<readonly> to prevent accidental corruption of the
775menus. To re-access the current menuBar for alterations, use the tag
776B<[menu]>, make the alterations and then use B<[done]>
777
778X<menuBarCommands>
779
780=head2 Commands
781 2141
782=over 4 2142=over 4
783 2143
784=item B<< [menu:+I<name>] >>
785
786access the named menuBar for creation or alteration. If a new menuBar
787is created, it is called I<name> (max of 15 chars) and the current
788menuBar is pushed onto the stack
789
790=item B<[menu]>
791
792access the current menuBar for alteration
793
794=item B<< [title:+I<string>] >>
795
796set the current menuBar's title to I<string>, which may contain the
797following format specifiers:
798B<%%> : literal B<%> character
799B<%n> : rxvt name (as per the B<-name> command-line option)
800B<%v> : rxvt version
801
802=item B<[done]>
803
804set menuBar access as B<readonly>.
805End-of-file tag for B<< [read:+I<file>] >> operations.
806
807=item B<< [read:+I<file>] >>
808
809read menu commands directly from I<file> (extension ".menu" will be
810appended if required.) Start reading at a line with B<[menu]> or B<<
811[menu:+I<name> >> and continuing until B<[done]> is encountered.
812
813Blank and comment lines (starting with B<#>) are ignored. Actually,
814since any invalid menu commands are also ignored, almost anything could
815be construed as a comment line, but this may be tightened up in the
816future ... so don't count on it!.
817
818=item B<< [read:+I<file>;+I<name>] >>
819
820The same as B<< [read:+I<file>] >>, but start reading at a line with
821B<< [menu:+I<name>] >> and continuing until B<< [done:+I<name>] >> or
822B<[done]> is encountered.
823
824=item B<[dump]>
825
826dump all menuBars to the file B</tmp/rxvt-PID> in a format suitable for
827later rereading.
828
829=item B<[rm:name]>
830
831remove the named menuBar
832
833=item B<[rm] [rm:]>
834
835remove the current menuBar
836
837=item B<[rm*] [rm:*]>
838
839remove all menuBars
840
841=item B<[swap]>
842
843swap the top two menuBars
844
845=item B<[prev]>
846
847access the previous menuBar
848
849=item B<[next]>
850
851access the next menuBar
852
853=item B<[show]>
854
855Enable display of the menuBar
856
857=item B<[hide]>
858
859Disable display of the menuBar
860
861=item B<< [pixmap:+I<name>] >>
862
863=item B<< [pixmap:+I<name>;I<scaling>] >>
864
865(set the background pixmap globally
866
867B<< A Future implementation I<may> make this local to the menubar >>)
868
869=item B<< [:+I<command>:] >>
870
871ignore the menu readonly status and issue a I<command> to or a menu or
872menuitem or change the ; a useful shortcut for setting the quick arrows
873from a menuBar.
874
875=back
876
877X<menuBarAdd>
878
879=head2 Adding and accessing menus
880
881The following commands may also be B<+> prefixed.
882
883=over 4
884
885=item B</+>
886
887access menuBar top level
888
889=item B<./+>
890
891access current menu level
892
893=item B<../+>
894
895access parent menu (1 level up)
896
897=item B<../../>
898
899access parent menu (multiple levels up)
900
901=item B<< I</path/>menu >>
902
903add/access menu
904
905=item B<< I</path/>menu/* >>
906
907add/access menu and clear it if it exists
908
909=item B<< I</path/>{-} >>
910
911add separator
912
913=item B<< I</path/>{item} >>
914
915add B<item> as a label
916
917=item B<< I</path/>{item} action >>
918
919add/alter I<menuitem> with an associated I<action>
920
921=item B<< I</path/>{item}{right-text} >>
922
923add/alter I<menuitem> with B<right-text> as the right-justified text
924and as the associated I<action>
925
926=item B<< I</path/>{item}{rtext} action >>
927
928add/alter I<menuitem> with an associated I<action> and with B<rtext> as
929the right-justified text.
930
931=back
932
933=over 4
934
935=item Special characters in I<action> must be backslash-escaped:
936
937B<\a \b \E \e \n \r \t \octal>
938
939=item or in control-character notation:
940
941B<^@, ^A .. ^Z .. ^_, ^?>
942
943=back
944
945To send a string starting with a B<NUL> (B<^@>) character to the
946program, start I<action> with a pair of B<NUL> characters (B<^@^@>),
947the first of which will be stripped off and the balance directed to the
948program. Otherwise if I<action> begins with B<NUL> followed by
949non-+B<NUL> characters, the leading B<NUL> is stripped off and the
950balance is sent back to rxvt.
951
952As a convenience for the many Emacs-type editors, I<action> may start
953with B<M-> (eg, B<M-$> is equivalent to B<\E$>) and a B<CR> will be
954appended if missed from B<M-x> commands.
955
956As a convenience for issuing XTerm B<ESC]> sequences from a menubar (or
957quick arrow), a B<BEL> (B<^G>) will be appended if needed.
958
959=over 4
960
961=item For example,
962
963B<M-xapropos> is equivalent to B<\Exapropos\r>
964
965=item and
966
967B<\E]703;mona;100> is equivalent to B<\E]703;mona;100\a>
968
969=back
970
971The option B<< {I<right-rtext>} >> will be right-justified. In the
972absence of a specified action, this text will be used as the I<action>
973as well.
974
975=over 4
976
977=item For example,
978
979B</File/{Open}{^X^F}> is equivalent to B</File/{Open}{^X^F} ^X^F>
980
981=back
982
983The left label I<is> necessary, since it's used for matching, but
984implicitly hiding the left label (by using same name for both left and
985right labels), or explicitly hiding the left label (by preceeding it
986with a dot), makes it possible to have right-justified text only.
987
988=over 4
989
990=item For example,
991
992B</File/{Open}{Open} Open-File-Action>
993
994=item or hiding it
995
996B</File/{.anylabel}{Open} Open-File-Action>
997
998=back
999
1000X<menuBarRemove>
1001
1002=head2 Removing menus
1003
1004=over 4
1005
1006=item B<< -/*+ >>
1007
1008remove all menus from the menuBar, the same as B<[clear]>
1009
1010=item B<< -+I</path>menu+ >>
1011
1012remove menu
1013
1014=item B<< -+I</path>{item}+ >>
1015
1016remove item
1017
1018=item B<< -+I</path>{-} >>
1019
1020remove separator)
1021
1022=item B<-/path/menu/*>
1023
1024remove all items, separators and submenus from menu
1025
1026=back
1027
1028X<menuBarArrows>
1029
1030=head2 Quick Arrows
1031
1032The menus also provide a hook for I<quick arrows> to provide easier
1033user access. If nothing has been explicitly set, the default is to
1034emulate the curror keys. The syntax permits each arrow to be altered
1035individually or all four at once without re-entering their common
1036beginning/end text. For example, to explicitly associate cursor actions
1037with the arrows, any of the following forms could be used:
1038
1039=over 4
1040
1041=item B<< <r>+I<Right> >>
1042
1043=item B<< <l>+I<Left> >>
1044
1045=item B<< <u>+I<Up> >>
1046
1047=item B<< <d>+I<Down> >>
1048
1049Define actions for the respective arrow buttons
1050
1051=item B<< <b>+I<Begin> >>
1052
1053=item B<< <e>+I<End> >>
1054
1055Define common beginning/end parts for I<quick arrows> which used in
1056conjunction with the above <r> <l> <u> <d> constructs
1057
1058=back
1059
1060=over 4
1061
1062=item For example, define arrows individually,
1063
1064 <u>\E[A
1065
1066 <d>\E[B
1067
1068 <r>\E[C
1069
1070 <l>\E[D
1071
1072=item or all at once
1073
1074 <u>\E[AZ<><d>\E[BZ<><r>\E[CZ<><l>\E[D
1075
1076=item or more compactly (factoring out common parts)
1077
1078 <b>\E[<u>AZ<><d>BZ<><r>CZ<><l>D
1079
1080=back
1081
1082X<menuBarSummary>
1083
1084=head2 Command Summary
1085
1086A short summary of the most I<common> commands:
1087
1088=over 4
1089
1090=item [menu:name]
1091
1092use an existing named menuBar or start a new one
1093
1094=item [menu]
1095
1096use the current menuBar
1097
1098=item [title:string]
1099
1100set menuBar title
1101
1102=item [done]
1103
1104set menu access to readonly and, if reading from a file, signal EOF
1105
1106=item [done:name]
1107
1108if reading from a file using [read:file;name] signal EOF
1109
1110=item [rm:name]
1111
1112remove named menuBar(s)
1113
1114=item [rm] [rm:]
1115
1116remove current menuBar
1117
1118=item [rm*] [rm:*]
1119
1120remove all menuBar(s)
1121
1122=item [swap]
1123
1124swap top two menuBars
1125
1126=item [prev]
1127
1128access the previous menuBar
1129
1130=item [next]
1131
1132access the next menuBar
1133
1134=item [show]
1135
1136map menuBar
1137
1138=item [hide]
1139
1140unmap menuBar
1141
1142=item [pixmap;file]
1143
1144=item [pixmap;file;scaling]
1145
1146set a background pixmap
1147
1148=item [read:file]
1149
1150=item [read:file;name]
1151
1152read in a menu from a file
1153
1154=item [dump]
1155
1156dump out all menuBars to /tmp/rxvt-PID
1157
1158=item /
1159
1160access menuBar top level
1161
1162=item ./
1163
1164=item ../
1165
1166=item ../../
1167
1168access current or parent menu level
1169
1170=item /path/menu
1171
1172add/access menu
1173
1174=item /path/{-}
1175
1176add separator
1177
1178=item /path/{item}{rtext} action
1179
1180add/alter menu item
1181
1182=item -/*
1183
1184remove all menus from the menuBar
1185
1186=item -/path/menu
1187
1188remove menu items, separators and submenus from menu
1189
1190=item -/path/menu
1191
1192remove menu
1193
1194=item -/path/{item}
1195
1196remove item
1197
1198=item -/path/{-}
1199
1200remove separator
1201
1202=item <b>Begin<r>Right<l>Left<u>Up<d>Down<e>End
1203
1204menu quick arrows
1205
1206=back
1207X<XPM>
1208
1209=head1 XPM
1210
1211For the XPM XTerm escape sequence B<< C<ESC ] 20 ; Pt ST> >> then value
1212of B<< C<Pt> >> can be the name of the background pixmap followed by a
1213sequence of scaling/positioning commands separated by semi-colons. The
1214scaling/positioning commands are as follows:
1215
1216=over 4
1217
1218=item query scale/position
1219
1220B<?>
1221
1222=item change scale and position
1223
1224B<WxH+X+Y>
1225
1226B<WxH+X> (== B<WxH+X+X>)
1227
1228B<WxH> (same as B<WxH+50+50>)
1229
1230B<W+X+Y> (same as B<WxW+X+Y>)
1231
1232B<W+X> (same as B<WxW+X+X>)
1233
1234B<W> (same as B<WxW+50+50>)
1235
1236=item change position (absolute)
1237
1238B<=+X+Y>
1239
1240B<=+X> (same as B<=+X+Y>)
1241
1242=item change position (relative)
1243
1244B<+X+Y>
1245
1246B<+X> (same as B<+X+Y>)
1247
1248=item rescale (relative)
1249
1250B<Wx0> -> B<W *= (W/100)>
1251
1252B<0xH> -> B<H *= (H/100)>
1253
1254=back
1255
1256For example:
1257
1258=over 4
1259
1260=item B<\E]20;funky\a>
1261
1262load B<funky.xpm> as a tiled image
1263
1264=item B<\E]20;mona;100\a>
1265
1266load B<mona.xpm> with a scaling of 100%
1267
1268=item B<\E]20;;200;?\a>
1269
1270rescale the current pixmap to 200% and display the image geometry in
1271the title
1272
1273=back
1274X<Mouse>
1275
1276=head1 Mouse Reporting
1277
1278=over 4
1279
1280=item B<< C<< ESC [ M <b> <x> <y> >> >> 2144=item B<< C<< ESC [ M <b> <x> <y> >> >>
1281
1282report mouse position
1283 2145
1284=back 2146=back
1285 2147
1286The lower 2 bits of B<< C<< <b> >> >> indicate the button: 2148The lower 2 bits of B<< C<< <b> >> >> indicate the button:
1287 2149
1303The upper bits of B<< C<< <b> >> >> indicate the modifiers when the 2165The upper bits of B<< C<< <b> >> >> indicate the modifiers when the
1304button was pressed and are added together (X11 mouse report only): 2166button was pressed and are added together (X11 mouse report only):
1305 2167
1306=over 4 2168=over 4
1307 2169
1308=item State = B<< C<< (<b> - SPACE) & 60 >> >> 2170=item State = B<< C<< (<b> - SPACE) & ~3 >> >>
1309 2171
1310=begin table 2172=begin table
1311 2173
1312 4 Shift 2174 4 Shift
1313 8 Meta 2175 8 Meta
1314 16 Control 2176 16 Control
2177 32 Motion Notify
1315 32 Double Click I<(Rxvt extension)> 2178 32 Double Click I<(rxvt extension)>, disabled by default
2179 64 Button1 is actually Button4, Button2 is actually Button5 etc.
1316 2180
1317=end table 2181=end table
1318
1319Col = B<< C<< <x> - SPACE >> >>
1320
1321Row = B<< C<< <y> - SPACE >> >>
1322 2182
1323=back 2183=back
2184
2185C<x> and C<y> encode the coordinates (1|1 is the upper left corner,
2186just 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
2196The parameters include an offset of 32 to ensure that they are
2197printable characters.
2198
2199Example: Shift-Button-1 press at top row, column 80.
2200
2201 ESC [ M $ p !
2202
2203The largest coordinate that can be represented in this encoding is
2204223. The range can be extended by using one of the extended mouse
2205modes, which should be enabled I<before> enabling mouse reporting, for
2206semi-obvious reasons.
2207
2208=head2 Mode 1005
2209
2210If 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
2218with the coordinates provided as characters in locale-encoding instead
2219of 1 byte octets. This mode does not work sensibly in non-UTF-8
2220locales and should therefore be avoided.
2221
2222=head2 Mode 1006
2223
2224If mode 1006 is active, urxvt sends the following sequences:
2225
2226=over 4
2227
2228=item B<< C<< ESC [ < <b>;<x>;<y> M >> >>
2229
2230button press and motion
2231
2232=item B<< C<< ESC [ < <b>;<x>;<y> m >> >>
2233
2234button release
2235
2236=back
2237
2238where the parameters are provided as decimal numbers instead of
2239octets and do not include an offset of 32.
2240
2241The lower 2 bits of C<b> encode the button number also on button
2242release (instead of the value C<3>). The final character of the
2243sequence (M or m) specifies the event type (press/motion or release).
2244
2245Example: Shift-Button-1 press at top row, column 80.
2246
2247 ESC [ < 4 ; 80 ; 1 M
2248
2249=head2 Mode 1015
2250
2251If 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
2259where the parameters are provided as decimal numbers instead of
2260octets and only C<b> includes an offset of 32.
2261
2262Example: Shift-Button-1 press at top row, column 80.
2263
2264 ESC [ 36 ; 80 ; 1 M
2265
2266=head1 Key Codes
2267
1324X<KeyCodes> 2268X<KeyCodes>
1325 2269
1326=head1 ISO 14755 support
1327
1328Partial ISO 14755-support is implemented. that means that pressing
1329
1330section 5.1: Control and Shift together enters unicode input
1331mode. Entering hex digits composes a Unicode character, pressing space or
1332releasing the modifiers commits the keycode and every other key cancels
1333the current input character.
1334
1335section 5.2: Pressing and immediately releasing Control and Shift together
1336enters keycap entry mode for the next key: pressing a function key (tab,
1337return etc..) will enter the unicode character corresponding to the given
1338key.
1339
1340=head1 Key Codes
1341
1342Note: B<Shift> + B<F1>-B<F10> generates B<F11>-B<F20> 2270Note: B<Shift> + B<F1>-B<F10> generates B<F11>-B<F20>
1343 2271
1344For the keypad, use B<Shift> to temporarily override Application-Keypad 2272For the keypad, use B<Shift> to temporarily toggle Application Keypad
1345setting use B<Num_Lock> to toggle Application-Keypad setting if 2273mode and use B<Num_Lock> to override Application Keypad mode, i.e. if
1346B<Num_Lock> is off, toggle Application-Keypad setting. Also note that 2274B<Num_Lock> is on the keypad is in normal mode. Also note that the
1347values of B<Home>, B<End>, B<Delete> may have been compiled differently on 2275values of B<BackSpace>, B<Delete> may have been compiled differently
1348your system. 2276on your system.
1349 2277
1350=begin table 2278=begin table
1351 2279
1352 B<Normal> B<Shift> B<Control> B<Ctrl+Shift> 2280 B<Normal> B<Shift> B<Control> B<Ctrl+Shift>
1353 Tab ^I ESC [ Z ^I ESC [ Z 2281 Tab ^I ESC [ Z ^I ESC [ Z
1354 BackSpace ^H ^? ^? ^? 2282 BackSpace ^? ^? ^H ^H
1355 Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @ 2283 Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
1356 Insert ESC [ 2 ~ I<paste> ESC [ 2 ^ ESC [ 2 @ 2284 Insert ESC [ 2 ~ I<paste> ESC [ 2 ^ ESC [ 2 @
1357 Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @ 2285 Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1358 Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @ 2286 Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
1359 Prior ESC [ 5 ~ I<scroll-up> ESC [ 5 ^ ESC [ 5 @ 2287 Prior ESC [ 5 ~ I<scroll-up> ESC [ 5 ^ ESC [ 5 @
1389 KP_Enter ^M ESC O M 2317 KP_Enter ^M ESC O M
1390 KP_F1 ESC O P ESC O P 2318 KP_F1 ESC O P ESC O P
1391 KP_F2 ESC O Q ESC O Q 2319 KP_F2 ESC O Q ESC O Q
1392 KP_F3 ESC O R ESC O R 2320 KP_F3 ESC O R ESC O R
1393 KP_F4 ESC O S ESC O S 2321 KP_F4 ESC O S ESC O S
1394 XK_KP_Multiply * ESC O j 2322 KP_Multiply * ESC O j
1395 XK_KP_Add + ESC O k 2323 KP_Add + ESC O k
1396 XK_KP_Separator , ESC O l 2324 KP_Separator , ESC O l
1397 XK_KP_Subtract - ESC O m 2325 KP_Subtract - ESC O m
1398 XK_KP_Decimal . ESC O n 2326 KP_Decimal . ESC O n
1399 XK_KP_Divide / ESC O o 2327 KP_Divide / ESC O o
1400 XK_KP_0 0 ESC O p 2328 KP_0 0 ESC O p
1401 XK_KP_1 1 ESC O q 2329 KP_1 1 ESC O q
1402 XK_KP_2 2 ESC O r 2330 KP_2 2 ESC O r
1403 XK_KP_3 3 ESC O s 2331 KP_3 3 ESC O s
1404 XK_KP_4 4 ESC O t 2332 KP_4 4 ESC O t
1405 XK_KP_5 5 ESC O u 2333 KP_5 5 ESC O u
1406 XK_KP_6 6 ESC O v 2334 KP_6 6 ESC O v
1407 XK_KP_7 7 ESC O w 2335 KP_7 7 ESC O w
1408 XK_KP_8 8 ESC O x 2336 KP_8 8 ESC O x
1409 XK_KP_9 9 ESC O y 2337 KP_9 9 ESC O y
1410 2338
2339=end table
2340
2341=head1 CONFIGURE OPTIONS
2342
2343General hint: if you get compile errors, then likely your configuration
2344hasn't been tested well. Either try with C<--enable-everything> or use
2345the default configuration (i.e. no C<--enable-xxx> or C<--disable-xxx>
2346switches). Of course, you should always report when a combination doesn't
2347work, so it can be fixed. Marc Lehmann <rxvt@schmorp.de>.
2348
2349All
2350
2351=over 4
2352
2353=item --enable-everything
2354
2355Add (or remove) support for all non-multichoice options listed
2356in C<./configure --help>, except for C<--enable-assert> and
2357C<--enable-256-color>.
2358
2359You can specify this and then disable options you do not like by
2360I<following> this with the appropriate C<--disable-...> arguments,
2361or you can start with a minimal configuration by specifying
2362C<--disable-everything> and than adding just the C<--enable-...> arguments
2363you want.
2364
2365=item --enable-xft (default: on)
2366
2367Add support for Xft (anti-aliased, among others) fonts. Xft fonts are
2368slower and require lots of memory, but as long as you don't use them, you
2369don't pay for them.
2370
2371=item --enable-font-styles (default: on)
2372
2373Add support for B<bold>, I<italic> and B<< I<bold italic> >> font
2374styles. The fonts can be set manually or automatically.
2375
2376=item --with-codesets=CS,... (default: all)
2377
2378Compile in support for additional codeset (encoding) groups (C<eu>, C<vn>
2379are always compiled in, which includes most 8-bit character sets). These
2380codeset tables are used for driving X11 core fonts, they are not required
2381for Xft fonts, although having them compiled in lets rxvt-unicode choose
2382replacement fonts more intelligently. Compiling them in will make your
2383binary bigger (all of together cost about 700kB), but it doesn't increase
2384memory usage unless you use a font requiring one of these encodings.
2385
1411=end table 2386=begin table
1412 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
2399Add support for XIM (X Input Method) protocol. This allows using
2400alternative input methods (e.g. kinput2) and will also correctly
2401set up the input for people using dead keys or compose keys.
2402
2403=item --enable-unicode3 (default: off)
2404
2405Recommended to stay off unless you really need non-BMP characters.
2406
2407Enable direct support for displaying unicode codepoints above
240865535 (the basic multilingual page). This increases storage
2409requirements per character from 2 to 4 bytes. X11 fonts do not yet
2410support these extra characters, but Xft does.
2411
2412Please note that rxvt-unicode can store unicode code points >65535
2413even without this flag, but the number of such characters is
2414limited to a few thousand (shared with combining characters,
2415see 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
2420Enable automatic composition of combining characters into
2421composite characters. This is required for proper viewing of text
2422where accents are encoded as separate unicode characters. This is
2423done by using precomposed characters when available or creating
2424new pseudo-characters when no precomposed form exists.
2425
2426Without --enable-unicode3, the number of additional precomposed
2427characters is somewhat limited (the 6400 private use characters will be
2428(ab-)used). With --enable-unicode3, no practical limit exists.
2429
2430This option will also enable storage (but not display) of characters
2431beyond plane 0 (>65535) when --enable-unicode3 was not specified.
2432
2433The combining table also contains entries for arabic presentation forms,
2434but these are not currently used. Bug me if you want these to be used (and
2435tell me how these are to be used...).
2436
2437=item --enable-fallback[=CLASS] (default: Rxvt)
2438
2439When reading resource settings, also read settings for class CLASS. To
2440disable resource fallback use --disable-fallback.
2441
2442=item --with-res-name=NAME (default: urxvt)
2443
2444Use the given name as default application name when
2445reading resources. Specify --with-res-name=rxvt to replace rxvt.
2446
2447=item --with-res-class=CLASS (default: URxvt)
2448
2449Use the given class as default application class
2450when reading resources. Specify --with-res-class=Rxvt to replace
2451rxvt.
2452
2453=item --enable-utmp (default: on)
2454
2455Write user and tty to utmp file (used by programs like F<w>) at
2456start of rxvt execution and delete information when rxvt exits.
2457
2458=item --enable-wtmp (default: on)
2459
2460Write user and tty to wtmp file (used by programs like F<last>) at
2461start of rxvt execution and write logout when rxvt exits. This
2462option requires --enable-utmp to also be specified.
2463
2464=item --enable-lastlog (default: on)
2465
2466Write user and tty to lastlog file (used by programs like
2467F<lastlogin>) at start of rxvt execution. This option requires
2468--enable-utmp to also be specified.
2469
2470=item --enable-pixbuf (default: on)
2471
2472Add support for GDK-PixBuf to be used for background images.
2473It adds support for many file formats including JPG, PNG,
2474TIFF, GIF, XPM, BMP, ICO and TGA.
2475
2476=item --enable-startup-notification (default: on)
2477
2478Add support for freedesktop startup notifications. This allows window managers
2479to display some kind of progress indicator during startup.
2480
2481=item --enable-transparency (default: on)
2482
2483Add support for using the root pixmap as background to simulate transparency.
2484Note that this feature depends on libXrender and on the availability
2485of the RENDER extension in the X server.
2486
2487=item --enable-fading (default: on)
2488
2489Add support for fading the text when focus is lost.
2490
2491=item --enable-rxvt-scroll (default: on)
2492
2493Add support for the original rxvt scrollbar.
2494
2495=item --enable-next-scroll (default: on)
2496
2497Add support for a NeXT-like scrollbar.
2498
2499=item --enable-xterm-scroll (default: on)
2500
2501Add support for an Xterm-like scrollbar.
2502
2503=item --disable-backspace-key
2504
2505Removes any handling of the backspace key by us - let the X server do it.
2506
2507=item --disable-delete-key
2508
2509Removes any handling of the delete key by us - let the X server
2510do it.
2511
2512=item --disable-resources
2513
2514Removes any support for resource checking.
2515
2516=item --disable-swapscreen
2517
2518Remove support for secondary/swap screen.
2519
2520=item --enable-frills (default: on)
2521
2522Add support for many small features that are not essential but nice to
2523have. Normally you want this, but for very small binaries you may want to
2524disable this.
2525
2526A non-exhaustive list of features enabled by C<--enable-frills> (possibly
2527in 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
2552It 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
2568Enable extended ISO 14755 support (see @@RXVT_NAME@@(1)).
2569Basic support (section 5.1) is enabled by C<--enable-frills>, while
2570support for 5.2, 5.3 and 5.4 is enabled with this switch.
2571
2572=item --enable-keepscrolling (default: on)
2573
2574Add support for continual scrolling of the display when you hold
2575the mouse button down on a scrollbar arrow.
2576
2577=item --enable-selectionscrolling (default: on)
2578
2579Add support for scrolling when the selection moves to the top or
2580bottom of the screen.
2581
2582=item --enable-mousewheel (default: on)
2583
2584Add support for scrolling via mouse wheel or buttons 4 & 5.
2585
2586=item --enable-slipwheeling (default: on)
2587
2588Add support for continual scrolling (using the mouse wheel as an
2589accelerator) while the control key is held down. This option
2590requires --enable-mousewheel to also be specified.
2591
2592=item --enable-smart-resize (default: off)
2593
2594Add smart growth/shrink behaviour when resizing.
2595This should keep the window corner which is closest to a corner of
2596the screen in a fixed position.
2597
2598=item --enable-text-blink (default: on)
2599
2600Add support for blinking text.
2601
2602=item --enable-pointer-blank (default: on)
2603
2604Add support to have the pointer disappear when typing or inactive.
2605
2606=item --enable-perl (default: on)
2607
2608Enable an embedded perl interpreter. See the B<@@RXVT_NAME@@perl(3)>
2609manpage for more info on this feature, or the files in F<src/perl/>
2610for the extensions that are installed by default.
2611The perl interpreter that is used can be specified via the C<PERL>
2612environment variable when running configure. Even when compiled in,
2613perl will I<not> be initialised when all extensions have been disabled
2614C<-pe "" --perl-ext-common "">, so it should be safe to enable from a
2615resource standpoint.
2616
2617=item --enable-assert (default: off)
2618
2619Enables the assertions in the code, normally disabled. This switch is only
2620useful when developing rxvt-unicode.
2621
2622=item --enable-256-color (default: off)
2623
2624Force use of so-called 256 colour mode, to work around buggy applications
2625that do not support termcap/terminfo, or simply improve support for
2626applications hardcoding the xterm 256 colour table.
2627
2628This switch breaks termcap/terminfo compatibility to C<TERM=rxvt-unicode>,
2629and consequently sets C<TERM> to C<rxvt-unicode-256color> by default
2630(F<doc/etc/> contains termcap/terminfo definitions for both).
2631
2632It also results in higher memory usage and can slow down @@RXVT_NAME@@
2633dramatically when more than six fonts are in use by a terminal instance.
2634
2635=item --with-name=NAME (default: urxvt)
2636
2637Set the basename for the installed binaries, resulting
2638in C<urxvt>, C<urxvtd> etc.). Specify C<--with-name=rxvt> to replace with
2639C<rxvt>.
2640
2641=item --with-term=NAME (default: rxvt-unicode)
2642
2643Change the environmental variable for the terminal to NAME.
2644
2645=item --with-terminfo=PATH
2646
2647Change the environmental variable for the path to the terminfo tree to
2648PATH.
2649
2650=item --with-x
2651
2652Use the X Window System (pretty much default, eh?).
2653
2654=back
2655
2656=head1 AUTHORS
2657
2658Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
2659reworked it from the original Rxvt documentation, which was done by Geoff
2660Wing <gcw@pobox.com>, who in turn used the XTerm documentation and other
2661sources.
2662

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines