ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/README.FAQ
Revision: 1.36
Committed: Tue Jan 31 00:53:49 2006 UTC (18 years, 3 months ago) by root
Branch: MAIN
Changes since 1.35: +16 -0 lines
Log Message:
*** empty log message ***

File Contents

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