~ubuntu-branches/ubuntu/jaunty/rxvt-unicode/jaunty-proposed

« back to all changes in this revision

Viewing changes to README.FAQ

  • Committer: Bazaar Package Importer
  • Author(s): Decklin Foster
  • Date: 2006-09-01 14:44:58 UTC
  • mfrom: (1.1.8 upstream) (3.1.1 etch)
  • Revision ID: james.westby@ubuntu.com-20060901144458-98hrz8zg01w8a3vy
Tags: 7.9-2
* Edit the comments in the app-defaults file, and disable all settings by
  default. If font autoselection fails, I would prefer to open a new bug
  specifically for that. (Closes: #385481)
* Reorganize and edit README.Debian, pushing as much as possible into FAQ
  format (with resource setting issues first).

Show diffs side-by-side

added added

removed removed

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