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

Comparing rxvt-unicode/doc/rxvt.7.txt (file contents):
Revision 1.58 by root, Tue Jan 31 01:02:19 2006 UTC vs.
Revision 1.59 by root, Tue Jan 31 20:50:48 2006 UTC

18 The newest version of this document is also available on the World Wide 18 The newest version of this document is also available on the World Wide
19 Web at 19 Web at
20 <http://cvs.schmorp.de/browse/*checkout*/rxvt-unicode/doc/rxvt.7.html>. 20 <http://cvs.schmorp.de/browse/*checkout*/rxvt-unicode/doc/rxvt.7.html>.
21 21
22FREQUENTLY ASKED QUESTIONS 22FREQUENTLY ASKED QUESTIONS
23 The new selection selects pieces that are too big, how can I select single words? 23 Meta, Features & Commandline Issues
24 If you want to select e.g. alphanumeric words, you can use the following 24 My question isn't answered here, can I ask a human?
25 setting: 25 Before sending me mail, you could go to IRC: "irc.freenode.net", channel
26 "#rxvt-unicode" has some rxvt-unicode enthusiasts that might be
27 interested in learning about new and exciting problems (but not FAQs :).
26 28
27 URxvt.selection.pattern-0: ([[:word:]]+) 29 Does it support tabs, can I have a tabbed rxvt-unicode?
30 Beginning with version 7.3, there is a perl extension that implements a
31 simple tabbed terminal. It is installed by default, so any of these
32 should give you tabs:
28 33
29 If you click more than twice, the selection will be extended more and 34 rxvt -pe tabbed
30 more.
31 35
32 To get a selection that is very similar to the old code, try this
33 pattern:
34
35 URxvt.selection.pattern-0: ([^"&'()*,;<=>?@[\\\\]^`{|})]+)
36
37 Please also note that the *LeftClick Shift-LeftClik* combination also
38 selects words like the old code.
39
40 I don't like the new selection/popups/hotkeys/perl, how do I change/disable it?
41 You can disable the perl extension completely by setting the
42 perl-ext-common resource to the empty string, which also keeps
43 rxvt-unicode from initialising perl, saving memory.
44
45 If you only want to disable specific features, you first have to
46 identify which perl extension is responsible. For this, read the section
47 PREPACKAGED EXTENSIONS in the rxvtperl(3) manpage. For example, to
48 disable the selection-popup and option-popup, specify this
49 perl-ext-common resource:
50
51 URxvt.perl-ext-common: default,-selection-popup,-option-popup
52
53 This will keep the default extensions, but disable the two popup
54 extensions. Some extensions can also be configured, for example,
55 scrollback search mode is triggered by M-s. You can move it to any other
56 combination either by setting the searchable-scrollback resource:
57
58 URxvt.searchable-scrollback: CM-s
59
60 The cursor moves when selecting text in the current input line, how do I switch this off?
61 See next entry.
62
63 During rlogin/ssh/telnet/etc. sessions, clicking near the cursor outputs strange escape sequences, how do I fix this?
64 These are caused by the "readline" perl extension. Under normal
65 circumstances, it will move your cursor around when you click into the
66 line that contains it. It tries hard not to do this at the wrong moment,
67 but when running a program that doesn't parse cursor movements or in
68 some cases during rlogin sessions, it fails to detect this properly.
69
70 You can permamently switch this feature off by disabling the "readline"
71 extension:
72
73 URxvt.perl-ext-common: default,-readline 36 URxvt.perl-ext-common: default,tabbed
74 37
75 Why doesn't rxvt-unicode read my resources? 38 It will also work fine with tabbing functionality of many window
76 Well, why, indeed? It does, in a way very similar to other X 39 managers or similar tabbing programs, and its embedding-features allow
77 applications. Most importantly, this means that if you or your OS loads 40 it to be embedded into other programs, as witnessed by doc/rxvt-tabbed
78 resources into the X display (the right way to do it), rxvt-unicode will 41 or the upcoming "Gtk2::URxvt" perl module, which features a tabbed urxvt
79 ignore any resource files in your home directory. It will only read 42 (murxvt) terminal as an example embedding application.
80 $HOME/.Xdefaults when no resources are attached to the display.
81 43
82 If you have or use an $HOME/.Xresources file, chances are that resources 44 How do I know which rxvt-unicode version I'm using?
83 are loaded into your X-server. In this case, you have to re-login after 45 The version number is displayed with the usage (-h). Also the escape
84 every change (or run xrdb -merge $HOME/.Xresources). 46 sequence "ESC [ 8 n" sets the window title to the version number. When
47 using the rxvtc client, the version displayed is that of the daemon.
85 48
86 Also consider the form resources have to use: 49 Rxvt-unicode uses gobs of memory, how can I reduce that?
50 Rxvt-unicode tries to obey the rule of not charging you for something
51 you don't use. One thing you should try is to configure out all settings
52 that you don't need, for example, Xft support is a resource hog by
53 design, when used. Compiling it out ensures that no Xft font will be
54 loaded accidentally when rxvt-unicode tries to find a font for your
55 characters.
87 56
88 URxvt.resource: value 57 Also, many people (me included) like large windows and even larger
58 scrollback buffers: Without "--enable-unicode3", rxvt-unicode will use 6
59 bytes per screen cell. For a 160x?? window this amounts to almost a
60 kilobyte per line. A scrollback buffer of 10000 lines will then (if
61 full) use 10 Megabytes of memory. With "--enable-unicode3" it gets
62 worse, as rxvt-unicode then uses 8 bytes per screen cell.
89 63
90 If you want to use another form (there are lots of different ways of 64 How can I start rxvtd in a race-free way?
91 specifying resources), make sure you understand wether and why it works. 65 Try "rxvtd -f -o", which tells rxvtd to open the display, create the
92 If unsure, use the form above. 66 listening socket and then fork.
93 67
94 I can't get transparency working, what am I doing wrong? 68 How do I distinguish wether I'm running rxvt-unicode or a regular xterm? I need this to decide about setting colors etc.
95 First of all, transparency isn't officially supported in rxvt-unicode, 69 rxvt and rxvt-unicode always export the variable "COLORTERM", so you can
96 so you are mostly on your own. Do not bug the author about it (but you 70 check and see if that is set. Note that several programs, JED, slrn,
97 may bug everybody else). Also, if you can't get it working consider it a 71 Midnight Commander automatically check this variable to decide whether
98 rite of passage: ... and you failed. 72 or not to use color.
99 73
100 Here are four ways to get transparency. Do read the manpage and option 74 How do I set the correct, full IP address for the DISPLAY variable?
101 descriptions for the programs mentioned and rxvt-unicode. Really, do it! 75 If you've compiled rxvt-unicode with DISPLAY_IS_IP and have enabled
76 insecure mode then it is possible to use the following shell script
77 snippets to correctly set the display. If your version of rxvt-unicode
78 wasn't also compiled with ESCZ_ANSWER (as assumed in these snippets)
79 then the COLORTERM variable can be used to distinguish rxvt-unicode from
80 a regular xterm.
102 81
103 1. Use inheritPixmap: 82 Courtesy of Chuck Blake <cblake@BBN.COM> with the following shell script
83 snippets:
104 84
105 Esetroot wallpaper.jpg 85 # Bourne/Korn/POSIX family of shells:
106 rxvt -ip -tint red -sh 40 86 [ ${TERM:-foo} = foo ] && TERM=xterm # assume an xterm if we don't know
87 if [ ${TERM:-foo} = xterm ]; then
88 stty -icanon -echo min 0 time 15 # see if enhanced rxvt or not
89 echo -n '^[Z'
90 read term_id
91 stty icanon echo
92 if [ ""${term_id} = '^[[?1;2C' -a ${DISPLAY:-foo} = foo ]; then
93 echo -n '^[[7n' # query the rxvt we are in for the DISPLAY string
94 read DISPLAY # set it in our local shell
95 fi
96 fi
107 97
108 That works. If you think it doesn't, you lack transparency and tinting 98 How do I compile the manual pages on my own?
109 support, or you are unable to read. 99 You need to have a recent version of perl installed as /usr/bin/perl,
100 one that comes with pod2man, pod2text and pod2html. Then go to the doc
101 subdirectory and enter "make alldoc".
110 102
111 2. Use a simple pixmap and emulate pseudo-transparency. This enables you
112 to use effects other than tinting and shading: Just shade/tint/whatever
113 your picture with gimp:
114
115 convert wallpaper.jpg -blur 20x20 -modulate 30 background.xpm
116 rxvt -pixmap background.xpm -pe automove-background
117
118 That works. If you think it doesn't, you lack XPM and Perl support, or
119 you are unable to read.
120
121 3. Use an ARGB visual:
122
123 rxvt -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc
124
125 This requires XFT support, and the support of your X-server. If that
126 doesn't work for you, blame Xorg and Keith Packard. ARGB visuals aren't
127 there yet, no matter what they claim. Rxvt-Unicode contains the
128 neccessary bugfixes and workarounds for Xft and Xlib to make it work,
129 but that doesn't mean that your WM has the required kludges in place.
130
131 4. Use xcompmgr and let it do the job:
132
133 xprop -frame -f _NET_WM_WINDOW_OPACITY 32c \
134 -set _NET_WM_WINDOW_OPACITY 0xc0000000
135
136 Then click on a window you want to make transparent. Replace 0xc0000000
137 by other values to change the degree of opacity. If it doesn't work and
138 your server crashes, you got to keep the pieces.
139
140 Isn't rxvt supposed to be small? Don't all those features bloat? 103 Isn't rxvt-unicode supposed to be small? Don't all those features bloat?
141 I often get asked about this, and I think, no, they didn't cause extra 104 I often get asked about this, and I think, no, they didn't cause extra
142 bloat. If you compare a minimal rxvt and a minimal urxvt, you can see 105 bloat. If you compare a minimal rxvt and a minimal urxvt, you can see
143 that the urxvt binary is larger (due to some encoding tables always 106 that the urxvt binary is larger (due to some encoding tables always
144 being compiled in), but it actually uses less memory (RSS) after 107 being compiled in), but it actually uses less memory (RSS) after
145 startup. Even with "--disable-everything", this comparison is a bit 108 startup. Even with "--disable-everything", this comparison is a bit
176 gnome-terminal (21152k + extra 4204k in separate processes) or konsole 139 gnome-terminal (21152k + extra 4204k in separate processes) or konsole
177 (22200k + extra 43180k in daemons that stay around after exit, plus half 140 (22200k + extra 43180k in daemons that stay around after exit, plus half
178 a minute of startup time, including the hundreds of warnings it spits 141 a minute of startup time, including the hundreds of warnings it spits
179 out), it fares extremely well *g*. 142 out), it fares extremely well *g*.
180 143
181 Why C++, isn't that unportable/bloated/uncool? 144 Why C++, isn't that unportable/bloated/uncool?
182 Is this a question? :) It comes up very often. The simple answer is: I 145 Is this a question? :) It comes up very often. The simple answer is: I
183 had to write it, and C++ allowed me to write and maintain it in a 146 had to write it, and C++ allowed me to write and maintain it in a
184 fraction of the time and effort (which is a scarce resource for me). Put 147 fraction of the time and effort (which is a scarce resource for me). Put
185 even shorter: It simply wouldn't exist without C++. 148 even shorter: It simply wouldn't exist without C++.
186 149
209 /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000) 172 /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)
210 173
211 No large bloated libraries (of course, none were linked in statically), 174 No large bloated libraries (of course, none were linked in statically),
212 except maybe libX11 :) 175 except maybe libX11 :)
213 176
214 Does it support tabs, can I have a tabbed rxvt-unicode? 177 Rendering, Font & Look and Feel Issues
215 Beginning with version 7.3, there is a perl extension that implements a 178 I can't get transparency working, what am I doing wrong?
216 simple tabbed terminal. It is installed by default, so any of these 179 First of all, transparency isn't officially supported in rxvt-unicode,
217 should give you tabs: 180 so you are mostly on your own. Do not bug the author about it (but you
181 may bug everybody else). Also, if you can't get it working consider it a
182 rite of passage: ... and you failed.
218 183
219 rxvt -pe tabbed 184 Here are four ways to get transparency. Do read the manpage and option
185 descriptions for the programs mentioned and rxvt-unicode. Really, do it!
220 186
187 1. Use inheritPixmap:
188
189 Esetroot wallpaper.jpg
190 rxvt -ip -tint red -sh 40
191
192 That works. If you think it doesn't, you lack transparency and tinting
193 support, or you are unable to read.
194
195 2. Use a simple pixmap and emulate pseudo-transparency. This enables you
196 to use effects other than tinting and shading: Just shade/tint/whatever
197 your picture with gimp or any other tool:
198
199 convert wallpaper.jpg -blur 20x20 -modulate 30 background.xpm
200 rxvt -pixmap background.xpm -pe automove-background
201
202 That works. If you think it doesn't, you lack XPM and Perl support, or
203 you are unable to read.
204
205 3. Use an ARGB visual:
206
207 rxvt -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc
208
209 This requires XFT support, and the support of your X-server. If that
210 doesn't work for you, blame Xorg and Keith Packard. ARGB visuals aren't
211 there yet, no matter what they claim. Rxvt-Unicode contains the
212 neccessary bugfixes and workarounds for Xft and Xlib to make it work,
213 but that doesn't mean that your WM has the required kludges in place.
214
215 4. Use xcompmgr and let it do the job:
216
217 xprop -frame -f _NET_WM_WINDOW_OPACITY 32c \
218 -set _NET_WM_WINDOW_OPACITY 0xc0000000
219
220 Then click on a window you want to make transparent. Replace 0xc0000000
221 by other values to change the degree of opacity. If it doesn't work and
222 your server crashes, you got to keep the pieces.
223
224 Why do some chinese characters look so different than others?
225 This is because there is a difference between script and language --
226 rxvt-unicode does not know which language the text that is output is, as
227 it only knows the unicode character codes. If rxvt-unicode first sees a
228 japanese/chinese character, it might choose a japanese font for display.
229 Subsequent japanese characters will use that font. Now, many chinese
230 characters aren't represented in japanese fonts, so when the first
231 non-japanese character comes up, rxvt-unicode will look for a chinese
232 font -- unfortunately at this point, it will still use the japanese font
233 for chinese characters that are also in the japanese font.
234
235 The workaround is easy: just tag a chinese font at the end of your font
236 list (see the previous question). The key is to view the font list as a
237 preference list: If you expect more japanese, list a japanese font
238 first. If you expect more chinese, put a chinese font first.
239
240 In the future it might be possible to switch language preferences at
241 runtime (the internal data structure has no problem with using different
242 fonts for the same character at the same time, but no interface for this
243 has been designed yet).
244
245 Until then, you might get away with switching fonts at runtime (see "Can
246 I switch the fonts at runtime?" later in this document).
247
248 Why does rxvt-unicode sometimes leave pixel droppings?
249 Most fonts were not designed for terminal use, which means that
250 character size varies a lot. A font that is otherwise fine for terminal
251 use might contain some characters that are simply too wide. Rxvt-unicode
252 will avoid these characters. For characters that are just "a bit" too
253 wide a special "careful" rendering mode is used that redraws adjacent
254 characters.
255
256 All of this requires that fonts do not lie about character sizes,
257 however: Xft fonts often draw glyphs larger than their acclaimed
258 bounding box, and rxvt-unicode has no way of detecting this (the correct
259 way is to ask for the character bounding box, which unfortunately is
260 wrong in these cases).
261
262 It's not clear (to me at least), wether this is a bug in Xft, freetype,
263 or the respective font. If you encounter this problem you might try
264 using the "-lsp" option to give the font more height. If that doesn't
265 work, you might be forced to use a different font.
266
267 All of this is not a problem when using X11 core fonts, as their
268 bounding box data is correct.
269
270 How can I keep rxvt-unicode from using reverse video so much?
271 First of all, make sure you are running with the right terminal settings
272 ("TERM=rxvt-unicode"), which will get rid of most of these effects. Then
273 make sure you have specified colours for italic and bold, as otherwise
274 rxvt-unicode might use reverse video to simulate the effect:
275
276 URxvt.colorBD: white
277 URxvt.colorIT: green
278
279 Some programs assume totally weird colours (red instead of blue), how can I fix that?
280 For some unexplainable reason, some rare programs assume a very weird
281 colour palette when confronted with a terminal with more than the
282 standard 8 colours (rxvt-unicode supports 88). The right fix is, of
283 course, to fix these programs not to assume non-ISO colours without very
284 good reasons.
285
286 In the meantime, you can either edit your "rxvt-unicode" terminfo
287 definition to only claim 8 colour support or use "TERM=rxvt", which will
288 fix colours but keep you from using other rxvt-unicode features.
289
290 Can I switch the fonts at runtime?
291 Yes, using an escape sequence. Try something like this, which has the
292 same effect as using the "-fn" switch, and takes effect immediately:
293
294 printf '\e]50;%s\007' "9x15bold,xft:Kochi Gothic"
295
296 This is useful if you e.g. work primarily with japanese (and prefer a
297 japanese font), but you have to switch to chinese temporarily, where
298 japanese fonts would only be in your way.
299
300 You can think of this as a kind of manual ISO-2022 switching.
301
302 Why do italic characters look as if clipped?
303 Many fonts have difficulties with italic characters and hinting. For
304 example, the otherwise very nicely hinted font "xft:Bitstream Vera Sans
305 Mono" completely fails in it's italic face. A workaround might be to
306 enable freetype autohinting, i.e. like this:
307
308 URxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true
309 URxvt.boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true
310
311 Can I speed up Xft rendering somehow?
312 Yes, the most obvious way to speed it up is to avoid Xft entirely, as it
313 is simply slow. If you still want Xft fonts you might try to disable
314 antialiasing (by appending ":antialias=false"), which saves lots of
315 memory and also speeds up rendering considerably.
316
317 Rxvt-unicode doesn't seem to anti-alias its fonts, what is wrong?
318 Rxvt-unicode will use whatever you specify as a font. If it needs to
319 fall back to it's default font search list it will prefer X11 core
320 fonts, because they are small and fast, and then use Xft fonts. It has
321 antialiasing disabled for most of them, because the author thinks they
322 look best that way.
323
324 If you want antialiasing, you have to specify the fonts manually.
325
326 What's with this bold/blink stuff?
327 If no bold colour is set via "colorBD:", bold will invert text using the
328 standard foreground colour.
329
330 For the standard background colour, blinking will actually make the text
331 blink when compiled with "--enable-blinking". with standard colours.
332 Without "--enable-blinking", the blink attribute will be ignored.
333
334 On ANSI colours, bold/blink attributes are used to set high-intensity
335 foreground/background colors.
336
337 color0-7 are the low-intensity colors.
338
339 color8-15 are the corresponding high-intensity colors.
340
341 I don't like the screen colors. How do I change them?
342 You can change the screen colors at run-time using ~/.Xdefaults
343 resources (or as long-options).
344
345 Here are values that are supposed to resemble a VGA screen, including
346 the murky brown that passes for low-intensity yellow:
347
348 URxvt.color0: #000000
349 URxvt.color1: #A80000
350 URxvt.color2: #00A800
351 URxvt.color3: #A8A800
352 URxvt.color4: #0000A8
353 URxvt.color5: #A800A8
354 URxvt.color6: #00A8A8
355 URxvt.color7: #A8A8A8
356
357 URxvt.color8: #000054
358 URxvt.color9: #FF0054
359 URxvt.color10: #00FF54
360 URxvt.color11: #FFFF54
361 URxvt.color12: #0000FF
362 URxvt.color13: #FF00FF
363 URxvt.color14: #00FFFF
364 URxvt.color15: #FFFFFF
365
366 And here is a more complete set of non-standard colors described (not by
367 me) as "pretty girly".
368
369 URxvt.cursorColor: #dc74d1
370 URxvt.pointerColor: #dc74d1
371 URxvt.background: #0e0e0e
372 URxvt.foreground: #4ad5e1
373 URxvt.color0: #000000
374 URxvt.color8: #8b8f93
375 URxvt.color1: #dc74d1
376 URxvt.color9: #dc74d1
377 URxvt.color2: #0eb8c7
378 URxvt.color10: #0eb8c7
379 URxvt.color3: #dfe37e
380 URxvt.color11: #dfe37e
381 URxvt.color5: #9e88f0
382 URxvt.color13: #9e88f0
383 URxvt.color6: #73f7ff
384 URxvt.color14: #73f7ff
385 URxvt.color7: #e1dddd
386 URxvt.color15: #e1dddd
387
388 Why do some characters look so much different than others?
389 See next entry.
390
391 How does rxvt-unicode choose fonts?
392 Most fonts do not contain the full range of Unicode, which is fine.
393 Chances are that the font you (or the admin/package maintainer of your
394 system/os) have specified does not cover all the characters you want to
395 display.
396
397 rxvt-unicode makes a best-effort try at finding a replacement font.
398 Often the result is fine, but sometimes the chosen font looks
399 bad/ugly/wrong. Some fonts have totally strange characters that don't
400 resemble the correct glyph at all, and rxvt-unicode lacks the artificial
401 intelligence to detect that a specific glyph is wrong: it has to believe
402 the font that the characters it claims to contain indeed look correct.
403
404 In that case, select a font of your taste and add it to the font list,
405 e.g.:
406
407 rxvt -fn basefont,font2,font3...
408
409 When rxvt-unicode sees a character, it will first look at the base font.
410 If the base font does not contain the character, it will go to the next
411 font, and so on. Specifying your own fonts will also speed up this
412 search and use less resources within rxvt-unicode and the X-server.
413
414 The only limitation is that none of the fonts may be larger than the
415 base font, as the base font defines the terminal character cell size,
416 which must be the same due to the way terminals work.
417
418 Keyboard, Mouse & User Interaction
419 The new selection selects pieces that are too big, how can I select single words?
420 If you want to select e.g. alphanumeric words, you can use the following
421 setting:
422
423 URxvt.selection.pattern-0: ([[:word:]]+)
424
425 If you click more than twice, the selection will be extended more and
426 more.
427
428 To get a selection that is very similar to the old code, try this
429 pattern:
430
431 URxvt.selection.pattern-0: ([^"&'()*,;<=>?@[\\\\]^`{|})]+)
432
433 Please also note that the *LeftClick Shift-LeftClik* combination also
434 selects words like the old code.
435
436 I don't like the new selection/popups/hotkeys/perl, how do I change/disable it?
437 You can disable the perl extension completely by setting the
438 perl-ext-common resource to the empty string, which also keeps
439 rxvt-unicode from initialising perl, saving memory.
440
441 If you only want to disable specific features, you first have to
442 identify which perl extension is responsible. For this, read the section
443 PREPACKAGED EXTENSIONS in the rxvtperl(3) manpage. For example, to
444 disable the selection-popup and option-popup, specify this
445 perl-ext-common resource:
446
447 URxvt.perl-ext-common: default,-selection-popup,-option-popup
448
449 This will keep the default extensions, but disable the two popup
450 extensions. Some extensions can also be configured, for example,
451 scrollback search mode is triggered by M-s. You can move it to any other
452 combination either by setting the searchable-scrollback resource:
453
454 URxvt.searchable-scrollback: CM-s
455
456 The cursor moves when selecting text in the current input line, how do I switch this off?
457 See next entry.
458
459 During rlogin/ssh/telnet/etc. sessions, clicking near the cursor outputs strange escape sequences, how do I fix this?
460 These are caused by the "readline" perl extension. Under normal
461 circumstances, it will move your cursor around when you click into the
462 line that contains it. It tries hard not to do this at the wrong moment,
463 but when running a program that doesn't parse cursor movements or in
464 some cases during rlogin sessions, it fails to detect this properly.
465
466 You can permamently switch this feature off by disabling the "readline"
467 extension:
468
221 URxvt.perl-ext-common: default,tabbed 469 URxvt.perl-ext-common: default,-readline
222 470
223 It will also work fine with tabbing functionality of many window 471 My numerical keypad acts weird and generates differing output?
224 managers or similar tabbing programs, and its embedding-features allow 472 Some Debian GNUL/Linux users seem to have this problem, although no
225 it to be embedded into other programs, as witnessed by doc/rxvt-tabbed 473 specific details were reported so far. It is possible that this is
226 or the upcoming "Gtk2::URxvt" perl module, which features a tabbed urxvt 474 caused by the wrong "TERM" setting, although the details of wether and
227 (murxvt) terminal as an example embedding application. 475 how this can happen are unknown, as "TERM=rxvt" should offer a
476 compatible keymap. See the answer to the previous question, and please
477 report if that helped.
228 478
229 How do I know which rxvt-unicode version I'm using? 479 My Compose (Multi_key) key is no longer working.
230 The version number is displayed with the usage (-h). Also the escape 480 The most common causes for this are that either your locale is not set
231 sequence "ESC [ 8 n" sets the window title to the version number. When 481 correctly, or you specified a preeditStyle that is not supported by your
232 using the rxvtc client, the version displayed is that of the daemon. 482 input method. For example, if you specified OverTheSpot and your input
483 method (e.g. the default input method handling Compose keys) does not
484 support this (for instance because it is not visual), then rxvt-unicode
485 will continue without an input method.
233 486
234 I am using Debian GNU/Linux and have a problem... 487 In this case either do not specify a preeditStyle or specify more than
235 The Debian GNU/Linux package of rxvt-unicode in sarge contains large 488 one pre-edit style, such as OverTheSpot,Root,None.
236 patches that considerably change the behaviour of rxvt-unicode (but
237 unfortunately this notice has been removed). Before reporting a bug to
238 the original rxvt-unicode author please download and install the genuine
239 version (<http://software.schmorp.de#rxvt-unicode>) and try to reproduce
240 the problem. If you cannot, chances are that the problems are specific
241 to Debian GNU/Linux, in which case it should be reported via the Debian
242 Bug Tracking System (use "reportbug" to report the bug).
243 489
244 For other problems that also affect the Debian package, you can and 490 I cannot type "Ctrl-Shift-2" to get an ASCII NUL character due to ISO 14755
245 probably should use the Debian BTS, too, because, after all, it's also a 491 Either try "Ctrl-2" alone (it often is mapped to ASCII NUL even on
246 bug in the Debian version and it serves as a reminder for other users 492 international keyboards) or simply use ISO 14755 support to your
247 that might encounter the same issue. 493 advantage, typing <Ctrl-Shift-0> to get a ASCII NUL. This works for
494 other codes, too, such as "Ctrl-Shift-1-d" to type the default telnet
495 escape character and so on.
248 496
249 I am maintaining rxvt-unicode for distribution/OS XXX, any recommendation? 497 Mouse cut/paste suddenly no longer works.
250 You should build one binary with the default options. configure now 498 Make sure that mouse reporting is actually turned off since killing some
251 enables most useful options, and the trend goes to making them 499 editors prematurely may leave the mouse in mouse report mode. I've heard
252 runtime-switchable, too, so there is usually no drawback to enbaling 500 that tcsh may use mouse reporting unless it otherwise specified. A quick
253 them, except higher disk and possibly memory usage. The perl interpreter 501 check is to see if cut/paste works when the Alt or Shift keys are
254 should be enabled, as important functionality (menus, selection, likely 502 depressed.
255 more in the future) depends on it.
256 503
257 You should not overwrite the "perl-ext-common" snd "perl-ext" resources 504 What's with the strange Backspace/Delete key behaviour?
258 system-wide (except maybe with "defaults"). This will result in useful 505 Assuming that the physical Backspace key corresponds to the BackSpace
259 behaviour. If your distribution aims at low memory, add an empty 506 keysym (not likely for Linux ... see the following question) there are
260 "perl-ext-common" resource to the app-defaults file. This will keep the 507 two standard values that can be used for Backspace: "^H" and "^?".
261 perl interpreter disabled until the user enables it.
262 508
263 If you can/want build more binaries, I recommend building a minimal one 509 Historically, either value is correct, but rxvt-unicode adopts the
264 with "--disable-everything" (very useful) and a maximal one with 510 debian policy of using "^?" when unsure, because it's the one only only
265 "--enable-everything" (less useful, it will be very big due to a lot of 511 correct choice :).
266 encodings built-in that increase download times and are rarely used).
267 512
268 I need to make it setuid/setgid to support utmp/ptys on my OS, is this safe? 513 Rxvt-unicode tries to inherit the current stty settings and uses the
269 It should be, starting with release 7.1. You are encouraged to properly 514 value of `erase' to guess the value for backspace. If rxvt-unicode
270 install urxvt with privileges necessary for your OS now. 515 wasn't started from a terminal (say, from a menu or by remote shell),
516 then the system value of `erase', which corresponds to CERASE in
517 <termios.h>, will be used (which may not be the same as your stty
518 setting).
271 519
272 When rxvt-unicode detects that it runs setuid or setgid, it will fork 520 For starting a new rxvt-unicode:
273 into a helper process for privileged operations (pty handling on some
274 systems, utmp/wtmp/lastlog handling on others) and drop privileges
275 immediately. This is much safer than most other terminals that keep
276 privileges while running (but is more relevant to urxvt, as it contains
277 things as perl interpreters, which might be "helpful" to attackers).
278 521
279 This forking is done as the very first within main(), which is very 522 # use Backspace = ^H
280 early and reduces possible bugs to initialisation code run before 523 $ stty erase ^H
281 main(), or things like the dynamic loader of your system, which should 524 $ rxvt
282 result in very little risk.
283 525
526 # use Backspace = ^?
527 $ stty erase ^?
528 $ rxvt
529
530 Toggle with "ESC [ 36 h" / "ESC [ 36 l".
531
532 For an existing rxvt-unicode:
533
534 # use Backspace = ^H
535 $ stty erase ^H
536 $ echo -n "^[[36h"
537
538 # use Backspace = ^?
539 $ stty erase ^?
540 $ echo -n "^[[36l"
541
542 This helps satisfy some of the Backspace discrepancies that occur, but
543 if you use Backspace = "^H", make sure that the termcap/terminfo value
544 properly reflects that.
545
546 The Delete key is a another casualty of the ill-defined Backspace
547 problem. To avoid confusion between the Backspace and Delete keys, the
548 Delete key has been assigned an escape sequence to match the vt100 for
549 Execute ("ESC [ 3 ~") and is in the supplied termcap/terminfo.
550
551 Some other Backspace problems:
552
553 some editors use termcap/terminfo, some editors (vim I'm told) expect
554 Backspace = ^H, GNU Emacs (and Emacs-like editors) use ^H for help.
555
556 Perhaps someday this will all be resolved in a consistent manner.
557
558 I don't like the key-bindings. How do I change them?
559 There are some compile-time selections available via configure. Unless
560 you have run "configure" with the "--disable-resources" option you can
561 use the `keysym' resource to alter the keystrings associated with
562 keysyms.
563
564 Here's an example for a URxvt session started using "rxvt -name URxvt"
565
566 URxvt.keysym.Home: \033[1~
567 URxvt.keysym.End: \033[4~
568 URxvt.keysym.C-apostrophe: \033<C-'>
569 URxvt.keysym.C-slash: \033<C-/>
570 URxvt.keysym.C-semicolon: \033<C-;>
571 URxvt.keysym.C-grave: \033<C-`>
572 URxvt.keysym.C-comma: \033<C-,>
573 URxvt.keysym.C-period: \033<C-.>
574 URxvt.keysym.C-0x60: \033<C-`>
575 URxvt.keysym.C-Tab: \033<C-Tab>
576 URxvt.keysym.C-Return: \033<C-Return>
577 URxvt.keysym.S-Return: \033<S-Return>
578 URxvt.keysym.S-space: \033<S-Space>
579 URxvt.keysym.M-Up: \033<M-Up>
580 URxvt.keysym.M-Down: \033<M-Down>
581 URxvt.keysym.M-Left: \033<M-Left>
582 URxvt.keysym.M-Right: \033<M-Right>
583 URxvt.keysym.M-C-0: list \033<M-C- 0123456789 >
584 URxvt.keysym.M-C-a: list \033<M-C- abcdefghijklmnopqrstuvwxyz >
585 URxvt.keysym.F12: command:\033]701;zh_CN.GBK\007
586
587 See some more examples in the documentation for the keysym resource.
588
589 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
590 KP_Insert == Insert
591 F22 == Print
592 F27 == Home
593 F29 == Prior
594 F33 == End
595 F35 == Next
596
597 Rather than have rxvt-unicode try to accommodate all the various
598 possible keyboard mappings, it is better to use `xmodmap' to remap the
599 keys as required for your particular machine.
600
601 Terminal Configuration
602 Why doesn't rxvt-unicode read my resources?
603 Well, why, indeed? It does, in a way very similar to other X
604 applications. Most importantly, this means that if you or your OS loads
605 resources into the X display (the right way to do it), rxvt-unicode will
606 ignore any resource files in your home directory. It will only read
607 $HOME/.Xdefaults when no resources are attached to the display.
608
609 If you have or use an $HOME/.Xresources file, chances are that resources
610 are loaded into your X-server. In this case, you have to re-login after
611 every change (or run xrdb -merge $HOME/.Xresources).
612
613 Also consider the form resources have to use:
614
615 URxvt.resource: value
616
617 If you want to use another form (there are lots of different ways of
618 specifying resources), make sure you understand wether and why it works.
619 If unsure, use the form above.
620
284 When I log-in to another system it tells me about missing terminfo data? 621 When I log-in to another system it tells me about missing terminfo data?
285 The terminal description used by rxvt-unicode is not as widely available 622 The terminal description used by rxvt-unicode is not as widely available
286 as that for xterm, or even rxvt (for which the same problem often 623 as that for xterm, or even rxvt (for which the same problem often
287 arises). 624 arises).
288 625
289 The correct solution for this problem is to install the terminfo, this 626 The correct solution for this problem is to install the terminfo, this
307 URxvt.termName: rxvt 644 URxvt.termName: rxvt
308 645
309 If you don't plan to use rxvt (quite common...) you could also replace 646 If you don't plan to use rxvt (quite common...) you could also replace
310 the rxvt terminfo file with the rxvt-unicode one. 647 the rxvt terminfo file with the rxvt-unicode one.
311 648
312 "tic" outputs some error when compiling the terminfo entry. 649 "tic" outputs some error when compiling the terminfo entry.
313 Most likely it's the empty definition for "enacs=". Just replace it by 650 Most likely it's the empty definition for "enacs=". Just replace it by
314 "enacs=\E[0@" and try again. 651 "enacs=\E[0@" and try again.
315 652
316 "bash"'s readline does not work correctly under rxvt. 653 "bash"'s readline does not work correctly under rxvt.
317 See next entry. 654 See next entry.
318 655
319 I need a termcap file entry. 656 I need a termcap file entry.
320 One reason you might want this is that some distributions or operating 657 One reason you might want this is that some distributions or operating
321 systems still compile some programs using the long-obsoleted termcap 658 systems still compile some programs using the long-obsoleted termcap
322 library (Fedora Core's bash is one example) and rely on a termcap entry 659 library (Fedora Core's bash is one example) and rely on a termcap entry
323 for "rxvt-unicode". 660 for "rxvt-unicode".
324 661
349 :sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ 686 :sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
350 :te=\E[r\E[?1049l:ti=\E[?1049h:ue=\E[24m:up=\E[A:\ 687 :te=\E[r\E[?1049l:ti=\E[?1049h:ue=\E[24m:up=\E[A:\
351 :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:\ 688 :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:\
352 :vs=\E[?25h: 689 :vs=\E[?25h:
353 690
354 Why does "ls" no longer have coloured output? 691 Why does "ls" no longer have coloured output?
355 The "ls" in the GNU coreutils unfortunately doesn't use terminfo to 692 The "ls" in the GNU coreutils unfortunately doesn't use terminfo to
356 decide wether a terminal has colour, but uses it's own configuration 693 decide wether a terminal has colour, but uses it's own configuration
357 file. Needless to say, "rxvt-unicode" is not in it's default file (among 694 file. Needless to say, "rxvt-unicode" is not in it's default file (among
358 with most other terminals supporting colour). Either add: 695 with most other terminals supporting colour). Either add:
359 696
363 700
364 alias ls='ls --color=auto' 701 alias ls='ls --color=auto'
365 702
366 to your ".profile" or ".bashrc". 703 to your ".profile" or ".bashrc".
367 704
368 Why doesn't vim/emacs etc. use the 88 colour mode? 705 Why doesn't vim/emacs etc. use the 88 colour mode?
369 See next entry. 706 See next entry.
370 707
371 Why doesn't vim/emacs etc. make use of italic? 708 Why doesn't vim/emacs etc. make use of italic?
372 See next entry. 709 See next entry.
373 710
374 Why are the secondary screen-related options not working properly? 711 Why are the secondary screen-related options not working properly?
375 Make sure you are using "TERM=rxvt-unicode". Some pre-packaged 712 Make sure you are using "TERM=rxvt-unicode". Some pre-packaged
376 distributions (most notably Debian GNU/Linux) break rxvt-unicode by 713 distributions (most notably Debian GNU/Linux) break rxvt-unicode by
377 setting "TERM" to "rxvt", which doesn't have these extra features. 714 setting "TERM" to "rxvt", which doesn't have these extra features.
378 Unfortunately, some of these (most notably, again, Debian GNU/Linux) 715 Unfortunately, some of these (most notably, again, Debian GNU/Linux)
379 furthermore fail to even install the "rxvt-unicode" terminfo file, so 716 furthermore fail to even install the "rxvt-unicode" terminfo file, so
380 you will need to install it on your own (See the question When I log-in 717 you will need to install it on your own (See the question When I log-in
381 to another system it tells me about missing terminfo data? on how to do 718 to another system it tells me about missing terminfo data? on how to do
382 this). 719 this).
383 720
384 My numerical keypad acts weird and generates differing output? 721 Encoding / Locale / Input Method Issues
385 Some Debian GNUL/Linux users seem to have this problem, although no
386 specific details were reported so far. It is possible that this is
387 caused by the wrong "TERM" setting, although the details of wether and
388 how this can happen are unknown, as "TERM=rxvt" should offer a
389 compatible keymap. See the answer to the previous question, and please
390 report if that helped.
391
392 Rxvt-unicode does not seem to understand the selected encoding? 722 Rxvt-unicode does not seem to understand the selected encoding?
393 See next entry. 723 See next entry.
394 724
395 Unicode does not seem to work? 725 Unicode does not seem to work?
396 If you encounter strange problems like typing an accented character but 726 If you encounter strange problems like typing an accented character but
397 getting two unrelated other characters or similar, or if program output 727 getting two unrelated other characters or similar, or if program output
398 is subtly garbled, then you should check your locale settings. 728 is subtly garbled, then you should check your locale settings.
399 729
400 Rxvt-unicode must be started with the same "LC_CTYPE" setting as the 730 Rxvt-unicode must be started with the same "LC_CTYPE" setting as the
421 751
422 If nothing works and you are sure that everything is set correctly then 752 If nothing works and you are sure that everything is set correctly then
423 you will need to remember a little known fact: Some programs just don't 753 you will need to remember a little known fact: Some programs just don't
424 support locales :( 754 support locales :(
425 755
426 Why do some characters look so much different than others? 756 How does rxvt-unicode determine the encoding to use?
427 See next entry. 757 See next entry.
428 758
429 How does rxvt-unicode choose fonts? 759 Is there an option to switch encodings?
430 Most fonts do not contain the full range of Unicode, which is fine. 760 Unlike some other terminals, rxvt-unicode has no encoding switch, and no
431 Chances are that the font you (or the admin/package maintainer of your 761 specific "utf-8" mode, such as xterm. In fact, it doesn't even know
432 system/os) have specified does not cover all the characters you want to 762 about UTF-8 or any other encodings with respect to terminal I/O.
433 display.
434 763
435 rxvt-unicode makes a best-effort try at finding a replacement font. 764 The reasons is that there exists a perfectly fine mechanism for
436 Often the result is fine, but sometimes the chosen font looks 765 selecting the encoding, doing I/O and (most important) communicating
437 bad/ugly/wrong. Some fonts have totally strange characters that don't 766 this to all applications so everybody agrees on character properties
438 resemble the correct glyph at all, and rxvt-unicode lacks the artificial 767 such as width and code number. This mechanism is the *locale*.
439 intelligence to detect that a specific glyph is wrong: it has to believe 768 Applications not using that info will have problems (for example,
440 the font that the characters it claims to contain indeed look correct. 769 "xterm" gets the width of characters wrong as it uses it's own,
770 locale-independent table under all locales).
441 771
442 In that case, select a font of your taste and add it to the font list, 772 Rxvt-unicode uses the "LC_CTYPE" locale category to select encoding. All
443 e.g.: 773 programs doing the same (that is, most) will automatically agree in the
774 interpretation of characters.
444 775
445 rxvt -fn basefont,font2,font3... 776 Unfortunately, there is no system-independent way to select locales, nor
777 is there a standard on how locale specifiers will look like.
446 778
447 When rxvt-unicode sees a character, it will first look at the base font. 779 On most systems, the content of the "LC_CTYPE" environment variable
448 If the base font does not contain the character, it will go to the next 780 contains an arbitrary string which corresponds to an already-installed
449 font, and so on. Specifying your own fonts will also speed up this 781 locale. Common names for locales are "en_US.UTF-8", "de_DE.ISO-8859-15",
450 search and use less resources within rxvt-unicode and the X-server. 782 "ja_JP.EUC-JP", i.e. "language_country.encoding", but other forms (i.e.
783 "de" or "german") are also common.
451 784
452 The only limitation is that none of the fonts may be larger than the 785 Rxvt-unicode ignores all other locale categories, and except for the
453 base font, as the base font defines the terminal character cell size, 786 encoding, ignores country or language-specific settings, i.e.
454 which must be the same due to the way terminals work. 787 "de_DE.UTF-8" and "ja_JP.UTF-8" are the normally same to rxvt-unicode.
455 788
456 Why do some chinese characters look so different than others? 789 If you want to use a specific encoding you have to make sure you start
457 This is because there is a difference between script and language -- 790 rxvt-unicode with the correct "LC_CTYPE" category.
458 rxvt-unicode does not know which language the text that is output is, as
459 it only knows the unicode character codes. If rxvt-unicode first sees a
460 japanese/chinese character, it might choose a japanese font for display.
461 Subsequent japanese characters will use that font. Now, many chinese
462 characters aren't represented in japanese fonts, so when the first
463 non-japanese character comes up, rxvt-unicode will look for a chinese
464 font -- unfortunately at this point, it will still use the japanese font
465 for chinese characters that are also in the japanese font.
466 791
467 The workaround is easy: just tag a chinese font at the end of your font 792 Can I switch locales at runtime?
468 list (see the previous question). The key is to view the font list as a 793 Yes, using an escape sequence. Try something like this, which sets
469 preference list: If you expect more japanese, list a japanese font 794 rxvt-unicode's idea of "LC_CTYPE".
470 first. If you expect more chinese, put a chinese font first.
471 795
472 In the future it might be possible to switch language preferences at 796 printf '\e]701;%s\007' ja_JP.SJIS
473 runtime (the internal data structure has no problem with using different
474 fonts for the same character at the same time, but no interface for this
475 has been designed yet).
476 797
477 Until then, you might get away with switching fonts at runtime (see "Can 798 See also the previous answer.
478 I switch the fonts at runtime?" later in this document).
479 799
480 Why does rxvt-unicode sometimes leave pixel droppings? 800 Sometimes this capability is rather handy when you want to work in one
481 Most fonts were not designed for terminal use, which means that 801 locale (e.g. "de_DE.UTF-8") but some programs don't support it (e.g.
482 character size varies a lot. A font that is otherwise fine for terminal 802 UTF-8). For example, I use this script to start "xjdic", which first
483 use might contain some characters that are simply too wide. Rxvt-unicode 803 switches to a locale supported by xjdic and back later:
484 will avoid these characters. For characters that are just "a bit" too
485 wide a special "careful" rendering mode is used that redraws adjacent
486 characters.
487 804
488 All of this requires that fonts do not lie about character sizes, 805 printf '\e]701;%s\007' ja_JP.SJIS
489 however: Xft fonts often draw glyphs larger than their acclaimed 806 xjdic -js
490 bounding box, and rxvt-unicode has no way of detecting this (the correct 807 printf '\e]701;%s\007' de_DE.UTF-8
491 way is to ask for the character bounding box, which unfortunately is
492 wrong in these cases).
493 808
494 It's not clear (to me at least), wether this is a bug in Xft, freetype, 809 You can also use xterm's "luit" program, which usually works fine,
495 or the respective font. If you encounter this problem you might try 810 except for some locales where character width differs between program-
496 using the "-lsp" option to give the font more height. If that doesn't 811 and rxvt-unicode-locales.
497 work, you might be forced to use a different font.
498 812
499 All of this is not a problem when using X11 core fonts, as their 813 My input method wants <some encoding> but I want UTF-8, what can I do?
500 bounding box data is correct. 814 You can specify separate locales for the input method and the rest of
815 the terminal, using the resource "imlocale":
501 816
817 URxvt.imlocale: ja_JP.EUC-JP
818
819 Now you can start your terminal with "LC_CTYPE=ja_JP.UTF-8" and still
820 use your input method. Please note, however, that you will not be able
821 to input characters outside "EUC-JP" in a normal way then, as your input
822 method limits you.
823
824 Rxvt-unicode crashes when the X Input Method changes or exits.
825 Unfortunately, this is unavoidable, as the XIM protocol is racy by
826 design. Applications can avoid some crashes at the expense of memory
827 leaks, and Input Methods can avoid some crashes by careful ordering at
828 exit time. kinput2 (and derived input methods) generally succeeds, while
829 SCIM (or similar input methods) fails. In the end, however, crashes
830 cannot be completely avoided even if both sides cooperate.
831
832 So the only workaround is not to kill your Input Method Servers.
833
834 Operating Systems / Package Maintaining
835 I am using Debian GNU/Linux and have a problem...
836 The Debian GNU/Linux package of rxvt-unicode in sarge contains large
837 patches that considerably change the behaviour of rxvt-unicode (but
838 unfortunately this notice has been removed). Before reporting a bug to
839 the original rxvt-unicode author please download and install the genuine
840 version (<http://software.schmorp.de#rxvt-unicode>) and try to reproduce
841 the problem. If you cannot, chances are that the problems are specific
842 to Debian GNU/Linux, in which case it should be reported via the Debian
843 Bug Tracking System (use "reportbug" to report the bug).
844
845 For other problems that also affect the Debian package, you can and
846 probably should use the Debian BTS, too, because, after all, it's also a
847 bug in the Debian version and it serves as a reminder for other users
848 that might encounter the same issue.
849
850 I am maintaining rxvt-unicode for distribution/OS XXX, any recommendation?
851 You should build one binary with the default options. configure now
852 enables most useful options, and the trend goes to making them
853 runtime-switchable, too, so there is usually no drawback to enbaling
854 them, except higher disk and possibly memory usage. The perl interpreter
855 should be enabled, as important functionality (menus, selection, likely
856 more in the future) depends on it.
857
858 You should not overwrite the "perl-ext-common" snd "perl-ext" resources
859 system-wide (except maybe with "defaults"). This will result in useful
860 behaviour. If your distribution aims at low memory, add an empty
861 "perl-ext-common" resource to the app-defaults file. This will keep the
862 perl interpreter disabled until the user enables it.
863
864 If you can/want build more binaries, I recommend building a minimal one
865 with "--disable-everything" (very useful) and a maximal one with
866 "--enable-everything" (less useful, it will be very big due to a lot of
867 encodings built-in that increase download times and are rarely used).
868
869 I need to make it setuid/setgid to support utmp/ptys on my OS, is this safe?
870 It should be, starting with release 7.1. You are encouraged to properly
871 install urxvt with privileges necessary for your OS now.
872
873 When rxvt-unicode detects that it runs setuid or setgid, it will fork
874 into a helper process for privileged operations (pty handling on some
875 systems, utmp/wtmp/lastlog handling on others) and drop privileges
876 immediately. This is much safer than most other terminals that keep
877 privileges while running (but is more relevant to urxvt, as it contains
878 things as perl interpreters, which might be "helpful" to attackers).
879
880 This forking is done as the very first within main(), which is very
881 early and reduces possible bugs to initialisation code run before
882 main(), or things like the dynamic loader of your system, which should
883 result in very little risk.
884
502 On Solaris 9, many line-drawing characters are too wide. 885 On Solaris 9, many line-drawing characters are too wide.
503 Seems to be a known bug, read 886 Seems to be a known bug, read
504 <http://nixdoc.net/files/forum/about34198.html>. Some people use the 887 <http://nixdoc.net/files/forum/about34198.html>. Some people use the
505 following ugly workaround to get non-double-wide-characters working: 888 following ugly workaround to get non-double-wide-characters working:
506 889
507 #define wcwidth(x) wcwidth(x) > 1 ? 1 : wcwidth(x) 890 #define wcwidth(x) wcwidth(x) > 1 ? 1 : wcwidth(x)
508 891
509 My Compose (Multi_key) key is no longer working.
510 The most common causes for this are that either your locale is not set
511 correctly, or you specified a preeditStyle that is not supported by your
512 input method. For example, if you specified OverTheSpot and your input
513 method (e.g. the default input method handling Compose keys) does not
514 support this (for instance because it is not visual), then rxvt-unicode
515 will continue without an input method.
516
517 In this case either do not specify a preeditStyle or specify more than
518 one pre-edit style, such as OverTheSpot,Root,None.
519
520 I cannot type "Ctrl-Shift-2" to get an ASCII NUL character due to ISO 14755
521 Either try "Ctrl-2" alone (it often is mapped to ASCII NUL even on
522 international keyboards) or simply use ISO 14755 support to your
523 advantage, typing <Ctrl-Shift-0> to get a ASCII NUL. This works for
524 other codes, too, such as "Ctrl-Shift-1-d" to type the default telnet
525 escape character and so on.
526
527 How can I keep rxvt-unicode from using reverse video so much?
528 First of all, make sure you are running with the right terminal settings
529 ("TERM=rxvt-unicode"), which will get rid of most of these effects. Then
530 make sure you have specified colours for italic and bold, as otherwise
531 rxvt-unicode might use reverse video to simulate the effect:
532
533 URxvt.colorBD: white
534 URxvt.colorIT: green
535
536 Some programs assume totally weird colours (red instead of blue), how can I fix that?
537 For some unexplainable reason, some rare programs assume a very weird
538 colour palette when confronted with a terminal with more than the
539 standard 8 colours (rxvt-unicode supports 88). The right fix is, of
540 course, to fix these programs not to assume non-ISO colours without very
541 good reasons.
542
543 In the meantime, you can either edit your "rxvt-unicode" terminfo
544 definition to only claim 8 colour support or use "TERM=rxvt", which will
545 fix colours but keep you from using other rxvt-unicode features.
546
547 I am on FreeBSD and rxvt-unicode does not seem to work at all. 892 I am on FreeBSD and rxvt-unicode does not seem to work at all.
548 Rxvt-unicode requires the symbol "__STDC_ISO_10646__" to be defined in 893 Rxvt-unicode requires the symbol "__STDC_ISO_10646__" to be defined in
549 your compile environment, or an implementation that implements it, 894 your compile environment, or an implementation that implements it,
550 wether it defines the symbol or not. "__STDC_ISO_10646__" requires that 895 wether it defines the symbol or not. "__STDC_ISO_10646__" requires that
551 wchar_t is represented as unicode. 896 wchar_t is represented as unicode.
552 897
573 918
574 The rxvt-unicode author insists that the right way to fix this is in the 919 The rxvt-unicode author insists that the right way to fix this is in the
575 system libraries once and for all, instead of forcing every app to carry 920 system libraries once and for all, instead of forcing every app to carry
576 complete replacements for them :) 921 complete replacements for them :)
577 922
578 I use Solaris 9 and it doesn't compile/work/etc. 923 I use Solaris 9 and it doesn't compile/work/etc.
579 Try the diff in doc/solaris9.patch as a base. It fixes the worst 924 Try the diff in doc/solaris9.patch as a base. It fixes the worst
580 problems with "wcwidth" and a compile problem. 925 problems with "wcwidth" and a compile problem.
581 926
582 How can I use rxvt-unicode under cygwin? 927 How can I use rxvt-unicode under cygwin?
583 rxvt-unicode should compile and run out of the box on cygwin, using the 928 rxvt-unicode should compile and run out of the box on cygwin, using the
584 X11 libraries that come with cygwin. libW11 emulation is no longer 929 X11 libraries that come with cygwin. libW11 emulation is no longer
585 supported (and makes no sense, either, as it only supported a single 930 supported (and makes no sense, either, as it only supported a single
586 font). I recommend starting the X-server in "-multiwindow" or 931 font). I recommend starting the X-server in "-multiwindow" or
587 "-rootless" mode instead, which will result in similar look&feel as the 932 "-rootless" mode instead, which will result in similar look&feel as the
588 old libW11 emulation. 933 old libW11 emulation.
589 934
590 At the time of this writing, cygwin didn't seem to support any 935 At the time of this writing, cygwin didn't seem to support any
591 multi-byte encodings (you might try "LC_CTYPE=C-UTF-8"), so you are 936 multi-byte encodings (you might try "LC_CTYPE=C-UTF-8"), so you are
592 likely limited to 8-bit encodings. 937 likely limited to 8-bit encodings.
593
594 How does rxvt-unicode determine the encoding to use?
595 See next entry.
596
597 Is there an option to switch encodings?
598 Unlike some other terminals, rxvt-unicode has no encoding switch, and no
599 specific "utf-8" mode, such as xterm. In fact, it doesn't even know
600 about UTF-8 or any other encodings with respect to terminal I/O.
601
602 The reasons is that there exists a perfectly fine mechanism for
603 selecting the encoding, doing I/O and (most important) communicating
604 this to all applications so everybody agrees on character properties
605 such as width and code number. This mechanism is the *locale*.
606 Applications not using that info will have problems (for example,
607 "xterm" gets the width of characters wrong as it uses it's own,
608 locale-independent table under all locales).
609
610 Rxvt-unicode uses the "LC_CTYPE" locale category to select encoding. All
611 programs doing the same (that is, most) will automatically agree in the
612 interpretation of characters.
613
614 Unfortunately, there is no system-independent way to select locales, nor
615 is there a standard on how locale specifiers will look like.
616
617 On most systems, the content of the "LC_CTYPE" environment variable
618 contains an arbitrary string which corresponds to an already-installed
619 locale. Common names for locales are "en_US.UTF-8", "de_DE.ISO-8859-15",
620 "ja_JP.EUC-JP", i.e. "language_country.encoding", but other forms (i.e.
621 "de" or "german") are also common.
622
623 Rxvt-unicode ignores all other locale categories, and except for the
624 encoding, ignores country or language-specific settings, i.e.
625 "de_DE.UTF-8" and "ja_JP.UTF-8" are the normally same to rxvt-unicode.
626
627 If you want to use a specific encoding you have to make sure you start
628 rxvt-unicode with the correct "LC_CTYPE" category.
629
630 Can I switch locales at runtime?
631 Yes, using an escape sequence. Try something like this, which sets
632 rxvt-unicode's idea of "LC_CTYPE".
633
634 printf '\e]701;%s\007' ja_JP.SJIS
635
636 See also the previous answer.
637
638 Sometimes this capability is rather handy when you want to work in one
639 locale (e.g. "de_DE.UTF-8") but some programs don't support it (e.g.
640 UTF-8). For example, I use this script to start "xjdic", which first
641 switches to a locale supported by xjdic and back later:
642
643 printf '\e]701;%s\007' ja_JP.SJIS
644 xjdic -js
645 printf '\e]701;%s\007' de_DE.UTF-8
646
647 You can also use xterm's "luit" program, which usually works fine,
648 except for some locales where character width differs between program-
649 and rxvt-unicode-locales.
650
651 Can I switch the fonts at runtime?
652 Yes, using an escape sequence. Try something like this, which has the
653 same effect as using the "-fn" switch, and takes effect immediately:
654
655 printf '\e]50;%s\007' "9x15bold,xft:Kochi Gothic"
656
657 This is useful if you e.g. work primarily with japanese (and prefer a
658 japanese font), but you have to switch to chinese temporarily, where
659 japanese fonts would only be in your way.
660
661 You can think of this as a kind of manual ISO-2022 switching.
662
663 Why do italic characters look as if clipped?
664 Many fonts have difficulties with italic characters and hinting. For
665 example, the otherwise very nicely hinted font "xft:Bitstream Vera Sans
666 Mono" completely fails in it's italic face. A workaround might be to
667 enable freetype autohinting, i.e. like this:
668
669 URxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true
670 URxvt.boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true
671
672 My input method wants <some encoding> but I want UTF-8, what can I do?
673 You can specify separate locales for the input method and the rest of
674 the terminal, using the resource "imlocale":
675
676 URxvt.imlocale: ja_JP.EUC-JP
677
678 Now you can start your terminal with "LC_CTYPE=ja_JP.UTF-8" and still
679 use your input method. Please note, however, that you will not be able
680 to input characters outside "EUC-JP" in a normal way then, as your input
681 method limits you.
682
683 Rxvt-unicode crashes when the X Input Method changes or exits.
684 Unfortunately, this is unavoidable, as the XIM protocol is racy by
685 design. Applications can avoid some crashes at the expense of memory
686 leaks, and Input Methods can avoid some crashes by careful ordering at
687 exit time. kinput2 (and derived input methods) generally succeeds, while
688 SCIM (or similar input methods) fails. In the end, however, crashes
689 cannot be completely avoided even if both sides cooperate.
690
691 So the only workaround is not to kill your Input Method Servers.
692
693 Rxvt-unicode uses gobs of memory, how can I reduce that?
694 Rxvt-unicode tries to obey the rule of not charging you for something
695 you don't use. One thing you should try is to configure out all settings
696 that you don't need, for example, Xft support is a resource hog by
697 design, when used. Compiling it out ensures that no Xft font will be
698 loaded accidentally when rxvt-unicode tries to find a font for your
699 characters.
700
701 Also, many people (me included) like large windows and even larger
702 scrollback buffers: Without "--enable-unicode3", rxvt-unicode will use 6
703 bytes per screen cell. For a 160x?? window this amounts to almost a
704 kilobyte per line. A scrollback buffer of 10000 lines will then (if
705 full) use 10 Megabytes of memory. With "--enable-unicode3" it gets
706 worse, as rxvt-unicode then uses 8 bytes per screen cell.
707
708 Can I speed up Xft rendering somehow?
709 Yes, the most obvious way to speed it up is to avoid Xft entirely, as it
710 is simply slow. If you still want Xft fonts you might try to disable
711 antialiasing (by appending ":antialias=false"), which saves lots of
712 memory and also speeds up rendering considerably.
713
714 Rxvt-unicode doesn't seem to anti-alias its fonts, what is wrong?
715 Rxvt-unicode will use whatever you specify as a font. If it needs to
716 fall back to it's default font search list it will prefer X11 core
717 fonts, because they are small and fast, and then use Xft fonts. It has
718 antialiasing disabled for most of them, because the author thinks they
719 look best that way.
720
721 If you want antialiasing, you have to specify the fonts manually.
722
723 Mouse cut/paste suddenly no longer works.
724 Make sure that mouse reporting is actually turned off since killing some
725 editors prematurely may leave the mouse in mouse report mode. I've heard
726 that tcsh may use mouse reporting unless it otherwise specified. A quick
727 check is to see if cut/paste works when the Alt or Shift keys are
728 depressed.
729
730 What's with this bold/blink stuff?
731 If no bold colour is set via "colorBD:", bold will invert text using the
732 standard foreground colour.
733
734 For the standard background colour, blinking will actually make the text
735 blink when compiled with "--enable-blinking". with standard colours.
736 Without "--enable-blinking", the blink attribute will be ignored.
737
738 On ANSI colours, bold/blink attributes are used to set high-intensity
739 foreground/background colors.
740
741 color0-7 are the low-intensity colors.
742
743 color8-15 are the corresponding high-intensity colors.
744
745 I don't like the screen colors. How do I change them?
746 You can change the screen colors at run-time using ~/.Xdefaults
747 resources (or as long-options).
748
749 Here are values that are supposed to resemble a VGA screen, including
750 the murky brown that passes for low-intensity yellow:
751
752 URxvt.color0: #000000
753 URxvt.color1: #A80000
754 URxvt.color2: #00A800
755 URxvt.color3: #A8A800
756 URxvt.color4: #0000A8
757 URxvt.color5: #A800A8
758 URxvt.color6: #00A8A8
759 URxvt.color7: #A8A8A8
760
761 URxvt.color8: #000054
762 URxvt.color9: #FF0054
763 URxvt.color10: #00FF54
764 URxvt.color11: #FFFF54
765 URxvt.color12: #0000FF
766 URxvt.color13: #FF00FF
767 URxvt.color14: #00FFFF
768 URxvt.color15: #FFFFFF
769
770 And here is a more complete set of non-standard colors described (not by
771 me) as "pretty girly".
772
773 URxvt.cursorColor: #dc74d1
774 URxvt.pointerColor: #dc74d1
775 URxvt.background: #0e0e0e
776 URxvt.foreground: #4ad5e1
777 URxvt.color0: #000000
778 URxvt.color8: #8b8f93
779 URxvt.color1: #dc74d1
780 URxvt.color9: #dc74d1
781 URxvt.color2: #0eb8c7
782 URxvt.color10: #0eb8c7
783 URxvt.color3: #dfe37e
784 URxvt.color11: #dfe37e
785 URxvt.color5: #9e88f0
786 URxvt.color13: #9e88f0
787 URxvt.color6: #73f7ff
788 URxvt.color14: #73f7ff
789 URxvt.color7: #e1dddd
790 URxvt.color15: #e1dddd
791
792 How can I start rxvtd in a race-free way?
793 Try "rxvtd -f -o", which tells rxvtd to open the display, create the
794 listening socket and then fork.
795
796 What's with the strange Backspace/Delete key behaviour?
797 Assuming that the physical Backspace key corresponds to the BackSpace
798 keysym (not likely for Linux ... see the following question) there are
799 two standard values that can be used for Backspace: "^H" and "^?".
800
801 Historically, either value is correct, but rxvt-unicode adopts the
802 debian policy of using "^?" when unsure, because it's the one only only
803 correct choice :).
804
805 Rxvt-unicode tries to inherit the current stty settings and uses the
806 value of `erase' to guess the value for backspace. If rxvt-unicode
807 wasn't started from a terminal (say, from a menu or by remote shell),
808 then the system value of `erase', which corresponds to CERASE in
809 <termios.h>, will be used (which may not be the same as your stty
810 setting).
811
812 For starting a new rxvt-unicode:
813
814 # use Backspace = ^H
815 $ stty erase ^H
816 $ rxvt
817
818 # use Backspace = ^?
819 $ stty erase ^?
820 $ rxvt
821
822 Toggle with "ESC [ 36 h" / "ESC [ 36 l".
823
824 For an existing rxvt-unicode:
825
826 # use Backspace = ^H
827 $ stty erase ^H
828 $ echo -n "^[[36h"
829
830 # use Backspace = ^?
831 $ stty erase ^?
832 $ echo -n "^[[36l"
833
834 This helps satisfy some of the Backspace discrepancies that occur, but
835 if you use Backspace = "^H", make sure that the termcap/terminfo value
836 properly reflects that.
837
838 The Delete key is a another casualty of the ill-defined Backspace
839 problem. To avoid confusion between the Backspace and Delete keys, the
840 Delete key has been assigned an escape sequence to match the vt100 for
841 Execute ("ESC [ 3 ~") and is in the supplied termcap/terminfo.
842
843 Some other Backspace problems:
844
845 some editors use termcap/terminfo, some editors (vim I'm told) expect
846 Backspace = ^H, GNU Emacs (and Emacs-like editors) use ^H for help.
847
848 Perhaps someday this will all be resolved in a consistent manner.
849
850 I don't like the key-bindings. How do I change them?
851 There are some compile-time selections available via configure. Unless
852 you have run "configure" with the "--disable-resources" option you can
853 use the `keysym' resource to alter the keystrings associated with
854 keysyms.
855
856 Here's an example for a URxvt session started using "rxvt -name URxvt"
857
858 URxvt.keysym.Home: \033[1~
859 URxvt.keysym.End: \033[4~
860 URxvt.keysym.C-apostrophe: \033<C-'>
861 URxvt.keysym.C-slash: \033<C-/>
862 URxvt.keysym.C-semicolon: \033<C-;>
863 URxvt.keysym.C-grave: \033<C-`>
864 URxvt.keysym.C-comma: \033<C-,>
865 URxvt.keysym.C-period: \033<C-.>
866 URxvt.keysym.C-0x60: \033<C-`>
867 URxvt.keysym.C-Tab: \033<C-Tab>
868 URxvt.keysym.C-Return: \033<C-Return>
869 URxvt.keysym.S-Return: \033<S-Return>
870 URxvt.keysym.S-space: \033<S-Space>
871 URxvt.keysym.M-Up: \033<M-Up>
872 URxvt.keysym.M-Down: \033<M-Down>
873 URxvt.keysym.M-Left: \033<M-Left>
874 URxvt.keysym.M-Right: \033<M-Right>
875 URxvt.keysym.M-C-0: list \033<M-C- 0123456789 >
876 URxvt.keysym.M-C-a: list \033<M-C- abcdefghijklmnopqrstuvwxyz >
877 URxvt.keysym.F12: command:\033]701;zh_CN.GBK\007
878
879 See some more examples in the documentation for the keysym resource.
880
881 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 mappings that rxvt-unicode doesn't recognize.
882 KP_Insert == Insert
883 F22 == Print
884 F27 == Home
885 F29 == Prior
886 F33 == End
887 F35 == Next
888
889 Rather than have rxvt-unicode try to accommodate all the various
890 possible keyboard mappings, it is better to use `xmodmap' to remap the
891 keys as required for your particular machine.
892
893 How do I distinguish wether I'm running rxvt-unicode or a regular xterm? I need this to decide about setting colors etc.
894 rxvt and rxvt-unicode always export the variable "COLORTERM", so you can
895 check and see if that is set. Note that several programs, JED, slrn,
896 Midnight Commander automatically check this variable to decide whether
897 or not to use color.
898
899 How do I set the correct, full IP address for the DISPLAY variable?
900 If you've compiled rxvt-unicode with DISPLAY_IS_IP and have enabled
901 insecure mode then it is possible to use the following shell script
902 snippets to correctly set the display. If your version of rxvt-unicode
903 wasn't also compiled with ESCZ_ANSWER (as assumed in these snippets)
904 then the COLORTERM variable can be used to distinguish rxvt-unicode from
905 a regular xterm.
906
907 Courtesy of Chuck Blake <cblake@BBN.COM> with the following shell script
908 snippets:
909
910 # Bourne/Korn/POSIX family of shells:
911 [ ${TERM:-foo} = foo ] && TERM=xterm # assume an xterm if we don't know
912 if [ ${TERM:-foo} = xterm ]; then
913 stty -icanon -echo min 0 time 15 # see if enhanced rxvt or not
914 echo -n '^[Z'
915 read term_id
916 stty icanon echo
917 if [ ""${term_id} = '^[[?1;2C' -a ${DISPLAY:-foo} = foo ]; then
918 echo -n '^[[7n' # query the rxvt we are in for the DISPLAY string
919 read DISPLAY # set it in our local shell
920 fi
921 fi
922
923 How do I compile the manual pages for myself?
924 You need to have a recent version of perl installed as /usr/bin/perl,
925 one that comes with pod2man, pod2text and pod2html. Then go to the doc
926 subdirectory and enter "make alldoc".
927
928 My question isn't answered here, can I ask a human?
929 Before sending me mail, you could go to IRC: "irc.freenode.net", channel
930 "#rxvt-unicode" has some rxvt-unicode enthusiasts that might be
931 interested in learning about new and exciting problems (but not FAQs :).
932 938
933RXVT TECHNICAL REFERENCE 939RXVT TECHNICAL REFERENCE
934DESCRIPTION 940DESCRIPTION
935 The rest of this document describes various technical aspects of 941 The rest of this document describes various technical aspects of
936 rxvt-unicode. First the description of supported command sequences, 942 rxvt-unicode. First the description of supported command sequences,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines