ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.txt
Revision: 1.66
Committed: Tue Jan 31 21:10:44 2006 UTC (18 years, 5 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.65: +31 -34 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 NAME
2     RXVT REFERENCE - FAQ, command sequences and other background information
3    
4 root 1.11 SYNOPSIS
5     # set a new font set
6     printf '\33]50;%s\007' 9x15,xft:Kochi" Mincho"
7    
8     # change the locale and tell rxvt-unicode about it
9     export LC_CTYPE=ja_JP.EUC-JP; printf "\33]701;$LC_CTYPE\007"
10    
11     # set window title
12     printf '\33]2;%s\007' "new window title"
13    
14     DESCRIPTION
15     This document contains the FAQ, the RXVT TECHNICAL REFERENCE documenting
16     all escape sequences, and other background information.
17    
18     The newest version of this document is also available on the World Wide
19     Web at
20     <http://cvs.schmorp.de/browse/*checkout*/rxvt-unicode/doc/rxvt.7.html>.
21    
22 root 1.61 RXVT-UNICODE/URXVT FREQUENTLY ASKED QUESTIONS
23 root 1.59 Meta, Features & Commandline Issues
24     My question isn't answered here, can I ask a human?
25     Before sending me mail, you could go to IRC: "irc.freenode.net", channel
26     "#rxvt-unicode" has some rxvt-unicode enthusiasts that might be
27     interested in learning about new and exciting problems (but not FAQs :).
28 root 1.41
29 root 1.59 Does it support tabs, can I have a tabbed rxvt-unicode?
30     Beginning with version 7.3, there is a perl extension that implements a
31     simple tabbed terminal. It is installed by default, so any of these
32     should give you tabs:
33 root 1.41
34 root 1.60 urxvt -pe tabbed
35 root 1.41
36 root 1.59 URxvt.perl-ext-common: default,tabbed
37 root 1.41
38 root 1.59 It will also work fine with tabbing functionality of many window
39     managers or similar tabbing programs, and its embedding-features allow
40     it to be embedded into other programs, as witnessed by doc/rxvt-tabbed
41     or the upcoming "Gtk2::URxvt" perl module, which features a tabbed urxvt
42     (murxvt) terminal as an example embedding application.
43 root 1.41
44 root 1.59 How do I know which rxvt-unicode version I'm using?
45     The version number is displayed with the usage (-h). Also the escape
46     sequence "ESC [ 8 n" sets the window title to the version number. When
47 root 1.60 using the urxvtc client, the version displayed is that of the daemon.
48 root 1.42
49 root 1.59 Rxvt-unicode uses gobs of memory, how can I reduce that?
50     Rxvt-unicode tries to obey the rule of not charging you for something
51     you don't use. One thing you should try is to configure out all settings
52     that you don't need, for example, Xft support is a resource hog by
53     design, when used. Compiling it out ensures that no Xft font will be
54     loaded accidentally when rxvt-unicode tries to find a font for your
55     characters.
56 root 1.56
57 root 1.59 Also, many people (me included) like large windows and even larger
58     scrollback buffers: Without "--enable-unicode3", rxvt-unicode will use 6
59     bytes per screen cell. For a 160x?? window this amounts to almost a
60     kilobyte per line. A scrollback buffer of 10000 lines will then (if
61     full) use 10 Megabytes of memory. With "--enable-unicode3" it gets
62     worse, as rxvt-unicode then uses 8 bytes per screen cell.
63 root 1.56
64 root 1.60 How can I start urxvtd in a race-free way?
65     Try "urxvtd -f -o", which tells urxvtd to open the display, create the
66 root 1.59 listening socket and then fork.
67 root 1.56
68 root 1.59 How do I distinguish wether I'm running rxvt-unicode or a regular xterm? I need this to decide about setting colors etc.
69 root 1.62 The original rxvt and rxvt-unicode always export the variable
70     "COLORTERM", so you can check and see if that is set. Note that several
71     programs, JED, slrn, Midnight Commander automatically check this
72     variable to decide whether or not to use color.
73 root 1.56
74 root 1.59 How do I set the correct, full IP address for the DISPLAY variable?
75     If you've compiled rxvt-unicode with DISPLAY_IS_IP and have enabled
76     insecure mode then it is possible to use the following shell script
77     snippets to correctly set the display. If your version of rxvt-unicode
78     wasn't also compiled with ESCZ_ANSWER (as assumed in these snippets)
79     then the COLORTERM variable can be used to distinguish rxvt-unicode from
80     a regular xterm.
81 root 1.56
82 root 1.59 Courtesy of Chuck Blake <cblake@BBN.COM> with the following shell script
83     snippets:
84 root 1.57
85 root 1.59 # Bourne/Korn/POSIX family of shells:
86     [ ${TERM:-foo} = foo ] && TERM=xterm # assume an xterm if we don't know
87     if [ ${TERM:-foo} = xterm ]; then
88     stty -icanon -echo min 0 time 15 # see if enhanced rxvt or not
89     echo -n '^[Z'
90     read term_id
91     stty icanon echo
92     if [ ""${term_id} = '^[[?1;2C' -a ${DISPLAY:-foo} = foo ]; then
93     echo -n '^[[7n' # query the rxvt we are in for the DISPLAY string
94     read DISPLAY # set it in our local shell
95     fi
96     fi
97 root 1.56
98 root 1.59 How do I compile the manual pages on my own?
99     You need to have a recent version of perl installed as /usr/bin/perl,
100     one that comes with pod2man, pod2text and pod2html. Then go to the doc
101     subdirectory and enter "make alldoc".
102 root 1.56
103 root 1.59 Isn't rxvt-unicode supposed to be small? Don't all those features bloat?
104 root 1.56 I often get asked about this, and I think, no, they didn't cause extra
105     bloat. If you compare a minimal rxvt and a minimal urxvt, you can see
106     that the urxvt binary is larger (due to some encoding tables always
107     being compiled in), but it actually uses less memory (RSS) after
108     startup. Even with "--disable-everything", this comparison is a bit
109     unfair, as many features unique to urxvt (locale, encoding conversion,
110     iso14755 etc.) are already in use in this mode.
111    
112     text data bss drs rss filename
113     98398 1664 24 15695 1824 rxvt --disable-everything
114     188985 9048 66616 18222 1788 urxvt --disable-everything
115    
116 root 1.63 When you "--enable-everything" (which *is* unfair, as this involves xft
117 root 1.56 and full locale/XIM support which are quite bloaty inside libX11 and my
118     libc), the two diverge, but not unreasnobaly so.
119    
120     text data bss drs rss filename
121     163431 2152 24 20123 2060 rxvt --enable-everything
122     1035683 49680 66648 29096 3680 urxvt --enable-everything
123    
124     The very large size of the text section is explained by the east-asian
125     encoding tables, which, if unused, take up disk space but nothing else
126     and can be compiled out unless you rely on X11 core fonts that use those
127     encodings. The BSS size comes from the 64k emergency buffer that my c++
128     compiler allocates (but of course doesn't use unless you are out of
129     memory). Also, using an xft font instead of a core font immediately adds
130     a few megabytes of RSS. Xft indeed is responsible for a lot of RSS even
131     when not used.
132    
133     Of course, due to every character using two or four bytes instead of
134     one, a large scrollback buffer will ultimately make rxvt-unicode use
135     more memory.
136    
137     Compared to e.g. Eterm (5112k), aterm (3132k) and xterm (4680k), this
138     still fares rather well. And compared to some monsters like
139     gnome-terminal (21152k + extra 4204k in separate processes) or konsole
140     (22200k + extra 43180k in daemons that stay around after exit, plus half
141     a minute of startup time, including the hundreds of warnings it spits
142     out), it fares extremely well *g*.
143    
144 root 1.59 Why C++, isn't that unportable/bloated/uncool?
145 root 1.56 Is this a question? :) It comes up very often. The simple answer is: I
146     had to write it, and C++ allowed me to write and maintain it in a
147     fraction of the time and effort (which is a scarce resource for me). Put
148     even shorter: It simply wouldn't exist without C++.
149    
150     My personal stance on this is that C++ is less portable than C, but in
151     the case of rxvt-unicode this hardly matters, as its portability limits
152     are defined by things like X11, pseudo terminals, locale support and
153     unix domain sockets, which are all less portable than C++ itself.
154    
155     Regarding the bloat, see the above question: It's easy to write programs
156     in C that use gobs of memory, an certainly possible to write programs in
157     C++ that don't. C++ also often comes with large libraries, but this is
158     not necessarily the case with GCC. Here is what rxvt links against on my
159     system with a minimal config:
160    
161     libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00002aaaaabc3000)
162     libc.so.6 => /lib/libc.so.6 (0x00002aaaaadde000)
163     libdl.so.2 => /lib/libdl.so.2 (0x00002aaaab01d000)
164     /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)
165    
166     And here is rxvt-unicode:
167    
168     libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00002aaaaabc3000)
169     libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002aaaaada2000)
170     libc.so.6 => /lib/libc.so.6 (0x00002aaaaaeb0000)
171     libdl.so.2 => /lib/libdl.so.2 (0x00002aaaab0ee000)
172     /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)
173    
174     No large bloated libraries (of course, none were linked in statically),
175     except maybe libX11 :)
176    
177 root 1.59 Rendering, Font & Look and Feel Issues
178     I can't get transparency working, what am I doing wrong?
179     First of all, transparency isn't officially supported in rxvt-unicode,
180     so you are mostly on your own. Do not bug the author about it (but you
181     may bug everybody else). Also, if you can't get it working consider it a
182     rite of passage: ... and you failed.
183 root 1.56
184 root 1.59 Here are four ways to get transparency. Do read the manpage and option
185     descriptions for the programs mentioned and rxvt-unicode. Really, do it!
186 root 1.56
187 root 1.59 1. Use inheritPixmap:
188 root 1.56
189 root 1.59 Esetroot wallpaper.jpg
190 root 1.60 urxvt -ip -tint red -sh 40
191 root 1.56
192 root 1.59 That works. If you think it doesn't, you lack transparency and tinting
193     support, or you are unable to read.
194 root 1.56
195 root 1.59 2. Use a simple pixmap and emulate pseudo-transparency. This enables you
196     to use effects other than tinting and shading: Just shade/tint/whatever
197     your picture with gimp or any other tool:
198 root 1.56
199 root 1.59 convert wallpaper.jpg -blur 20x20 -modulate 30 background.xpm
200 root 1.60 urxvt -pixmap background.xpm -pe automove-background
201 root 1.56
202 root 1.59 That works. If you think it doesn't, you lack XPM and Perl support, or
203     you are unable to read.
204 root 1.56
205 root 1.59 3. Use an ARGB visual:
206 root 1.56
207 root 1.60 urxvt -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc
208 root 1.56
209 root 1.59 This requires XFT support, and the support of your X-server. If that
210     doesn't work for you, blame Xorg and Keith Packard. ARGB visuals aren't
211     there yet, no matter what they claim. Rxvt-Unicode contains the
212     neccessary bugfixes and workarounds for Xft and Xlib to make it work,
213     but that doesn't mean that your WM has the required kludges in place.
214 root 1.56
215 root 1.59 4. Use xcompmgr and let it do the job:
216 root 1.56
217 root 1.59 xprop -frame -f _NET_WM_WINDOW_OPACITY 32c \
218     -set _NET_WM_WINDOW_OPACITY 0xc0000000
219 root 1.56
220 root 1.59 Then click on a window you want to make transparent. Replace 0xc0000000
221     by other values to change the degree of opacity. If it doesn't work and
222     your server crashes, you got to keep the pieces.
223 root 1.56
224 root 1.59 Why does rxvt-unicode sometimes leave pixel droppings?
225     Most fonts were not designed for terminal use, which means that
226     character size varies a lot. A font that is otherwise fine for terminal
227     use might contain some characters that are simply too wide. Rxvt-unicode
228     will avoid these characters. For characters that are just "a bit" too
229     wide a special "careful" rendering mode is used that redraws adjacent
230     characters.
231 root 1.56
232 root 1.59 All of this requires that fonts do not lie about character sizes,
233     however: Xft fonts often draw glyphs larger than their acclaimed
234     bounding box, and rxvt-unicode has no way of detecting this (the correct
235     way is to ask for the character bounding box, which unfortunately is
236     wrong in these cases).
237 root 1.56
238 root 1.59 It's not clear (to me at least), wether this is a bug in Xft, freetype,
239     or the respective font. If you encounter this problem you might try
240     using the "-lsp" option to give the font more height. If that doesn't
241     work, you might be forced to use a different font.
242 root 1.56
243 root 1.59 All of this is not a problem when using X11 core fonts, as their
244     bounding box data is correct.
245 root 1.56
246 root 1.59 How can I keep rxvt-unicode from using reverse video so much?
247     First of all, make sure you are running with the right terminal settings
248     ("TERM=rxvt-unicode"), which will get rid of most of these effects. Then
249     make sure you have specified colours for italic and bold, as otherwise
250     rxvt-unicode might use reverse video to simulate the effect:
251 root 1.57
252 root 1.59 URxvt.colorBD: white
253     URxvt.colorIT: green
254 root 1.56
255 root 1.59 Some programs assume totally weird colours (red instead of blue), how can I fix that?
256     For some unexplainable reason, some rare programs assume a very weird
257     colour palette when confronted with a terminal with more than the
258     standard 8 colours (rxvt-unicode supports 88). The right fix is, of
259     course, to fix these programs not to assume non-ISO colours without very
260     good reasons.
261 root 1.56
262 root 1.59 In the meantime, you can either edit your "rxvt-unicode" terminfo
263     definition to only claim 8 colour support or use "TERM=rxvt", which will
264     fix colours but keep you from using other rxvt-unicode features.
265 root 1.56
266 root 1.59 Can I switch the fonts at runtime?
267     Yes, using an escape sequence. Try something like this, which has the
268     same effect as using the "-fn" switch, and takes effect immediately:
269 root 1.56
270 root 1.59 printf '\e]50;%s\007' "9x15bold,xft:Kochi Gothic"
271 root 1.56
272 root 1.59 This is useful if you e.g. work primarily with japanese (and prefer a
273     japanese font), but you have to switch to chinese temporarily, where
274     japanese fonts would only be in your way.
275 root 1.56
276 root 1.59 You can think of this as a kind of manual ISO-2022 switching.
277 root 1.56
278 root 1.59 Why do italic characters look as if clipped?
279     Many fonts have difficulties with italic characters and hinting. For
280     example, the otherwise very nicely hinted font "xft:Bitstream Vera Sans
281     Mono" completely fails in it's italic face. A workaround might be to
282     enable freetype autohinting, i.e. like this:
283 root 1.56
284 root 1.59 URxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true
285     URxvt.boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true
286 root 1.56
287 root 1.59 Can I speed up Xft rendering somehow?
288     Yes, the most obvious way to speed it up is to avoid Xft entirely, as it
289     is simply slow. If you still want Xft fonts you might try to disable
290     antialiasing (by appending ":antialias=false"), which saves lots of
291     memory and also speeds up rendering considerably.
292 root 1.56
293 root 1.59 Rxvt-unicode doesn't seem to anti-alias its fonts, what is wrong?
294     Rxvt-unicode will use whatever you specify as a font. If it needs to
295     fall back to it's default font search list it will prefer X11 core
296     fonts, because they are small and fast, and then use Xft fonts. It has
297     antialiasing disabled for most of them, because the author thinks they
298     look best that way.
299 root 1.57
300 root 1.59 If you want antialiasing, you have to specify the fonts manually.
301 root 1.57
302 root 1.59 What's with this bold/blink stuff?
303     If no bold colour is set via "colorBD:", bold will invert text using the
304     standard foreground colour.
305 root 1.56
306 root 1.59 For the standard background colour, blinking will actually make the text
307     blink when compiled with "--enable-blinking". with standard colours.
308     Without "--enable-blinking", the blink attribute will be ignored.
309 root 1.56
310 root 1.59 On ANSI colours, bold/blink attributes are used to set high-intensity
311     foreground/background colors.
312 root 1.57
313 root 1.59 color0-7 are the low-intensity colors.
314 root 1.56
315 root 1.59 color8-15 are the corresponding high-intensity colors.
316 root 1.56
317 root 1.59 I don't like the screen colors. How do I change them?
318     You can change the screen colors at run-time using ~/.Xdefaults
319     resources (or as long-options).
320 root 1.56
321 root 1.59 Here are values that are supposed to resemble a VGA screen, including
322     the murky brown that passes for low-intensity yellow:
323 root 1.56
324 root 1.59 URxvt.color0: #000000
325     URxvt.color1: #A80000
326     URxvt.color2: #00A800
327     URxvt.color3: #A8A800
328     URxvt.color4: #0000A8
329     URxvt.color5: #A800A8
330     URxvt.color6: #00A8A8
331     URxvt.color7: #A8A8A8
332 root 1.56
333 root 1.59 URxvt.color8: #000054
334     URxvt.color9: #FF0054
335     URxvt.color10: #00FF54
336     URxvt.color11: #FFFF54
337     URxvt.color12: #0000FF
338     URxvt.color13: #FF00FF
339     URxvt.color14: #00FFFF
340     URxvt.color15: #FFFFFF
341 root 1.56
342 root 1.63 And here is a more complete set of non-standard colors.
343 root 1.56
344 root 1.59 URxvt.cursorColor: #dc74d1
345     URxvt.pointerColor: #dc74d1
346     URxvt.background: #0e0e0e
347     URxvt.foreground: #4ad5e1
348     URxvt.color0: #000000
349     URxvt.color8: #8b8f93
350     URxvt.color1: #dc74d1
351     URxvt.color9: #dc74d1
352     URxvt.color2: #0eb8c7
353     URxvt.color10: #0eb8c7
354     URxvt.color3: #dfe37e
355     URxvt.color11: #dfe37e
356     URxvt.color5: #9e88f0
357     URxvt.color13: #9e88f0
358     URxvt.color6: #73f7ff
359     URxvt.color14: #73f7ff
360     URxvt.color7: #e1dddd
361     URxvt.color15: #e1dddd
362 root 1.56
363 root 1.65 They have been described (not by me) as "pretty girly".
364    
365     Why do some characters look so much different than others?
366     See next entry.
367 root 1.63
368 root 1.59 How does rxvt-unicode choose fonts?
369 root 1.56 Most fonts do not contain the full range of Unicode, which is fine.
370     Chances are that the font you (or the admin/package maintainer of your
371     system/os) have specified does not cover all the characters you want to
372     display.
373    
374     rxvt-unicode makes a best-effort try at finding a replacement font.
375     Often the result is fine, but sometimes the chosen font looks
376     bad/ugly/wrong. Some fonts have totally strange characters that don't
377     resemble the correct glyph at all, and rxvt-unicode lacks the artificial
378     intelligence to detect that a specific glyph is wrong: it has to believe
379     the font that the characters it claims to contain indeed look correct.
380    
381     In that case, select a font of your taste and add it to the font list,
382     e.g.:
383    
384 root 1.60 urxvt -fn basefont,font2,font3...
385 root 1.66
386 root 1.56 When rxvt-unicode sees a character, it will first look at the base font.
387     If the base font does not contain the character, it will go to the next
388     font, and so on. Specifying your own fonts will also speed up this
389     search and use less resources within rxvt-unicode and the X-server.
390    
391     The only limitation is that none of the fonts may be larger than the
392     base font, as the base font defines the terminal character cell size,
393     which must be the same due to the way terminals work.
394    
395 root 1.66 Why do some chinese characters look so different than others?
396     This is because there is a difference between script and language --
397     rxvt-unicode does not know which language the text that is output is, as
398     it only knows the unicode character codes. If rxvt-unicode first sees a
399     japanese/chinese character, it might choose a japanese font for display.
400     Subsequent japanese characters will use that font. Now, many chinese
401     characters aren't represented in japanese fonts, so when the first
402     non-japanese character comes up, rxvt-unicode will look for a chinese
403     font -- unfortunately at this point, it will still use the japanese font
404     for chinese characters that are also in the japanese font.
405    
406     The workaround is easy: just tag a chinese font at the end of your font
407     list (see the previous question). The key is to view the font list as a
408     preference list: If you expect more japanese, list a japanese font
409     first. If you expect more chinese, put a chinese font first.
410    
411     In the future it might be possible to switch language preferences at
412     runtime (the internal data structure has no problem with using different
413     fonts for the same character at the same time, but no interface for this
414     has been designed yet).
415    
416     Until then, you might get away with switching fonts at runtime (see "Can
417     I switch the fonts at runtime?" later in this document).
418    
419 root 1.59 Keyboard, Mouse & User Interaction
420     The new selection selects pieces that are too big, how can I select single words?
421     If you want to select e.g. alphanumeric words, you can use the following
422     setting:
423    
424     URxvt.selection.pattern-0: ([[:word:]]+)
425 root 1.56
426 root 1.59 If you click more than twice, the selection will be extended more and
427     more.
428 root 1.56
429 root 1.59 To get a selection that is very similar to the old code, try this
430     pattern:
431 root 1.56
432 root 1.59 URxvt.selection.pattern-0: ([^"&'()*,;<=>?@[\\\\]^`{|})]+)
433 root 1.56
434 root 1.59 Please also note that the *LeftClick Shift-LeftClik* combination also
435     selects words like the old code.
436 root 1.56
437 root 1.59 I don't like the new selection/popups/hotkeys/perl, how do I change/disable it?
438     You can disable the perl extension completely by setting the
439     perl-ext-common resource to the empty string, which also keeps
440     rxvt-unicode from initialising perl, saving memory.
441 root 1.56
442 root 1.59 If you only want to disable specific features, you first have to
443     identify which perl extension is responsible. For this, read the section
444 root 1.60 PREPACKAGED EXTENSIONS in the urxvtperl(3) manpage. For example, to
445 root 1.59 disable the selection-popup and option-popup, specify this
446     perl-ext-common resource:
447 root 1.56
448 root 1.59 URxvt.perl-ext-common: default,-selection-popup,-option-popup
449 root 1.56
450 root 1.59 This will keep the default extensions, but disable the two popup
451     extensions. Some extensions can also be configured, for example,
452     scrollback search mode is triggered by M-s. You can move it to any other
453     combination either by setting the searchable-scrollback resource:
454    
455     URxvt.searchable-scrollback: CM-s
456    
457     The cursor moves when selecting text in the current input line, how do I switch this off?
458     See next entry.
459    
460     During rlogin/ssh/telnet/etc. sessions, clicking near the cursor outputs strange escape sequences, how do I fix this?
461     These are caused by the "readline" perl extension. Under normal
462     circumstances, it will move your cursor around when you click into the
463     line that contains it. It tries hard not to do this at the wrong moment,
464     but when running a program that doesn't parse cursor movements or in
465     some cases during rlogin sessions, it fails to detect this properly.
466    
467     You can permamently switch this feature off by disabling the "readline"
468     extension:
469    
470     URxvt.perl-ext-common: default,-readline
471 root 1.56
472 root 1.59 My numerical keypad acts weird and generates differing output?
473     Some Debian GNUL/Linux users seem to have this problem, although no
474     specific details were reported so far. It is possible that this is
475     caused by the wrong "TERM" setting, although the details of wether and
476     how this can happen are unknown, as "TERM=rxvt" should offer a
477     compatible keymap. See the answer to the previous question, and please
478     report if that helped.
479 root 1.56
480 root 1.59 My Compose (Multi_key) key is no longer working.
481 root 1.56 The most common causes for this are that either your locale is not set
482     correctly, or you specified a preeditStyle that is not supported by your
483     input method. For example, if you specified OverTheSpot and your input
484     method (e.g. the default input method handling Compose keys) does not
485     support this (for instance because it is not visual), then rxvt-unicode
486     will continue without an input method.
487    
488     In this case either do not specify a preeditStyle or specify more than
489     one pre-edit style, such as OverTheSpot,Root,None.
490    
491 root 1.59 I cannot type "Ctrl-Shift-2" to get an ASCII NUL character due to ISO 14755
492 root 1.56 Either try "Ctrl-2" alone (it often is mapped to ASCII NUL even on
493     international keyboards) or simply use ISO 14755 support to your
494     advantage, typing <Ctrl-Shift-0> to get a ASCII NUL. This works for
495     other codes, too, such as "Ctrl-Shift-1-d" to type the default telnet
496     escape character and so on.
497    
498 root 1.59 Mouse cut/paste suddenly no longer works.
499     Make sure that mouse reporting is actually turned off since killing some
500     editors prematurely may leave the mouse in mouse report mode. I've heard
501     that tcsh may use mouse reporting unless it otherwise specified. A quick
502     check is to see if cut/paste works when the Alt or Shift keys are
503     depressed.
504    
505     What's with the strange Backspace/Delete key behaviour?
506     Assuming that the physical Backspace key corresponds to the BackSpace
507     keysym (not likely for Linux ... see the following question) there are
508     two standard values that can be used for Backspace: "^H" and "^?".
509 root 1.56
510 root 1.59 Historically, either value is correct, but rxvt-unicode adopts the
511     debian policy of using "^?" when unsure, because it's the one only only
512     correct choice :).
513 root 1.56
514 root 1.59 Rxvt-unicode tries to inherit the current stty settings and uses the
515     value of `erase' to guess the value for backspace. If rxvt-unicode
516     wasn't started from a terminal (say, from a menu or by remote shell),
517     then the system value of `erase', which corresponds to CERASE in
518     <termios.h>, will be used (which may not be the same as your stty
519     setting).
520 root 1.56
521 root 1.59 For starting a new rxvt-unicode:
522 root 1.56
523 root 1.59 # use Backspace = ^H
524     $ stty erase ^H
525 root 1.60 $ urxvt
526 root 1.56
527 root 1.59 # use Backspace = ^?
528     $ stty erase ^?
529 root 1.60 $ urxvt
530 root 1.56
531 root 1.59 Toggle with "ESC [ 36 h" / "ESC [ 36 l".
532 root 1.56
533 root 1.59 For an existing rxvt-unicode:
534 root 1.56
535 root 1.59 # use Backspace = ^H
536     $ stty erase ^H
537     $ echo -n "^[[36h"
538 root 1.56
539 root 1.59 # use Backspace = ^?
540     $ stty erase ^?
541     $ echo -n "^[[36l"
542 root 1.56
543 root 1.59 This helps satisfy some of the Backspace discrepancies that occur, but
544     if you use Backspace = "^H", make sure that the termcap/terminfo value
545     properly reflects that.
546 root 1.56
547 root 1.59 The Delete key is a another casualty of the ill-defined Backspace
548     problem. To avoid confusion between the Backspace and Delete keys, the
549     Delete key has been assigned an escape sequence to match the vt100 for
550     Execute ("ESC [ 3 ~") and is in the supplied termcap/terminfo.
551 root 1.56
552 root 1.59 Some other Backspace problems:
553 root 1.56
554 root 1.59 some editors use termcap/terminfo, some editors (vim I'm told) expect
555     Backspace = ^H, GNU Emacs (and Emacs-like editors) use ^H for help.
556 root 1.57
557 root 1.59 Perhaps someday this will all be resolved in a consistent manner.
558 root 1.56
559 root 1.59 I don't like the key-bindings. How do I change them?
560     There are some compile-time selections available via configure. Unless
561     you have run "configure" with the "--disable-resources" option you can
562     use the `keysym' resource to alter the keystrings associated with
563     keysyms.
564 root 1.56
565 root 1.60 Here's an example for a URxvt session started using "urxvt -name URxvt"
566 root 1.56
567 root 1.59 URxvt.keysym.Home: \033[1~
568     URxvt.keysym.End: \033[4~
569     URxvt.keysym.C-apostrophe: \033<C-'>
570     URxvt.keysym.C-slash: \033<C-/>
571     URxvt.keysym.C-semicolon: \033<C-;>
572     URxvt.keysym.C-grave: \033<C-`>
573     URxvt.keysym.C-comma: \033<C-,>
574     URxvt.keysym.C-period: \033<C-.>
575     URxvt.keysym.C-0x60: \033<C-`>
576     URxvt.keysym.C-Tab: \033<C-Tab>
577     URxvt.keysym.C-Return: \033<C-Return>
578     URxvt.keysym.S-Return: \033<S-Return>
579     URxvt.keysym.S-space: \033<S-Space>
580     URxvt.keysym.M-Up: \033<M-Up>
581     URxvt.keysym.M-Down: \033<M-Down>
582     URxvt.keysym.M-Left: \033<M-Left>
583     URxvt.keysym.M-Right: \033<M-Right>
584     URxvt.keysym.M-C-0: list \033<M-C- 0123456789 >
585     URxvt.keysym.M-C-a: list \033<M-C- abcdefghijklmnopqrstuvwxyz >
586     URxvt.keysym.F12: command:\033]701;zh_CN.GBK\007
587 root 1.56
588 root 1.59 See some more examples in the documentation for the keysym resource.
589 root 1.56
590 root 1.59 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
591     KP_Insert == Insert
592     F22 == Print
593     F27 == Home
594     F29 == Prior
595     F33 == End
596     F35 == Next
597 root 1.56
598 root 1.59 Rather than have rxvt-unicode try to accommodate all the various
599     possible keyboard mappings, it is better to use `xmodmap' to remap the
600     keys as required for your particular machine.
601 root 1.56
602 root 1.59 Terminal Configuration
603     Why doesn't rxvt-unicode read my resources?
604     Well, why, indeed? It does, in a way very similar to other X
605     applications. Most importantly, this means that if you or your OS loads
606     resources into the X display (the right way to do it), rxvt-unicode will
607     ignore any resource files in your home directory. It will only read
608     $HOME/.Xdefaults when no resources are attached to the display.
609 root 1.56
610 root 1.59 If you have or use an $HOME/.Xresources file, chances are that resources
611     are loaded into your X-server. In this case, you have to re-login after
612     every change (or run xrdb -merge $HOME/.Xresources).
613 root 1.56
614 root 1.59 Also consider the form resources have to use:
615 root 1.56
616 root 1.59 URxvt.resource: value
617 root 1.56
618 root 1.59 If you want to use another form (there are lots of different ways of
619     specifying resources), make sure you understand wether and why it works.
620     If unsure, use the form above.
621 root 1.56
622 root 1.59 When I log-in to another system it tells me about missing terminfo data?
623     The terminal description used by rxvt-unicode is not as widely available
624     as that for xterm, or even rxvt (for which the same problem often
625     arises).
626 root 1.56
627 root 1.59 The correct solution for this problem is to install the terminfo, this
628     can be done like this (with ncurses' infocmp):
629 root 1.56
630 root 1.59 REMOTE=remotesystem.domain
631     infocmp rxvt-unicode | ssh $REMOTE "cat >/tmp/ti && tic /tmp/ti"
632 root 1.56
633 root 1.59 ... or by installing rxvt-unicode normally on the remote system,
634 root 1.56
635 root 1.59 If you cannot or do not want to do this, then you can simply set
636     "TERM=rxvt" or even "TERM=xterm", and live with the small number of
637     problems arising, which includes wrong keymapping, less and different
638     colours and some refresh errors in fullscreen applications. It's a nice
639     quick-and-dirty workaround for rare cases, though.
640 root 1.56
641 root 1.59 If you always want to do this (and are fine with the consequences) you
642     can either recompile rxvt-unicode with the desired TERM value or use a
643     resource to set it:
644 root 1.56
645 root 1.59 URxvt.termName: rxvt
646 root 1.56
647 root 1.59 If you don't plan to use rxvt (quite common...) you could also replace
648 root 1.62 the rxvt terminfo file with the rxvt-unicode one and use "TERM=rxvt".
649 root 1.56
650 root 1.59 "tic" outputs some error when compiling the terminfo entry.
651     Most likely it's the empty definition for "enacs=". Just replace it by
652     "enacs=\E[0@" and try again.
653 root 1.56
654 root 1.60 "bash"'s readline does not work correctly under urxvt.
655 root 1.59 See next entry.
656 root 1.56
657 root 1.59 I need a termcap file entry.
658     One reason you might want this is that some distributions or operating
659     systems still compile some programs using the long-obsoleted termcap
660     library (Fedora Core's bash is one example) and rely on a termcap entry
661     for "rxvt-unicode".
662    
663     You could use rxvt's termcap entry with resonable results in many cases.
664     You can also create a termcap entry by using terminfo's infocmp program
665     like this:
666    
667     infocmp -C rxvt-unicode
668    
669     Or you could use this termcap entry, generated by the command above:
670    
671     rxvt-unicode|rxvt-unicode terminal (X Window System):\
672     :am:bw:eo:km:mi:ms:xn:xo:\
673     :co#80:it#8:li#24:lm#0:\
674     :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
675     :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
676     :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=\E(B:al=\E[L:\
677     :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
678     :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
679     :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:\
680     :i1=\E[?47l\E=\E[?1l:ic=\E[@:im=\E[4h:\
681     :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
682     :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
683     :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:\
684     :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:\
685     :kh=\E[7~:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
686     :mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:\
687     :sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
688     :te=\E[r\E[?1049l:ti=\E[?1049h:ue=\E[24m:up=\E[A:\
689     :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:\
690     :vs=\E[?25h:
691    
692     Why does "ls" no longer have coloured output?
693     The "ls" in the GNU coreutils unfortunately doesn't use terminfo to
694     decide wether a terminal has colour, but uses it's own configuration
695     file. Needless to say, "rxvt-unicode" is not in it's default file (among
696     with most other terminals supporting colour). Either add:
697    
698     TERM rxvt-unicode
699    
700     to "/etc/DIR_COLORS" or simply add:
701    
702     alias ls='ls --color=auto'
703    
704     to your ".profile" or ".bashrc".
705    
706     Why doesn't vim/emacs etc. use the 88 colour mode?
707     See next entry.
708    
709     Why doesn't vim/emacs etc. make use of italic?
710     See next entry.
711    
712     Why are the secondary screen-related options not working properly?
713     Make sure you are using "TERM=rxvt-unicode". Some pre-packaged
714     distributions (most notably Debian GNU/Linux) break rxvt-unicode by
715     setting "TERM" to "rxvt", which doesn't have these extra features.
716     Unfortunately, some of these (most notably, again, Debian GNU/Linux)
717     furthermore fail to even install the "rxvt-unicode" terminfo file, so
718     you will need to install it on your own (See the question When I log-in
719     to another system it tells me about missing terminfo data? on how to do
720     this).
721    
722     Encoding / Locale / Input Method Issues
723     Rxvt-unicode does not seem to understand the selected encoding?
724     See next entry.
725 root 1.56
726 root 1.59 Unicode does not seem to work?
727     If you encounter strange problems like typing an accented character but
728     getting two unrelated other characters or similar, or if program output
729     is subtly garbled, then you should check your locale settings.
730 root 1.56
731 root 1.59 Rxvt-unicode must be started with the same "LC_CTYPE" setting as the
732     programs. Often rxvt-unicode is started in the "C" locale, while the
733     login script running within the rxvt-unicode window changes the locale
734     to something else, e.g. "en_GB.UTF-8". Needless to say, this is not
735     going to work.
736 root 1.56
737 root 1.59 The best thing is to fix your startup environment, as you will likely
738     run into other problems. If nothing works you can try this in your
739     .profile.
740 root 1.56
741 root 1.59 printf '\e]701;%s\007' "$LC_CTYPE"
742 root 1.56
743 root 1.59 If this doesn't work, then maybe you use a "LC_CTYPE" specification not
744     supported on your systems. Some systems have a "locale" command which
745     displays this (also, "perl -e0" can be used to check locale settings, as
746     it will complain loudly if it cannot set the locale). If it displays
747     something like:
748 root 1.56
749 root 1.59 locale: Cannot set LC_CTYPE to default locale: ...
750 root 1.56
751 root 1.59 Then the locale you specified is not supported on your system.
752 root 1.56
753 root 1.59 If nothing works and you are sure that everything is set correctly then
754     you will need to remember a little known fact: Some programs just don't
755     support locales :(
756 root 1.56
757 root 1.59 How does rxvt-unicode determine the encoding to use?
758     See next entry.
759 root 1.56
760 root 1.59 Is there an option to switch encodings?
761     Unlike some other terminals, rxvt-unicode has no encoding switch, and no
762     specific "utf-8" mode, such as xterm. In fact, it doesn't even know
763     about UTF-8 or any other encodings with respect to terminal I/O.
764 root 1.56
765 root 1.59 The reasons is that there exists a perfectly fine mechanism for
766     selecting the encoding, doing I/O and (most important) communicating
767     this to all applications so everybody agrees on character properties
768     such as width and code number. This mechanism is the *locale*.
769     Applications not using that info will have problems (for example,
770     "xterm" gets the width of characters wrong as it uses it's own,
771     locale-independent table under all locales).
772 root 1.56
773 root 1.59 Rxvt-unicode uses the "LC_CTYPE" locale category to select encoding. All
774     programs doing the same (that is, most) will automatically agree in the
775     interpretation of characters.
776 root 1.56
777 root 1.59 Unfortunately, there is no system-independent way to select locales, nor
778     is there a standard on how locale specifiers will look like.
779 root 1.56
780 root 1.59 On most systems, the content of the "LC_CTYPE" environment variable
781     contains an arbitrary string which corresponds to an already-installed
782     locale. Common names for locales are "en_US.UTF-8", "de_DE.ISO-8859-15",
783     "ja_JP.EUC-JP", i.e. "language_country.encoding", but other forms (i.e.
784     "de" or "german") are also common.
785 root 1.56
786 root 1.59 Rxvt-unicode ignores all other locale categories, and except for the
787     encoding, ignores country or language-specific settings, i.e.
788     "de_DE.UTF-8" and "ja_JP.UTF-8" are the normally same to rxvt-unicode.
789 root 1.56
790 root 1.59 If you want to use a specific encoding you have to make sure you start
791     rxvt-unicode with the correct "LC_CTYPE" category.
792 root 1.56
793 root 1.59 Can I switch locales at runtime?
794     Yes, using an escape sequence. Try something like this, which sets
795     rxvt-unicode's idea of "LC_CTYPE".
796 root 1.56
797 root 1.59 printf '\e]701;%s\007' ja_JP.SJIS
798 root 1.56
799 root 1.59 See also the previous answer.
800 root 1.56
801 root 1.59 Sometimes this capability is rather handy when you want to work in one
802     locale (e.g. "de_DE.UTF-8") but some programs don't support it (e.g.
803     UTF-8). For example, I use this script to start "xjdic", which first
804     switches to a locale supported by xjdic and back later:
805 root 1.56
806 root 1.59 printf '\e]701;%s\007' ja_JP.SJIS
807     xjdic -js
808     printf '\e]701;%s\007' de_DE.UTF-8
809 root 1.56
810 root 1.59 You can also use xterm's "luit" program, which usually works fine,
811     except for some locales where character width differs between program-
812     and rxvt-unicode-locales.
813 root 1.56
814 root 1.59 My input method wants <some encoding> but I want UTF-8, what can I do?
815     You can specify separate locales for the input method and the rest of
816     the terminal, using the resource "imlocale":
817 root 1.56
818 root 1.59 URxvt.imlocale: ja_JP.EUC-JP
819 root 1.56
820 root 1.59 Now you can start your terminal with "LC_CTYPE=ja_JP.UTF-8" and still
821     use your input method. Please note, however, that you will not be able
822     to input characters outside "EUC-JP" in a normal way then, as your input
823     method limits you.
824 root 1.56
825 root 1.59 Rxvt-unicode crashes when the X Input Method changes or exits.
826     Unfortunately, this is unavoidable, as the XIM protocol is racy by
827     design. Applications can avoid some crashes at the expense of memory
828     leaks, and Input Methods can avoid some crashes by careful ordering at
829     exit time. kinput2 (and derived input methods) generally succeeds, while
830     SCIM (or similar input methods) fails. In the end, however, crashes
831     cannot be completely avoided even if both sides cooperate.
832 root 1.56
833 root 1.59 So the only workaround is not to kill your Input Method Servers.
834 root 1.56
835 root 1.59 Operating Systems / Package Maintaining
836     I am using Debian GNU/Linux and have a problem...
837     The Debian GNU/Linux package of rxvt-unicode in sarge contains large
838     patches that considerably change the behaviour of rxvt-unicode (but
839     unfortunately this notice has been removed). Before reporting a bug to
840     the original rxvt-unicode author please download and install the genuine
841     version (<http://software.schmorp.de#rxvt-unicode>) and try to reproduce
842     the problem. If you cannot, chances are that the problems are specific
843     to Debian GNU/Linux, in which case it should be reported via the Debian
844     Bug Tracking System (use "reportbug" to report the bug).
845 root 1.56
846 root 1.59 For other problems that also affect the Debian package, you can and
847     probably should use the Debian BTS, too, because, after all, it's also a
848     bug in the Debian version and it serves as a reminder for other users
849     that might encounter the same issue.
850 root 1.56
851 root 1.59 I am maintaining rxvt-unicode for distribution/OS XXX, any recommendation?
852     You should build one binary with the default options. configure now
853     enables most useful options, and the trend goes to making them
854     runtime-switchable, too, so there is usually no drawback to enbaling
855     them, except higher disk and possibly memory usage. The perl interpreter
856     should be enabled, as important functionality (menus, selection, likely
857     more in the future) depends on it.
858 root 1.56
859 root 1.59 You should not overwrite the "perl-ext-common" snd "perl-ext" resources
860     system-wide (except maybe with "defaults"). This will result in useful
861     behaviour. If your distribution aims at low memory, add an empty
862     "perl-ext-common" resource to the app-defaults file. This will keep the
863     perl interpreter disabled until the user enables it.
864 root 1.56
865 root 1.59 If you can/want build more binaries, I recommend building a minimal one
866     with "--disable-everything" (very useful) and a maximal one with
867     "--enable-everything" (less useful, it will be very big due to a lot of
868     encodings built-in that increase download times and are rarely used).
869 root 1.56
870 root 1.59 I need to make it setuid/setgid to support utmp/ptys on my OS, is this safe?
871     It should be, starting with release 7.1. You are encouraged to properly
872     install urxvt with privileges necessary for your OS now.
873 root 1.56
874 root 1.59 When rxvt-unicode detects that it runs setuid or setgid, it will fork
875     into a helper process for privileged operations (pty handling on some
876     systems, utmp/wtmp/lastlog handling on others) and drop privileges
877     immediately. This is much safer than most other terminals that keep
878     privileges while running (but is more relevant to urxvt, as it contains
879     things as perl interpreters, which might be "helpful" to attackers).
880 root 1.56
881 root 1.59 This forking is done as the very first within main(), which is very
882     early and reduces possible bugs to initialisation code run before
883     main(), or things like the dynamic loader of your system, which should
884     result in very little risk.
885 root 1.56
886 root 1.59 On Solaris 9, many line-drawing characters are too wide.
887     Seems to be a known bug, read
888     <http://nixdoc.net/files/forum/about34198.html>. Some people use the
889     following ugly workaround to get non-double-wide-characters working:
890 root 1.56
891 root 1.59 #define wcwidth(x) wcwidth(x) > 1 ? 1 : wcwidth(x)
892 root 1.56
893 root 1.59 I am on FreeBSD and rxvt-unicode does not seem to work at all.
894     Rxvt-unicode requires the symbol "__STDC_ISO_10646__" to be defined in
895     your compile environment, or an implementation that implements it,
896     wether it defines the symbol or not. "__STDC_ISO_10646__" requires that
897     wchar_t is represented as unicode.
898 root 1.56
899 root 1.59 As you might have guessed, FreeBSD does neither define this symobl nor
900     does it support it. Instead, it uses it's own internal representation of
901     wchar_t. This is, of course, completely fine with respect to standards.
902 root 1.56
903 root 1.59 However, that means rxvt-unicode only works in "POSIX", "ISO-8859-1" and
904     "UTF-8" locales under FreeBSD (which all use Unicode as wchar_t.
905 root 1.56
906 root 1.59 "__STDC_ISO_10646__" is the only sane way to support multi-language apps
907     in an OS, as using a locale-dependent (and non-standardized)
908     representation of wchar_t makes it impossible to convert between wchar_t
909     (as used by X11 and your applications) and any other encoding without
910     implementing OS-specific-wrappers for each and every locale. There
911     simply are no APIs to convert wchar_t into anything except the current
912     locale encoding.
913 root 1.56
914 root 1.59 Some applications (such as the formidable mlterm) work around this by
915     carrying their own replacement functions for character set handling with
916     them, and either implementing OS-dependent hacks or doing multiple
917     conversions (which is slow and unreliable in case the OS implements
918     encodings slightly different than the terminal emulator).
919 root 1.56
920 root 1.59 The rxvt-unicode author insists that the right way to fix this is in the
921     system libraries once and for all, instead of forcing every app to carry
922     complete replacements for them :)
923 root 1.56
924 root 1.59 I use Solaris 9 and it doesn't compile/work/etc.
925     Try the diff in doc/solaris9.patch as a base. It fixes the worst
926     problems with "wcwidth" and a compile problem.
927 root 1.56
928 root 1.59 How can I use rxvt-unicode under cygwin?
929     rxvt-unicode should compile and run out of the box on cygwin, using the
930     X11 libraries that come with cygwin. libW11 emulation is no longer
931     supported (and makes no sense, either, as it only supported a single
932     font). I recommend starting the X-server in "-multiwindow" or
933     "-rootless" mode instead, which will result in similar look&feel as the
934     old libW11 emulation.
935 root 1.56
936 root 1.59 At the time of this writing, cygwin didn't seem to support any
937     multi-byte encodings (you might try "LC_CTYPE=C-UTF-8"), so you are
938     likely limited to 8-bit encodings.
939 root 1.1
940 root 1.62 RXVT-UNICODE TECHNICAL REFERENCE
941 root 1.1 The rest of this document describes various technical aspects of
942     rxvt-unicode. First the description of supported command sequences,
943 root 1.46 followed by pixmap support and last by a description of all features
944     selectable at "configure" time.
945 root 1.1
946 root 1.66 Definitions
947 root 1.1 "c" The literal character c.
948    
949     "C" A single (required) character.
950    
951     "Ps"
952     A single (usually optional) numeric parameter, composed of one or
953     more digits.
954    
955     "Pm"
956     A multiple numeric parameter composed of any number of single
957     numeric parameters, separated by ";" character(s).
958    
959     "Pt"
960     A text parameter composed of printable characters.
961    
962 root 1.66 Values
963 root 1.1 "ENQ"
964     Enquiry (Ctrl-E) = Send Device Attributes (DA) request attributes
965     from terminal. See "ESC [ Ps c".
966    
967     "BEL"
968     Bell (Ctrl-G)
969    
970     "BS"
971     Backspace (Ctrl-H)
972    
973     "TAB"
974     Horizontal Tab (HT) (Ctrl-I)
975    
976     "LF"
977     Line Feed or New Line (NL) (Ctrl-J)
978    
979     "VT"
980     Vertical Tab (Ctrl-K) same as "LF"
981    
982     "FF"
983     Form Feed or New Page (NP) (Ctrl-L) same as "LF"
984    
985     "CR"
986     Carriage Return (Ctrl-M)
987    
988     "SO"
989     Shift Out (Ctrl-N), invokes the G1 character set. Switch to
990     Alternate Character Set
991    
992     "SI"
993     Shift In (Ctrl-O), invokes the G0 character set (the default).
994     Switch to Standard Character Set
995    
996     "SPC"
997     Space Character
998    
999 root 1.66 Escape Sequences
1000 root 1.1 "ESC # 8"
1001     DEC Screen Alignment Test (DECALN)
1002    
1003     "ESC 7"
1004     Save Cursor (SC)
1005    
1006     "ESC 8"
1007     Restore Cursor
1008    
1009     "ESC ="
1010     Application Keypad (SMKX). See also next sequence.
1011    
1012     "ESC"
1013     Normal Keypad (RMKX)
1014    
1015     Note: If the numeric keypad is activated, eg, Num_Lock has been
1016     pressed, numbers or control functions are generated by the numeric
1017     keypad (see Key Codes).
1018    
1019     "ESC D"
1020     Index (IND)
1021    
1022     "ESC E"
1023     Next Line (NEL)
1024    
1025     "ESC H"
1026     Tab Set (HTS)
1027    
1028     "ESC M"
1029     Reverse Index (RI)
1030    
1031     "ESC N"
1032     Single Shift Select of G2 Character Set (SS2): affects next
1033     character only *unimplemented*
1034    
1035     "ESC O"
1036     Single Shift Select of G3 Character Set (SS3): affects next
1037     character only *unimplemented*
1038    
1039     "ESC Z"
1040 root 1.11 Obsolete form of returns: "ESC [ ? 1 ; 2 C" *rxvt-unicode
1041     compile-time option*
1042 root 1.1
1043     "ESC c"
1044     Full reset (RIS)
1045    
1046     "ESC n"
1047     Invoke the G2 Character Set (LS2)
1048    
1049     "ESC o"
1050     Invoke the G3 Character Set (LS3)
1051    
1052 root 1.11 "ESC ( C"
1053 root 1.1 Designate G0 Character Set (ISO 2022), see below for values of "C".
1054    
1055 root 1.11 "ESC ) C"
1056 root 1.1 Designate G1 Character Set (ISO 2022), see below for values of "C".
1057    
1058     "ESC * C"
1059     Designate G2 Character Set (ISO 2022), see below for values of "C".
1060    
1061     "ESC + C"
1062     Designate G3 Character Set (ISO 2022), see below for values of "C".
1063    
1064     "ESC $ C"
1065     Designate Kanji Character Set
1066    
1067     Where "C" is one of:
1068    
1069     C = 0 DEC Special Character and Line Drawing Set
1070     C = A United Kingdom (UK)
1071     C = B United States (USASCII)
1072     C = < Multinational character set unimplemented
1073     C = 5 Finnish character set unimplemented
1074     C = C Finnish character set unimplemented
1075     C = K German character set unimplemented
1076    
1077    
1078    
1079 root 1.66 CSI (Command Sequence Introducer) Sequences
1080 root 1.1 "ESC [ Ps @"
1081     Insert "Ps" (Blank) Character(s) [default: 1] (ICH)
1082    
1083     "ESC [ Ps A"
1084     Cursor Up "Ps" Times [default: 1] (CUU)
1085    
1086     "ESC [ Ps B"
1087     Cursor Down "Ps" Times [default: 1] (CUD)
1088    
1089     "ESC [ Ps C"
1090     Cursor Forward "Ps" Times [default: 1] (CUF)
1091    
1092     "ESC [ Ps D"
1093     Cursor Backward "Ps" Times [default: 1] (CUB)
1094    
1095     "ESC [ Ps E"
1096     Cursor Down "Ps" Times [default: 1] and to first column
1097    
1098     "ESC [ Ps F"
1099     Cursor Up "Ps" Times [default: 1] and to first column
1100    
1101     "ESC [ Ps G"
1102     Cursor to Column "Ps" (HPA)
1103    
1104     "ESC [ Ps;Ps H"
1105     Cursor Position [row;column] [default: 1;1] (CUP)
1106    
1107     "ESC [ Ps I"
1108     Move forward "Ps" tab stops [default: 1]
1109    
1110     "ESC [ Ps J"
1111     Erase in Display (ED)
1112    
1113     Ps = 0 Clear Below (default)
1114     Ps = 1 Clear Above
1115     Ps = 2 Clear All
1116    
1117     "ESC [ Ps K"
1118     Erase in Line (EL)
1119    
1120     Ps = 0 Clear to Right (default)
1121     Ps = 1 Clear to Left
1122     Ps = 2 Clear All
1123    
1124     "ESC [ Ps L"
1125     Insert "Ps" Line(s) [default: 1] (IL)
1126    
1127     "ESC [ Ps M"
1128     Delete "Ps" Line(s) [default: 1] (DL)
1129    
1130     "ESC [ Ps P"
1131     Delete "Ps" Character(s) [default: 1] (DCH)
1132    
1133     "ESC [ Ps;Ps;Ps;Ps;Ps T"
1134     Initiate . *unimplemented* Parameters are
1135     [func;startx;starty;firstrow;lastrow].
1136    
1137     "ESC [ Ps W"
1138     Tabulator functions
1139    
1140     Ps = 0 Tab Set (HTS)
1141     Ps = 2 Tab Clear (TBC), Clear Current Column (default)
1142     Ps = 5 Tab Clear (TBC), Clear All
1143    
1144     "ESC [ Ps X"
1145     Erase "Ps" Character(s) [default: 1] (ECH)
1146    
1147     "ESC [ Ps Z"
1148     Move backward "Ps" [default: 1] tab stops
1149    
1150     "ESC [ Ps '"
1151     See "ESC [ Ps G"
1152    
1153     "ESC [ Ps a"
1154     See "ESC [ Ps C"
1155    
1156     "ESC [ Ps c"
1157     Send Device Attributes (DA) "Ps = 0" (or omitted): request
1158 root 1.11 attributes from terminal returns: "ESC [ ? 1 ; 2 c" (``I am a VT100
1159     with Advanced Video Option'')
1160 root 1.1
1161     "ESC [ Ps d"
1162     Cursor to Line "Ps" (VPA)
1163    
1164     "ESC [ Ps e"
1165     See "ESC [ Ps A"
1166    
1167     "ESC [ Ps;Ps f"
1168     Horizontal and Vertical Position [row;column] (HVP) [default: 1;1]
1169    
1170     "ESC [ Ps g"
1171     Tab Clear (TBC)
1172    
1173     Ps = 0 Clear Current Column (default)
1174     Ps = 3 Clear All (TBC)
1175    
1176     "ESC [ Pm h"
1177     Set Mode (SM). See "ESC [ Pm l" sequence for description of "Pm".
1178    
1179     "ESC [ Ps i"
1180     Printing. See also the "print-pipe" resource.
1181    
1182     Ps = 0 print screen (MC0)
1183     Ps = 4 disable transparent print mode (MC4)
1184     Ps = 5 enable transparent print mode (MC5)
1185    
1186     "ESC [ Pm l"
1187     Reset Mode (RM)
1188    
1189     "Ps = 4"
1190     h Insert Mode (SMIR)
1191     l Replace Mode (RMIR)
1192    
1193     "Ps = 20" (partially implemented)
1194     h Automatic Newline (LNM)
1195     l Normal Linefeed (LNM)
1196    
1197     "ESC [ Pm m"
1198     Character Attributes (SGR)
1199    
1200     Ps = 0 Normal (default)
1201     Ps = 1 / 21 On / Off Bold (bright fg)
1202     Ps = 3 / 23 On / Off Italic
1203     Ps = 4 / 24 On / Off Underline
1204     Ps = 5 / 25 On / Off Slow Blink (bright bg)
1205     Ps = 6 / 26 On / Off Rapid Blink (bright bg)
1206     Ps = 7 / 27 On / Off Inverse
1207     Ps = 8 / 27 On / Off Invisible (NYI)
1208     Ps = 30 / 40 fg/bg Black
1209     Ps = 31 / 41 fg/bg Red
1210     Ps = 32 / 42 fg/bg Green
1211     Ps = 33 / 43 fg/bg Yellow
1212     Ps = 34 / 44 fg/bg Blue
1213     Ps = 35 / 45 fg/bg Magenta
1214     Ps = 36 / 46 fg/bg Cyan
1215     Ps = 38;5 / 48;5 set fg/bg to color #m (ISO 8613-6)
1216     Ps = 37 / 47 fg/bg White
1217     Ps = 39 / 49 fg/bg Default
1218     Ps = 90 / 100 fg/bg Bright Black
1219     Ps = 91 / 101 fg/bg Bright Red
1220     Ps = 92 / 102 fg/bg Bright Green
1221     Ps = 93 / 103 fg/bg Bright Yellow
1222     Ps = 94 / 104 fg/bg Bright Blue
1223     Ps = 95 / 105 fg/bg Bright Magenta
1224     Ps = 96 / 106 fg/bg Bright Cyan
1225     Ps = 97 / 107 fg/bg Bright White
1226     Ps = 99 / 109 fg/bg Bright Default
1227    
1228     "ESC [ Ps n"
1229     Device Status Report (DSR)
1230    
1231     Ps = 5 Status Report ESC [ 0 n (``OK'')
1232     Ps = 6 Report Cursor Position (CPR) [row;column] as ESC [ r ; c R
1233     Ps = 7 Request Display Name
1234     Ps = 8 Request Version Number (place in window title)
1235    
1236     "ESC [ Ps;Ps r"
1237     Set Scrolling Region [top;bottom] [default: full size of window]
1238     (CSR)
1239    
1240     "ESC [ s"
1241     Save Cursor (SC)
1242    
1243 root 1.4 "ESC [ Ps;Pt t"
1244     Window Operations
1245    
1246     Ps = 1 Deiconify (map) window
1247     Ps = 2 Iconify window
1248     Ps = 3 ESC [ 3 ; X ; Y t Move window to (X|Y)
1249 root 1.11 Ps = 4 ESC [ 4 ; H ; W t Resize to WxH pixels
1250 root 1.4 Ps = 5 Raise window
1251     Ps = 6 Lower window
1252     Ps = 7 Refresh screen once
1253 root 1.11 Ps = 8 ESC [ 8 ; R ; C t Resize to R rows and C columns
1254     Ps = 11 Report window state (responds with Ps = 1 or Ps = 2)
1255 root 1.4 Ps = 13 Report window position (responds with Ps = 3)
1256     Ps = 14 Report window pixel size (responds with Ps = 4)
1257     Ps = 18 Report window text size (responds with Ps = 7)
1258     Ps = 19 Currently the same as Ps = 18, but responds with Ps = 9
1259     Ps = 20 Reports icon label (ESC ] L NAME \234)
1260     Ps = 21 Reports window title (ESC ] l NAME \234)
1261     Ps = 24.. Set window height to Ps rows
1262 root 1.1
1263     "ESC [ u"
1264     Restore Cursor
1265    
1266 root 1.4 "ESC [ Ps x"
1267     Request Terminal Parameters (DECREQTPARM)
1268    
1269 root 1.1
1270    
1271 root 1.66 DEC Private Modes
1272 root 1.1 "ESC [ ? Pm h"
1273     DEC Private Mode Set (DECSET)
1274    
1275     "ESC [ ? Pm l"
1276     DEC Private Mode Reset (DECRST)
1277    
1278     "ESC [ ? Pm r"
1279     Restore previously saved DEC Private Mode Values.
1280    
1281     "ESC [ ? Pm s"
1282     Save DEC Private Mode Values.
1283    
1284     "ESC [ ? Pm t"
1285     Toggle DEC Private Mode Values (rxvt extension). *where*
1286    
1287     "Ps = 1" (DECCKM)
1288     h Application Cursor Keys
1289     l Normal Cursor Keys
1290    
1291     "Ps = 2" (ANSI/VT52 mode)
1292     h Enter VT52 mode
1293     l Enter VT52 mode
1294    
1295     "Ps = 3"
1296     h 132 Column Mode (DECCOLM)
1297     l 80 Column Mode (DECCOLM)
1298    
1299     "Ps = 4"
1300     h Smooth (Slow) Scroll (DECSCLM)
1301     l Jump (Fast) Scroll (DECSCLM)
1302    
1303     "Ps = 5"
1304     h Reverse Video (DECSCNM)
1305     l Normal Video (DECSCNM)
1306    
1307     "Ps = 6"
1308     h Origin Mode (DECOM)
1309     l Normal Cursor Mode (DECOM)
1310    
1311     "Ps = 7"
1312     h Wraparound Mode (DECAWM)
1313     l No Wraparound Mode (DECAWM)
1314    
1315     "Ps = 8" *unimplemented*
1316     h Auto-repeat Keys (DECARM)
1317     l No Auto-repeat Keys (DECARM)
1318    
1319     "Ps = 9" X10 XTerm
1320     h Send Mouse X & Y on button press.
1321     l No mouse reporting.
1322    
1323     "Ps = 25"
1324     h Visible cursor {cnorm/cvvis}
1325     l Invisible cursor {civis}
1326    
1327     "Ps = 30"
1328     h scrollBar visisble
1329     l scrollBar invisisble
1330    
1331     "Ps = 35" (rxvt)
1332     h Allow XTerm Shift+key sequences
1333     l Disallow XTerm Shift+key sequences
1334    
1335     "Ps = 38" *unimplemented*
1336     Enter Tektronix Mode (DECTEK)
1337    
1338     "Ps = 40"
1339     h Allow 80/132 Mode
1340     l Disallow 80/132 Mode
1341    
1342     "Ps = 44" *unimplemented*
1343     h Turn On Margin Bell
1344     l Turn Off Margin Bell
1345    
1346     "Ps = 45" *unimplemented*
1347     h Reverse-wraparound Mode
1348     l No Reverse-wraparound Mode
1349    
1350     "Ps = 46" *unimplemented*
1351     "Ps = 47"
1352     h Use Alternate Screen Buffer
1353     l Use Normal Screen Buffer
1354    
1355    
1356    
1357     "Ps = 66"
1358     h Application Keypad (DECPAM) == ESC =
1359     l Normal Keypad (DECPNM) == ESC >
1360    
1361     "Ps = 67"
1362     h Backspace key sends BS (DECBKM)
1363     l Backspace key sends DEL
1364    
1365     "Ps = 1000" (X11 XTerm)
1366     h Send Mouse X & Y on button press and release.
1367     l No mouse reporting.
1368    
1369     "Ps = 1001" (X11 XTerm) *unimplemented*
1370     h Use Hilite Mouse Tracking.
1371     l No mouse reporting.
1372    
1373     "Ps = 1010" (rxvt)
1374     h Don't scroll to bottom on TTY output
1375     l Scroll to bottom on TTY output
1376    
1377     "Ps = 1011" (rxvt)
1378     h Scroll to bottom when a key is pressed
1379     l Don't scroll to bottom when a key is pressed
1380    
1381 root 1.29 "Ps = 1021" (rxvt)
1382     h Bold/italic implies high intensity (see option -is)
1383     l Font styles have no effect on intensity (Compile styles)
1384    
1385 root 1.1 "Ps = 1047"
1386     h Use Alternate Screen Buffer
1387     l Use Normal Screen Buffer - clear Alternate Screen Buffer if returning from it
1388    
1389     "Ps = 1048"
1390     h Save cursor position
1391     l Restore cursor position
1392    
1393     "Ps = 1049"
1394     h Use Alternate Screen Buffer - clear Alternate Screen Buffer if switching to it
1395     l Use Normal Screen Buffer
1396    
1397    
1398    
1399 root 1.66 XTerm Operating System Commands
1400 root 1.1 "ESC ] Ps;Pt ST"
1401     Set XTerm Parameters. 8-bit ST: 0x9c, 7-bit ST sequence: ESC \
1402     (0x1b, 0x5c), backwards compatible terminator BEL (0x07) is also
1403     accepted. any octet can be escaped by prefixing it with SYN (0x16,
1404     ^V).
1405    
1406     Ps = 0 Change Icon Name and Window Title to Pt
1407     Ps = 1 Change Icon Name to Pt
1408     Ps = 2 Change Window Title to Pt
1409     Ps = 3 If Pt starts with a ?, query the (STRING) property of the window and return it. If Pt contains a =, set the named property to the given value, else delete the specified property.
1410     Ps = 4 Pt is a semi-colon separated sequence of one or more semi-colon separated number/name pairs, where number is an index to a colour and name is the name of a colour. Each pair causes the numbered colour to be changed to name. Numbers 0-7 corresponds to low-intensity (normal) colours and 8-15 corresponds to high-intensity colours. 0=black, 1=red, 2=green, 3=yellow, 4=blue, 5=magenta, 6=cyan, 7=white
1411     Ps = 10 Change colour of text foreground to Pt (NB: may change in future)
1412     Ps = 11 Change colour of text background to Pt (NB: may change in future)
1413     Ps = 12 Change colour of text cursor foreground to Pt
1414     Ps = 13 Change colour of mouse foreground to Pt
1415     Ps = 17 Change colour of highlight characters to Pt
1416 root 1.37 Ps = 18 Change colour of bold characters to Pt [deprecated, see 706]
1417     Ps = 19 Change colour of underlined characters to Pt [deprecated, see 707]
1418 root 1.48 Ps = 20 Change background pixmap parameters (see section XPM) (Compile XPM).
1419 root 1.18 Ps = 39 Change default foreground colour to Pt.
1420 root 1.1 Ps = 46 Change Log File to Pt unimplemented
1421 root 1.18 Ps = 49 Change default background colour to Pt.
1422 root 1.1 Ps = 50 Set fontset to Pt, with the following special values of Pt (rxvt) #+n change up n #-n change down n if n is missing of 0, a value of 1 is used empty change to font0 n change to font n
1423     Ps = 55 Log all scrollback buffer and all of screen to Pt
1424 root 1.18 Ps = 701 Change current locale to Pt, or, if Pt is ?, return the current locale (Compile frills).
1425 root 1.51 Ps = 702 Request version if Pt is ?, returning rxvt-unicode, the resource name, the major and minor version numbers, e.g. ESC ] 702 ; rxvt-unicode ; urxvt ; 7 ; 4 ST.
1426 root 1.1 Ps = 704 Change colour of italic characters to Pt
1427 root 1.18 Ps = 705 Change background pixmap tint colour to Pt (Compile transparency).
1428 root 1.37 Ps = 706 Change colour of bold characters to Pt
1429     Ps = 707 Change colour of underlined characters to Pt
1430 root 1.1 Ps = 710 Set normal fontset to Pt. Same as Ps = 50.
1431 root 1.18 Ps = 711 Set bold fontset to Pt. Similar to Ps = 50 (Compile styles).
1432     Ps = 712 Set italic fontset to Pt. Similar to Ps = 50 (Compile styles).
1433     Ps = 713 Set bold-italic fontset to Pt. Similar to Ps = 50 (Compile styles).
1434     Ps = 720 Move viewing window up by Pt lines, or clear scrollback buffer if Pt = 0 (Compile frills).
1435     Ps = 721 Move viewing window down by Pt lines, or clear scrollback buffer if Pt = 0 (Compile frills).
1436 root 1.31 Ps = 777 Call the perl extension with the given string, which should be of the form extension:parameters (Compile perl).
1437 root 1.1
1438     XPM
1439     For the XPM XTerm escape sequence "ESC ] 20 ; Pt ST" then value of "Pt"
1440     can be the name of the background pixmap followed by a sequence of
1441     scaling/positioning commands separated by semi-colons. The
1442     scaling/positioning commands are as follows:
1443    
1444     query scale/position
1445     ?
1446    
1447     change scale and position
1448     WxH+X+Y
1449    
1450     WxH+X (== WxH+X+X)
1451    
1452     WxH (same as WxH+50+50)
1453    
1454     W+X+Y (same as WxW+X+Y)
1455    
1456     W+X (same as WxW+X+X)
1457    
1458     W (same as WxW+50+50)
1459    
1460     change position (absolute)
1461     =+X+Y
1462    
1463     =+X (same as =+X+Y)
1464    
1465     change position (relative)
1466     +X+Y
1467    
1468     +X (same as +X+Y)
1469    
1470     rescale (relative)
1471     Wx0 -> W *= (W/100)
1472    
1473     0xH -> H *= (H/100)
1474    
1475     For example:
1476    
1477     \E]20;funky\a
1478     load funky.xpm as a tiled image
1479    
1480     \E]20;mona;100\a
1481     load mona.xpm with a scaling of 100%
1482    
1483     \E]20;;200;?\a
1484     rescale the current pixmap to 200% and display the image geometry in
1485     the title
1486    
1487     Mouse Reporting
1488     "ESC [ M <b> <x> <y>"
1489     report mouse position
1490    
1491     The lower 2 bits of "<b>" indicate the button:
1492    
1493     Button = "(<b> - SPACE) & 3"
1494     0 Button1 pressed
1495     1 Button2 pressed
1496     2 Button3 pressed
1497     3 button released (X11 mouse report)
1498    
1499     The upper bits of "<b>" indicate the modifiers when the button was
1500     pressed and are added together (X11 mouse report only):
1501    
1502     State = "(<b> - SPACE) & 60"
1503     4 Shift
1504     8 Meta
1505     16 Control
1506 root 1.62 32 Double Click (rxvt extension)
1507 root 1.1
1508     Col = "<x> - SPACE"
1509    
1510     Row = "<y> - SPACE"
1511    
1512     Key Codes
1513     Note: Shift + F1-F10 generates F11-F20
1514    
1515     For the keypad, use Shift to temporarily override Application-Keypad
1516     setting use Num_Lock to toggle Application-Keypad setting if Num_Lock is
1517     off, toggle Application-Keypad setting. Also note that values of Home,
1518     End, Delete may have been compiled differently on your system.
1519    
1520     Normal Shift Control Ctrl+Shift
1521     Tab ^I ESC [ Z ^I ESC [ Z
1522     BackSpace ^H ^? ^? ^?
1523     Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
1524     Insert ESC [ 2 ~ paste ESC [ 2 ^ ESC [ 2 @
1525     Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1526     Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
1527     Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @
1528     Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @
1529     Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
1530     End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
1531     Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1532     F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
1533     F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
1534     F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
1535     F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
1536     F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
1537     F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
1538     F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
1539     F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
1540     F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
1541     F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
1542     F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
1543     F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
1544     F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
1545     F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
1546     F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
1547     F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
1548     F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
1549     F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
1550     F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
1551     F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
1552     Application
1553     Up ESC [ A ESC [ a ESC O a ESC O A
1554     Down ESC [ B ESC [ b ESC O b ESC O B
1555     Right ESC [ C ESC [ c ESC O c ESC O C
1556     Left ESC [ D ESC [ d ESC O d ESC O D
1557     KP_Enter ^M ESC O M
1558     KP_F1 ESC O P ESC O P
1559     KP_F2 ESC O Q ESC O Q
1560     KP_F3 ESC O R ESC O R
1561     KP_F4 ESC O S ESC O S
1562     XK_KP_Multiply * ESC O j
1563     XK_KP_Add + ESC O k
1564     XK_KP_Separator , ESC O l
1565     XK_KP_Subtract - ESC O m
1566     XK_KP_Decimal . ESC O n
1567     XK_KP_Divide / ESC O o
1568     XK_KP_0 0 ESC O p
1569     XK_KP_1 1 ESC O q
1570     XK_KP_2 2 ESC O r
1571     XK_KP_3 3 ESC O s
1572     XK_KP_4 4 ESC O t
1573     XK_KP_5 5 ESC O u
1574     XK_KP_6 6 ESC O v
1575     XK_KP_7 7 ESC O w
1576     XK_KP_8 8 ESC O x
1577     XK_KP_9 9 ESC O y
1578    
1579     CONFIGURE OPTIONS
1580     General hint: if you get compile errors, then likely your configuration
1581 root 1.24 hasn't been tested well. Either try with "--enable-everything" or use
1582     the ./reconf script as a base for experiments. ./reconf is used by
1583     myself, so it should generally be a working config. Of course, you
1584     should always report when a combination doesn't work, so it can be
1585     fixed. Marc Lehmann <rxvt@schmorp.de>.
1586    
1587     All
1588 root 1.1
1589     --enable-everything
1590 root 1.24 Add (or remove) support for all non-multichoice options listed in
1591     "./configure --help".
1592    
1593     You can specify this and then disable options you do not like by
1594     *following* this with the appropriate "--disable-..." arguments, or
1595     you can start with a minimal configuration by specifying
1596     "--disable-everything" and than adding just the "--enable-..."
1597     arguments you want.
1598 root 1.1
1599 root 1.24 --enable-xft (default: enabled)
1600 root 1.1 Add support for Xft (anti-aliases, among others) fonts. Xft fonts
1601     are slower and require lots of memory, but as long as you don't use
1602     them, you don't pay for them.
1603    
1604 root 1.24 --enable-font-styles (default: on)
1605 root 1.1 Add support for bold, *italic* and *bold italic* font styles. The
1606     fonts can be set manually or automatically.
1607    
1608 root 1.24 --with-codesets=NAME,... (default: all)
1609 root 1.19 Compile in support for additional codeset (encoding) groups ("eu",
1610     "vn" are always compiled in, which includes most 8-bit character
1611     sets). These codeset tables are used for driving X11 core fonts,
1612     they are not required for Xft fonts, although having them compiled
1613     in lets rxvt-unicode choose replacement fonts more intelligently.
1614     Compiling them in will make your binary bigger (all of together cost
1615     about 700kB), but it doesn't increase memory usage unless you use a
1616     font requiring one of these encodings.
1617 root 1.1
1618     all all available codeset groups
1619     zh common chinese encodings
1620     zh_ext rarely used but very big chinese encodigs
1621     jp common japanese encodings
1622     jp_ext rarely used but big japanese encodings
1623     kr korean encodings
1624    
1625 root 1.24 --enable-xim (default: on)
1626 root 1.1 Add support for XIM (X Input Method) protocol. This allows using
1627     alternative input methods (e.g. kinput2) and will also correctly set
1628     up the input for people using dead keys or compose keys.
1629    
1630 root 1.24 --enable-unicode3 (default: off)
1631 root 1.49 Recommended to stay off unless you really need non-BMP characters.
1632    
1633 root 1.1 Enable direct support for displaying unicode codepoints above 65535
1634     (the basic multilingual page). This increases storage requirements
1635     per character from 2 to 4 bytes. X11 fonts do not yet support these
1636     extra characters, but Xft does.
1637    
1638     Please note that rxvt-unicode can store unicode code points >65535
1639     even without this flag, but the number of such characters is limited
1640     to a view thousand (shared with combining characters, see next
1641     switch), and right now rxvt-unicode cannot display them
1642     (input/output and cut&paste still work, though).
1643    
1644 root 1.24 --enable-combining (default: on)
1645 root 1.1 Enable automatic composition of combining characters into composite
1646     characters. This is required for proper viewing of text where
1647     accents are encoded as seperate unicode characters. This is done by
1648     using precomposited characters when available or creating new
1649     pseudo-characters when no precomposed form exists.
1650    
1651     Without --enable-unicode3, the number of additional precomposed
1652 root 1.49 characters is somewhat limited (the 6400 private use characters will
1653     be (ab-)used). With --enable-unicode3, no practical limit exists.
1654 root 1.13
1655     This option will also enable storage (but not display) of characters
1656     beyond plane 0 (>65535) when --enable-unicode3 was not specified.
1657 root 1.1
1658     The combining table also contains entries for arabic presentation
1659     forms, but these are not currently used. Bug me if you want these to
1660 root 1.13 be used (and tell me how these are to be used...).
1661 root 1.1
1662 root 1.24 --enable-fallback(=CLASS) (default: Rxvt)
1663     When reading resource settings, also read settings for class CLASS.
1664     To disable resource fallback use --disable-fallback.
1665    
1666     --with-res-name=NAME (default: urxvt)
1667     Use the given name as default application name when reading
1668     resources. Specify --with-res-name=rxvt to replace rxvt.
1669    
1670     --with-res-class=CLASS /default: URxvt)
1671     Use the given class as default application class when reading
1672     resources. Specify --with-res-class=Rxvt to replace rxvt.
1673 root 1.1
1674 root 1.24 --enable-utmp (default: on)
1675 root 1.1 Write user and tty to utmp file (used by programs like w) at start
1676     of rxvt execution and delete information when rxvt exits.
1677    
1678 root 1.24 --enable-wtmp (default: on)
1679 root 1.1 Write user and tty to wtmp file (used by programs like last) at
1680     start of rxvt execution and write logout when rxvt exits. This
1681     option requires --enable-utmp to also be specified.
1682    
1683 root 1.24 --enable-lastlog (default: on)
1684 root 1.1 Write user and tty to lastlog file (used by programs like lastlogin)
1685     at start of rxvt execution. This option requires --enable-utmp to
1686     also be specified.
1687    
1688 root 1.34 --enable-xpm-background (default: on)
1689 root 1.1 Add support for XPM background pixmaps.
1690    
1691 root 1.34 --enable-transparency (default: on)
1692 root 1.1 Add support for inheriting parent backgrounds thus giving a fake
1693     transparency to the term.
1694    
1695 root 1.24 --enable-fading (default: on)
1696     Add support for fading the text when focus is lost (requires
1697     "--enable-transparency").
1698    
1699     --enable-tinting (default: on)
1700     Add support for tinting of transparent backgrounds (requires
1701     "--enable-transparency").
1702 root 1.1
1703 root 1.24 --enable-rxvt-scroll (default: on)
1704 root 1.1 Add support for the original rxvt scrollbar.
1705    
1706 root 1.24 --enable-next-scroll (default: on)
1707 root 1.1 Add support for a NeXT-like scrollbar.
1708    
1709 root 1.24 --enable-xterm-scroll (default: on)
1710 root 1.1 Add support for an Xterm-like scrollbar.
1711    
1712 root 1.24 --enable-plain-scroll (default: on)
1713 root 1.1 Add support for a very unobtrusive, plain-looking scrollbar that is
1714     the favourite of the rxvt-unicode author, having used it for many
1715     years.
1716    
1717 root 1.24 --enable-ttygid (default: off)
1718 root 1.1 Change tty device setting to group "tty" - only use this if your
1719     system uses this type of security.
1720    
1721     --disable-backspace-key
1722 root 1.24 Removes any handling of the backspace key by us - let the X server
1723 root 1.1 do it.
1724    
1725     --disable-delete-key
1726 root 1.24 Removes any handling of the delete key by us - let the X server do
1727 root 1.1 it.
1728    
1729     --disable-resources
1730 root 1.24 Removes any support for resource checking.
1731 root 1.1
1732     --disable-swapscreen
1733 root 1.24 Remove support for secondary/swap screen.
1734 root 1.1
1735 root 1.24 --enable-frills (default: on)
1736 root 1.1 Add support for many small features that are not essential but nice
1737     to have. Normally you want this, but for very small binaries you may
1738     want to disable this.
1739    
1740 root 1.2 A non-exhaustive list of features enabled by "--enable-frills"
1741     (possibly in combination with other switches) is:
1742    
1743     MWM-hints
1744 root 1.17 EWMH-hints (pid, utf8 names) and protocols (ping)
1745 root 1.32 seperate underline colour (-underlineColor)
1746     settable border widths and borderless switch (-w, -b, -bl)
1747 root 1.52 visual depth selection (-depth)
1748 root 1.32 settable extra linespacing /-lsp)
1749 root 1.2 iso-14755-2 and -3, and visual feedback
1750 root 1.32 tripleclickwords (-tcw)
1751     settable insecure mode (-insecure)
1752 root 1.11 keysym remapping support
1753 root 1.32 cursor blinking and underline cursor (-cb, -uc)
1754     XEmbed support (-embed)
1755     user-pty (-pty-fd)
1756     hold on exit (-hold)
1757     skip builtin block graphics (-sbg)
1758 root 1.52
1759     It also enabled some non-essential features otherwise disabled, such
1760     as:
1761    
1762     some round-trip time optimisations
1763     nearest color allocation on pseudocolor screens
1764     UTF8_STRING supporr for selection
1765 root 1.32 sgr modes 90..97 and 100..107
1766 root 1.52 backindex and forwardindex escape sequences
1767     view change/zero scorllback esacpe sequences
1768     locale switching escape sequence
1769     window op and some xterm/OSC escape sequences
1770     rectangular selections
1771     trailing space removal for selections
1772     verbose X error handling
1773 root 1.2
1774 root 1.24 --enable-iso14755 (default: on)
1775 root 1.44 Enable extended ISO 14755 support (see rxvt(1), or doc/rxvt.1.txt).
1776 root 1.1 Basic support (section 5.1) is enabled by "--enable-frills", while
1777     support for 5.2, 5.3 and 5.4 is enabled with this switch.
1778    
1779 root 1.24 --enable-keepscrolling (default: on)
1780 root 1.1 Add support for continual scrolling of the display when you hold the
1781     mouse button down on a scrollbar arrow.
1782    
1783 root 1.24 --enable-mousewheel (default: on)
1784 root 1.1 Add support for scrolling via mouse wheel or buttons 4 & 5.
1785    
1786 root 1.24 --enable-slipwheeling (default: on)
1787 root 1.1 Add support for continual scrolling (using the mouse wheel as an
1788     accelerator) while the control key is held down. This option
1789     requires --enable-mousewheel to also be specified.
1790    
1791     --disable-new-selection
1792     Remove support for mouse selection style like that of xterm.
1793    
1794 root 1.24 --enable-dmalloc (default: off)
1795 root 1.1 Use Gray Watson's malloc - which is good for debugging See
1796     http://www.letters.com/dmalloc/ for details If you use either this
1797     or the next option, you may need to edit src/Makefile after
1798     compiling to point DINCLUDE and DLIB to the right places.
1799    
1800     You can only use either this option and the following (should you
1801     use either) .
1802    
1803 root 1.24 --enable-dlmalloc (default: off)
1804 root 1.1 Use Doug Lea's malloc - which is good for a production version See
1805     <http://g.oswego.edu/dl/html/malloc.html> for details.
1806    
1807 root 1.24 --enable-smart-resize (default: on)
1808 root 1.25 Add smart growth/shrink behaviour when changing font size via hot
1809 root 1.26 keys. This should keep the window corner which is closest to a
1810     corner of the screen in a fixed position.
1811 root 1.1
1812 root 1.24 --enable-pointer-blank (default: on)
1813 root 1.1 Add support to have the pointer disappear when typing or inactive.
1814    
1815 root 1.49 --enable-perl (default: on)
1816 root 1.44 Enable an embedded perl interpreter. See the rxvtperl(3) manpage
1817 root 1.30 (doc/rxvtperl.txt) for more info on this feature, or the files in
1818 root 1.33 src/perl-ext/ for the extensions that are installed by default. The
1819     perl interpreter that is used can be specified via the "PERL"
1820     environment variable when running configure.
1821 root 1.30
1822 root 1.24 --with-name=NAME (default: urxvt)
1823     Set the basename for the installed binaries, resulting in "urxvt",
1824     "urxvtd" etc.). Specify "--with-name=rxvt" to replace with "rxvt".
1825    
1826     --with-term=NAME (default: rxvt-unicode)
1827     Change the environmental variable for the terminal to NAME.
1828 root 1.1
1829     --with-terminfo=PATH
1830     Change the environmental variable for the path to the terminfo tree
1831     to PATH.
1832    
1833     --with-x
1834     Use the X Window System (pretty much default, eh?).
1835    
1836     --with-xpm-includes=DIR
1837     Look for the XPM includes in DIR.
1838    
1839     --with-xpm-library=DIR
1840     Look for the XPM library in DIR.
1841    
1842     --with-xpm
1843     Not needed - define via --enable-xpm-background.
1844    
1845     AUTHORS
1846     Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
1847     reworked it from the original Rxvt documentation, which was done by
1848     Geoff Wing <gcw@pobox.com>, who in turn used the XTerm documentation and
1849     other sources.
1850