ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.txt
Revision: 1.2
Committed: Sun Jan 16 15:59:45 2005 UTC (19 years, 5 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.1: +37 -41 lines
Log Message:
*** empty log message ***

File Contents

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