ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.pod
Revision: 1.260
Committed: Sun Nov 7 14:35:30 2021 UTC (2 years, 8 months ago) by sf-exg
Branch: MAIN
Changes since 1.259: +9 -3 lines
Log Message:
Document DECRQM

File Contents

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