ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.7.pod
Revision: 1.1
Committed: Thu Aug 12 20:42:12 2004 UTC (19 years, 10 months ago) by root
Branch: MAIN
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 =head1 Rxvt Technical Reference
2    
3     Marc Lehmann <rxvt@schmorp.de>, converted to pod and reworked from the
4     original Rxvt documentation by Geoff Wing <gcw@pobox.com>, who in turn used
5     the XTerm documentation and other sources.
6    
7     =head1 Definitions
8    
9     =over 4
10    
11     =item B<< C<c> >>
12    
13     The literal character c.
14    
15     =item B<< C<C> >>
16    
17     A single (required) character.
18    
19     =item B<< C<Ps> >>
20    
21     A single (usually optional) numeric parameter, composed of one or more
22     digits.
23    
24     =item B<< C<Pm> >>
25    
26     A multiple numeric parameter composed of any number of single numeric
27     parameters, separated by C<;> character(s).
28    
29     =item B<< C<Pt> >>
30    
31     A text parameter composed of printable characters.
32    
33     =back
34    
35     =head1 Values
36    
37     =over 4
38    
39     =item B<< C<ENQ> >>
40    
41     Enquiry (Ctrl-E) = Send Device Attributes (DA)
42     request attributes from terminal ==
43    
44     =item B<< C<BEL> >>
45    
46     Bell (Ctrl-G)
47    
48     =item B<< C<BS> >>
49    
50     Backspace (Ctrl-H)
51    
52     =item B<< C<TAB> >>
53    
54     Horizontal Tab (HT) (Ctrl-I)
55    
56     =item B<< C<LF> >>
57    
58     Line Feed or New Line (NL) (Ctrl-J)
59    
60     =item B<< C<VT> >>
61    
62     Vertical Tab (Ctrl-K) same as B<< C<LF> >>
63    
64     =item B<< C<FF> >>
65    
66     Form Feed or New Page (NP) (Ctrl-L) same as B<< C<LF> >>
67    
68     =item B<< C<CR> >>
69    
70     Carriage Return (Ctrl-M)
71    
72     =item B<< C<SO> >>
73    
74     Shift Out (Ctrl-N), invokes the G1 character set.
75     Switch to Alternate Character Set
76    
77     =item B<< C<SI> >>
78    
79     Shift In (Ctrl-O), invokes the G0 character set (the default).
80     Switch to Standard Character Set
81    
82     =item B<< C<SPC> >>
83    
84     Space Character
85    
86     =back
87    
88     =head1 Escape Sequences
89    
90     =over 4
91    
92     =item B<< C<ESC # 8> >>
93    
94     DEC Screen Alignment Test (DECALN)
95    
96     =item B<< C<ESC 7> >>
97    
98     Save Cursor (SC)
99    
100     =item B<< C<ESC 8> >>
101    
102     Restore Cursor
103    
104     =item B<< C<ESC => >>
105    
106     Application Keypad (SMKX). See also next sequence.
107    
108     =item B<<< C<< ESC >> >>>
109    
110     Normal Keypad (RMKX)
111    
112     B<Note:> If the numeric keypad is activated, eg, B<Num_Lock> has been
113     pressed, numbers or control functions are generated by the numeric keypad
114     (see Key Codes).
115    
116     =item B<< C<ESC D> >>
117    
118     Index (IND)
119    
120     =item B<< C<ESC E> >>
121    
122     Next Line (NEL)
123    
124     =item B<< C<ESC H> >>
125    
126     Tab Set (HTS)
127    
128     =item B<< C<ESC M> >>
129    
130     Reverse Index (RI)
131    
132     =item B<< C<ESC N> >>
133    
134     Single Shift Select of G2 Character Set (SS2): affects next character
135     only I<unimplemented>
136    
137     =item B<< C<ESC O> >>
138    
139     Single Shift Select of G3 Character Set (SS3): affects next character
140     only I<unimplemented>
141    
142     =item B<< C<ESC Z> >>
143    
144     Obsolete form of returns: B<< C<ESC[?1;2C> >> I<rxvt compile-time option>
145    
146     =item B<< C<ESC c> >>
147    
148     Full reset (RIS)
149    
150     =item B<< C<ESC n> >>
151    
152     Invoke the G2 Character Set (LS2)
153    
154     =item B<< C<ESC o> >>
155    
156     Invoke the G3 Character Set (LS3)
157    
158     =item B<< C<ESC>(C<C> >>
159    
160     Designate G0 Character Set (ISO 2022), see below for values of C<C>.
161    
162     =item B<< C<ESC>)C<C> >>
163    
164     Designate G1 Character Set (ISO 2022), see below for values of C<C>.
165    
166     =item B<< C<ESC * C> >>
167    
168     Designate G2 Character Set (ISO 2022), see below for values of C<C>.
169    
170     =item B<< C<ESC + C> >>
171    
172     Designate G3 Character Set (ISO 2022), see below for values of C<C>.
173    
174     =item B<< C<ESC $ C> >>
175    
176     Designate Kanji Character Set
177    
178     Where B<< C<C> >> is one of:
179    
180     =begin table
181    
182     C = C<0> DEC Special Character and Line Drawing Set
183     C = C<A> United Kingdom (UK)
184     C = C<B> United States (USASCII)
185     C = C<< < >> Multinational character set I<unimplemented>
186     C = C<5> Finnish character set I<unimplemented>
187     C = C<C> Finnish character set I<unimplemented>
188     C = C<K> German character set I<unimplemented>
189    
190     =end table
191    
192     =back
193    
194     X<CSI>
195    
196     =head1 CSI (Code Sequence Introducer) Sequences
197    
198     =over 4
199    
200     =item B<< C<ESC [ Ps @> >>
201    
202     Insert B<< C<Ps> >> (Blank) Character(s) [default: 1] (ICH)X<ESCOBPsA>
203    
204     =item B<< C<ESC [ Ps A> >>
205    
206     Cursor Up B<< C<Ps> >> Times [default: 1] (CUU)
207    
208     =item B<< C<ESC [ Ps B> >>
209    
210     Cursor Down B<< C<Ps> >> Times [default: 1] (CUD)X<ESCOBPsC>
211    
212     =item B<< C<ESC [ Ps C> >>
213    
214     Cursor Forward B<< C<Ps> >> Times [default: 1] (CUF)
215    
216     =item B<< C<ESC [ Ps D> >>
217    
218     Cursor Backward B<< C<Ps> >> Times [default: 1] (CUB)
219    
220     =item B<< C<ESC [ Ps E> >>
221    
222     Cursor Down B<< C<Ps> >> Times [default: 1] and to first column
223    
224     =item B<< C<ESC [ Ps F> >>
225    
226     Cursor Up B<< C<Ps> >> Times [default: 1] and to first columnX<ESCOBPsG>
227    
228     =item B<< C<ESC [ Ps G> >>
229    
230     Cursor to Column B<< C<Ps> >> (HPA)
231    
232     =item B<< C<ESC [ Ps;Ps H> >>
233    
234     Cursor Position [row;column] [default: 1;1] (CUP)
235    
236     =item B<< C<ESC [ Ps I> >>
237    
238     Move forward B<< C<Ps> >> tab stops [default: 1]
239    
240     =item B<< C<ESC [ Ps J> >>
241    
242     Erase in Display (ED)
243    
244     =begin table
245    
246     B<< C<Ps = 0> >> Clear Below (default)
247     B<< C<Ps = 1> >> Clear Above
248     B<< C<Ps = 2> >> Clear All
249    
250     =end table
251    
252     =item B<< C<ESC [ Ps K> >>
253    
254     Erase in Line (EL)
255    
256     =begin table
257    
258     B<< C<Ps = 0> >> Clear to Right (default)
259     B<< C<Ps = 1> >> Clear to Left
260     B<< C<Ps = 2> >> Clear All
261    
262     =end table
263    
264     =item B<< C<ESC [ Ps L> >>
265    
266     Insert B<< C<Ps> >> Line(s) [default: 1] (IL)
267    
268     =item B<< C<ESC [ Ps M> >>
269    
270     Delete B<< C<Ps> >> Line(s) [default: 1] (DL)
271    
272     =item B<< C<ESC [ Ps P> >>
273    
274     Delete B<< C<Ps> >> Character(s) [default: 1] (DCH)
275    
276     =item B<< C<ESC [ Ps;Ps;Ps;Ps;Ps T> >>
277    
278     Initiate . I<unimplemented> Parameters are
279     [func;startx;starty;firstrow;lastrow].
280    
281     =item B<< C<ESC [ Ps W> >>
282    
283     Tabulator functions
284    
285     =begin table
286    
287     B<< C<Ps = 0> >> Tab Set (HTS)
288     B<< C<Ps = 2> >> Tab Clear (TBC), Clear Current Column (default)
289     B<< C<Ps = 5> >> Tab Clear (TBC), Clear All
290    
291     =end table
292    
293     =item B<< C<ESC [ Ps X> >>
294    
295     Erase B<< C<Ps> >> Character(s) [default: 1] (ECH)
296    
297     =item B<< C<ESC [ Ps Z> >>
298    
299     Move backward B<< C<Ps> >> [default: 1] tab stops
300    
301     =item B<< C<ESC [ Ps '> >>
302    
303     ==
304    
305     =item B<< C<ESC [ Ps a> >>
306    
307     ==X<ESCOBPsc>
308    
309     =item B<< C<ESC [ Ps c> >>
310    
311     Send Device Attributes (DA)
312     B<< C<Ps = 0> >> (or omitted): request attributes from terminal
313     returns: B<< C<ESC[?1;2c> >> (``I am a VT100 with Advanced Video
314     Option'')
315    
316     =item B<< C<ESC [ Ps d> >>
317    
318     Cursor to Line B<< C<Ps> >> (VPA)
319    
320     =item B<< C<ESC [ Ps e> >>
321    
322     ==
323    
324     =item B<< C<ESC [ Ps;Ps f> >>
325    
326     Horizontal and Vertical Position [row;column] (HVP) [default: 1;1]
327    
328     =item B<< C<ESC [ Ps g> >>
329    
330     Tab Clear (TBC)
331    
332     =begin table
333    
334     B<< C<Ps = 0> >> Clear Current Column (default)
335     B<< C<Ps = 3> >> Clear All (TBC)
336    
337     =end table
338    
339     =item B<< C<ESC [ Ps i> >>
340    
341     Printing
342    
343     =begin table
344    
345     B<< C<Ps = 4> >> disable transparent print mode (MC4)
346     B<< C<Ps = 5> >> enable transparent print mode (MC5) I<unimplemented>
347    
348     =end table
349    
350     =item B<< C<ESC [ Pm h> >>
351    
352     Set Mode (SM). See next sequence for description of C<Pm>.
353    
354     =item B<< C<ESC [ Pm l> >>
355    
356     Reset Mode (RM)
357    
358     =over 4
359    
360     =item B<< C<Ps = 4> >>
361    
362     =begin table
363    
364     B<< C<h> >> Insert Mode (SMIR)
365     B<< C<l> >> Replace Mode (RMIR)
366    
367     =end table
368    
369     =item B<< C<Ps = 20> >> I<unimplemented>
370    
371     =begin table
372    
373     B<< C<h> >> Automatic Newline (LNM)
374     B<< C<h> >> Normal Linefeed (LNM)
375    
376     =end table
377    
378     =back
379    
380     =item B<< C<ESC [ Pm m> >>
381    
382     Character Attributes (SGR)
383    
384     =begin table
385    
386     B<< C<Ps = 0> >> Normal (default)
387     B<< C<Ps = 1 / 22> >> On / Off Bold (bright fg)
388     B<< C<Ps = 4 / 24> >> On / Off Underline
389     B<< C<Ps = 5 / 25> >> On / Off Blink (bright bg)
390     B<< C<Ps = 7 / 27> >> On / Off Inverse
391     B<< C<Ps = 30 / 40> >> fg/bg Black
392     B<< C<Ps = 31 / 41> >> fg/bg Red
393     B<< C<Ps = 32 / 42> >> fg/bg Green
394     B<< C<Ps = 33 / 43> >> fg/bg Yellow
395     B<< C<Ps = 34 / 44> >> fg/bg Blue
396     B<< C<Ps = 35 / 45> >> fg/bg Magenta
397     B<< C<Ps = 36 / 46> >> fg/bg Cyan
398     B<< C<Ps = 37 / 47> >> fg/bg White
399     B<< C<Ps = 39 / 49> >> fg/bg Default
400    
401     =end table
402    
403     =item B<< C<ESC [ Ps n> >>
404    
405     Device Status Report (DSR)
406    
407     =begin table
408    
409     B<< C<Ps = 5> >> Status Report B<< C<ESC [ 0 n> >> (``OK'')
410     B<< C<Ps = 6> >> Report Cursor Position (CPR) [row;column] as B<< C<ESC [ r ; c R> >>
411     B<< C<Ps = 7> >> Request Display Name
412     B<< C<Ps = 8> >> Request Version Number (place in window title)
413    
414     =end table
415    
416     =item B<< C<ESC [ Ps;Ps r> >>
417    
418     Set Scrolling Region [top;bottom]
419     [default: full size of window] (CSR)
420    
421     =item B<< C<ESC [ s> >>
422    
423     Save Cursor (SC)
424    
425     =item B<< C<ESC [ Ps x> >>
426    
427     Request Terminal Parameters (DECREQTPARM)
428    
429     =item B<< C<ESC [ u> >>
430    
431     Restore Cursor
432    
433     =back
434    
435     X<PrivateModes>
436    
437     =head1 DEC Private Modes
438    
439     =over 4
440    
441     =item B<< C<ESC [ ? Pm h> >>
442    
443     DEC Private Mode Set (DECSET)
444    
445     =item B<< C<ESC [ ? Pm l> >>
446    
447     DEC Private Mode Reset (DECRST)
448    
449     =item B<< C<ESC [ ? Pm r> >>
450    
451     Restore previously saved DEC Private Mode Values.
452    
453     =item B<< C<ESC [ ? Pm s> >>
454    
455     Save DEC Private Mode Values.
456    
457     =item B<< C<ESC [ ? Pm t> >>
458    
459     Toggle DEC Private Mode Values (rxvt extension). I<where>
460    
461     =over 4
462    
463     =item B<< C<Ps = 1> >> (DECCKM)
464    
465     =begin table
466    
467     B<< C<h> >> Application Cursor Keys
468     B<< C<l> >> Normal Cursor Keys
469    
470     =end table
471    
472     =item B<< C<Ps = 2> >> (ANSI/VT52 mode)
473    
474     =begin table
475    
476     B<< C<h> >> Enter VT52 mode
477     B<< C<l> >> Enter VT52 mode
478    
479     =end table
480    
481     =item B<< C<Ps = 3> >>
482    
483     =begin table
484    
485     B<< C<h> >> 132 Column Mode (DECCOLM)
486     B<< C<l> >> 80 Column Mode (DECCOLM)
487    
488     =end table
489    
490     =item B<< C<Ps = 4> >>
491    
492     =begin table
493    
494     B<< C<h> >> Smooth (Slow) Scroll (DECSCLM)
495     B<< C<l> >> Jump (Fast) Scroll (DECSCLM)
496    
497     =end table
498    
499     =item B<< C<Ps = 5> >>
500    
501     =begin table
502    
503     B<< C<h> >> Reverse Video (DECSCNM)
504     B<< C<l> >> Normal Video (DECSCNM)
505    
506     =end table
507    
508     =item B<< C<Ps = 6> >>
509    
510     =begin table
511    
512     B<< C<h> >> Origin Mode (DECOM)
513     B<< C<l> >> Normal Cursor Mode (DECOM)
514    
515     =end table
516    
517     =item B<< C<Ps = 7> >>
518    
519     =begin table
520    
521     B<< C<h> >> Wraparound Mode (DECAWM)
522     B<< C<l> >> No Wraparound Mode (DECAWM)
523    
524     =end table
525    
526     =item B<< C<Ps = 8> >> I<unimplemented>
527    
528     =begin table
529    
530     B<< C<h> >> Auto-repeat Keys (DECARM)
531     B<< C<l> >> No Auto-repeat Keys (DECARM)
532    
533     =end table
534    
535     =item B<< C<Ps = 9> >> X10 XTerm
536    
537     =begin table
538    
539     B<< C<h> >> Send Mouse X & Y on button press.
540     B<< C<l> >> No mouse reporting.
541    
542     =end table
543    
544     )X<Priv10>
545    
546     =item B<< C<Ps = 10> >> (B<rxvt>)
547    
548     =begin table
549    
550     B<< C<h> >> visible
551     B<< C<l> >> invisible
552    
553     =end table
554    
555     =item B<< C<Ps = 25> >>
556    
557     =begin table
558    
559     B<< C<h> >> Visible cursor {cnorm/cvvis}
560     B<< C<l> >> Invisible cursor {civis}
561    
562     =end table
563    
564     =item B<< C<Ps = 30> >>
565    
566     =begin table
567    
568     B<< C<h> >> scrollBar visisble
569     B<< C<l> >> scrollBar invisisble
570    
571     =end table
572    
573     =item B<< C<Ps = 35> >> (B<rxvt>)
574    
575     =begin table
576    
577     B<< C<h> >> Allow XTerm Shift+key sequences
578     B<< C<l> >> Disallow XTerm Shift+key sequences
579    
580     =end table
581    
582     =item B<< C<Ps = 38> >> I<unimplemented>
583    
584     Enter Tektronix Mode (DECTEK)
585    
586     =item B<< C<Ps = 40> >>
587    
588     =begin table
589    
590     B<< C<h> >> Allow 80/132 Mode
591     B<< C<l> >> Disallow 80/132 Mode
592    
593     =end table
594    
595     =item B<< C<Ps = 44> >> I<unimplemented>
596    
597     =begin table
598    
599     B<< C<h> >> Turn On Margin Bell
600     B<< C<l> >> Turn Off Margin Bell
601    
602     =end table
603    
604     =item B<< C<Ps = 45> >> I<unimplemented>
605    
606     =begin table
607    
608     B<< C<h> >> Reverse-wraparound Mode
609     B<< C<l> >> No Reverse-wraparound Mode
610    
611     =end table
612    
613     =item B<< C<Ps = 46> >> I<unimplemented>
614    
615     =item B<< C<Ps = 47> >>
616    
617     =begin table
618    
619     B<< C<h> >> Use Alternate Screen Buffer
620     B<< C<l> >> Use Normal Screen Buffer
621    
622     =end table
623    
624     X<Priv66>
625    
626     =item B<< C<Ps = 66> >>
627    
628     =begin table
629    
630     B<< C<h> >> Application Keypad (DECPAM) ==
631     B<< C<l> >> Normal Keypad (DECPNM) ==
632    
633     =end table
634    
635     =item B<< C<Ps = 67> >>
636    
637     =begin table
638    
639     B<< C<h> >> Backspace key sends B<< C<BS> (DECBKM) >>
640     B<< C<l> >> Backspace key sends B<< C<DEL> >>
641    
642     =end table
643    
644     =item B<< C<Ps = 1000> >> (X11 XTerm)
645    
646     =begin table
647    
648     B<< C<h> >> Send Mouse X & Y on button press and release.
649     B<< C<l> >> No mouse reporting.
650    
651     =end table
652    
653     =item B<< C<Ps = 1001> >> (X11 XTerm) I<unimplemented>
654    
655     =begin table
656    
657     B<< C<h> >> Use Hilite Mouse Tracking.
658     B<< C<l> >> No mouse reporting.
659    
660     =end table
661    
662     =item B<< C<Ps = 1010> >>
663    
664     =begin table
665    
666     B<< C<h> >> Don't scroll to bottom on TTY output
667     B<< C<l> >> Scroll to bottom on TTY output
668    
669     =end table
670    
671     =item B<< C<Ps = 1011> >>
672    
673     =begin table
674    
675     B<< C<h> >> Scroll to bottom when a key is pressed
676     B<< C<l> >> Don't scroll to bottom when a key is pressed
677    
678     =end table
679    
680     =item B<< C<Ps = 1047> >>
681    
682     =begin table
683    
684     B<< C<h> >> Use Alternate Screen Buffer
685     B<< C<l> >> Use Normal Screen Buffer - clear Alternate Screen Buffer if returning from it
686    
687     =end table
688    
689     =item B<< C<Ps = 1048> >>
690    
691     =begin table
692    
693     B<< C<h> >> Save cursor position
694     B<< C<l> >> Restore cursor position
695    
696     =end table
697    
698     =back
699    
700     =back
701    
702     X<XTerm>
703    
704     =head1 XTerm Operating System Commands
705    
706     =over 4
707    
708     =item B<< C<ESC ] Ps;Pt ST> >>
709    
710     Set XTerm Parameters. 8-bit ST: 0x9c, 7-bit ST sequence: ESC \ (0x1b,
711     0x5c), backwards compatible terminator BEL (0x07) is also accepted. any
712     B<octet> can be escaped by prefixing it with SYN (0x16, ^V).
713    
714     =begin table
715    
716     B<< C<Ps = 0> >> Change Icon Name and Window Title to B<< C<Pt> >>
717     B<< C<Ps = 1> >> Change Icon Name to B<< C<Pt> >>
718     B<< C<Ps = 2> >> Change Window Title to B<< C<Pt> >>
719     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.
720     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
721     B<< C<Ps = 10> >> Change colour of text foreground to B<< C<Pt> >> B<(NB: may change in future)>
722     B<< C<Ps = 11> >> Change colour of text background to B<< C<Pt> >> B<(NB: may change in future)>
723     B<< C<Ps = 12> >> Change colour of text cursor foreground to B<< C<Pt> >>
724     B<< C<Ps = 13> >> Change colour of mouse foreground to B<< C<Pt> >>
725     B<< C<Ps = 17> >> Change colour of highlight characters to B<< C<Pt> >>
726     B<< C<Ps = 18> >> Change colour of bold characters to B<< C<Pt> >>
727     B<< C<Ps = 19> >> Change colour of underlined characters to B<< C<Pt> >>
728     B<< C<Ps = 20> >> Change default background to B<< C<Pt> >>
729     B<< C<Ps = 39> >> Change default foreground colour to B<< C<Pt> >> I<rxvt compile-time option>
730     B<< C<Ps = 46> >> Change Log File to B<< C<Pt> >> I<unimplemented>
731     B<< C<Ps = 49> >> Change default background colour to B<< C<Pt> >> I<rxvt compile-time option>
732     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> >>
733     B<< C<Ps = 55> >> Log all scrollback buffer and all of screen to B<< C<Pt> >>
734     B<< C<Ps = 701> >> Change current locale to B<< C<Pt> >>, or, if B<< C<Pt> >> is B<< C<?> >>, return the current locale (@@RXVTNAME@@ extension)
735     B<< C<Ps = 702> >> find font for character, used for debugging (@@RXVTNAME@@ extension)
736     B<< C<Ps = 703> >> command B<< C<Pt> >> I<rxvt compile-time option> (@@RXVTNAME@@ extension)
737    
738     =end table
739    
740     =back
741    
742     X<menuBar>
743    
744     =head1 menuBar
745    
746     B<< The exact syntax used is I<almost> solidified. >>
747     In the menus, B<DON'T> try to use menuBar commands that add or remove a
748     menuBar.
749    
750     Note that in all of the commands, the B<< I</path/> >> I<cannot> be
751     omitted: use B<./> to specify a menu relative to the current menu.
752    
753     =head2 Overview of menuBar operation
754    
755     For the menuBar XTerm escape sequence C<ESC ] 703 ; Pt ST>, the syntax
756     of C<Pt> can be used for a variety of tasks:
757    
758     At the top level is the current menuBar which is a member of a circular
759     linked-list of other such menuBars.
760    
761     The menuBar acts as a parent for the various drop-down menus, which in
762     turn, may have labels, separator lines, menuItems and subMenus.
763    
764     The menuItems are the useful bits: you can use them to mimic keyboard
765     input or even to send text or escape sequences back to rxvt.
766    
767     The menuBar syntax is intended to provide a simple yet robust method of
768     constructing and manipulating menus and navigating through the
769     menuBars.
770    
771     The first step is to use the tag B<< [menu:I<name>] >> which creates
772     the menuBar called I<name> and allows access. You may now or menus,
773     subMenus, and menuItems. Finally, use the tag B<[done]> to set the
774     menuBar access as B<readonly> to prevent accidental corruption of the
775     menus. To re-access the current menuBar for alterations, use the tag
776     B<[menu]>, make the alterations and then use B<[done]>
777    
778     X<menuBarCommands>
779    
780     =head2 Commands
781    
782     =over 4
783    
784     =item B<< [menu:+I<name>] >>
785    
786     access the named menuBar for creation or alteration. If a new menuBar
787     is created, it is called I<name> (max of 15 chars) and the current
788     menuBar is pushed onto the stack
789    
790     =item B<[menu]>
791    
792     access the current menuBar for alteration
793    
794     =item B<< [title:+I<string>] >>
795    
796     set the current menuBar's title to I<string>, which may contain the
797     following format specifiers:
798     B<%%> : literal B<%> character
799     B<%n> : rxvt name (as per the B<-name> command-line option)
800     B<%v> : rxvt version
801    
802     =item B<[done]>
803    
804     set menuBar access as B<readonly>.
805     End-of-file tag for B<< [read:+I<file>] >> operations.
806    
807     =item B<< [read:+I<file>] >>
808    
809     read menu commands directly from I<file> (extension ".menu" will be
810     appended if required.) Start reading at a line with B<[menu]> or B<<
811     [menu:+I<name> >> and continuing until B<[done]> is encountered.
812    
813     Blank and comment lines (starting with B<#>) are ignored. Actually,
814     since any invalid menu commands are also ignored, almost anything could
815     be construed as a comment line, but this may be tightened up in the
816     future ... so don't count on it!.
817    
818     =item B<< [read:+I<file>;+I<name>] >>
819    
820     The same as B<< [read:+I<file>] >>, but start reading at a line with
821     B<< [menu:+I<name>] >> and continuing until B<< [done:+I<name>] >> or
822     B<[done]> is encountered.
823    
824     =item B<[dump]>
825    
826     dump all menuBars to the file B</tmp/rxvt-PID> in a format suitable for
827     later rereading.
828    
829     =item B<[rm:name]>
830    
831     remove the named menuBar
832    
833     =item B<[rm] [rm:]>
834    
835     remove the current menuBar
836    
837     =item B<[rm*] [rm:*]>
838    
839     remove all menuBars
840    
841     =item B<[swap]>
842    
843     swap the top two menuBars
844    
845     =item B<[prev]>
846    
847     access the previous menuBar
848    
849     =item B<[next]>
850    
851     access the next menuBar
852    
853     =item B<[show]>
854    
855     Enable display of the menuBar
856    
857     =item B<[hide]>
858    
859     Disable display of the menuBar
860    
861     =item B<< [pixmap:+I<name>] >>
862    
863     =item B<< [pixmap:+I<name>;I<scaling>] >>
864    
865     (set the background pixmap globally
866    
867     B<< A Future implementation I<may> make this local to the menubar >>)
868    
869     =item B<< [:+I<command>:] >>
870    
871     ignore the menu readonly status and issue a I<command> to or a menu or
872     menuitem or change the ; a useful shortcut for setting the quick arrows
873     from a menuBar.
874    
875     =back
876    
877     X<menuBarAdd>
878    
879     =head2 Adding and accessing menus
880    
881     The following commands may also be B<+> prefixed.
882    
883     =over 4
884    
885     =item B</+>
886    
887     access menuBar top level
888    
889     =item B<./+>
890    
891     access current menu level
892    
893     =item B<../+>
894    
895     access parent menu (1 level up)
896    
897     =item B<../../>
898    
899     access parent menu (multiple levels up)
900    
901     =item B<< I</path/>menu >>
902    
903     add/access menu
904    
905     =item B<< I</path/>menu/* >>
906    
907     add/access menu and clear it if it exists
908    
909     =item B<< I</path/>{-} >>
910    
911     add separator
912    
913     =item B<< I</path/>{item} >>
914    
915     add B<item> as a label
916    
917     =item B<< I</path/>{item} action >>
918    
919     add/alter I<menuitem> with an associated I<action>
920    
921     =item B<< I</path/>{item}{right-text} >>
922    
923     add/alter I<menuitem> with B<right-text> as the right-justified text
924     and as the associated I<action>
925    
926     =item B<< I</path/>{item}{rtext} action >>
927    
928     add/alter I<menuitem> with an associated I<action> and with B<rtext> as
929     the right-justified text.
930    
931     =back
932    
933     =over 4
934    
935     =item Special characters in I<action> must be backslash-escaped:
936    
937     B<\a \b \E \e \n \r \t \octal>
938    
939     =item or in control-character notation:
940    
941     B<^@, ^A .. ^Z .. ^_, ^?>
942    
943     =back
944    
945     To send a string starting with a B<NUL> (B<^@>) character to the
946     program, start I<action> with a pair of B<NUL> characters (B<^@^@>),
947     the first of which will be stripped off and the balance directed to the
948     program. Otherwise if I<action> begins with B<NUL> followed by
949     non-+B<NUL> characters, the leading B<NUL> is stripped off and the
950     balance is sent back to rxvt.
951    
952     As a convenience for the many Emacs-type editors, I<action> may start
953     with B<M-> (eg, B<M-$> is equivalent to B<\E$>) and a B<CR> will be
954     appended if missed from B<M-x> commands.
955    
956     As a convenience for issuing XTerm B<ESC]> sequences from a menubar (or
957     quick arrow), a B<BEL> (B<^G>) will be appended if needed.
958    
959     =over 4
960    
961     =item For example,
962    
963     B<M-xapropos> is equivalent to B<\Exapropos\r>
964    
965     =item and
966    
967     B<\E]703;mona;100> is equivalent to B<\E]703;mona;100\a>
968    
969     =back
970    
971     The option B<< {I<right-rtext>} >> will be right-justified. In the
972     absence of a specified action, this text will be used as the I<action>
973     as well.
974    
975     =over 4
976    
977     =item For example,
978    
979     B</File/{Open}{^X^F}> is equivalent to B</File/{Open}{^X^F} ^X^F>
980    
981     =back
982    
983     The left label I<is> necessary, since it's used for matching, but
984     implicitly hiding the left label (by using same name for both left and
985     right labels), or explicitly hiding the left label (by preceeding it
986     with a dot), makes it possible to have right-justified text only.
987    
988     =over 4
989    
990     =item For example,
991    
992     B</File/{Open}{Open} Open-File-Action>
993    
994     =item or hiding it
995    
996     B</File/{.anylabel}{Open} Open-File-Action>
997    
998     =back
999    
1000     X<menuBarRemove>
1001    
1002     =head2 Removing menus
1003    
1004     =over 4
1005    
1006     =item B<< -/*+ >>
1007    
1008     remove all menus from the menuBar, the same as B<[clear]>
1009    
1010     =item B<< -+I</path>menu+ >>
1011    
1012     remove menu
1013    
1014     =item B<< -+I</path>{item}+ >>
1015    
1016     remove item
1017    
1018     =item B<< -+I</path>{-} >>
1019    
1020     remove separator)
1021    
1022     =item B<-/path/menu/*>
1023    
1024     remove all items, separators and submenus from menu
1025    
1026     =back
1027    
1028     X<menuBarArrows>
1029    
1030     =head2 Quick Arrows
1031    
1032     The menus also provide a hook for I<quick arrows> to provide easier
1033     user access. If nothing has been explicitly set, the default is to
1034     emulate the curror keys. The syntax permits each arrow to be altered
1035     individually or all four at once without re-entering their common
1036     beginning/end text. For example, to explicitly associate cursor actions
1037     with the arrows, any of the following forms could be used:
1038    
1039     =over 4
1040    
1041     =item B<< <r>+I<Right> >>
1042    
1043     =item B<< <l>+I<Left> >>
1044    
1045     =item B<< <u>+I<Up> >>
1046    
1047     =item B<< <d>+I<Down> >>
1048    
1049     Define actions for the respective arrow buttons
1050    
1051     =item B<< <b>+I<Begin> >>
1052    
1053     =item B<< <e>+I<End> >>
1054    
1055     Define common beginning/end parts for I<quick arrows> which used in
1056     conjunction with the above <r> <l> <u> <d> constructs
1057    
1058     =back
1059    
1060     =over 4
1061    
1062     =item For example, define arrows individually,
1063    
1064     <u>\E[A
1065    
1066     <d>\E[B
1067    
1068     <r>\E[C
1069    
1070     <l>\E[D
1071    
1072     =item or all at once
1073    
1074     <u>\E[AZ<><d>\E[BZ<><r>\E[CZ<><l>\E[D
1075    
1076     =item or more compactly (factoring out common parts)
1077    
1078     <b>\E[<u>AZ<><d>BZ<><r>CZ<><l>D
1079    
1080     =back
1081    
1082     X<menuBarSummary>
1083    
1084     =head2 Command Summary
1085    
1086     A short summary of the most I<common> commands:
1087    
1088     =over 4
1089    
1090     =item [menu:name]
1091    
1092     use an existing named menuBar or start a new one
1093    
1094     =item [menu]
1095    
1096     use the current menuBar
1097    
1098     =item [title:string]
1099    
1100     set menuBar title
1101    
1102     =item [done]
1103    
1104     set menu access to readonly and, if reading from a file, signal EOF
1105    
1106     =item [done:name]
1107    
1108     if reading from a file using [read:file;name] signal EOF
1109    
1110     =item [rm:name]
1111    
1112     remove named menuBar(s)
1113    
1114     =item [rm] [rm:]
1115    
1116     remove current menuBar
1117    
1118     =item [rm*] [rm:*]
1119    
1120     remove all menuBar(s)
1121    
1122     =item [swap]
1123    
1124     swap top two menuBars
1125    
1126     =item [prev]
1127    
1128     access the previous menuBar
1129    
1130     =item [next]
1131    
1132     access the next menuBar
1133    
1134     =item [show]
1135    
1136     map menuBar
1137    
1138     =item [hide]
1139    
1140     unmap menuBar
1141    
1142     =item [pixmap;file]
1143    
1144     =item [pixmap;file;scaling]
1145    
1146     set a background pixmap
1147    
1148     =item [read:file]
1149    
1150     =item [read:file;name]
1151    
1152     read in a menu from a file
1153    
1154     =item [dump]
1155    
1156     dump out all menuBars to /tmp/rxvt-PID
1157    
1158     =item /
1159    
1160     access menuBar top level
1161    
1162     =item ./
1163    
1164     =item ../
1165    
1166     =item ../../
1167    
1168     access current or parent menu level
1169    
1170     =item /path/menu
1171    
1172     add/access menu
1173    
1174     =item /path/{-}
1175    
1176     add separator
1177    
1178     =item /path/{item}{rtext} action
1179    
1180     add/alter menu item
1181    
1182     =item -/*
1183    
1184     remove all menus from the menuBar
1185    
1186     =item -/path/menu
1187    
1188     remove menu items, separators and submenus from menu
1189    
1190     =item -/path/menu
1191    
1192     remove menu
1193    
1194     =item -/path/{item}
1195    
1196     remove item
1197    
1198     =item -/path/{-}
1199    
1200     remove separator
1201    
1202     =item <b>Begin<r>Right<l>Left<u>Up<d>Down<e>End
1203    
1204     menu quick arrows
1205    
1206     =back
1207     X<XPM>
1208    
1209     =head1 XPM
1210    
1211     For the XPM XTerm escape sequence B<< C<ESC ] 20 ; Pt ST> >> then value
1212     of B<< C<Pt> >> can be the name of the background pixmap followed by a
1213     sequence of scaling/positioning commands separated by semi-colons. The
1214     scaling/positioning commands are as follows:
1215    
1216     =over 4
1217    
1218     =item query scale/position
1219    
1220     B<?>
1221    
1222     =item change scale and position
1223    
1224     B<WxH+X+Y>
1225    
1226     B<WxH+X> (== B<WxH+X+X>)
1227    
1228     B<WxH> (same as B<WxH+50+50>)
1229    
1230     B<W+X+Y> (same as B<WxW+X+Y>)
1231    
1232     B<W+X> (same as B<WxW+X+X>)
1233    
1234     B<W> (same as B<WxW+50+50>)
1235    
1236     =item change position (absolute)
1237    
1238     B<=+X+Y>
1239    
1240     B<=+X> (same as B<=+X+Y>)
1241    
1242     =item change position (relative)
1243    
1244     B<+X+Y>
1245    
1246     B<+X> (same as B<+X+Y>)
1247    
1248     =item rescale (relative)
1249    
1250     B<Wx0> -> B<W *= (W/100)>
1251    
1252     B<0xH> -> B<H *= (H/100)>
1253    
1254     =back
1255    
1256     For example:
1257    
1258     =over 4
1259    
1260     =item B<\E]20;funky\a>
1261    
1262     load B<funky.xpm> as a tiled image
1263    
1264     =item B<\E]20;mona;100\a>
1265    
1266     load B<mona.xpm> with a scaling of 100%
1267    
1268     =item B<\E]20;;200;?\a>
1269    
1270     rescale the current pixmap to 200% and display the image geometry in
1271     the title
1272    
1273     =back
1274     X<Mouse>
1275    
1276     =head1 Mouse Reporting
1277    
1278     =over 4
1279    
1280     =item B<< C<< ESC [ M <b> <x> <y> >> >>
1281    
1282     report mouse position
1283    
1284     =back
1285    
1286     The lower 2 bits of B<< C<< <b> >> >> indicate the button:
1287    
1288     =over 4
1289    
1290     =item Button = B<< C<< (<b> - SPACE) & 3 >> >>
1291    
1292     =begin table
1293    
1294     0 Button1 pressed
1295     1 Button2 pressed
1296     2 Button3 pressed
1297     3 button released (X11 mouse report)
1298    
1299     =end table
1300    
1301     =back
1302    
1303     The upper bits of B<< C<< <b> >> >> indicate the modifiers when the
1304     button was pressed and are added together (X11 mouse report only):
1305    
1306     =over 4
1307    
1308     =item State = B<< C<< (<b> - SPACE) & 60 >> >>
1309    
1310     =begin table
1311    
1312     4 Shift
1313     8 Meta
1314     16 Control
1315     32 Double Click I<(Rxvt extension)>
1316    
1317     =end table
1318    
1319     Col = B<< C<< <x> - SPACE >> >>
1320    
1321     Row = B<< C<< <y> - SPACE >> >>
1322    
1323     =back
1324     X<KeyCodes>
1325    
1326     =head1 ISO 14755 support
1327    
1328     Partial ISO 14755-support is implemented. that means that pressing
1329    
1330     section 5.1: Control and Shift together enters unicode input
1331     mode. Entering hex digits composes a Unicode character, pressing space or
1332     releasing the modifiers commits the keycode and every other key cancels
1333     the current input character.
1334    
1335     section 5.2: Pressing and immediately releasing Control and Shift together
1336     enters keycap entry mode for the next key: pressing a function key (tab,
1337     return etc..) will enter the unicode character corresponding to the given
1338     key.
1339    
1340     =head1 Key Codes
1341    
1342     Note: B<Shift> + B<F1>-B<F10> generates B<F11>-B<F20>
1343    
1344     For the keypad, use B<Shift> to temporarily override Application-Keypad
1345     setting use B<Num_Lock> to toggle Application-Keypad setting if
1346     B<Num_Lock> is off, toggle Application-Keypad setting. Also note that
1347     values of B<Home>, B<End>, B<Delete> may have been compiled differently on
1348     your system.
1349    
1350     =begin table
1351    
1352     B<Normal> B<Shift> B<Control> B<Ctrl+Shift>
1353     Tab ^I ESC [ Z ^I ESC [ Z
1354     BackSpace ^H ^? ^? ^?
1355     Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
1356     Insert ESC [ 2 ~ I<paste> ESC [ 2 ^ ESC [ 2 @
1357     Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1358     Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
1359     Prior ESC [ 5 ~ I<scroll-up> ESC [ 5 ^ ESC [ 5 @
1360     Next ESC [ 6 ~ I<scroll-down> ESC [ 6 ^ ESC [ 6 @
1361     Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
1362     End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
1363     Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
1364     F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
1365     F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
1366     F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
1367     F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
1368     F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
1369     F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
1370     F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
1371     F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
1372     F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
1373     F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
1374     F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
1375     F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
1376     F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
1377     F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
1378     F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
1379     F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
1380     F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
1381     F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
1382     F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
1383     F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
1384     B<Application>
1385     Up ESC [ A ESC [ a ESC O a ESC O A
1386     Down ESC [ B ESC [ b ESC O b ESC O B
1387     Right ESC [ C ESC [ c ESC O c ESC O C
1388     Left ESC [ D ESC [ d ESC O d ESC O D
1389     KP_Enter ^M ESC O M
1390     KP_F1 ESC O P ESC O P
1391     KP_F2 ESC O Q ESC O Q
1392     KP_F3 ESC O R ESC O R
1393     KP_F4 ESC O S ESC O S
1394     XK_KP_Multiply * ESC O j
1395     XK_KP_Add + ESC O k
1396     XK_KP_Separator , ESC O l
1397     XK_KP_Subtract - ESC O m
1398     XK_KP_Decimal . ESC O n
1399     XK_KP_Divide / ESC O o
1400     XK_KP_0 0 ESC O p
1401     XK_KP_1 1 ESC O q
1402     XK_KP_2 2 ESC O r
1403     XK_KP_3 3 ESC O s
1404     XK_KP_4 4 ESC O t
1405     XK_KP_5 5 ESC O u
1406     XK_KP_6 6 ESC O v
1407     XK_KP_7 7 ESC O w
1408     XK_KP_8 8 ESC O x
1409     XK_KP_9 9 ESC O y
1410    
1411     =end table
1412