1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
2 | <html xmlns="http://www.w3.org/1999/xhtml"> |
2 | <html xmlns="http://www.w3.org/1999/xhtml"> |
3 | <head> |
3 | <head> |
4 | <title>rxvtperl - rxvt-unicode's embedded perl interpreter</title> |
4 | <title>urxvtperl - rxvt-unicode's embedded perl interpreter</title> |
5 | <link rev="made" href="mailto:perl-binary@plan9.de" /> |
5 | <link rev="made" href="mailto:perl-binary@plan9.de" /> |
6 | </head> |
6 | </head> |
7 | |
7 | |
8 | <body style="background-color: white"> |
8 | <body style="background-color: white"> |
9 | |
9 | |
… | |
… | |
45 | <hr /> |
45 | <hr /> |
46 | <p> |
46 | <p> |
47 | </p> |
47 | </p> |
48 | <hr /> |
48 | <hr /> |
49 | <h1><a name="name">NAME</a></h1> |
49 | <h1><a name="name">NAME</a></h1> |
50 | <p>rxvtperl - rxvt-unicode's embedded perl interpreter</p> |
50 | <p>urxvtperl - rxvt-unicode's embedded perl interpreter</p> |
51 | <p> |
51 | <p> |
52 | </p> |
52 | </p> |
53 | <hr /> |
53 | <hr /> |
54 | <h1><a name="synopsis">SYNOPSIS</a></h1> |
54 | <h1><a name="synopsis">SYNOPSIS</a></h1> |
55 | <pre> |
55 | <pre> |
… | |
… | |
58 | sub on_sel_grab { |
58 | sub on_sel_grab { |
59 | warn "you selected ", $_[0]->selection; |
59 | warn "you selected ", $_[0]->selection; |
60 | () |
60 | () |
61 | }</pre> |
61 | }</pre> |
62 | <pre> |
62 | <pre> |
63 | # start a rxvt using it:</pre> |
63 | # start a urxvt using it:</pre> |
64 | <pre> |
64 | <pre> |
65 | rxvt --perl-lib $HOME -pe grab_test</pre> |
65 | urxvt --perl-lib $HOME -pe grab_test</pre> |
66 | <p> |
66 | <p> |
67 | </p> |
67 | </p> |
68 | <hr /> |
68 | <hr /> |
69 | <h1><a name="description">DESCRIPTION</a></h1> |
69 | <h1><a name="description">DESCRIPTION</a></h1> |
70 | <p>Everytime a terminal object gets created, extension scripts specified via |
70 | <p>Everytime a terminal object gets created, extension scripts specified via |
71 | the <code>perl</code> resource are loaded and associated with it.</p> |
71 | the <code>perl</code> resource are loaded and associated with it.</p> |
72 | <p>Scripts are compiled in a 'use strict' and 'use utf8' environment, and |
72 | <p>Scripts are compiled in a 'use strict' and 'use utf8' environment, and |
73 | thus must be encoded as UTF-8.</p> |
73 | thus must be encoded as UTF-8.</p> |
74 | <p>Each script will only ever be loaded once, even in rxvtd, where |
74 | <p>Each script will only ever be loaded once, even in urxvtd, where |
75 | scripts will be shared (but not enabled) for all terminals.</p> |
75 | scripts will be shared (but not enabled) for all terminals.</p> |
76 | <p> |
76 | <p> |
77 | </p> |
77 | </p> |
78 | <hr /> |
78 | <hr /> |
79 | <h1><a name="prepackaged_extensions">PREPACKAGED EXTENSIONS</a></h1> |
79 | <h1><a name="prepackaged_extensions">PREPACKAGED EXTENSIONS</a></h1> |
80 | <p>This section describes the extensions delivered with this release. You can |
80 | <p>This section describes the extensions delivered with this release. You can |
81 | find them in <em>/opt/rxvt/lib/urxvt/perl/</em>.</p> |
81 | find them in <em>/usr/local/lib/urxvt/perl/</em>.</p> |
82 | <p>You can activate them like this:</p> |
82 | <p>You can activate them like this:</p> |
83 | <pre> |
83 | <pre> |
84 | rxvt -pe <extensionname></pre> |
84 | urxvt -pe <extensionname></pre> |
85 | <dl> |
85 | <dl> |
86 | <dt><strong><a name="item_selection">selection (enabled by default)</a></strong><br /> |
86 | <dt><strong><a name="item_selection">selection (enabled by default)</a></strong><br /> |
87 | </dt> |
87 | </dt> |
88 | <dd> |
88 | <dd> |
89 | (More) intelligent selection. This extension tries to be more intelligent |
89 | (More) intelligent selection. This extension tries to be more intelligent |
… | |
… | |
95 | <dd> |
95 | <dd> |
96 | <p>A double-click usually selects the word under the cursor, further clicks |
96 | <p>A double-click usually selects the word under the cursor, further clicks |
97 | will enlarge the selection.</p> |
97 | will enlarge the selection.</p> |
98 | </dd> |
98 | </dd> |
99 | <dd> |
99 | <dd> |
|
|
100 | <p>The selection works by trying to match a number of regexes and displaying |
|
|
101 | them in increasing order of length. You can add your own regexes by |
|
|
102 | specifying resources of the form:</p> |
|
|
103 | </dd> |
|
|
104 | <dd> |
|
|
105 | <pre> |
|
|
106 | URxvt.selection.pattern-0: perl-regex |
|
|
107 | URxvt.selection.pattern-1: perl-regex |
|
|
108 | ...</pre> |
|
|
109 | </dd> |
|
|
110 | <dd> |
|
|
111 | <p>The index number (0, 1...) must not have any holes, and each regex must |
|
|
112 | contain at least one pair of capturing parentheses, which will be used for |
|
|
113 | the match. For example, the followign adds a regex that matches everything |
|
|
114 | between two vertical bars:</p> |
|
|
115 | </dd> |
|
|
116 | <dd> |
|
|
117 | <pre> |
|
|
118 | URxvt.selection.pattern-0: \\|([^|]+)\\|</pre> |
|
|
119 | </dd> |
|
|
120 | <dd> |
|
|
121 | <p>You can look at the source of the selection extension to see more |
|
|
122 | interesting uses, such as parsing a line from beginning to end.</p> |
|
|
123 | </dd> |
|
|
124 | <dd> |
100 | <p>It also offers the following bindable keyboard command:</p> |
125 | <p>This extension also offers the following bindable keyboard command:</p> |
101 | </dd> |
126 | </dd> |
102 | <dl> |
127 | <dl> |
103 | <dt><strong><a name="item_rot13">rot13</a></strong><br /> |
128 | <dt><strong><a name="item_rot13">rot13</a></strong><br /> |
104 | </dt> |
129 | </dt> |
105 | <dd> |
130 | <dd> |
… | |
… | |
141 | was started, while <code>Enter</code> or <code>Return</code> stay at the current position and |
166 | was started, while <code>Enter</code> or <code>Return</code> stay at the current position and |
142 | additionally stores the first match in the current line into the primary |
167 | additionally stores the first match in the current line into the primary |
143 | selection.</p> |
168 | selection.</p> |
144 | </dd> |
169 | </dd> |
145 | <p></p> |
170 | <p></p> |
146 | <dt><strong><a name="item_digital_2dclock">digital-clock</a></strong><br /> |
171 | <dt><strong><a name="item_selection_2dautotransform">selection-autotransform</a></strong><br /> |
147 | </dt> |
172 | </dt> |
|
|
173 | <dd> |
|
|
174 | This selection allows you to do automatic transforms on a selection |
|
|
175 | whenever a selection is made. |
148 | <dd> |
176 | </dd> |
149 | Displays a digital clock using the built-in overlay. |
177 | <dd> |
|
|
178 | <p>It works by specifying perl snippets (most useful is a single <code>s///</code> |
|
|
179 | operator) that modify <code>$_</code> as resources:</p> |
|
|
180 | </dd> |
|
|
181 | <dd> |
|
|
182 | <pre> |
|
|
183 | URxvt.selection-autotransform.0: transform |
|
|
184 | URxvt.selection-autotransform.1: transform |
|
|
185 | ...</pre> |
|
|
186 | </dd> |
|
|
187 | <dd> |
|
|
188 | <p>For example, the following will transform selections of the form |
|
|
189 | <code>filename:number</code>, often seen in compiler messages, into <code>vi +$filename |
|
|
190 | $word</code>:</p> |
|
|
191 | </dd> |
|
|
192 | <dd> |
|
|
193 | <pre> |
|
|
194 | URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/vi +$2 \\Q$1\\E\\x0d/</pre> |
|
|
195 | </dd> |
|
|
196 | <dd> |
|
|
197 | <p>And this example matches the same,but replaces it with vi-commands you can |
|
|
198 | paste directly into your (vi :) editor:</p> |
|
|
199 | </dd> |
|
|
200 | <dd> |
|
|
201 | <pre> |
|
|
202 | URxvt.selection-autotransform.0: s/^([^:[:space:]]+(\\d+):?$/\\x1b:e \\Q$1\\E\\x0d:$2\\x0d/</pre> |
|
|
203 | </dd> |
|
|
204 | <dd> |
|
|
205 | <p>Of course, this can be modified to suit your needs and your editor :)</p> |
|
|
206 | </dd> |
|
|
207 | <dd> |
|
|
208 | <p>To expand the example above to typical perl error messages (``XXX at |
|
|
209 | FILENAME line YYY.''), you need a slightly more elaborate solution:</p> |
|
|
210 | </dd> |
|
|
211 | <dd> |
|
|
212 | <pre> |
|
|
213 | URxvt.selection.pattern-0: ( at .*? line \\d+\\.) |
|
|
214 | URxvt.selection-autotransform.0: s/^ at (.*?) line (\\d+)\\.$/\x1b:e \\Q$1\E\\x0d:$2\\x0d/</pre> |
|
|
215 | </dd> |
|
|
216 | <dd> |
|
|
217 | <p>The first line tells the selection code to treat the unchanging part of |
|
|
218 | every error message as a selection pattern, and the second line transforms |
|
|
219 | the message into vi commands to load the file.</p> |
150 | </dd> |
220 | </dd> |
151 | <p></p> |
221 | <p></p> |
152 | <dt><strong><a name="item_mark_2durls">mark-urls</a></strong><br /> |
222 | <dt><strong><a name="item_mark_2durls">mark-urls</a></strong><br /> |
153 | </dt> |
223 | </dt> |
154 | <dd> |
224 | <dd> |
… | |
… | |
162 | </dt> |
232 | </dt> |
163 | <dd> |
233 | <dd> |
164 | A not very useful example of filtering all text output to the terminal, |
234 | A not very useful example of filtering all text output to the terminal, |
165 | by replacing all line-drawing characters (U+2500 .. U+259F) by a |
235 | by replacing all line-drawing characters (U+2500 .. U+259F) by a |
166 | similar-looking ascii character. |
236 | similar-looking ascii character. |
|
|
237 | </dd> |
|
|
238 | <p></p> |
|
|
239 | <dt><strong><a name="item_digital_2dclock">digital-clock</a></strong><br /> |
|
|
240 | </dt> |
|
|
241 | <dd> |
|
|
242 | Displays a digital clock using the built-in overlay. |
167 | </dd> |
243 | </dd> |
168 | <p></p> |
244 | <p></p> |
169 | <dt><strong><a name="item_example_2drefresh_2dhooks">example-refresh-hooks</a></strong><br /> |
245 | <dt><strong><a name="item_example_2drefresh_2dhooks">example-refresh-hooks</a></strong><br /> |
170 | </dt> |
246 | </dt> |
171 | <dd> |
247 | <dd> |
… | |
… | |
413 | <dt><strong><a name="item_on_keyboard_command__24term_2c__24string">on_keyboard_command $term, $string</a></strong><br /> |
489 | <dt><strong><a name="item_on_keyboard_command__24term_2c__24string">on_keyboard_command $term, $string</a></strong><br /> |
414 | </dt> |
490 | </dt> |
415 | <dd> |
491 | <dd> |
416 | Called whenever the user presses a key combination that has a |
492 | Called whenever the user presses a key combination that has a |
417 | <code>perl:string</code> action bound to it (see description of the <strong>keysym</strong> |
493 | <code>perl:string</code> action bound to it (see description of the <strong>keysym</strong> |
418 | resource in the <code>rxvt(1)</code> manpage). |
494 | resource in the <code>urxvt(1)</code> manpage). |
|
|
495 | </dd> |
|
|
496 | <p></p> |
|
|
497 | <dt><strong><a name="item_on_x_event__24term_2c__24event">on_x_event $term, $event</a></strong><br /> |
|
|
498 | </dt> |
|
|
499 | <dd> |
|
|
500 | Called on every X event received on the vt window (and possibly other |
|
|
501 | windows). Should only be used as a last resort. Most event structure |
|
|
502 | members are not passed. |
419 | </dd> |
503 | </dd> |
420 | <p></p> |
504 | <p></p> |
421 | <dt><strong><a name="item_on_focus_in__24term">on_focus_in $term</a></strong><br /> |
505 | <dt><strong><a name="item_on_focus_in__24term">on_focus_in $term</a></strong><br /> |
422 | </dt> |
506 | </dt> |
423 | <dd> |
507 | <dd> |
… | |
… | |
537 | <dt><strong><a name="item_urxvt_3a_3acurrenttime">urxvt::CurrentTime</a></strong><br /> |
621 | <dt><strong><a name="item_urxvt_3a_3acurrenttime">urxvt::CurrentTime</a></strong><br /> |
538 | </dt> |
622 | </dt> |
539 | <dt><strong><a name="item_urxvt_3a_3ashiftmask_2c_lockmask_2c_controlmask_2c">urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, |
623 | <dt><strong><a name="item_urxvt_3a_3ashiftmask_2c_lockmask_2c_controlmask_2c">urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, |
540 | Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, |
624 | Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, |
541 | Button4Mask, Button5Mask, AnyModifier</a></strong><br /> |
625 | Button4Mask, Button5Mask, AnyModifier</a></strong><br /> |
|
|
626 | </dt> |
|
|
627 | <dt><strong><a name="item_urxvt_3a_3anoeventmask_2c_keypressmask_2c_keyrelea">urxvt::NoEventMask, KeyPressMask, KeyReleaseMask, |
|
|
628 | ButtonPressMask, ButtonReleaseMask, EnterWindowMask, LeaveWindowMask, |
|
|
629 | PointerMotionMask, PointerMotionHintMask, Button1MotionMask, Button2MotionMask, |
|
|
630 | Button3MotionMask, Button4MotionMask, Button5MotionMask, ButtonMotionMask, |
|
|
631 | KeymapStateMask, ExposureMask, VisibilityChangeMask, StructureNotifyMask, |
|
|
632 | ResizeRedirectMask, SubstructureNotifyMask, SubstructureRedirectMask, |
|
|
633 | FocusChangeMask, PropertyChangeMask, ColormapChangeMask, OwnerGrabButtonMask</a></strong><br /> |
|
|
634 | </dt> |
|
|
635 | <dt><strong><a name="item_urxvt_3a_3akeypress_2c_keyrelease_2c_buttonpress_2">urxvt::KeyPress, KeyRelease, ButtonPress, ButtonRelease, MotionNotify, |
|
|
636 | EnterNotify, LeaveNotify, FocusIn, FocusOut, KeymapNotify, Expose, |
|
|
637 | GraphicsExpose, NoExpose, VisibilityNotify, CreateNotify, DestroyNotify, |
|
|
638 | UnmapNotify, MapNotify, MapRequest, ReparentNotify, ConfigureNotify, |
|
|
639 | ConfigureRequest, GravityNotify, ResizeRequest, CirculateNotify, |
|
|
640 | CirculateRequest, PropertyNotify, SelectionClear, SelectionRequest, |
|
|
641 | SelectionNotify, ColormapNotify, ClientMessage, MappingNotify</a></strong><br /> |
542 | </dt> |
642 | </dt> |
543 | <dd> |
643 | <dd> |
544 | Various constants for use in X calls and event processing. |
644 | Various constants for use in X calls and event processing. |
545 | </dd> |
645 | </dd> |
546 | <p></p></dl> |
646 | <p></p></dl> |
… | |
… | |
635 | <p></p> |
735 | <p></p> |
636 | <dt><strong><a name="item_destroy">$term->destroy</a></strong><br /> |
736 | <dt><strong><a name="item_destroy">$term->destroy</a></strong><br /> |
637 | </dt> |
737 | </dt> |
638 | <dd> |
738 | <dd> |
639 | Destroy the terminal object (close the window, free resources |
739 | Destroy the terminal object (close the window, free resources |
640 | etc.). Please note that rxvt will not exit as long as any event |
740 | etc.). Please note that urxvt will not exit as long as any event |
641 | watchers (timers, io watchers) are still active. |
741 | watchers (timers, io watchers) are still active. |
642 | </dd> |
742 | </dd> |
643 | <p></p> |
743 | <p></p> |
644 | <dt><strong><a name="item_option">$isset = $term->option ($optval[, $set])</a></strong><br /> |
744 | <dt><strong><a name="item_option">$isset = $term->option ($optval[, $set])</a></strong><br /> |
645 | </dt> |
745 | </dt> |
… | |
… | |
720 | <p></p> |
820 | <p></p> |
721 | <dt><strong><a name="item_parse_keysym">$success = $term->parse_keysym ($keysym_spec, $command_string)</a></strong><br /> |
821 | <dt><strong><a name="item_parse_keysym">$success = $term->parse_keysym ($keysym_spec, $command_string)</a></strong><br /> |
722 | </dt> |
822 | </dt> |
723 | <dd> |
823 | <dd> |
724 | Adds a keymap translation exactly as specified via a resource. See the |
824 | Adds a keymap translation exactly as specified via a resource. See the |
725 | <code>keysym</code> resource in the <code>rxvt(1)</code> manpage. |
825 | <code>keysym</code> resource in the <code>urxvt(1)</code> manpage. |
726 | </dd> |
826 | </dd> |
727 | <p></p> |
827 | <p></p> |
728 | <dt><strong><a name="item_rstyle">$rend = $term->rstyle ([$new_rstyle])</a></strong><br /> |
828 | <dt><strong><a name="item_rstyle">$rend = $term->rstyle ([$new_rstyle])</a></strong><br /> |
729 | </dt> |
829 | </dt> |
730 | <dd> |
830 | <dd> |
… | |
… | |
919 | <p></p> |
1019 | <p></p> |
920 | <dt><strong><a name="item_vt">$windowid = $term->vt</a></strong><br /> |
1020 | <dt><strong><a name="item_vt">$windowid = $term->vt</a></strong><br /> |
921 | </dt> |
1021 | </dt> |
922 | <dd> |
1022 | <dd> |
923 | Return the window id of the terminal window. |
1023 | Return the window id of the terminal window. |
|
|
1024 | </dd> |
|
|
1025 | <p></p> |
|
|
1026 | <dt><strong><a name="item_vt_emask_add">$term->vt_emask_add ($x_event_mask)</a></strong><br /> |
|
|
1027 | </dt> |
|
|
1028 | <dd> |
|
|
1029 | Adds the specified events to the vt event mask. Useful e.g. when you want |
|
|
1030 | to receive pointer events all the times: |
|
|
1031 | </dd> |
|
|
1032 | <dd> |
|
|
1033 | <pre> |
|
|
1034 | $term->vt_emask_add (urxvt::PointerMotionMask);</pre> |
924 | </dd> |
1035 | </dd> |
925 | <p></p> |
1036 | <p></p> |
926 | <dt><strong><a name="item_width">$window_width = $term->width</a></strong><br /> |
1037 | <dt><strong><a name="item_width">$window_width = $term->width</a></strong><br /> |
927 | </dt> |
1038 | </dt> |
928 | <dt><strong><a name="item_height">$window_height = $term->height</a></strong><br /> |
1039 | <dt><strong><a name="item_height">$window_height = $term->height</a></strong><br /> |