ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.pod
Revision: 1.259
Committed: Wed Sep 8 03:39:46 2021 UTC (2 years, 10 months ago) by root
Branch: MAIN
Changes since 1.258: +3 -5 lines
Log Message:
pretty much they are there now

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     =item B<< C<ESC [ ? Pm r> >>
1743    
1744     Restore previously saved DEC Private Mode Values.
1745    
1746     =item B<< C<ESC [ ? Pm s> >>
1747    
1748     Save DEC Private Mode Values.
1749    
1750     =item B<< C<ESC [ ? Pm t> >>
1751    
1752     Toggle DEC Private Mode Values (rxvt extension). I<where>
1753    
1754 root 1.254 =over
1755 root 1.1
1756 root 1.117 =item B<< C<Pm = 1> >> (DECCKM)
1757 root 1.1
1758     =begin table
1759    
1760     B<< C<h> >> Application Cursor Keys
1761     B<< C<l> >> Normal Cursor Keys
1762    
1763     =end table
1764    
1765 sf-exg 1.226 =item B<< C<Pm = 2> >> (DECANM)
1766 root 1.1
1767     =begin table
1768    
1769     B<< C<h> >> Enter VT52 mode
1770     B<< C<l> >> Enter VT52 mode
1771    
1772     =end table
1773    
1774 sf-exg 1.226 =item B<< C<Pm = 3> >> (DECCOLM)
1775 root 1.1
1776     =begin table
1777    
1778 sf-exg 1.226 B<< C<h> >> 132 Column Mode
1779     B<< C<l> >> 80 Column Mode
1780 root 1.1
1781     =end table
1782    
1783 sf-exg 1.226 =item B<< C<Pm = 4> >> (DECSCLM)
1784 root 1.1
1785     =begin table
1786    
1787 sf-exg 1.226 B<< C<h> >> Smooth (Slow) Scroll
1788     B<< C<l> >> Jump (Fast) Scroll
1789 root 1.1
1790     =end table
1791    
1792 sf-exg 1.226 =item B<< C<Pm = 5> >> (DECSCNM)
1793 root 1.1
1794     =begin table
1795    
1796 sf-exg 1.226 B<< C<h> >> Reverse Video
1797     B<< C<l> >> Normal Video
1798 root 1.1
1799     =end table
1800    
1801 sf-exg 1.226 =item B<< C<Pm = 6> >> (DECOM)
1802 root 1.1
1803     =begin table
1804    
1805 sf-exg 1.226 B<< C<h> >> Origin Mode
1806     B<< C<l> >> Normal Cursor Mode
1807 root 1.1
1808     =end table
1809    
1810 sf-exg 1.226 =item B<< C<Pm = 7> >> (DECAWM)
1811 root 1.1
1812     =begin table
1813    
1814 sf-exg 1.226 B<< C<h> >> Wraparound Mode
1815     B<< C<l> >> No Wraparound Mode
1816 root 1.1
1817     =end table
1818    
1819 sf-exg 1.226 =item B<< C<Pm = 8> >> (DECARM) I<unimplemented>
1820 root 1.1
1821     =begin table
1822    
1823 sf-exg 1.226 B<< C<h> >> Auto-repeat Keys
1824     B<< C<l> >> No Auto-repeat Keys
1825 root 1.1
1826     =end table
1827    
1828 root 1.235 =item B<< C<Pm = 9> >> (X10 XTerm mouse protocol)
1829 root 1.1
1830     =begin table
1831    
1832     B<< C<h> >> Send Mouse X & Y on button press.
1833     B<< C<l> >> No mouse reporting.
1834    
1835     =end table
1836    
1837 root 1.235 =item B<< C<Pm = 12> >> (AT&T 610, XTerm)
1838 sf-exg 1.234
1839     =begin table
1840    
1841 root 1.235 B<< C<h> >> Blinking cursor (cvvis)
1842     B<< C<l> >> Steady cursor (cnorm)
1843 sf-exg 1.234
1844     =end table
1845    
1846 sf-exg 1.226 =item B<< C<Pm = 25> >> (DECTCEM)
1847 root 1.1
1848     =begin table
1849    
1850     B<< C<h> >> Visible cursor {cnorm/cvvis}
1851     B<< C<l> >> Invisible cursor {civis}
1852    
1853     =end table
1854    
1855 root 1.235 =item B<< C<Pm = 30> >> (B<rxvt>)
1856 root 1.1
1857     =begin table
1858    
1859 ayin 1.160 B<< C<h> >> scrollBar visible
1860     B<< C<l> >> scrollBar invisible
1861 root 1.1
1862     =end table
1863    
1864 root 1.117 =item B<< C<Pm = 35> >> (B<rxvt>)
1865 root 1.1
1866     =begin table
1867    
1868     B<< C<h> >> Allow XTerm Shift+key sequences
1869     B<< C<l> >> Disallow XTerm Shift+key sequences
1870    
1871     =end table
1872    
1873 root 1.117 =item B<< C<Pm = 38> >> I<unimplemented>
1874 root 1.1
1875     Enter Tektronix Mode (DECTEK)
1876    
1877 root 1.117 =item B<< C<Pm = 40> >>
1878 root 1.1
1879     =begin table
1880    
1881     B<< C<h> >> Allow 80/132 Mode
1882     B<< C<l> >> Disallow 80/132 Mode
1883    
1884     =end table
1885    
1886 root 1.117 =item B<< C<Pm = 44> >> I<unimplemented>
1887 root 1.1
1888     =begin table
1889    
1890     B<< C<h> >> Turn On Margin Bell
1891     B<< C<l> >> Turn Off Margin Bell
1892    
1893     =end table
1894    
1895 root 1.117 =item B<< C<Pm = 45> >> I<unimplemented>
1896 root 1.1
1897     =begin table
1898    
1899     B<< C<h> >> Reverse-wraparound Mode
1900     B<< C<l> >> No Reverse-wraparound Mode
1901    
1902     =end table
1903    
1904 root 1.117 =item B<< C<Pm = 46> >> I<unimplemented>
1905 root 1.1
1906 root 1.117 =item B<< C<Pm = 47> >>
1907 root 1.1
1908     =begin table
1909    
1910     B<< C<h> >> Use Alternate Screen Buffer
1911     B<< C<l> >> Use Normal Screen Buffer
1912    
1913     =end table
1914    
1915     X<Priv66>
1916    
1917 sf-exg 1.226 =item B<< C<Pm = 66> >> (DECNKM)
1918 root 1.1
1919     =begin table
1920    
1921 root 1.184 B<< C<h> >> Application Keypad (DECKPAM/DECPAM) == C<ESC =>
1922     B<< C<l> >> Normal Keypad (DECKPNM/DECPNM) == C<< ESC > >>
1923 root 1.1
1924     =end table
1925    
1926 sf-exg 1.226 =item B<< C<Pm = 67> >> (DECBKM)
1927 root 1.1
1928     =begin table
1929    
1930 sf-exg 1.226 B<< C<h> >> Backspace key sends B<< C<BS> >>
1931 root 1.1 B<< C<l> >> Backspace key sends B<< C<DEL> >>
1932    
1933     =end table
1934    
1935 root 1.235 =item B<< C<Pm = 1000> >> (X11 XTerm mouse protocol)
1936 root 1.1
1937     =begin table
1938    
1939     B<< C<h> >> Send Mouse X & Y on button press and release.
1940     B<< C<l> >> No mouse reporting.
1941    
1942     =end table
1943    
1944 root 1.117 =item B<< C<Pm = 1001> >> (X11 XTerm) I<unimplemented>
1945 root 1.1
1946     =begin table
1947    
1948     B<< C<h> >> Use Hilite Mouse Tracking.
1949     B<< C<l> >> No mouse reporting.
1950    
1951     =end table
1952    
1953 root 1.235 =item B<< C<Pm = 1002> >> (X11 XTerm cell motion mouse tracking)
1954 ayin 1.148
1955     =begin table
1956    
1957     B<< C<h> >> Send Mouse X & Y on button press and release, and motion with a button pressed.
1958     B<< C<l> >> No mouse reporting.
1959    
1960     =end table
1961    
1962 root 1.235 =item B<< C<Pm = 1003> >> (X11 XTerm all motion mouse tracking)
1963 ayin 1.148
1964     =begin table
1965    
1966     B<< C<h> >> Send Mouse X & Y on button press and release, and motion.
1967     B<< C<l> >> No mouse reporting.
1968    
1969     =end table
1970    
1971 sf-exg 1.242 =item B<< C<Pm = 1004> >> (X11 XTerm focus in/focus out events)
1972 root 1.235
1973     =begin table
1974    
1975     B<< C<h> >> Send Mouse focus in/focus out events.
1976 sf-exg 1.242 B<< C<l> >> Don't send focus events.
1977 root 1.235
1978     =end table
1979    
1980     =item B<< C<Pm = 1005> >> (X11 XTerm UTF-8 mouse mode) (Compile frills)
1981 root 1.202
1982     Try to avoid this mode, it doesn't work sensibly in non-UTF-8 locales. Use
1983     mode C<1015> instead.
1984    
1985 root 1.244 Unlike XTerm, coordinates larger than 2015 will work fine.
1986 root 1.202
1987     =begin table
1988    
1989     B<< C<h> >> Enable mouse coordinates in locale-specific encoding.
1990 sf-exg 1.248 B<< C<l> >> Disable mouse coordinates in locale-specific encoding.
1991    
1992     =end table
1993    
1994     =item B<< C<Pm = 1006> >> (X11 XTerm SGR mouse mode) (Compile frills)
1995    
1996     =begin table
1997    
1998     B<< C<h> >> Enable xterm SGR mouse coordinate reporting.
1999     B<< C<l> >> Disable xterm SGR mouse coordinate reporting.
2000 root 1.202
2001     =end table
2002    
2003 root 1.117 =item B<< C<Pm = 1010> >> (B<rxvt>)
2004 root 1.1
2005     =begin table
2006    
2007     B<< C<h> >> Don't scroll to bottom on TTY output
2008     B<< C<l> >> Scroll to bottom on TTY output
2009    
2010     =end table
2011    
2012 root 1.117 =item B<< C<Pm = 1011> >> (B<rxvt>)
2013 root 1.1
2014     =begin table
2015    
2016     B<< C<h> >> Scroll to bottom when a key is pressed
2017     B<< C<l> >> Don't scroll to bottom when a key is pressed
2018    
2019     =end table
2020    
2021 root 1.203 =item B<< C<Pm = 1015> >> (B<rxvt-unicode>) (Compile frills)
2022 root 1.202
2023 root 1.235 =begin table
2024    
2025     B<< C<h> >> Enable urxvt mouse coordinate reporting.
2026 sf-exg 1.248 B<< C<l> >> Disable urxvt mouse coordinate reporting.
2027 root 1.235
2028     =end table
2029    
2030 root 1.117 =item B<< C<Pm = 1021> >> (B<rxvt>)
2031 root 1.65
2032     =begin table
2033    
2034     B<< C<h> >> Bold/italic implies high intensity (see option B<-is>)
2035 root 1.66 B<< C<l> >> Font styles have no effect on intensity (Compile styles)
2036 root 1.65
2037     =end table
2038    
2039 root 1.235 =item B<< C<Pm = 1047> >> (X11 XTerm alternate screen buffer)
2040 root 1.1
2041     =begin table
2042    
2043     B<< C<h> >> Use Alternate Screen Buffer
2044     B<< C<l> >> Use Normal Screen Buffer - clear Alternate Screen Buffer if returning from it
2045    
2046     =end table
2047    
2048 root 1.235 =item B<< C<Pm = 1048> >> (X11 XTerm alternate DECSC)
2049 root 1.1
2050     =begin table
2051    
2052     B<< C<h> >> Save cursor position
2053     B<< C<l> >> Restore cursor position
2054    
2055     =end table
2056    
2057 root 1.235 =item B<< C<Pm = 1049> >> (X11 XTerm 1047 + 1048)
2058 root 1.12
2059     =begin table
2060    
2061     B<< C<h> >> Use Alternate Screen Buffer - clear Alternate Screen Buffer if switching to it
2062     B<< C<l> >> Use Normal Screen Buffer
2063    
2064     =end table
2065    
2066 root 1.235 =item B<< C<Pm = 2004> >> (X11 XTerm bracketed paste mode)
2067 ayin 1.164
2068     =begin table
2069    
2070     B<< C<h> >> Enable bracketed paste mode - prepend / append to the pasted text the control sequences C<ESC [ 200 ~> / C<ESC [ 201 ~>
2071     B<< C<l> >> Disable bracketed paste mode
2072    
2073     =end table
2074    
2075 root 1.1 =back
2076    
2077     =back
2078    
2079     X<XTerm>
2080    
2081 root 1.110 =head2 XTerm Operating System Commands
2082 root 1.1
2083 root 1.254 =over
2084 root 1.1
2085     =item B<< C<ESC ] Ps;Pt ST> >>
2086    
2087     Set XTerm Parameters. 8-bit ST: 0x9c, 7-bit ST sequence: ESC \ (0x1b,
2088     0x5c), backwards compatible terminator BEL (0x07) is also accepted. any
2089     B<octet> can be escaped by prefixing it with SYN (0x16, ^V).
2090    
2091 root 1.246 Many of these settings can be queried by specifying C<?> as parameter, but
2092     this requires insecure mode to be enabled for most of these.
2093    
2094 root 1.1 =begin table
2095    
2096     B<< C<Ps = 0> >> Change Icon Name and Window Title to B<< C<Pt> >>
2097     B<< C<Ps = 1> >> Change Icon Name to B<< C<Pt> >>
2098     B<< C<Ps = 2> >> Change Window Title to B<< C<Pt> >>
2099 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.
2100 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
2101 ayin 1.162 B<< C<Ps = 10> >> Change colour of text foreground to B<< C<Pt> >>
2102     B<< C<Ps = 11> >> Change colour of text background to B<< C<Pt> >>
2103 root 1.1 B<< C<Ps = 12> >> Change colour of text cursor foreground to B<< C<Pt> >>
2104     B<< C<Ps = 13> >> Change colour of mouse foreground to B<< C<Pt> >>
2105 sf-exg 1.186 B<< C<Ps = 17> >> Change background colour of highlight characters to B<< C<Pt> >>
2106     B<< C<Ps = 19> >> Change foreground colour of highlight characters to B<< C<Pt> >>
2107 root 1.256 B<< C<Ps = 20> >> Change background image to B<< C<Pt> >> (see the L<urxvt-background> extension documentation)
2108 ayin 1.162 B<< C<Ps = 39> >> Change default foreground colour to B<< C<Pt> >>. [deprecated, use 10]
2109 root 1.1 B<< C<Ps = 46> >> Change Log File to B<< C<Pt> >> I<unimplemented>
2110 ayin 1.162 B<< C<Ps = 49> >> Change default background colour to B<< C<Pt> >>. [deprecated, use 11]
2111 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> >>
2112 ayin 1.163 B<< C<Ps = 55> >> Log all scrollback buffer and all of screen to B<< C<Pt> >> [disabled]
2113 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).
2114 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>.
2115 root 1.23 B<< C<Ps = 704> >> Change colour of italic characters to B<< C<Pt> >>
2116 root 1.256 B<< C<Ps = 705> >> Change background tint color to B<< C<Pt> >> (see the L<urxvt-background> extension documentation)
2117 root 1.75 B<< C<Ps = 706> >> Change colour of bold characters to B<< C<Pt> >>
2118     B<< C<Ps = 707> >> Change colour of underlined characters to B<< C<Pt> >>
2119 root 1.173 B<< C<Ps = 708> >> Change colour of the border to B<< C<Pt> >>
2120 root 1.23 B<< C<Ps = 710> >> Set normal fontset to B<< C<Pt> >>. Same as C<Ps = 50>.
2121 root 1.51 B<< C<Ps = 711> >> Set bold fontset to B<< C<Pt> >>. Similar to C<Ps = 50> (Compile styles).
2122     B<< C<Ps = 712> >> Set italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50> (Compile styles).
2123     B<< C<Ps = 713> >> Set bold-italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50> (Compile styles).
2124     B<< C<Ps = 720> >> Move viewing window up by B<< C<Pt> >> lines, or clear scrollback buffer if C<Pt = 0> (Compile frills).
2125     B<< C<Ps = 721> >> Move viewing window down by B<< C<Pt> >> lines, or clear scrollback buffer if C<Pt = 0> (Compile frills).
2126 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).
2127 root 1.1
2128     =end table
2129    
2130     =back
2131    
2132     X<Mouse>
2133    
2134     =head1 Mouse Reporting
2135    
2136 sf-exg 1.248 When mouse reporting is enabled and none of the extended mouse modes
2137     (1005, 1006, 1015) is active, urxvt sends the following sequence on a
2138     mouse event:
2139    
2140 root 1.254 =over
2141 root 1.1
2142     =item B<< C<< ESC [ M <b> <x> <y> >> >>
2143    
2144     =back
2145    
2146     The lower 2 bits of B<< C<< <b> >> >> indicate the button:
2147    
2148 root 1.254 =over
2149 root 1.1
2150     =item Button = B<< C<< (<b> - SPACE) & 3 >> >>
2151    
2152     =begin table
2153    
2154     0 Button1 pressed
2155     1 Button2 pressed
2156     2 Button3 pressed
2157     3 button released (X11 mouse report)
2158    
2159     =end table
2160    
2161     =back
2162    
2163     The upper bits of B<< C<< <b> >> >> indicate the modifiers when the
2164     button was pressed and are added together (X11 mouse report only):
2165    
2166 root 1.254 =over
2167 root 1.1
2168 root 1.211 =item State = B<< C<< (<b> - SPACE) & ~3 >> >>
2169 root 1.1
2170     =begin table
2171    
2172     4 Shift
2173     8 Meta
2174     16 Control
2175 sf-exg 1.212 32 Motion Notify
2176 root 1.211 32 Double Click I<(rxvt extension)>, disabled by default
2177     64 Button1 is actually Button4, Button2 is actually Button5 etc.
2178 root 1.1
2179     =end table
2180    
2181 sf-exg 1.248 =back
2182    
2183     C<x> and C<y> encode the coordinates (1|1 is the upper left corner,
2184     just as with cursor positioning):
2185    
2186 root 1.254 =over
2187 sf-exg 1.248
2188     =item Col = B<< C<< <x> - SPACE >> >>
2189    
2190     =item Row = B<< C<< <y> - SPACE >> >>
2191    
2192     =back
2193    
2194     The parameters include an offset of 32 to ensure that they are
2195     printable characters.
2196    
2197     Example: Shift-Button-1 press at top row, column 80.
2198    
2199     ESC [ M $ p !
2200    
2201     The largest coordinate that can be represented in this encoding is
2202     223. The range can be extended by using one of the extended mouse
2203     modes, which should be enabled I<before> enabling mouse reporting, for
2204     semi-obvious reasons.
2205 root 1.1
2206 sf-exg 1.248 =head2 Mode 1005
2207    
2208     If mode 1005 is active, urxvt sends the sequence
2209    
2210 root 1.254 =over
2211 sf-exg 1.248
2212     =item B<< C<< ESC [ M <b> <x> <y> >> >>
2213    
2214     =back
2215    
2216     with the coordinates provided as characters in locale-encoding instead
2217     of 1 byte octets. This mode does not work sensibly in non-UTF-8
2218     locales and should therefore be avoided.
2219    
2220     =head2 Mode 1006
2221    
2222     If mode 1006 is active, urxvt sends the following sequences:
2223    
2224 root 1.254 =over
2225 sf-exg 1.248
2226     =item B<< C<< ESC [ < <b>;<x>;<y> M >> >>
2227    
2228     button press and motion
2229    
2230     =item B<< C<< ESC [ < <b>;<x>;<y> m >> >>
2231    
2232     button release
2233 root 1.1
2234     =back
2235    
2236 sf-exg 1.248 where the parameters are provided as decimal numbers instead of
2237     octets and do not include an offset of 32.
2238    
2239     The lower 2 bits of C<b> encode the button number also on button
2240     release (instead of the value C<3>). The final character of the
2241     sequence (M or m) specifies the event type (press/motion or release).
2242    
2243     Example: Shift-Button-1 press at top row, column 80.
2244    
2245     ESC [ < 4 ; 80 ; 1 M
2246    
2247     =head2 Mode 1015
2248    
2249     If mode 1015 is active, urxvt sends the sequence
2250    
2251 root 1.254 =over
2252 sf-exg 1.248
2253     =item B<< C<< ESC [ <b>;<x>;<y> M >> >>
2254    
2255     =back
2256    
2257     where the parameters are provided as decimal numbers instead of
2258     octets and only C<b> includes an offset of 32.
2259    
2260     Example: Shift-Button-1 press at top row, column 80.
2261    
2262     ESC [ 36 ; 80 ; 1 M
2263    
2264 root 1.1 =head1 Key Codes
2265    
2266 root 1.166 X<KeyCodes>
2267    
2268 root 1.1 Note: B<Shift> + B<F1>-B<F10> generates B<F11>-B<F20>
2269    
2270 sf-exg 1.232 For the keypad, use B<Shift> to temporarily toggle Application Keypad
2271     mode and use B<Num_Lock> to override Application Keypad mode, i.e. if
2272     B<Num_Lock> is on the keypad is in normal mode. Also note that the
2273     values of B<BackSpace>, B<Delete> may have been compiled differently
2274     on your system.
2275 root 1.1
2276     =begin table
2277    
2278     B<Normal> B<Shift> B<Control> B<Ctrl+Shift>
2279     Tab ^I ESC [ Z ^I ESC [ Z
2280 sf-exg 1.231 BackSpace ^? ^? ^H ^H
2281 root 1.1 Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
2282     Insert ESC [ 2 ~ I<paste> ESC [ 2 ^ ESC [ 2 @
2283     Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
2284     Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
2285     Prior ESC [ 5 ~ I<scroll-up> ESC [ 5 ^ ESC [ 5 @
2286     Next ESC [ 6 ~ I<scroll-down> ESC [ 6 ^ ESC [ 6 @
2287     Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
2288     End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
2289     Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
2290     F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
2291     F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
2292     F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
2293     F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
2294     F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
2295     F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
2296     F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
2297     F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
2298     F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
2299     F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
2300     F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
2301     F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
2302     F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
2303     F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
2304     F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
2305     F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
2306     F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
2307     F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
2308     F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
2309     F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
2310     B<Application>
2311     Up ESC [ A ESC [ a ESC O a ESC O A
2312     Down ESC [ B ESC [ b ESC O b ESC O B
2313     Right ESC [ C ESC [ c ESC O c ESC O C
2314     Left ESC [ D ESC [ d ESC O d ESC O D
2315     KP_Enter ^M ESC O M
2316     KP_F1 ESC O P ESC O P
2317     KP_F2 ESC O Q ESC O Q
2318     KP_F3 ESC O R ESC O R
2319     KP_F4 ESC O S ESC O S
2320 sf-exg 1.231 KP_Multiply * ESC O j
2321     KP_Add + ESC O k
2322     KP_Separator , ESC O l
2323     KP_Subtract - ESC O m
2324     KP_Decimal . ESC O n
2325     KP_Divide / ESC O o
2326     KP_0 0 ESC O p
2327     KP_1 1 ESC O q
2328     KP_2 2 ESC O r
2329     KP_3 3 ESC O s
2330     KP_4 4 ESC O t
2331     KP_5 5 ESC O u
2332     KP_6 6 ESC O v
2333     KP_7 7 ESC O w
2334     KP_8 8 ESC O x
2335     KP_9 9 ESC O y
2336 root 1.1
2337     =end table
2338 root 1.2
2339 root 1.6 =head1 CONFIGURE OPTIONS
2340    
2341     General hint: if you get compile errors, then likely your configuration
2342 root 1.61 hasn't been tested well. Either try with C<--enable-everything> or use
2343 root 1.146 the default configuration (i.e. no C<--enable-xxx> or C<--disable-xxx>
2344     switches). Of course, you should always report when a combination doesn't
2345     work, so it can be fixed. Marc Lehmann <rxvt@schmorp.de>.
2346 root 1.61
2347     All
2348 root 1.6
2349 root 1.254 =over
2350 root 1.6
2351     =item --enable-everything
2352    
2353 root 1.189 Add (or remove) support for all non-multichoice options listed
2354     in C<./configure --help>, except for C<--enable-assert> and
2355     C<--enable-256-color>.
2356 root 1.61
2357     You can specify this and then disable options you do not like by
2358     I<following> this with the appropriate C<--disable-...> arguments,
2359     or you can start with a minimal configuration by specifying
2360     C<--disable-everything> and than adding just the C<--enable-...> arguments
2361     you want.
2362 root 1.6
2363 sf-exg 1.210 =item --enable-xft (default: on)
2364 root 1.6
2365 sf-exg 1.206 Add support for Xft (anti-aliased, among others) fonts. Xft fonts are
2366 root 1.6 slower and require lots of memory, but as long as you don't use them, you
2367     don't pay for them.
2368    
2369 root 1.61 =item --enable-font-styles (default: on)
2370 root 1.23
2371     Add support for B<bold>, I<italic> and B<< I<bold italic> >> font
2372     styles. The fonts can be set manually or automatically.
2373    
2374 sf-exg 1.210 =item --with-codesets=CS,... (default: all)
2375 root 1.6
2376 root 1.53 Compile in support for additional codeset (encoding) groups (C<eu>, C<vn>
2377     are always compiled in, which includes most 8-bit character sets). These
2378     codeset tables are used for driving X11 core fonts, they are not required
2379     for Xft fonts, although having them compiled in lets rxvt-unicode choose
2380     replacement fonts more intelligently. Compiling them in will make your
2381     binary bigger (all of together cost about 700kB), but it doesn't increase
2382     memory usage unless you use a font requiring one of these encodings.
2383 root 1.6
2384     =begin table
2385    
2386 root 1.12 all all available codeset groups
2387 root 1.27 zh common chinese encodings
2388 ayin 1.125 zh_ext rarely used but very big chinese encodings
2389 root 1.6 jp common japanese encodings
2390     jp_ext rarely used but big japanese encodings
2391     kr korean encodings
2392    
2393     =end table
2394    
2395 root 1.61 =item --enable-xim (default: on)
2396 root 1.6
2397     Add support for XIM (X Input Method) protocol. This allows using
2398     alternative input methods (e.g. kinput2) and will also correctly
2399     set up the input for people using dead keys or compose keys.
2400    
2401 root 1.61 =item --enable-unicode3 (default: off)
2402 root 1.6
2403 root 1.250 Recommended to stay off unless you really need a lot of non-BMP
2404     characters.
2405 root 1.90
2406 root 1.250 Enable support for direct storage of unicode characters above 65535
2407     (the basic multilingual page). This increases storage requirements per
2408     character from 2 to 4 bytes. X11 fonts do not yet support these extra
2409     characters, but Xft does.
2410    
2411     Please note that rxvt-unicode can store and display unicode characters
2412     above 65535 even without this flag, but the number of such characters is
2413     limited to a few thousand (shared with combining characters, see next
2414     switch).
2415 root 1.6
2416 root 1.61 =item --enable-combining (default: on)
2417 root 1.6
2418     Enable automatic composition of combining characters into
2419     composite characters. This is required for proper viewing of text
2420 sf-exg 1.180 where accents are encoded as separate unicode characters. This is
2421 sf-exg 1.212 done by using precomposed characters when available or creating
2422 root 1.6 new pseudo-characters when no precomposed form exists.
2423    
2424 root 1.90 Without --enable-unicode3, the number of additional precomposed
2425     characters is somewhat limited (the 6400 private use characters will be
2426     (ab-)used). With --enable-unicode3, no practical limit exists.
2427 root 1.46
2428     This option will also enable storage (but not display) of characters
2429     beyond plane 0 (>65535) when --enable-unicode3 was not specified.
2430 root 1.6
2431     The combining table also contains entries for arabic presentation forms,
2432 root 1.46 but these are not currently used. Bug me if you want these to be used (and
2433     tell me how these are to be used...).
2434 root 1.6
2435 sf-exg 1.210 =item --enable-fallback[=CLASS] (default: Rxvt)
2436 root 1.6
2437 root 1.90 When reading resource settings, also read settings for class CLASS. To
2438     disable resource fallback use --disable-fallback.
2439 root 1.6
2440 root 1.61 =item --with-res-name=NAME (default: urxvt)
2441 root 1.6
2442 root 1.61 Use the given name as default application name when
2443 root 1.6 reading resources. Specify --with-res-name=rxvt to replace rxvt.
2444    
2445 ayin 1.155 =item --with-res-class=CLASS (default: URxvt)
2446 root 1.6
2447 root 1.61 Use the given class as default application class
2448     when reading resources. Specify --with-res-class=Rxvt to replace
2449 root 1.6 rxvt.
2450    
2451 sf-exg 1.209 =item --enable-pixbuf (default: on)
2452 sf-exg 1.196
2453     Add support for GDK-PixBuf to be used for background images.
2454     It adds support for many file formats including JPG, PNG,
2455     TIFF, GIF, XPM, BMP, ICO and TGA.
2456    
2457 mikachu 1.216 =item --enable-startup-notification (default: on)
2458    
2459     Add support for freedesktop startup notifications. This allows window managers
2460     to display some kind of progress indicator during startup.
2461    
2462 root 1.72 =item --enable-transparency (default: on)
2463 root 1.6
2464 sf-exg 1.199 Add support for using the root pixmap as background to simulate transparency.
2465 sf-exg 1.224 Note that this feature depends on libXrender and on the availability
2466     of the RENDER extension in the X server.
2467 root 1.6
2468 root 1.61 =item --enable-fading (default: on)
2469 root 1.6
2470 ayin 1.138 Add support for fading the text when focus is lost.
2471 root 1.6
2472 root 1.61 =item --enable-rxvt-scroll (default: on)
2473 root 1.6
2474     Add support for the original rxvt scrollbar.
2475    
2476 root 1.61 =item --enable-next-scroll (default: on)
2477 root 1.6
2478     Add support for a NeXT-like scrollbar.
2479    
2480 root 1.61 =item --enable-xterm-scroll (default: on)
2481 root 1.6
2482     Add support for an Xterm-like scrollbar.
2483    
2484     =item --disable-backspace-key
2485    
2486 root 1.61 Removes any handling of the backspace key by us - let the X server do it.
2487 root 1.6
2488     =item --disable-delete-key
2489    
2490 root 1.61 Removes any handling of the delete key by us - let the X server
2491 root 1.6 do it.
2492    
2493     =item --disable-resources
2494    
2495 root 1.61 Removes any support for resource checking.
2496 root 1.6
2497     =item --disable-swapscreen
2498    
2499 root 1.61 Remove support for secondary/swap screen.
2500 root 1.6
2501 root 1.61 =item --enable-frills (default: on)
2502 root 1.6
2503     Add support for many small features that are not essential but nice to
2504     have. Normally you want this, but for very small binaries you may want to
2505     disable this.
2506    
2507 root 1.33 A non-exhaustive list of features enabled by C<--enable-frills> (possibly
2508     in combination with other switches) is:
2509    
2510     MWM-hints
2511 root 1.50 EWMH-hints (pid, utf8 names) and protocols (ping)
2512 ayin 1.128 urgency hint
2513 sf-exg 1.180 separate underline colour (-underlineColor)
2514 root 1.70 settable border widths and borderless switch (-w, -b, -bl)
2515 root 1.94 visual depth selection (-depth)
2516 sf-exg 1.188 settable extra linespacing (-lsp)
2517 root 1.129 iso-14755 5.1 (basic) support
2518 root 1.70 tripleclickwords (-tcw)
2519     settable insecure mode (-insecure)
2520 root 1.44 keysym remapping support
2521 root 1.177 cursor blinking and underline cursor (-bc, -uc)
2522 root 1.70 XEmbed support (-embed)
2523     user-pty (-pty-fd)
2524     hold on exit (-hold)
2525 root 1.154 compile in built-in block graphics
2526 root 1.70 skip builtin block graphics (-sbg)
2527 sf-exg 1.187 separate highlight colour (-highlightColor, -highlightTextColor)
2528 sf-exg 1.242 focus reporting mode (1004).
2529 sf-exg 1.248 extended mouse reporting modes (1005, 1006 and 1015).
2530 root 1.220 visual selection via -visual and -depth.
2531 sf-exg 1.249 systemd socket activation
2532 root 1.252 selectable rewrapmode
2533     bracketed paste mode
2534 root 1.33
2535 root 1.118 It also enables some non-essential features otherwise disabled, such as:
2536 root 1.93
2537     some round-trip time optimisations
2538 root 1.189 nearest colour allocation on pseudocolor screens
2539 ayin 1.125 UTF8_STRING support for selection
2540 root 1.94 sgr modes 90..97 and 100..107
2541     backindex and forwardindex escape sequences
2542 ayin 1.125 view change/zero scrollback escape sequences
2543 root 1.94 locale switching escape sequence
2544     window op and some xterm/OSC escape sequences
2545     rectangular selections
2546     trailing space removal for selections
2547     verbose X error handling
2548 root 1.93
2549 root 1.61 =item --enable-iso14755 (default: on)
2550 root 1.12
2551 ayin 1.168 Enable extended ISO 14755 support (see @@RXVT_NAME@@(1)).
2552     Basic support (section 5.1) is enabled by C<--enable-frills>, while
2553     support for 5.2, 5.3 and 5.4 is enabled with this switch.
2554 root 1.12
2555 root 1.61 =item --enable-keepscrolling (default: on)
2556 root 1.6
2557     Add support for continual scrolling of the display when you hold
2558     the mouse button down on a scrollbar arrow.
2559    
2560 ayin 1.136 =item --enable-selectionscrolling (default: on)
2561    
2562     Add support for scrolling when the selection moves to the top or
2563     bottom of the screen.
2564    
2565 root 1.61 =item --enable-mousewheel (default: on)
2566 root 1.6
2567     Add support for scrolling via mouse wheel or buttons 4 & 5.
2568    
2569 root 1.61 =item --enable-slipwheeling (default: on)
2570 root 1.6
2571     Add support for continual scrolling (using the mouse wheel as an
2572     accelerator) while the control key is held down. This option
2573     requires --enable-mousewheel to also be specified.
2574    
2575 ayin 1.137 =item --enable-smart-resize (default: off)
2576 root 1.6
2577 ayin 1.137 Add smart growth/shrink behaviour when resizing.
2578     This should keep the window corner which is closest to a corner of
2579 root 1.62 the screen in a fixed position.
2580 root 1.6
2581 ayin 1.156 =item --enable-text-blink (default: on)
2582    
2583     Add support for blinking text.
2584    
2585 root 1.61 =item --enable-pointer-blank (default: on)
2586 root 1.6
2587     Add support to have the pointer disappear when typing or inactive.
2588    
2589 root 1.90 =item --enable-perl (default: on)
2590 root 1.67
2591 root 1.68 Enable an embedded perl interpreter. See the B<@@RXVT_NAME@@perl(3)>
2592 ayin 1.168 manpage for more info on this feature, or the files in F<src/perl/>
2593     for the extensions that are installed by default.
2594     The perl interpreter that is used can be specified via the C<PERL>
2595     environment variable when running configure. Even when compiled in,
2596     perl will I<not> be initialised when all extensions have been disabled
2597 root 1.130 C<-pe "" --perl-ext-common "">, so it should be safe to enable from a
2598     resource standpoint.
2599 root 1.67
2600 root 1.179 =item --enable-assert (default: off)
2601    
2602     Enables the assertions in the code, normally disabled. This switch is only
2603     useful when developing rxvt-unicode.
2604    
2605 root 1.189 =item --enable-256-color (default: off)
2606    
2607     Force use of so-called 256 colour mode, to work around buggy applications
2608     that do not support termcap/terminfo, or simply improve support for
2609     applications hardcoding the xterm 256 colour table.
2610    
2611     This switch breaks termcap/terminfo compatibility to C<TERM=rxvt-unicode>,
2612     and consequently sets C<TERM> to C<rxvt-unicode-256color> by default
2613 sf-exg 1.190 (F<doc/etc/> contains termcap/terminfo definitions for both).
2614 root 1.189
2615     It also results in higher memory usage and can slow down @@RXVT_NAME@@
2616     dramatically when more than six fonts are in use by a terminal instance.
2617    
2618 root 1.61 =item --with-name=NAME (default: urxvt)
2619 root 1.6
2620 root 1.61 Set the basename for the installed binaries, resulting
2621 root 1.33 in C<urxvt>, C<urxvtd> etc.). Specify C<--with-name=rxvt> to replace with
2622     C<rxvt>.
2623 root 1.6
2624 root 1.61 =item --with-term=NAME (default: rxvt-unicode)
2625 root 1.6
2626 root 1.257 Sets the default C<TERM> value that @@RXVT_NAME@@ sets. The default is
2627     either C<rxvt-unicode> or C<rxvt-unicode-256color>, as appropriate.
2628 root 1.6
2629     =item --with-terminfo=PATH
2630    
2631 root 1.257 If set, @@RXVT_NAME@@ will set the environment variable C<TERMINFO> to
2632 root 1.258 the given PATH, which can be useful as a last resort if installing the
2633     terminfo entries system-wide is not possible.
2634 root 1.6
2635     =item --with-x
2636    
2637     Use the X Window System (pretty much default, eh?).
2638    
2639     =back
2640    
2641 root 1.2 =head1 AUTHORS
2642    
2643 root 1.5 Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
2644 root 1.2 reworked it from the original Rxvt documentation, which was done by Geoff
2645     Wing <gcw@pobox.com>, who in turn used the XTerm documentation and other
2646     sources.
2647 root 1.1