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