3 RXVT TECHNICAL REFERENCE - command sequences and background information
8 printf '\33]50;%s\007' 9x15,xft:Kochi" Mincho"
10 # change the locale and tell rxvt-unicode about it
11 export LC_CTYPE=ja_JP.EUC-JP; printf "\33]701;$LC_CTYPE\007"
14 printf '\33]2;%s\007' "new window title"
18 The rest of this document describes various technical aspects of
19 B<rxvt-unicode>. First the description of supported command sequences,
20 followed by menu and pixmap support and last by a description of all
21 features selectable at C<configure> time.
23 =head1 RXVT TECHNICAL REFERENCE
31 The literal character c.
35 A single (required) character.
39 A single (usually optional) numeric parameter, composed of one or more
44 A multiple numeric parameter composed of any number of single numeric
45 parameters, separated by C<;> character(s).
49 A text parameter composed of printable characters.
59 Enquiry (Ctrl-E) = Send Device Attributes (DA)
60 request attributes from terminal. See B<< C<ESC [ Ps c> >>.
72 Horizontal Tab (HT) (Ctrl-I)
76 Line Feed or New Line (NL) (Ctrl-J)
80 Vertical Tab (Ctrl-K) same as B<< C<LF> >>
84 Form Feed or New Page (NP) (Ctrl-L) same as B<< C<LF> >>
88 Carriage Return (Ctrl-M)
92 Shift Out (Ctrl-N), invokes the G1 character set.
93 Switch to Alternate Character Set
97 Shift In (Ctrl-O), invokes the G0 character set (the default).
98 Switch to Standard Character Set
106 =head1 Escape Sequences
110 =item B<< C<ESC # 8> >>
112 DEC Screen Alignment Test (DECALN)
114 =item B<< C<ESC 7> >>
118 =item B<< C<ESC 8> >>
122 =item B<< C<ESC => >>
124 Application Keypad (SMKX). See also next sequence.
126 =item B<<< C<< ESC >> >>>
130 B<Note:> If the numeric keypad is activated, eg, B<Num_Lock> has been
131 pressed, numbers or control functions are generated by the numeric keypad
134 =item B<< C<ESC D> >>
138 =item B<< C<ESC E> >>
142 =item B<< C<ESC H> >>
146 =item B<< C<ESC M> >>
150 =item B<< C<ESC N> >>
152 Single Shift Select of G2 Character Set (SS2): affects next character
153 only I<unimplemented>
155 =item B<< C<ESC O> >>
157 Single Shift Select of G3 Character Set (SS3): affects next character
158 only I<unimplemented>
160 =item B<< C<ESC Z> >>
162 Obsolete form of returns: B<< C<ESC[?1;2C> >> I<rxvt-unicode compile-time option>
164 =item B<< C<ESC c> >>
168 =item B<< C<ESC n> >>
170 Invoke the G2 Character Set (LS2)
172 =item B<< C<ESC o> >>
174 Invoke the G3 Character Set (LS3)
176 =item B<< C<ESC> ( C> >>
178 Designate G0 Character Set (ISO 2022), see below for values of C<C>.
180 =item B<< C<ESC> ) C> >>
182 Designate G1 Character Set (ISO 2022), see below for values of C<C>.
184 =item B<< C<ESC * C> >>
186 Designate G2 Character Set (ISO 2022), see below for values of C<C>.
188 =item B<< C<ESC + C> >>
190 Designate G3 Character Set (ISO 2022), see below for values of C<C>.
192 =item B<< C<ESC $ C> >>
194 Designate Kanji Character Set
196 Where B<< C<C> >> is one of:
200 C = C<0> DEC Special Character and Line Drawing Set
201 C = C<A> United Kingdom (UK)
202 C = C<B> United States (USASCII)
203 C = C<< < >> Multinational character set I<unimplemented>
204 C = C<5> Finnish character set I<unimplemented>
205 C = C<C> Finnish character set I<unimplemented>
206 C = C<K> German character set I<unimplemented>
214 =head1 CSI (Command Sequence Introducer) Sequences
218 =item B<< C<ESC [ Ps @> >>
220 Insert B<< C<Ps> >> (Blank) Character(s) [default: 1] (ICH)X<ESCOBPsA>
222 =item B<< C<ESC [ Ps A> >>
224 Cursor Up B<< C<Ps> >> Times [default: 1] (CUU)
226 =item B<< C<ESC [ Ps B> >>
228 Cursor Down B<< C<Ps> >> Times [default: 1] (CUD)X<ESCOBPsC>
230 =item B<< C<ESC [ Ps C> >>
232 Cursor Forward B<< C<Ps> >> Times [default: 1] (CUF)
234 =item B<< C<ESC [ Ps D> >>
236 Cursor Backward B<< C<Ps> >> Times [default: 1] (CUB)
238 =item B<< C<ESC [ Ps E> >>
240 Cursor Down B<< C<Ps> >> Times [default: 1] and to first column
242 =item B<< C<ESC [ Ps F> >>
244 Cursor Up B<< C<Ps> >> Times [default: 1] and to first columnX<ESCOBPsG>
246 =item B<< C<ESC [ Ps G> >>
248 Cursor to Column B<< C<Ps> >> (HPA)
250 =item B<< C<ESC [ Ps;Ps H> >>
252 Cursor Position [row;column] [default: 1;1] (CUP)
254 =item B<< C<ESC [ Ps I> >>
256 Move forward B<< C<Ps> >> tab stops [default: 1]
258 =item B<< C<ESC [ Ps J> >>
260 Erase in Display (ED)
264 B<< C<Ps = 0> >> Clear Below (default)
265 B<< C<Ps = 1> >> Clear Above
266 B<< C<Ps = 2> >> Clear All
270 =item B<< C<ESC [ Ps K> >>
276 B<< C<Ps = 0> >> Clear to Right (default)
277 B<< C<Ps = 1> >> Clear to Left
278 B<< C<Ps = 2> >> Clear All
282 =item B<< C<ESC [ Ps L> >>
284 Insert B<< C<Ps> >> Line(s) [default: 1] (IL)
286 =item B<< C<ESC [ Ps M> >>
288 Delete B<< C<Ps> >> Line(s) [default: 1] (DL)
290 =item B<< C<ESC [ Ps P> >>
292 Delete B<< C<Ps> >> Character(s) [default: 1] (DCH)
294 =item B<< C<ESC [ Ps;Ps;Ps;Ps;Ps T> >>
296 Initiate . I<unimplemented> Parameters are
297 [func;startx;starty;firstrow;lastrow].
299 =item B<< C<ESC [ Ps W> >>
305 B<< C<Ps = 0> >> Tab Set (HTS)
306 B<< C<Ps = 2> >> Tab Clear (TBC), Clear Current Column (default)
307 B<< C<Ps = 5> >> Tab Clear (TBC), Clear All
311 =item B<< C<ESC [ Ps X> >>
313 Erase B<< C<Ps> >> Character(s) [default: 1] (ECH)
315 =item B<< C<ESC [ Ps Z> >>
317 Move backward B<< C<Ps> >> [default: 1] tab stops
319 =item B<< C<ESC [ Ps '> >>
321 See B<< C<ESC [ Ps G> >>
323 =item B<< C<ESC [ Ps a> >>
325 See B<< C<ESC [ Ps C> >>
327 =item B<< C<ESC [ Ps c> >>
329 Send Device Attributes (DA)
330 B<< C<Ps = 0> >> (or omitted): request attributes from terminal
331 returns: B<< C<ESC[?1;2c> >> (``I am a VT100 with Advanced Video
334 =item B<< C<ESC [ Ps d> >>
336 Cursor to Line B<< C<Ps> >> (VPA)
338 =item B<< C<ESC [ Ps e> >>
340 See B<< C<ESC [ Ps A> >>
342 =item B<< C<ESC [ Ps;Ps f> >>
344 Horizontal and Vertical Position [row;column] (HVP) [default: 1;1]
346 =item B<< C<ESC [ Ps g> >>
352 B<< C<Ps = 0> >> Clear Current Column (default)
353 B<< C<Ps = 3> >> Clear All (TBC)
357 =item B<< C<ESC [ Pm h> >>
359 Set Mode (SM). See B<< C<ESC [ Pm l> >> sequence for description of C<Pm>.
361 =item B<< C<ESC [ Ps i> >>
363 Printing. See also the C<print-pipe> resource.
367 B<< C<Ps = 0> >> print screen (MC0)
368 B<< C<Ps = 4> >> disable transparent print mode (MC4)
369 B<< C<Ps = 5> >> enable transparent print mode (MC5)
373 =item B<< C<ESC [ Pm l> >>
379 =item B<< C<Ps = 4> >>
383 B<< C<h> >> Insert Mode (SMIR)
384 B<< C<l> >> Replace Mode (RMIR)
388 =item B<< C<Ps = 20> >> (partially implemented)
392 B<< C<h> >> Automatic Newline (LNM)
393 B<< C<l> >> Normal Linefeed (LNM)
399 =item B<< C<ESC [ Pm m> >>
401 Character Attributes (SGR)
405 B<< C<Ps = 0> >> Normal (default)
406 B<< C<Ps = 1 / 21> >> On / Off Bold (bright fg)
407 B<< C<Ps = 3 / 23> >> On / Off Italic
408 B<< C<Ps = 4 / 24> >> On / Off Underline
409 B<< C<Ps = 5 / 25> >> On / Off Slow Blink (bright bg)
410 B<< C<Ps = 6 / 26> >> On / Off Rapid Blink (bright bg)
411 B<< C<Ps = 7 / 27> >> On / Off Inverse
412 B<< C<Ps = 8 / 27> >> On / Off Invisible (NYI)
413 B<< C<Ps = 30 / 40> >> fg/bg Black
414 B<< C<Ps = 31 / 41> >> fg/bg Red
415 B<< C<Ps = 32 / 42> >> fg/bg Green
416 B<< C<Ps = 33 / 43> >> fg/bg Yellow
417 B<< C<Ps = 34 / 44> >> fg/bg Blue
418 B<< C<Ps = 35 / 45> >> fg/bg Magenta
419 B<< C<Ps = 36 / 46> >> fg/bg Cyan
420 B<< C<Ps = 38;5 / 48;5> >> set fg/bg to color #m (ISO 8613-6)
421 B<< C<Ps = 37 / 47> >> fg/bg White
422 B<< C<Ps = 39 / 49> >> fg/bg Default
423 B<< C<Ps = 90 / 100> >> fg/bg Bright Black
424 B<< C<Ps = 91 / 101> >> fg/bg Bright Red
425 B<< C<Ps = 92 / 102> >> fg/bg Bright Green
426 B<< C<Ps = 93 / 103> >> fg/bg Bright Yellow
427 B<< C<Ps = 94 / 104> >> fg/bg Bright Blue
428 B<< C<Ps = 95 / 105> >> fg/bg Bright Magenta
429 B<< C<Ps = 96 / 106> >> fg/bg Bright Cyan
430 B<< C<Ps = 97 / 107> >> fg/bg Bright White
431 B<< C<Ps = 99 / 109> >> fg/bg Bright Default
435 =item B<< C<ESC [ Ps n> >>
437 Device Status Report (DSR)
441 B<< C<Ps = 5> >> Status Report B<< C<ESC [ 0 n> >> (``OK'')
442 B<< C<Ps = 6> >> Report Cursor Position (CPR) [row;column] as B<< C<ESC [ r ; c R> >>
443 B<< C<Ps = 7> >> Request Display Name
444 B<< C<Ps = 8> >> Request Version Number (place in window title)
448 =item B<< C<ESC [ Ps;Ps r> >>
450 Set Scrolling Region [top;bottom]
451 [default: full size of window] (CSR)
453 =item B<< C<ESC [ s> >>
457 =item B<< C<ESC [ Ps x> >>
459 Request Terminal Parameters (DECREQTPARM)
461 =item B<< C<ESC [ u> >>
469 =head1 DEC Private Modes
473 =item B<< C<ESC [ ? Pm h> >>
475 DEC Private Mode Set (DECSET)
477 =item B<< C<ESC [ ? Pm l> >>
479 DEC Private Mode Reset (DECRST)
481 =item B<< C<ESC [ ? Pm r> >>
483 Restore previously saved DEC Private Mode Values.
485 =item B<< C<ESC [ ? Pm s> >>
487 Save DEC Private Mode Values.
489 =item B<< C<ESC [ ? Pm t> >>
491 Toggle DEC Private Mode Values (rxvt extension). I<where>
495 =item B<< C<Ps = 1> >> (DECCKM)
499 B<< C<h> >> Application Cursor Keys
500 B<< C<l> >> Normal Cursor Keys
504 =item B<< C<Ps = 2> >> (ANSI/VT52 mode)
508 B<< C<h> >> Enter VT52 mode
509 B<< C<l> >> Enter VT52 mode
513 =item B<< C<Ps = 3> >>
517 B<< C<h> >> 132 Column Mode (DECCOLM)
518 B<< C<l> >> 80 Column Mode (DECCOLM)
522 =item B<< C<Ps = 4> >>
526 B<< C<h> >> Smooth (Slow) Scroll (DECSCLM)
527 B<< C<l> >> Jump (Fast) Scroll (DECSCLM)
531 =item B<< C<Ps = 5> >>
535 B<< C<h> >> Reverse Video (DECSCNM)
536 B<< C<l> >> Normal Video (DECSCNM)
540 =item B<< C<Ps = 6> >>
544 B<< C<h> >> Origin Mode (DECOM)
545 B<< C<l> >> Normal Cursor Mode (DECOM)
549 =item B<< C<Ps = 7> >>
553 B<< C<h> >> Wraparound Mode (DECAWM)
554 B<< C<l> >> No Wraparound Mode (DECAWM)
558 =item B<< C<Ps = 8> >> I<unimplemented>
562 B<< C<h> >> Auto-repeat Keys (DECARM)
563 B<< C<l> >> No Auto-repeat Keys (DECARM)
567 =item B<< C<Ps = 9> >> X10 XTerm
571 B<< C<h> >> Send Mouse X & Y on button press.
572 B<< C<l> >> No mouse reporting.
576 =item B<< C<Ps = 10> >> (B<rxvt>)
580 B<< C<h> >> menuBar visible
581 B<< C<l> >> menuBar invisible
585 =item B<< C<Ps = 25> >>
589 B<< C<h> >> Visible cursor {cnorm/cvvis}
590 B<< C<l> >> Invisible cursor {civis}
594 =item B<< C<Ps = 30> >>
598 B<< C<h> >> scrollBar visisble
599 B<< C<l> >> scrollBar invisisble
603 =item B<< C<Ps = 35> >> (B<rxvt>)
607 B<< C<h> >> Allow XTerm Shift+key sequences
608 B<< C<l> >> Disallow XTerm Shift+key sequences
612 =item B<< C<Ps = 38> >> I<unimplemented>
614 Enter Tektronix Mode (DECTEK)
616 =item B<< C<Ps = 40> >>
620 B<< C<h> >> Allow 80/132 Mode
621 B<< C<l> >> Disallow 80/132 Mode
625 =item B<< C<Ps = 44> >> I<unimplemented>
629 B<< C<h> >> Turn On Margin Bell
630 B<< C<l> >> Turn Off Margin Bell
634 =item B<< C<Ps = 45> >> I<unimplemented>
638 B<< C<h> >> Reverse-wraparound Mode
639 B<< C<l> >> No Reverse-wraparound Mode
643 =item B<< C<Ps = 46> >> I<unimplemented>
645 =item B<< C<Ps = 47> >>
649 B<< C<h> >> Use Alternate Screen Buffer
650 B<< C<l> >> Use Normal Screen Buffer
656 =item B<< C<Ps = 66> >>
660 B<< C<h> >> Application Keypad (DECPAM) == C<ESC =>
661 B<< C<l> >> Normal Keypad (DECPNM) == C<< ESC > >>
665 =item B<< C<Ps = 67> >>
669 B<< C<h> >> Backspace key sends B<< C<BS> (DECBKM) >>
670 B<< C<l> >> Backspace key sends B<< C<DEL> >>
674 =item B<< C<Ps = 1000> >> (X11 XTerm)
678 B<< C<h> >> Send Mouse X & Y on button press and release.
679 B<< C<l> >> No mouse reporting.
683 =item B<< C<Ps = 1001> >> (X11 XTerm) I<unimplemented>
687 B<< C<h> >> Use Hilite Mouse Tracking.
688 B<< C<l> >> No mouse reporting.
692 =item B<< C<Ps = 1010> >> (B<rxvt>)
696 B<< C<h> >> Don't scroll to bottom on TTY output
697 B<< C<l> >> Scroll to bottom on TTY output
701 =item B<< C<Ps = 1011> >> (B<rxvt>)
705 B<< C<h> >> Scroll to bottom when a key is pressed
706 B<< C<l> >> Don't scroll to bottom when a key is pressed
710 =item B<< C<Ps = 1047> >>
714 B<< C<h> >> Use Alternate Screen Buffer
715 B<< C<l> >> Use Normal Screen Buffer - clear Alternate Screen Buffer if returning from it
719 =item B<< C<Ps = 1048> >>
723 B<< C<h> >> Save cursor position
724 B<< C<l> >> Restore cursor position
728 =item B<< C<Ps = 1049> >>
732 B<< C<h> >> Use Alternate Screen Buffer - clear Alternate Screen Buffer if switching to it
733 B<< C<l> >> Use Normal Screen Buffer
743 =head1 XTerm Operating System Commands
747 =item B<< C<ESC ] Ps;Pt ST> >>
749 Set XTerm Parameters. 8-bit ST: 0x9c, 7-bit ST sequence: ESC \ (0x1b,
750 0x5c), backwards compatible terminator BEL (0x07) is also accepted. any
751 B<octet> can be escaped by prefixing it with SYN (0x16, ^V).
755 B<< C<Ps = 0> >> Change Icon Name and Window Title to B<< C<Pt> >>
756 B<< C<Ps = 1> >> Change Icon Name to B<< C<Pt> >>
757 B<< C<Ps = 2> >> Change Window Title to B<< C<Pt> >>
758 B<< C<Ps = 3> >> If B<< C<Pt> >> starts with a B<< C<?> >>, query the (STRING) property of the window and return it. If B<< C<Pt> >> contains a B<< C<=> >>, set the named property to the given value, else delete the specified property.
759 B<< C<Ps = 4> >> B<< C<Pt> >> is a semi-colon separated sequence of one or more semi-colon separated B<number>/B<name> pairs, where B<number> is an index to a colour and B<name> is the name of a colour. Each pair causes the B<number>ed colour to be changed to B<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
760 B<< C<Ps = 10> >> Change colour of text foreground to B<< C<Pt> >> B<(NB: may change in future)>
761 B<< C<Ps = 11> >> Change colour of text background to B<< C<Pt> >> B<(NB: may change in future)>
762 B<< C<Ps = 12> >> Change colour of text cursor foreground to B<< C<Pt> >>
763 B<< C<Ps = 13> >> Change colour of mouse foreground to B<< C<Pt> >>
764 B<< C<Ps = 17> >> Change colour of highlight characters to B<< C<Pt> >>
765 B<< C<Ps = 18> >> Change colour of bold characters to B<< C<Pt> >>
766 B<< C<Ps = 19> >> Change colour of underlined characters to B<< C<Pt> >>
767 B<< C<Ps = 20> >> Change default background to B<< C<Pt> >>
768 B<< C<Ps = 39> >> Change default foreground colour to B<< C<Pt> >> I<rxvt compile-time option>
769 B<< C<Ps = 46> >> Change Log File to B<< C<Pt> >> I<unimplemented>
770 B<< C<Ps = 49> >> Change default background colour to B<< C<Pt> >> I<rxvt compile-time option>
771 B<< C<Ps = 50> >> Set fontset to B<< C<Pt> >>, with the following special values of B<< C<Pt> >> (B<rxvt>) B<< C<#+n> >> change up B<< C<n> >> B<< C<#-n> >> change down B<< C<n> >> if B<< C<n> >> is missing of 0, a value of 1 is used I<empty> change to font0 B<< C<n> >> change to font B<< C<n> >>
772 B<< C<Ps = 55> >> Log all scrollback buffer and all of screen to B<< C<Pt> >>
773 B<< C<Ps = 701> >> Change current locale to B<< C<Pt> >>, or, if B<< C<Pt> >> is B<< C<?> >>, return the current locale (@@RXVT_NAME@@ extension)
774 B<< C<Ps = 703> >> Menubar command B<< C<Pt> >> I<rxvt compile-time option> (rxvt-unicode extension)
775 B<< C<Ps = 704> >> Change colour of italic characters to B<< C<Pt> >>
776 B<< C<Ps = 705> >> Change background pixmap tint colour to B<< C<Pt> >>
777 B<< C<Ps = 710> >> Set normal fontset to B<< C<Pt> >>. Same as C<Ps = 50>.
778 B<< C<Ps = 711> >> Set bold fontset to B<< C<Pt> >>. Similar to C<Ps = 50>.
779 B<< C<Ps = 712> >> Set italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50>.
780 B<< C<Ps = 713> >> Set bold-italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50>.
790 B<< The exact syntax used is I<almost> solidified. >>
791 In the menus, B<DON'T> try to use menuBar commands that add or remove a
794 Note that in all of the commands, the B<< I</path/> >> I<cannot> be
795 omitted: use B<./> to specify a menu relative to the current menu.
797 =head2 Overview of menuBar operation
799 For the menuBar XTerm escape sequence C<ESC ] 703 ; Pt ST>, the syntax
800 of C<Pt> can be used for a variety of tasks:
802 At the top level is the current menuBar which is a member of a circular
803 linked-list of other such menuBars.
805 The menuBar acts as a parent for the various drop-down menus, which in
806 turn, may have labels, separator lines, menuItems and subMenus.
808 The menuItems are the useful bits: you can use them to mimic keyboard
809 input or even to send text or escape sequences back to rxvt.
811 The menuBar syntax is intended to provide a simple yet robust method of
812 constructing and manipulating menus and navigating through the
815 The first step is to use the tag B<< [menu:I<name>] >> which creates
816 the menuBar called I<name> and allows access. You may now or menus,
817 subMenus, and menuItems. Finally, use the tag B<[done]> to set the
818 menuBar access as B<readonly> to prevent accidental corruption of the
819 menus. To re-access the current menuBar for alterations, use the tag
820 B<[menu]>, make the alterations and then use B<[done]>
828 =item B<< [menu:+I<name>] >>
830 access the named menuBar for creation or alteration. If a new menuBar
831 is created, it is called I<name> (max of 15 chars) and the current
832 menuBar is pushed onto the stack
836 access the current menuBar for alteration
838 =item B<< [title:+I<string>] >>
840 set the current menuBar's title to I<string>, which may contain the
841 following format specifiers:
842 B<%%> : literal B<%> character
843 B<%n> : rxvt name (as per the B<-name> command-line option)
848 set menuBar access as B<readonly>.
849 End-of-file tag for B<< [read:+I<file>] >> operations.
851 =item B<< [read:+I<file>] >>
853 read menu commands directly from I<file> (extension ".menu" will be
854 appended if required.) Start reading at a line with B<[menu]> or B<<
855 [menu:+I<name> >> and continuing until B<[done]> is encountered.
857 Blank and comment lines (starting with B<#>) are ignored. Actually,
858 since any invalid menu commands are also ignored, almost anything could
859 be construed as a comment line, but this may be tightened up in the
860 future ... so don't count on it!.
862 =item B<< [read:+I<file>;+I<name>] >>
864 The same as B<< [read:+I<file>] >>, but start reading at a line with
865 B<< [menu:+I<name>] >> and continuing until B<< [done:+I<name>] >> or
866 B<[done]> is encountered.
870 dump all menuBars to the file B</tmp/rxvt-PID> in a format suitable for
875 remove the named menuBar
879 remove the current menuBar
881 =item B<[rm*] [rm:*]>
887 swap the top two menuBars
891 access the previous menuBar
895 access the next menuBar
899 Enable display of the menuBar
903 Disable display of the menuBar
905 =item B<< [pixmap:+I<name>] >>
907 =item B<< [pixmap:+I<name>;I<scaling>] >>
909 (set the background pixmap globally
911 B<< A Future implementation I<may> make this local to the menubar >>)
913 =item B<< [:+I<command>:] >>
915 ignore the menu readonly status and issue a I<command> to or a menu or
916 menuitem or change the ; a useful shortcut for setting the quick arrows
923 =head2 Adding and accessing menus
925 The following commands may also be B<+> prefixed.
931 access menuBar top level
935 access current menu level
939 access parent menu (1 level up)
943 access parent menu (multiple levels up)
945 =item B<< I</path/>menu >>
949 =item B<< I</path/>menu/* >>
951 add/access menu and clear it if it exists
953 =item B<< I</path/>{-} >>
957 =item B<< I</path/>{item} >>
959 add B<item> as a label
961 =item B<< I</path/>{item} action >>
963 add/alter I<menuitem> with an associated I<action>
965 =item B<< I</path/>{item}{right-text} >>
967 add/alter I<menuitem> with B<right-text> as the right-justified text
968 and as the associated I<action>
970 =item B<< I</path/>{item}{rtext} action >>
972 add/alter I<menuitem> with an associated I<action> and with B<rtext> as
973 the right-justified text.
979 =item Special characters in I<action> must be backslash-escaped:
981 B<\a \b \E \e \n \r \t \octal>
983 =item or in control-character notation:
985 B<^@, ^A .. ^Z .. ^_, ^?>
989 To send a string starting with a B<NUL> (B<^@>) character to the
990 program, start I<action> with a pair of B<NUL> characters (B<^@^@>),
991 the first of which will be stripped off and the balance directed to the
992 program. Otherwise if I<action> begins with B<NUL> followed by
993 non-+B<NUL> characters, the leading B<NUL> is stripped off and the
994 balance is sent back to rxvt.
996 As a convenience for the many Emacs-type editors, I<action> may start
997 with B<M-> (eg, B<M-$> is equivalent to B<\E$>) and a B<CR> will be
998 appended if missed from B<M-x> commands.
1000 As a convenience for issuing XTerm B<ESC]> sequences from a menubar (or
1001 quick arrow), a B<BEL> (B<^G>) will be appended if needed.
1007 B<M-xapropos> is equivalent to B<\Exapropos\r>
1011 B<\E]703;mona;100> is equivalent to B<\E]703;mona;100\a>
1015 The option B<< {I<right-rtext>} >> will be right-justified. In the
1016 absence of a specified action, this text will be used as the I<action>
1023 B</File/{Open}{^X^F}> is equivalent to B</File/{Open}{^X^F} ^X^F>
1027 The left label I<is> necessary, since it's used for matching, but
1028 implicitly hiding the left label (by using same name for both left and
1029 right labels), or explicitly hiding the left label (by preceeding it
1030 with a dot), makes it possible to have right-justified text only.
1036 B</File/{Open}{Open} Open-File-Action>
1040 B</File/{.anylabel}{Open} Open-File-Action>
1046 =head2 Removing menus
1052 remove all menus from the menuBar, the same as B<[clear]>
1054 =item B<< -+I</path>menu+ >>
1058 =item B<< -+I</path>{item}+ >>
1062 =item B<< -+I</path>{-} >>
1066 =item B<-/path/menu/*>
1068 remove all items, separators and submenus from menu
1076 The menus also provide a hook for I<quick arrows> to provide easier
1077 user access. If nothing has been explicitly set, the default is to
1078 emulate the curror keys. The syntax permits each arrow to be altered
1079 individually or all four at once without re-entering their common
1080 beginning/end text. For example, to explicitly associate cursor actions
1081 with the arrows, any of the following forms could be used:
1085 =item B<< <r>+I<Right> >>
1087 =item B<< <l>+I<Left> >>
1089 =item B<< <u>+I<Up> >>
1091 =item B<< <d>+I<Down> >>
1093 Define actions for the respective arrow buttons
1095 =item B<< <b>+I<Begin> >>
1097 =item B<< <e>+I<End> >>
1099 Define common beginning/end parts for I<quick arrows> which used in
1100 conjunction with the above <r> <l> <u> <d> constructs
1106 =item For example, define arrows individually,
1116 =item or all at once
1118 <u>\E[AZ<><d>\E[BZ<><r>\E[CZ<><l>\E[D
1120 =item or more compactly (factoring out common parts)
1122 <b>\E[<u>AZ<><d>BZ<><r>CZ<><l>D
1128 =head2 Command Summary
1130 A short summary of the most I<common> commands:
1136 use an existing named menuBar or start a new one
1140 use the current menuBar
1142 =item [title:string]
1148 set menu access to readonly and, if reading from a file, signal EOF
1152 if reading from a file using [read:file;name] signal EOF
1156 remove named menuBar(s)
1160 remove current menuBar
1164 remove all menuBar(s)
1168 swap top two menuBars
1172 access the previous menuBar
1176 access the next menuBar
1188 =item [pixmap;file;scaling]
1190 set a background pixmap
1194 =item [read:file;name]
1196 read in a menu from a file
1200 dump out all menuBars to /tmp/rxvt-PID
1204 access menuBar top level
1212 access current or parent menu level
1222 =item /path/{item}{rtext} action
1228 remove all menus from the menuBar
1232 remove menu items, separators and submenus from menu
1246 =item <b>Begin<r>Right<l>Left<u>Up<d>Down<e>End
1255 For the XPM XTerm escape sequence B<< C<ESC ] 20 ; Pt ST> >> then value
1256 of B<< C<Pt> >> can be the name of the background pixmap followed by a
1257 sequence of scaling/positioning commands separated by semi-colons. The
1258 scaling/positioning commands are as follows:
1262 =item query scale/position
1266 =item change scale and position
1270 B<WxH+X> (== B<WxH+X+X>)
1272 B<WxH> (same as B<WxH+50+50>)
1274 B<W+X+Y> (same as B<WxW+X+Y>)
1276 B<W+X> (same as B<WxW+X+X>)
1278 B<W> (same as B<WxW+50+50>)
1280 =item change position (absolute)
1284 B<=+X> (same as B<=+X+Y>)
1286 =item change position (relative)
1290 B<+X> (same as B<+X+Y>)
1292 =item rescale (relative)
1294 B<Wx0> -> B<W *= (W/100)>
1296 B<0xH> -> B<H *= (H/100)>
1304 =item B<\E]20;funky\a>
1306 load B<funky.xpm> as a tiled image
1308 =item B<\E]20;mona;100\a>
1310 load B<mona.xpm> with a scaling of 100%
1312 =item B<\E]20;;200;?\a>
1314 rescale the current pixmap to 200% and display the image geometry in
1320 =head1 Mouse Reporting
1324 =item B<< C<< ESC [ M <b> <x> <y> >> >>
1326 report mouse position
1330 The lower 2 bits of B<< C<< <b> >> >> indicate the button:
1334 =item Button = B<< C<< (<b> - SPACE) & 3 >> >>
1341 3 button released (X11 mouse report)
1347 The upper bits of B<< C<< <b> >> >> indicate the modifiers when the
1348 button was pressed and are added together (X11 mouse report only):
1352 =item State = B<< C<< (<b> - SPACE) & 60 >> >>
1359 32 Double Click I<(Rxvt extension)>
1363 Col = B<< C<< <x> - SPACE >> >>
1365 Row = B<< C<< <y> - SPACE >> >>
1372 Note: B<Shift> + B<F1>-B<F10> generates B<F11>-B<F20>
1374 For the keypad, use B<Shift> to temporarily override Application-Keypad
1375 setting use B<Num_Lock> to toggle Application-Keypad setting if
1376 B<Num_Lock> is off, toggle Application-Keypad setting. Also note that
1377 values of B<Home>, B<End>, B<Delete> may have been compiled differently on
1382 B<Normal> B<Shift> B<Control> B<Ctrl+Shift>
1383 Tab ^I ESC [ Z ^I ESC [ Z
1384 BackSpace ^H ^? ^? ^?
1385 Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
1386 Insert ESC [ 2 ~ I<paste> ESC [ 2 ^ ESC [ 2 @
1387 Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1388 Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
1389 Prior ESC [ 5 ~ I<scroll-up> ESC [ 5 ^ ESC [ 5 @
1390 Next ESC [ 6 ~ I<scroll-down> ESC [ 6 ^ ESC [ 6 @
1391 Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
1392 End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
1393 Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1394 F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
1395 F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
1396 F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
1397 F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
1398 F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
1399 F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
1400 F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
1401 F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
1402 F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
1403 F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
1404 F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
1405 F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
1406 F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
1407 F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
1408 F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
1409 F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
1410 F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
1411 F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
1412 F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
1413 F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
1415 Up ESC [ A ESC [ a ESC O a ESC O A
1416 Down ESC [ B ESC [ b ESC O b ESC O B
1417 Right ESC [ C ESC [ c ESC O c ESC O C
1418 Left ESC [ D ESC [ d ESC O d ESC O D
1420 KP_F1 ESC O P ESC O P
1421 KP_F2 ESC O Q ESC O Q
1422 KP_F3 ESC O R ESC O R
1423 KP_F4 ESC O S ESC O S
1424 XK_KP_Multiply * ESC O j
1426 XK_KP_Separator , ESC O l
1427 XK_KP_Subtract - ESC O m
1428 XK_KP_Decimal . ESC O n
1429 XK_KP_Divide / ESC O o
1443 =head1 CONFIGURE OPTIONS
1445 General hint: if you get compile errors, then likely your configuration
1446 hasn't been tested well. Either try with --enable-everything or use the
1447 ./reconf script as a base for experiments. ./reconf is used by myself,
1448 so it should generally be a working config. Of course, you should always
1449 report when a combination doesn't work, so it can be fixed. Marc Lehmann
1454 =item --enable-everything
1456 Add support for all non-multichoice options listed in "./configure
1457 --help". Note that unlike other enable options this is order dependant.
1458 You can specify this and then disable options which this enables by
1459 I<following> this with the appropriate commands.
1463 Add support for Xft (anti-aliases, among others) fonts. Xft fonts are
1464 slower and require lots of memory, but as long as you don't use them, you
1467 =item --enable-font-styles
1469 Add support for B<bold>, I<italic> and B<< I<bold italic> >> font
1470 styles. The fonts can be set manually or automatically.
1472 =item --with-codesets=NAME,...
1474 Compile in support for additional codeset (encoding) groups (eu, vn are
1475 always compiled in, which includes most 8-bit character sets). These
1476 codeset tables are currently only used for driving X11 core fonts, they
1477 are not required for Xft fonts. Compiling them in will make your binary
1478 bigger (together about 700kB), but it doesn't increase memory usage unless
1479 you use an X11 font requiring one of these encodings.
1483 all all available codeset groups
1484 cn common chinese encodings
1485 cn_ext rarely used but very big chinese encodigs
1486 jp common japanese encodings
1487 jp_ext rarely used but big japanese encodings
1494 Add support for XIM (X Input Method) protocol. This allows using
1495 alternative input methods (e.g. kinput2) and will also correctly
1496 set up the input for people using dead keys or compose keys.
1498 =item --enable-unicode3
1500 Enable direct support for displaying unicode codepoints above
1501 65535 (the basic multilingual page). This increases storage
1502 requirements per character from 2 to 4 bytes. X11 fonts do not yet
1503 support these extra characters, but Xft does.
1505 Please note that rxvt-unicode can store unicode code points >65535
1506 even without this flag, but the number of such characters is
1507 limited to a view thousand (shared with combining characters,
1508 see next switch), and right now rxvt-unicode cannot display them
1509 (input/output and cut&paste still work, though).
1511 =item --enable-combining
1513 Enable automatic composition of combining characters into
1514 composite characters. This is required for proper viewing of text
1515 where accents are encoded as seperate unicode characters. This is
1516 done by using precomposited characters when available or creating
1517 new pseudo-characters when no precomposed form exists.
1519 Without --enable-unicode3, the number of additional precomposed
1520 characters is rather limited (2048, if this is full, rxvt will use the
1521 private use area, extending the number of combinations to 8448). With
1522 --enable-unicode3, no practical limit exists. This will also enable
1523 storage of characters >65535.
1525 The combining table also contains entries for arabic presentation forms,
1526 but these are not currently used. Bug me if you want these to be used.
1528 =item --enable-fallback(=CLASS)
1530 When reading resource settings, also read settings for class CLASS
1531 (default: Rxvt). To disable resource fallback use --disable-fallback.
1533 =item --with-res-name=NAME
1535 Use the given name (default: urxvt) as default application name when
1536 reading resources. Specify --with-res-name=rxvt to replace rxvt.
1538 =item --with-res-class=CLASS
1540 Use the given class (default: URxvt) as default application class
1541 when reading resources. Specify --with-res-class=Rxvt to replace
1546 Write user and tty to utmp file (used by programs like F<w>) at
1547 start of rxvt execution and delete information when rxvt exits.
1551 Write user and tty to wtmp file (used by programs like F<last>) at
1552 start of rxvt execution and write logout when rxvt exits. This
1553 option requires --enable-utmp to also be specified.
1555 =item --enable-lastlog
1557 Write user and tty to lastlog file (used by programs like
1558 F<lastlogin>) at start of rxvt execution. This option requires
1559 --enable-utmp to also be specified.
1561 =item --enable-xpm-background
1563 Add support for XPM background pixmaps.
1565 =item --enable-transparency
1567 Add support for inheriting parent backgrounds thus giving a fake
1568 transparency to the term.
1570 =item --enable-fading
1572 Add support for fading the text when focus is lost.
1574 =item --enable-tinting
1576 Add support for tinting of transparent backgrounds.
1578 =item --enable-menubar
1580 Add support for our menu bar system (this interacts badly with
1581 dynamic locale switching currently).
1583 =item --enable-rxvt-scroll
1585 Add support for the original rxvt scrollbar.
1587 =item --enable-next-scroll
1589 Add support for a NeXT-like scrollbar.
1591 =item --enable-xterm-scroll
1593 Add support for an Xterm-like scrollbar.
1595 =item --enable-plain-scroll
1597 Add support for a very unobtrusive, plain-looking scrollbar that
1598 is the favourite of the rxvt-unicode author, having used it for
1601 =item --enable-half-shadow
1603 Make shadows on the scrollbar only half the normal width & height.
1604 only applicable to rxvt scrollbars.
1606 =item --enable-ttygid
1608 Change tty device setting to group "tty" - only use this if
1609 your system uses this type of security.
1611 =item --disable-backspace-key
1613 Disable any handling of the backspace key by us - let the X server
1616 =item --disable-delete-key
1618 Disable any handling of the delete key by us - let the X server
1621 =item --disable-resources
1623 Remove all resources checking.
1625 =item --enable-xgetdefault
1627 Make resources checking via XGetDefault() instead of our small
1628 version which only checks ~/.Xdefaults, or if that doesn't exist
1631 =item --enable-strings
1633 Add support for our possibly faster memset() function and other
1634 various routines, overriding your system's versions which may
1635 have been hand-crafted in assembly or may require extra libraries
1636 to link in. (this breaks ANSI-C rules and has problems on many
1639 =item --disable-swapscreen
1641 Remove support for swap screen.
1643 =item --enable-frills
1645 Add support for many small features that are not essential but nice to
1646 have. Normally you want this, but for very small binaries you may want to
1649 =item --enable-iso14755
1651 Enable extended ISO 14755 support (see @@RXVT_NAME@@(1), or
1652 F<doc/rxvt.1.txt>). Basic support (section 5.1) is enabled by
1653 C<--enable-frills>, while support for 5.2, 5.3 and 5.4 is enabled with
1656 =item --enable-linespace
1658 Add support to provide user specified line spacing between text rows.
1660 =item --enable-keepscrolling
1662 Add support for continual scrolling of the display when you hold
1663 the mouse button down on a scrollbar arrow.
1665 =item --enable-mousewheel
1667 Add support for scrolling via mouse wheel or buttons 4 & 5.
1669 =item --enable-slipwheeling
1671 Add support for continual scrolling (using the mouse wheel as an
1672 accelerator) while the control key is held down. This option
1673 requires --enable-mousewheel to also be specified.
1675 =item --disable-new-selection
1677 Remove support for mouse selection style like that of xterm.
1679 =item --enable-dmalloc
1681 Use Gray Watson's malloc - which is good for debugging See
1682 http://www.letters.com/dmalloc/ for details If you use either this or the
1683 next option, you may need to edit src/Makefile after compiling to point
1684 DINCLUDE and DLIB to the right places.
1686 You can only use either this option and the following (should
1689 =item --enable-dlmalloc
1691 Use Doug Lea's malloc - which is good for a production version
1692 See L<http://g.oswego.edu/dl/html/malloc.html> for details.
1694 =item --enable-smart-resize
1696 Add smart growth/shrink behaviour when changing font size via from hot
1697 keys. This should keep in a fixed position the rxvt corner which is
1698 closest to a corner of the screen.
1700 =item --enable-cursor-blink
1702 Add support for a blinking cursor.
1704 =item --enable-pointer-blank
1706 Add support to have the pointer disappear when typing or inactive.
1708 =item --with-name=NAME
1710 Set the basename for the installed binaries (default: urxvt, resulting in
1711 urxvt, urxvtd etc.). Specify --with-name=rxvt to replace rxvt.
1713 =item --with-term=NAME
1715 Change the environmental variable for the terminal to NAME (default
1718 =item --with-terminfo=PATH
1720 Change the environmental variable for the path to the terminfo tree to
1725 Use the X Window System (pretty much default, eh?).
1727 =item --with-xpm-includes=DIR
1729 Look for the XPM includes in DIR.
1731 =item --with-xpm-library=DIR
1733 Look for the XPM library in DIR.
1737 Not needed - define via --enable-xpm-background.
1743 Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
1744 reworked it from the original Rxvt documentation, which was done by Geoff
1745 Wing <gcw@pobox.com>, who in turn used the XTerm documentation and other