ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvtperl.3.html
(Generate patch)

Comparing rxvt-unicode/doc/rxvtperl.3.html (file contents):
Revision 1.17 by root, Mon Jan 9 01:36:56 2006 UTC vs.
Revision 1.19 by root, Tue Jan 10 04:26:54 2006 UTC

17 <li><a href="#description">DESCRIPTION</a></li> 17 <li><a href="#description">DESCRIPTION</a></li>
18 <ul> 18 <ul>
19 19
20 <li><a href="#prepackaged_extensions">Prepackaged Extensions</a></li> 20 <li><a href="#prepackaged_extensions">Prepackaged Extensions</a></li>
21 <li><a href="#general_api_considerations">General API Considerations</a></li> 21 <li><a href="#general_api_considerations">General API Considerations</a></li>
22 <li><a href="#extension_objects">Extension Objects</a></li>
22 <li><a href="#hooks">Hooks</a></li> 23 <li><a href="#hooks">Hooks</a></li>
23 <li><a href="#variables_in_the_urxvt_package">Variables in the <code>urxvt</code> Package</a></li> 24 <li><a href="#variables_in_the_urxvt_package">Variables in the <code>urxvt</code> Package</a></li>
24 <li><a href="#functions_in_the_urxvt_package">Functions in the <code>urxvt</code> Package</a></li> 25 <li><a href="#functions_in_the_urxvt_package">Functions in the <code>urxvt</code> Package</a></li>
25 <li><a href="#rendition">RENDITION</a></li> 26 <li><a href="#rendition">RENDITION</a></li>
26 <li><a href="#the_urxvt__anyevent_class">The <code>urxvt::anyevent</code> Class</a></li> 27 <li><a href="#the_urxvt__anyevent_class">The <code>urxvt::anyevent</code> Class</a></li>
114<dd> 115<dd>
115Binds a popup menu to Ctrl-Button3 that lets you convert the selection 116Binds a popup menu to Ctrl-Button3 that lets you convert the selection
116text into various other formats/action. 117text into various other formats/action.
117</dd> 118</dd>
118<p></p> 119<p></p>
120<dt><strong><a name="item_searchable_2dscrollback_3chotkey_3e__28enabled_by_">searchable-scrollback&lt;hotkey&gt; (enabled by default)</a></strong><br />
121</dt>
122<dd>
123Adds regex search functionality to the scrollback buffer, triggered
124by a hotkey (default: <code>M-s</code>). When in search mode, normal terminal
125input/output is suspended.
126</dd>
127<dd>
128<p><code>/</code> starts an incremental regex search, <code>n</code> searches further, <code>p</code> or
129<code>N</code> jump to the previous match, <code>G</code> jumps to the bottom and clears the
130history, <code>enter</code> leaves search mode at the current position and <code>escape</code>
131returns to the original position.</p>
132</dd>
133<p></p>
119<dt><strong><a name="item_digital_2dclock">digital-clock</a></strong><br /> 134<dt><strong><a name="item_digital_2dclock">digital-clock</a></strong><br />
120</dt> 135</dt>
121<dd> 136<dd>
122Displays a digital clock using the built-in overlay. 137Displays a digital clock using the built-in overlay.
123</dd> 138</dd>
181locale-specific way. 196locale-specific way.
182</dd> 197</dd>
183<p></p></dl> 198<p></p></dl>
184<p> 199<p>
185</p> 200</p>
201<h2><a name="extension_objects">Extension Objects</a></h2>
202<p>Very perl extension is a perl class. A separate perl object is created
203for each terminal and each extension and passed as the first parameter to
204hooks. So extensions can use their <code>$self</code> object without having to think
205about other extensions, with the exception of methods and members that
206begin with an underscore character <code>_</code>: these are reserved for internal
207use.</p>
208<p>Although it isn't a <code>urxvt::term</code> object, you can call all methods of the
209<code>urxvt::term</code> class on this object.</p>
210<p>It has the following methods and data members:</p>
211<dl>
212<dt><strong><a name="item__24urxvt_term__3d__24self_2d_3e_7bterm_7d">$urxvt_term = $self-&gt;{term}</a></strong><br />
213</dt>
214<dd>
215Returns the <code>urxvt::term</code> object associated with this instance of the
216extension. This member <em>must not</em> be changed in any way.
217</dd>
218<p></p>
219<dt><strong><a name="item_enable">$self-&gt;enable ($hook_name =&gt; $cb, [$hook_name =&gt; $cb..])</a></strong><br />
220</dt>
221<dd>
222Dynamically enable the given hooks (named without the <code>on_</code> prefix) for
223this extension, replacing any previous hook. This is useful when you want
224to overwrite time-critical hooks only temporarily.
225</dd>
226<p></p>
227<dt><strong><a name="item_disable">$self-&gt;disable ($hook_name[, $hook_name..])</a></strong><br />
228</dt>
229<dd>
230Dynamically disable the given hooks.
231</dd>
232<p></p></dl>
233<p>
234</p>
186<h2><a name="hooks">Hooks</a></h2> 235<h2><a name="hooks">Hooks</a></h2>
187<p>The following subroutines can be declared in extension files, and will be 236<p>The following subroutines can be declared in extension files, and will be
188called whenever the relevant event happens.</p> 237called whenever the relevant event happens.</p>
189<p>The first argument passed to them is an object private to each terminal 238<p>The first argument passed to them is an extension oject as described in
190and extension package. You can call all <code>urxvt::term</code> methods on it, but 239the in the <code>Extension Objects</code> section.</p>
191its not a real <code>urxvt::term</code> object. Instead, the real <code>urxvt::term</code>
192object that is shared between all packages is stored in the <code>term</code>
193member. It is, however, blessed intot he package of the extension script,
194so for all practical purposes you can treat an extension script as a class.</p>
195<p>All of them must return a boolean value. If it is true, then the event 240<p><strong>All</strong> of these hooks must return a boolean value. If it is true, then the
196counts as being <em>consumed</em>, and the invocation of other hooks is skipped, 241event counts as being <em>consumed</em>, and the invocation of other hooks is
197and the relevant action might not be carried out by the C++ code.</p> 242skipped, and the relevant action might not be carried out by the C++ code.</p>
198<p>When in doubt, return a false value (preferably <code>()</code>).</p> 243<p><em>When in doubt, return a false value (preferably <code>()</code>). </em>&gt;</p>
199<dl> 244<dl>
200<dt><strong><a name="item_on_init__24term">on_init $term</a></strong><br /> 245<dt><strong><a name="item_on_init__24term">on_init $term</a></strong><br />
201</dt> 246</dt>
202<dd> 247<dd>
203Called after a new terminal object has been initialized, but before 248Called after a new terminal object has been initialized, but before
302and calling <a href="#item_scr_add_lines"><code>$term-&gt;scr_add_lines</code></a> yourself. Please note that this 347and calling <a href="#item_scr_add_lines"><code>$term-&gt;scr_add_lines</code></a> yourself. Please note that this
303might be very slow, however, as your hook is called for <strong>all</strong> text being 348might be very slow, however, as your hook is called for <strong>all</strong> text being
304output. 349output.
305</dd> 350</dd>
306<p></p> 351<p></p>
352<dt><strong><a name="item_on_tt_write__24term_2c__24octets">on_tt_write $term, $octets</a></strong><br />
353</dt>
354<dd>
355Called whenever some data is written to the tty/pty and can be used to
356suppress or filter tty input.
357</dd>
358<p></p>
307<dt><strong><a name="item_on_line_update__24term_2c__24row">on_line_update $term, $row</a></strong><br /> 359<dt><strong><a name="item_on_line_update__24term_2c__24row">on_line_update $term, $row</a></strong><br />
308</dt> 360</dt>
309<dd> 361<dd>
310Called whenever a line was updated or changed. Can be used to filter 362Called whenever a line was updated or changed. Can be used to filter
311screen output (e.g. underline urls or other useless stuff). Only lines 363screen output (e.g. underline urls or other useless stuff). Only lines
357<dd> 409<dd>
358Called wheneever the window loses keyboard focus, before rxvt-unicode does 410Called wheneever the window loses keyboard focus, before rxvt-unicode does
359focus out processing. 411focus out processing.
360</dd> 412</dd>
361<p></p> 413<p></p>
362<dt><strong><a name="item_on_key_press__24term_2c__24event_2c__24octets">on_key_press $term, $event, $octets</a></strong><br /> 414<dt><strong><a name="item_on_key_press__24term_2c__24event_2c__24keysym_2c__">on_key_press $term, $event, $keysym, $octets</a></strong><br />
363</dt> 415</dt>
364<dt><strong><a name="item_on_key_release__24term_2c__24event">on_key_release $term, $event</a></strong><br /> 416<dt><strong><a name="item_on_key_release__24term_2c__24event_2c__24keysym">on_key_release $term, $event, $keysym</a></strong><br />
365</dt> 417</dt>
366<dt><strong><a name="item_on_button_press__24term_2c__24event">on_button_press $term, $event</a></strong><br /> 418<dt><strong><a name="item_on_button_press__24term_2c__24event">on_button_press $term, $event</a></strong><br />
367</dt> 419</dt>
368<dt><strong><a name="item_on_button_release__24term_2c__24event">on_button_release $term, $event</a></strong><br /> 420<dt><strong><a name="item_on_button_release__24term_2c__24event">on_button_release $term, $event</a></strong><br />
369</dt> 421</dt>
431that calls this function. 483that calls this function.
432</dd> 484</dd>
433<dd> 485<dd>
434<p>Using this function has the advantage that its output ends up in the 486<p>Using this function has the advantage that its output ends up in the
435correct place, e.g. on stderr of the connecting urxvtc client.</p> 487correct place, e.g. on stderr of the connecting urxvtc client.</p>
488</dd>
489<p></p>
490<dt><strong><a name="item__24is_safe__3d_urxvt_3a_3asafe">$is_safe = urxvt::safe</a></strong><br />
491</dt>
492<dd>
493Returns true when it is safe to do potentially unsafe things, such as
494evaluating perl code specified by the user. This is true when urxvt was
495started setuid or setgid.
436</dd> 496</dd>
437<p></p> 497<p></p>
438<dt><strong><a name="item__24time__3d_urxvt_3a_3anow">$time = urxvt::NOW</a></strong><br /> 498<dt><strong><a name="item__24time__3d_urxvt_3a_3anow">$time = urxvt::NOW</a></strong><br />
439</dt> 499</dt>
440<dd> 500<dd>
592 scrollWithBuffer scrollstyle secondaryScreen secondaryScroll selectstyle 652 scrollWithBuffer scrollstyle secondaryScreen secondaryScroll selectstyle
593 shade term_name title transparent transparent_all tripleclickwords 653 shade term_name title transparent transparent_all tripleclickwords
594 utmpInhibit visualBell</pre> 654 utmpInhibit visualBell</pre>
595</dd> 655</dd>
596<p></p> 656<p></p>
657<dt><strong><a name="item_parse_keysym">$success = $term-&gt;parse_keysym ($keysym_spec, $command_string)</a></strong><br />
658</dt>
659<dd>
660Adds a keymap translation exactly as specified via a resource. See the
661<code>keysym</code> resource in the <code>rxvt(1)</code> manpage.
662</dd>
663<p></p>
597<dt><strong><a name="item_rstyle">$rend = $term-&gt;rstyle ([$new_rstyle])</a></strong><br /> 664<dt><strong><a name="item_rstyle">$rend = $term-&gt;rstyle ([$new_rstyle])</a></strong><br />
598</dt> 665</dt>
599<dd> 666<dd>
600Return and optionally change the current rendition. Text that is output by 667Return and optionally change the current rendition. Text that is output by
601the terminal application will use this style. 668the terminal application will use this style.
629<dt><strong>$oldtext = $term-&gt;selection ([$newtext])</strong><br /> 696<dt><strong>$oldtext = $term-&gt;selection ([$newtext])</strong><br />
630</dt> 697</dt>
631<dd> 698<dd>
632Return the current selection text and optionally replace it by <code>$newtext</code>. 699Return the current selection text and optionally replace it by <code>$newtext</code>.
633</dd> 700</dd>
701<p></p>
702<dt><strong><a name="item_overlay_simple">$term-&gt;overlay_simple ($x, $y, $text)</a></strong><br />
703</dt>
634<dd> 704<dd>
635<p>#=item $term-&gt;overlay ($x, $y, $text)
636#
637#Create a simple multi-line overlay box. See the next method for details. 705Create a simple multi-line overlay box. See the next method for details.
638#
639#=cut
640#
641#sub urxvt::term::scr_overlay {
642# my ($self, $x, $y, $text) = @_;
643#
644# my @lines = split /\n/, $text;
645#
646# my $w = 0;
647# for (map $self-&gt;strwidth ($_), @lines) {
648# $w = $_ if $w &lt; $_;
649# }
650#
651# $self-&gt;scr_overlay_new ($x, $y, $w, scalar @lines);
652# $self-&gt;scr_overlay_set (0, $_, $lines[$_]) for 0.. $#lines;
653#}</p>
654</dd> 706</dd>
655<p></p> 707<p></p>
656<dt><strong><a name="item_overlay">$term-&gt;overlay ($x, $y, $width, $height[, $rstyle[, $border]])</a></strong><br /> 708<dt><strong><a name="item_overlay">$term-&gt;overlay ($x, $y, $width, $height[, $rstyle[, $border]])</a></strong><br />
657</dt> 709</dt>
658<dd> 710<dd>
719<p></p> 771<p></p>
720<dt><strong><a name="item_locale_decode">$string = $term-&gt;locale_decode ($octets)</a></strong><br /> 772<dt><strong><a name="item_locale_decode">$string = $term-&gt;locale_decode ($octets)</a></strong><br />
721</dt> 773</dt>
722<dd> 774<dd>
723Convert the given locale-encoded octets into a perl string. 775Convert the given locale-encoded octets into a perl string.
776</dd>
777<p></p>
778<dt><strong><a name="item_scr_xor_span">$term-&gt;scr_xor_span ($beg_row, $beg_col, $end_row, $end_col[, $rstyle])</a></strong><br />
779</dt>
780<dd>
781XORs the rendition values in the given span with the provided value
782(default: <code>RS_RVid</code>). Useful in refresh hooks to provide effects similar
783to the selection.
784</dd>
785<p></p>
786<dt><strong><a name="item_scr_xor_rect">$term-&gt;scr_xor_rect ($beg_row, $beg_col, $end_row, $end_col[, $rstyle1[, $rstyle2]])</a></strong><br />
787</dt>
788<dd>
789Similar to <a href="#item_scr_xor_span"><code>scr_xor_span</code></a>, but xors a rectangle instead. Trailing
790whitespace will additionally be xored with the <code>$rstyle2</code>, which defaults
791to <code>RS_RVid | RS_Uline</code>, which removes reverse video again and underlines
792it instead.
793</dd>
794<p></p>
795<dt><strong><a name="item_scr_bell">$term-&gt;scr_bell</a></strong><br />
796</dt>
797<dd>
798Ring the bell!
724</dd> 799</dd>
725<p></p> 800<p></p>
726<dt><strong><a name="item_scr_add_lines">$term-&gt;scr_add_lines ($string)</a></strong><br /> 801<dt><strong><a name="item_scr_add_lines">$term-&gt;scr_add_lines ($string)</a></strong><br />
727</dt> 802</dt>
728<dd> 803<dd>
751Write the octets given in <code>$data</code> to the tty (i.e. as program input). To 826Write the octets given in <code>$data</code> to the tty (i.e. as program input). To
752pass characters instead of octets, you should convert your strings first 827pass characters instead of octets, you should convert your strings first
753to the locale-specific encoding using <a href="#item_locale_encode"><code>$term-&gt;locale_encode</code></a>. 828to the locale-specific encoding using <a href="#item_locale_encode"><code>$term-&gt;locale_encode</code></a>.
754</dd> 829</dd>
755<p></p> 830<p></p>
831<dt><strong><a name="item_pty_ev_events">$old_events = $term-&gt;pty_ev_events ([$new_events])</a></strong><br />
832</dt>
833<dd>
834Replaces the event mask of the pty watcher by the given event mask. Can
835be used to suppress input and output handling to the pty/tty. See the
836description of <a href="#item_events"><code>urxvt::timer-&gt;events</code></a>. Make sure to always restore
837the previous value.
838</dd>
839<p></p>
756<dt><strong><a name="item_parent">$windowid = $term-&gt;parent</a></strong><br /> 840<dt><strong><a name="item_parent">$windowid = $term-&gt;parent</a></strong><br />
757</dt> 841</dt>
758<dd> 842<dd>
759Return the window id of the toplevel window. 843Return the window id of the toplevel window.
760</dd> 844</dd>
789</dt> 873</dt>
790<dt><strong><a name="item_nsaved">$lines_in_scrollback = $term-&gt;nsaved</a></strong><br /> 874<dt><strong><a name="item_nsaved">$lines_in_scrollback = $term-&gt;nsaved</a></strong><br />
791</dt> 875</dt>
792<dd> 876<dd>
793Return various integers describing terminal characteristics. 877Return various integers describing terminal characteristics.
878</dd>
879<p></p>
880<dt><strong><a name="item_locale">$lc_ctype = $term-&gt;locale</a></strong><br />
881</dt>
882<dd>
883Returns the LC_CTYPE category string used by this rxvt-unicode.
884</dd>
885<p></p>
886<dt><strong><a name="item_display_id">$x_display = $term-&gt;display_id</a></strong><br />
887</dt>
888<dd>
889Return the DISPLAY used by rxvt-unicode.
794</dd> 890</dd>
795<p></p> 891<p></p>
796<dt><strong><a name="item_modlevel3mask">$modifiermask = $term-&gt;ModLevel3Mask</a></strong><br /> 892<dt><strong><a name="item_modlevel3mask">$modifiermask = $term-&gt;ModLevel3Mask</a></strong><br />
797</dt> 893</dt>
798<dt><strong><a name="item_modmetamask">$modifiermask = $term-&gt;ModMetaMask</a></strong><br /> 894<dt><strong><a name="item_modmetamask">$modifiermask = $term-&gt;ModMetaMask</a></strong><br />
949</dd> 1045</dd>
950<p></p> 1046<p></p>
951<dt><strong><a name="item_grab_button">$success = $term-&gt;grab_button ($button, $modifiermask)</a></strong><br /> 1047<dt><strong><a name="item_grab_button">$success = $term-&gt;grab_button ($button, $modifiermask)</a></strong><br />
952</dt> 1048</dt>
953<dd> 1049<dd>
954Registers a synchronous button grab. See XGrabButton. 1050Registers a synchronous button grab. See the XGrabButton manpage.
955</dd> 1051</dd>
956<p></p> 1052<p></p>
957<dt><strong><a name="item_grab">$success = $term-&gt;grab ($eventtime[, $sync])</a></strong><br /> 1053<dt><strong><a name="item_grab">$success = $term-&gt;grab ($eventtime[, $sync])</a></strong><br />
958</dt> 1054</dt>
959<dd> 1055<dd>
1064<pre> 1160<pre>
1065 $term-&gt;{socket} = ... 1161 $term-&gt;{socket} = ...
1066 $term-&gt;{iow} = urxvt::iow 1162 $term-&gt;{iow} = urxvt::iow
1067 -&gt;new 1163 -&gt;new
1068 -&gt;fd (fileno $term-&gt;{socket}) 1164 -&gt;fd (fileno $term-&gt;{socket})
1069 -&gt;events (1) # wait for read data 1165 -&gt;events (urxvt::EVENT_READ)
1070 -&gt;start 1166 -&gt;start
1071 -&gt;cb (sub { 1167 -&gt;cb (sub {
1072 my ($iow, $revents) = @_; 1168 my ($iow, $revents) = @_;
1073 # $revents must be 1 here, no need to check 1169 # $revents must be 1 here, no need to check
1074 sysread $term-&gt;{socket}, my $buf, 8192 1170 sysread $term-&gt;{socket}, my $buf, 8192
1095</dd> 1191</dd>
1096<p></p> 1192<p></p>
1097<dt><strong><a name="item_events">$iow = $iow-&gt;events ($eventmask)</a></strong><br /> 1193<dt><strong><a name="item_events">$iow = $iow-&gt;events ($eventmask)</a></strong><br />
1098</dt> 1194</dt>
1099<dd> 1195<dd>
1100Set the event mask to watch. Bit #0 (value <code>1</code>) enables watching for read 1196Set the event mask to watch. The only allowed values are
1101data, Bit #1 (value <code>2</code>) enables watching for write data. 1197<code>urxvt::EVENT_READ</code> and <code>urxvt::EVENT_WRITE</code>, which might be ORed
1198together, or <code>urxvt::EVENT_NONE</code>.
1102</dd> 1199</dd>
1103<p></p> 1200<p></p>
1104<dt><strong>$iow = $iow-&gt;start</strong><br /> 1201<dt><strong>$iow = $iow-&gt;start</strong><br />
1105</dt> 1202</dt>
1106<dd> 1203<dd>

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines