ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.txt
Revision: 1.41
Committed: Thu Jan 12 23:11:23 2006 UTC (18 years, 6 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.40: +15 -0 lines
Log Message:
*** empty log message ***

File Contents

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