-- Leo's gemini proxy
-- Connecting to git.thebackupbox.net:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini
repo: rxvt-unicode-sixel action: commit revision: path_from: revision_from: 4d7962e0b460ff47a5c64063f9c855c6ce0a6824: path_to: revision_to:
commit 4d7962e0b460ff47a5c64063f9c855c6ce0a6824 Author: Marc Lehmann <schmorp@schmorp.de> Date: Tue Jan 10 04:26:54 2006 +0000 *** empty log message *** diff --git a/README.FAQ b/README.FAQ
--- a/README.FAQ +++ b/README.FAQ @@ -37,7 +37,7 @@ FREQUENTLY ASKED QUESTIONS this still fares rather well. And compared to some monsters like gnome-terminal (21152k + extra 4204k in separate processes) or konsole (22200k + extra 43180k in daemons that stay around after - exit, plus half aminute of startup time, including the hundreds of + exit, plus half a minute of startup time, including the hundreds of warnings it spits out), it fares extremely well *g*. Why C++, isn't that unportable/bloated/uncool? diff --git a/doc/rxvt.1.html b/doc/rxvt.1.html
--- a/doc/rxvt.1.html +++ b/doc/rxvt.1.html @@ -1460,12 +1460,19 @@ use in this terminal instance; option <strong>-pe</strong>. </dd> <dd> <p>Extension names can be prefixed with a <code>-</code> sign to prohibit using -it. This can be useful to selectively disable some extensions loaded +them. This can be useful to selectively disable some extensions loaded by default, or specified via the <code>perl-ext-common</code> resource. For example, <code>default,-selection</code> will use all the default extension except <code>selection</code>.</p> </dd> <dd> +<p>Extension names can also be followed by an argument in angle brackets +(e.g. <code>searchable-scrollback<M-s></code>, which binds the hotkey for +searchable scorllback to Alt/Meta-s). Mentioning the same extension +multiple times with different arguments will pass multiple arguments to +the extension.</p> +</dd> +<dd> <p>Each extension is looked up in the library directories, loaded if necessary, and bound to the current terminal instance.</p> </dd> diff --git a/doc/rxvt.1.man.in b/doc/rxvt.1.man.in
--- a/doc/rxvt.1.man.in +++ b/doc/rxvt.1.man.in @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "rxvt 1" -.TH rxvt 1 "2006-01-09" "6.3" "RXVT-UNICODE" +.TH rxvt 1 "2006-01-10" "6.3" "RXVT-UNICODE" .SH "NAME" rxvt\-unicode (ouR XVT, unicode) \- (a VT102 emulator for the X window system) .SH "SYNOPSIS" @@ -1116,11 +1116,17 @@ Comma-separated list(s) of perl extension scripts (default: \f(CW\*(C`default\*( use in this terminal instance; option \fB\-pe\fR. .Sp Extension names can be prefixed with a \f(CW\*(C`\-\*(C'\fR sign to prohibit using -it. This can be useful to selectively disable some extensions loaded +them. This can be useful to selectively disable some extensions loaded by default, or specified via the \f(CW\*(C`perl\-ext\-common\*(C'\fR resource. For example, \f(CW\*(C`default,\-selection\*(C'\fR will use all the default extension except \&\f(CW\*(C`selection\*(C'\fR. .Sp +Extension names can also be followed by an argument in angle brackets +(e.g. \f(CW\*(C`searchable\-scrollback<M\-s>\*(C'\fR, which binds the hotkey for +searchable scorllback to Alt/Meta\-s). Mentioning the same extension +multiple times with different arguments will pass multiple arguments to +the extension. +.Sp Each extension is looked up in the library directories, loaded if necessary, and bound to the current terminal instance. .Sp diff --git a/doc/rxvt.1.txt b/doc/rxvt.1.txt
--- a/doc/rxvt.1.txt +++ b/doc/rxvt.1.txt @@ -947,11 +947,17 @@ RESOURCES (available also as long-options) "default") to use in this terminal instance; option -pe. Extension names can be prefixed with a "-" sign to prohibit using - it. This can be useful to selectively disable some extensions loaded - by default, or specified via the "perl-ext-common" resource. For - example, "default,-selection" will use all the default extension + them. This can be useful to selectively disable some extensions + loaded by default, or specified via the "perl-ext-common" resource. + For example, "default,-selection" will use all the default extension except "selection". + Extension names can also be followed by an argument in angle + brackets (e.g. "searchable-scrollback<M-s>", which binds the hotkey + for searchable scorllback to Alt/Meta-s). Mentioning the same + extension multiple times with different arguments will pass multiple + arguments to the extension. + Each extension is looked up in the library directories, loaded if necessary, and bound to the current terminal instance. diff --git a/doc/rxvt.7.html b/doc/rxvt.7.html
--- a/doc/rxvt.7.html +++ b/doc/rxvt.7.html @@ -122,7 +122,7 @@ memory.</p> <p>Compared to e.g. Eterm (5112k), aterm (3132k) and xterm (4680k), this still fares rather well. And compared to some monsters like gnome-terminal (21152k + extra 4204k in separate processes) or konsole (22200k + extra -43180k in daemons that stay around after exit, plus half aminute of +43180k in daemons that stay around after exit, plus half a minute of startup time, including the hundreds of warnings it spits out), it fares extremely well *g*.</p> </dd> diff --git a/doc/rxvt.7.man.in b/doc/rxvt.7.man.in
--- a/doc/rxvt.7.man.in +++ b/doc/rxvt.7.man.in @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "rxvt 7" -.TH rxvt 7 "2006-01-09" "6.3" "RXVT-UNICODE" +.TH rxvt 7 "2006-01-10" "6.3" "RXVT-UNICODE" .SH "NAME" RXVT REFERENCE \- FAQ, command sequences and other background information .SH "SYNOPSIS" @@ -200,7 +200,7 @@ memory. Compared to e.g. Eterm (5112k), aterm (3132k) and xterm (4680k), this still fares rather well. And compared to some monsters like gnome-terminal (21152k + extra 4204k in separate processes) or konsole (22200k + extra -43180k in daemons that stay around after exit, plus half aminute of +43180k in daemons that stay around after exit, plus half a minute of startup time, including the hundreds of warnings it spits out), it fares extremely well *g*. .IP "Why \*(C+, isn't that unportable/bloated/uncool?" 4 diff --git a/doc/rxvt.7.txt b/doc/rxvt.7.txt
--- a/doc/rxvt.7.txt +++ b/doc/rxvt.7.txt @@ -58,7 +58,7 @@ FREQUENTLY ASKED QUESTIONS this still fares rather well. And compared to some monsters like gnome-terminal (21152k + extra 4204k in separate processes) or konsole (22200k + extra 43180k in daemons that stay around after - exit, plus half aminute of startup time, including the hundreds of + exit, plus half a minute of startup time, including the hundreds of warnings it spits out), it fares extremely well *g*. Why C++, isn't that unportable/bloated/uncool? diff --git a/doc/rxvtperl.3.html b/doc/rxvtperl.3.html
--- a/doc/rxvtperl.3.html +++ b/doc/rxvtperl.3.html @@ -19,6 +19,7 @@ <li><a href="#prepackaged_extensions">Prepackaged Extensions</a></li> <li><a href="#general_api_considerations">General API Considerations</a></li> + <li><a href="#extension_objects">Extension Objects</a></li> <li><a href="#hooks">Hooks</a></li> <li><a href="#variables_in_the_urxvt_package">Variables in the <code>urxvt</code> Package</a></li> <li><a href="#functions_in_the_urxvt_package">Functions in the <code>urxvt</code> Package</a></li> @@ -116,6 +117,20 @@ Binds a popup menu to Ctrl-Button3 that lets you convert the selection text into various other formats/action. </dd> <p></p> +<dt><strong><a name="item_searchable_2dscrollback_3chotkey_3e__28enabled_by_">searchable-scrollback<hotkey> (enabled by default)</a></strong><br /> +</dt> +<dd> +Adds regex search functionality to the scrollback buffer, triggered +by a hotkey (default: <code>M-s</code>). When in search mode, normal terminal +input/output is suspended. +</dd> +<dd> +<p><code>/</code> starts an incremental regex search, <code>n</code> searches further, <code>p</code> or +<code>N</code> jump to the previous match, <code>G</code> jumps to the bottom and clears the +history, <code>enter</code> leaves search mode at the current position and <code>escape</code> +returns to the original position.</p> +</dd> +<p></p> <dt><strong><a name="item_digital_2dclock">digital-clock</a></strong><br /> </dt> <dd> @@ -183,19 +198,49 @@ locale-specific way. <p></p></dl> <p> </p> +<h2><a name="extension_objects">Extension Objects</a></h2> +<p>Very perl extension is a perl class. A separate perl object is created +for each terminal and each extension and passed as the first parameter to +hooks. So extensions can use their <code>$self</code> object without having to think +about other extensions, with the exception of methods and members that +begin with an underscore character <code>_</code>: these are reserved for internal +use.</p> +<p>Although it isn't a <code>urxvt::term</code> object, you can call all methods of the +<code>urxvt::term</code> class on this object.</p> +<p>It has the following methods and data members:</p> +<dl> +<dt><strong><a name="item__24urxvt_term__3d__24self_2d_3e_7bterm_7d">$urxvt_term = $self->{term}</a></strong><br /> +</dt> +<dd> +Returns the <code>urxvt::term</code> object associated with this instance of the +extension. This member <em>must not</em> be changed in any way. +</dd> +<p></p> +<dt><strong><a name="item_enable">$self->enable ($hook_name => $cb, [$hook_name => $cb..])</a></strong><br /> +</dt> +<dd> +Dynamically enable the given hooks (named without the <code>on_</code> prefix) for +this extension, replacing any previous hook. This is useful when you want +to overwrite time-critical hooks only temporarily. +</dd> +<p></p> +<dt><strong><a name="item_disable">$self->disable ($hook_name[, $hook_name..])</a></strong><br /> +</dt> +<dd> +Dynamically disable the given hooks. +</dd> +<p></p></dl> +<p> +</p> <h2><a name="hooks">Hooks</a></h2> <p>The following subroutines can be declared in extension files, and will be called whenever the relevant event happens.</p> -<p>The first argument passed to them is an object private to each terminal -and extension package. You can call all <code>urxvt::term</code> methods on it, but -its not a real <code>urxvt::term</code> object. Instead, the real <code>urxvt::term</code> -object that is shared between all packages is stored in the <code>term</code> -member. It is, however, blessed intot he package of the extension script, -so for all practical purposes you can treat an extension script as a class.</p> -<p>All of them must return a boolean value. If it is true, then the event -counts as being <em>consumed</em>, and the invocation of other hooks is skipped, -and the relevant action might not be carried out by the C++ code.</p> -<p>When in doubt, return a false value (preferably <code>()</code>).</p> +<p>The first argument passed to them is an extension oject as described in +the in the <code>Extension Objects</code> section.</p> +<p><strong>All</strong> of these hooks must return a boolean value. If it is true, then the +event counts as being <em>consumed</em>, and the invocation of other hooks is +skipped, and the relevant action might not be carried out by the C++ code.</p> +<p><em>When in doubt, return a false value (preferably <code>()</code>). </em>></p> <dl> <dt><strong><a name="item_on_init__24term">on_init $term</a></strong><br /> </dt> @@ -304,6 +349,13 @@ might be very slow, however, as your hook is called for <strong>all</strong> tex output. </dd> <p></p> +<dt><strong><a name="item_on_tt_write__24term_2c__24octets">on_tt_write $term, $octets</a></strong><br /> +</dt> +<dd> +Called whenever some data is written to the tty/pty and can be used to +suppress or filter tty input. +</dd> +<p></p> <dt><strong><a name="item_on_line_update__24term_2c__24row">on_line_update $term, $row</a></strong><br /> </dt> <dd> @@ -359,9 +411,9 @@ Called wheneever the window loses keyboard focus, before rxvt-unicode does focus out processing. </dd> <p></p> -<dt><strong><a name="item_on_key_press__24term_2c__24event_2c__24octets">on_key_press $term, $event, $octets</a></strong><br /> +<dt><strong><a name="item_on_key_press__24term_2c__24event_2c__24keysym_2c__">on_key_press $term, $event, $keysym, $octets</a></strong><br /> </dt> -<dt><strong><a name="item_on_key_release__24term_2c__24event">on_key_release $term, $event</a></strong><br /> +<dt><strong><a name="item_on_key_release__24term_2c__24event_2c__24keysym">on_key_release $term, $event, $keysym</a></strong><br /> </dt> <dt><strong><a name="item_on_button_press__24term_2c__24event">on_button_press $term, $event</a></strong><br /> </dt> @@ -602,6 +654,13 @@ to see the actual list:</p> utmpInhibit visualBell</pre> </dd> <p></p> +<dt><strong><a name="item_parse_keysym">$success = $term->parse_keysym ($keysym_spec, $command_string)</a></strong><br /> +</dt> +<dd> +Adds a keymap translation exactly as specified via a resource. See the +<code>keysym</code> resource in the <code>rxvt(1)</code> manpage. +</dd> +<p></p> <dt><strong><a name="item_rstyle">$rend = $term->rstyle ([$new_rstyle])</a></strong><br /> </dt> <dd> @@ -639,26 +698,11 @@ by the next method). <dd> Return the current selection text and optionally replace it by <code>$newtext</code>. </dd> +<p></p> +<dt><strong><a name="item_overlay_simple">$term->overlay_simple ($x, $y, $text)</a></strong><br /> +</dt> <dd> -<p>#=item $term->overlay ($x, $y, $text) -# -#Create a simple multi-line overlay box. See the next method for details. -# -#=cut -# -#sub urxvt::term::scr_overlay { -# my ($self, $x, $y, $text) = @_; -# -# my @lines = split /\n/, $text; -# -# my $w = 0; -# for (map $self->strwidth ($_), @lines) { -# $w = $_ if $w < $_; -# } -# -# $self->scr_overlay_new ($x, $y, $w, scalar @lines); -# $self->scr_overlay_set (0, $_, $lines[$_]) for 0.. $#lines; -#}</p> +Create a simple multi-line overlay box. See the next method for details. </dd> <p></p> <dt><strong><a name="item_overlay">$term->overlay ($x, $y, $width, $height[, $rstyle[, $border]])</a></strong><br /> @@ -731,6 +775,29 @@ Convert the given text string into the corresponding locale encoding. Convert the given locale-encoded octets into a perl string. </dd> <p></p> +<dt><strong><a name="item_scr_xor_span">$term->scr_xor_span ($beg_row, $beg_col, $end_row, $end_col[, $rstyle])</a></strong><br /> +</dt> +<dd> +XORs the rendition values in the given span with the provided value +(default: <code>RS_RVid</code>). Useful in refresh hooks to provide effects similar +to the selection. +</dd> +<p></p> +<dt><strong><a name="item_scr_xor_rect">$term->scr_xor_rect ($beg_row, $beg_col, $end_row, $end_col[, $rstyle1[, $rstyle2]])</a></strong><br /> +</dt> +<dd> +Similar to <a href="#item_scr_xor_span"><code>scr_xor_span</code></a>, but xors a rectangle instead. Trailing +whitespace will additionally be xored with the <code>$rstyle2</code>, which defaults +to <code>RS_RVid | RS_Uline</code>, which removes reverse video again and underlines +it instead. +</dd> +<p></p> +<dt><strong><a name="item_scr_bell">$term->scr_bell</a></strong><br /> +</dt> +<dd> +Ring the bell! +</dd> +<p></p> <dt><strong><a name="item_scr_add_lines">$term->scr_add_lines ($string)</a></strong><br /> </dt> <dd> @@ -761,6 +828,15 @@ pass characters instead of octets, you should convert your strings first to the locale-specific encoding using <a href="#item_locale_encode"><code>$term->locale_encode</code></a>. </dd> <p></p> +<dt><strong><a name="item_pty_ev_events">$old_events = $term->pty_ev_events ([$new_events])</a></strong><br /> +</dt> +<dd> +Replaces the event mask of the pty watcher by the given event mask. Can +be used to suppress input and output handling to the pty/tty. See the +description of <a href="#item_events"><code>urxvt::timer->events</code></a>. Make sure to always restore +the previous value. +</dd> +<p></p> <dt><strong><a name="item_parent">$windowid = $term->parent</a></strong><br /> </dt> <dd> @@ -801,6 +877,18 @@ Return the window id of the terminal window. Return various integers describing terminal characteristics. </dd> <p></p> +<dt><strong><a name="item_locale">$lc_ctype = $term->locale</a></strong><br /> +</dt> +<dd> +Returns the LC_CTYPE category string used by this rxvt-unicode. +</dd> +<p></p> +<dt><strong><a name="item_display_id">$x_display = $term->display_id</a></strong><br /> +</dt> +<dd> +Return the DISPLAY used by rxvt-unicode. +</dd> +<p></p> <dt><strong><a name="item_modlevel3mask">$modifiermask = $term->ModLevel3Mask</a></strong><br /> </dt> <dt><strong><a name="item_modmetamask">$modifiermask = $term->ModMetaMask</a></strong><br /> @@ -1074,7 +1162,7 @@ Stop the timer. $term->{iow} = urxvt::iow ->new ->fd (fileno $term->{socket}) - ->events (1) # wait for read data + ->events (urxvt::EVENT_READ) ->start ->cb (sub { my ($iow, $revents) = @_; @@ -1105,8 +1193,9 @@ Set the filedescriptor (not handle) to watch. <dt><strong><a name="item_events">$iow = $iow->events ($eventmask)</a></strong><br /> </dt> <dd> -Set the event mask to watch. Bit #0 (value <code>1</code>) enables watching for read -data, Bit #1 (value <code>2</code>) enables watching for write data. +Set the event mask to watch. The only allowed values are +<code>urxvt::EVENT_READ</code> and <code>urxvt::EVENT_WRITE</code>, which might be ORed +together, or <code>urxvt::EVENT_NONE</code>. </dd> <p></p> <dt><strong>$iow = $iow->start</strong><br /> diff --git a/doc/rxvtperl.3.man.in b/doc/rxvtperl.3.man.in
--- a/doc/rxvtperl.3.man.in +++ b/doc/rxvtperl.3.man.in @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "rxvt 3" -.TH rxvt 3 "2006-01-09" "6.3" "RXVT-UNICODE" +.TH rxvt 3 "2006-01-10" "6.3" "RXVT-UNICODE" .SH "NAME" @@RXVT_NAME@@perl \- rxvt\-unicode's embedded perl interpreter .SH "SYNOPSIS" @@ -199,6 +199,16 @@ runtime. .IX Item "selection-popup (enabled by default)" Binds a popup menu to Ctrl\-Button3 that lets you convert the selection text into various other formats/action. +.IP "searchable\-scrollback<hotkey> (enabled by default)" 4 +.IX Item "searchable-scrollback<hotkey> (enabled by default)" +Adds regex search functionality to the scrollback buffer, triggered +by a hotkey (default: \f(CW\*(C`M\-s\*(C'\fR). When in search mode, normal terminal +input/output is suspended. +.Sp +\&\f(CW\*(C`/\*(C'\fR starts an incremental regex search, \f(CW\*(C`n\*(C'\fR searches further, \f(CW\*(C`p\*(C'\fR or +\&\f(CW\*(C`N\*(C'\fR jump to the previous match, \f(CW\*(C`G\*(C'\fR jumps to the bottom and clears the +history, \f(CW\*(C`enter\*(C'\fR leaves search mode at the current position and \f(CW\*(C`escape\*(C'\fR +returns to the original position. .IP "digital-clock" 4 .IX Item "digital-clock" Displays a digital clock using the built-in overlay. @@ -243,23 +253,47 @@ encoding (often locale\-specific) and binary data. .IX Item "$octets" Either binary data or \- more common \- a text string encoded in a locale-specific way. +.Sh "Extension Objects" +.IX Subsection "Extension Objects" +Very perl extension is a perl class. A separate perl object is created +for each terminal and each extension and passed as the first parameter to +hooks. So extensions can use their \f(CW$self\fR object without having to think +about other extensions, with the exception of methods and members that +begin with an underscore character \f(CW\*(C`_\*(C'\fR: these are reserved for internal +use. +.PP +Although it isn't a \f(CW\*(C`urxvt::term\*(C'\fR object, you can call all methods of the +\&\f(CW\*(C`urxvt::term\*(C'\fR class on this object. +.PP +It has the following methods and data members: +.ie n .IP "$urxvt_term = $self\->{term}" 4 +.el .IP "$urxvt_term = \f(CW$self\fR\->{term}" 4 +.IX Item "$urxvt_term = $self->{term}" +Returns the \f(CW\*(C`urxvt::term\*(C'\fR object associated with this instance of the +extension. This member \fImust not\fR be changed in any way. +.ie n .IP "$self\->enable ($hook_name => $cb\fR, [$hook_name => \f(CW$cb..])" 4 +.el .IP "$self\->enable ($hook_name => \f(CW$cb\fR, [$hook_name => \f(CW$cb\fR..])" 4 +.IX Item "$self->enable ($hook_name => $cb, [$hook_name => $cb..])" +Dynamically enable the given hooks (named without the \f(CW\*(C`on_\*(C'\fR prefix) for +this extension, replacing any previous hook. This is useful when you want +to overwrite time-critical hooks only temporarily. +.ie n .IP "$self\->disable ($hook_name[, $hook_name..])" 4 +.el .IP "$self\->disable ($hook_name[, \f(CW$hook_name\fR..])" 4 +.IX Item "$self->disable ($hook_name[, $hook_name..])" +Dynamically disable the given hooks. .Sh "Hooks" .IX Subsection "Hooks" The following subroutines can be declared in extension files, and will be called whenever the relevant event happens. .PP -The first argument passed to them is an object private to each terminal -and extension package. You can call all \f(CW\*(C`urxvt::term\*(C'\fR methods on it, but -its not a real \f(CW\*(C`urxvt::term\*(C'\fR object. Instead, the real \f(CW\*(C`urxvt::term\*(C'\fR -object that is shared between all packages is stored in the \f(CW\*(C`term\*(C'\fR -member. It is, however, blessed intot he package of the extension script, -so for all practical purposes you can treat an extension script as a class. +The first argument passed to them is an extension oject as described in +the in the \f(CW\*(C`Extension Objects\*(C'\fR section. .PP -All of them must return a boolean value. If it is true, then the event -counts as being \fIconsumed\fR, and the invocation of other hooks is skipped, -and the relevant action might not be carried out by the \*(C+ code. +\&\fBAll\fR of these hooks must return a boolean value. If it is true, then the +event counts as being \fIconsumed\fR, and the invocation of other hooks is +skipped, and the relevant action might not be carried out by the \*(C+ code. .PP -When in doubt, return a false value (preferably \f(CW\*(C`()\*(C'\fR). +\&\fIWhen in doubt, return a false value (preferably \f(CI\*(C`()\*(C'\fI).\fR .ie n .IP "on_init $term" 4 .el .IP "on_init \f(CW$term\fR" 4 .IX Item "on_init $term" @@ -342,6 +376,11 @@ can filter/change and output the text yourself by returning a true value and calling \f(CW\*(C`$term\->scr_add_lines\*(C'\fR yourself. Please note that this might be very slow, however, as your hook is called for \fBall\fR text being output. +.ie n .IP "on_tt_write $term\fR, \f(CW$octets" 4 +.el .IP "on_tt_write \f(CW$term\fR, \f(CW$octets\fR" 4 +.IX Item "on_tt_write $term, $octets" +Called whenever some data is written to the tty/pty and can be used to +suppress or filter tty input. .ie n .IP "on_line_update $term\fR, \f(CW$row" 4 .el .IP "on_line_update \f(CW$term\fR, \f(CW$row\fR" 4 .IX Item "on_line_update $term, $row" @@ -383,13 +422,13 @@ does focus in processing. .IX Item "on_focus_out $term" Called wheneever the window loses keyboard focus, before rxvt-unicode does focus out processing. -.ie n .IP "on_key_press $term\fR, \f(CW$event\fR, \f(CW$octets" 4 -.el .IP "on_key_press \f(CW$term\fR, \f(CW$event\fR, \f(CW$octets\fR" 4 -.IX Item "on_key_press $term, $event, $octets" +.ie n .IP "on_key_press $term\fR, \f(CW$event\fR, \f(CW$keysym\fR, \f(CW$octets" 4 +.el .IP "on_key_press \f(CW$term\fR, \f(CW$event\fR, \f(CW$keysym\fR, \f(CW$octets\fR" 4 +.IX Item "on_key_press $term, $event, $keysym, $octets" .PD 0 -.ie n .IP "on_key_release $term\fR, \f(CW$event" 4 -.el .IP "on_key_release \f(CW$term\fR, \f(CW$event\fR" 4 -.IX Item "on_key_release $term, $event" +.ie n .IP "on_key_release $term\fR, \f(CW$event\fR, \f(CW$keysym" 4 +.el .IP "on_key_release \f(CW$term\fR, \f(CW$event\fR, \f(CW$keysym\fR" 4 +.IX Item "on_key_release $term, $event, $keysym" .ie n .IP "on_button_press $term\fR, \f(CW$event" 4 .el .IP "on_button_press \f(CW$term\fR, \f(CW$event\fR" 4 .IX Item "on_button_press $term, $event" @@ -581,6 +620,11 @@ to see the actual list: \& shade term_name title transparent transparent_all tripleclickwords \& utmpInhibit visualBell .Ve +.ie n .IP "$success = $term\fR\->parse_keysym ($keysym_spec, \f(CW$command_string)" 4 +.el .IP "$success = \f(CW$term\fR\->parse_keysym ($keysym_spec, \f(CW$command_string\fR)" 4 +.IX Item "$success = $term->parse_keysym ($keysym_spec, $command_string)" +Adds a keymap translation exactly as specified via a resource. See the +\&\f(CW\*(C`keysym\*(C'\fR resource in the @@RXVT_NAME@@(1) manpage. .ie n .IP "$rend = $term\->rstyle ([$new_rstyle])" 4 .el .IP "$rend = \f(CW$term\fR\->rstyle ([$new_rstyle])" 4 .IX Item "$rend = $term->rstyle ([$new_rstyle])" @@ -613,26 +657,10 @@ by the next method). .el .IP "$oldtext = \f(CW$term\fR\->selection ([$newtext])" 4 .IX Item "$oldtext = $term->selection ([$newtext])" Return the current selection text and optionally replace it by \f(CW$newtext\fR. -.Sp -#=item \f(CW$term\fR\->overlay ($x, \f(CW$y\fR, \f(CW$text\fR) -# -#Create a simple multi-line overlay box. See the next method for details. -# -#=cut -# -#sub urxvt::term::scr_overlay { -# my ($self, \f(CW$x\fR, \f(CW$y\fR, \f(CW$text\fR) = \f(CW@_\fR; -# -# my \f(CW@lines\fR = split /\en/, \f(CW$text\fR; -# -# my \f(CW$w\fR = 0; -# for (map \f(CW$self\fR\->strwidth ($_), \f(CW@lines\fR) { -# \f(CW$w\fR = \f(CW$_\fR if \f(CW$w\fR < \f(CW$_\fR; -# } -# -# \f(CW$self\fR\->scr_overlay_new ($x, \f(CW$y\fR, \f(CW$w\fR, scalar \f(CW@lines\fR); -# \f(CW$self\fR\->scr_overlay_set (0, \f(CW$_\fR, \f(CW$lines\fR[$_]) for 0.. $#lines; -#} +.ie n .IP "$term\->overlay_simple ($x, $y\fR, \f(CW$text)" 4 +.el .IP "$term\->overlay_simple ($x, \f(CW$y\fR, \f(CW$text\fR)" 4 +.IX Item "$term->overlay_simple ($x, $y, $text)" +Create a simple multi-line overlay box. See the next method for details. .ie n .IP "$term\->overlay ($x, $y\fR, \f(CW$width\fR, \f(CW$height\fR[, \f(CW$rstyle\fR[, \f(CW$border]])" 4 .el .IP "$term\->overlay ($x, \f(CW$y\fR, \f(CW$width\fR, \f(CW$height\fR[, \f(CW$rstyle\fR[, \f(CW$border\fR]])" 4 .IX Item "$term->overlay ($x, $y, $width, $height[, $rstyle[, $border]])" @@ -685,6 +713,22 @@ Convert the given text string into the corresponding locale encoding. .el .IP "$string = \f(CW$term\fR\->locale_decode ($octets)" 4 .IX Item "$string = $term->locale_decode ($octets)" Convert the given locale-encoded octets into a perl string. +.ie n .IP "$term\->scr_xor_span ($beg_row, $beg_col\fR, \f(CW$end_row\fR, \f(CW$end_col\fR[, \f(CW$rstyle])" 4 +.el .IP "$term\->scr_xor_span ($beg_row, \f(CW$beg_col\fR, \f(CW$end_row\fR, \f(CW$end_col\fR[, \f(CW$rstyle\fR])" 4 +.IX Item "$term->scr_xor_span ($beg_row, $beg_col, $end_row, $end_col[, $rstyle])" +XORs the rendition values in the given span with the provided value +(default: \f(CW\*(C`RS_RVid\*(C'\fR). Useful in refresh hooks to provide effects similar +to the selection. +.ie n .IP "$term\->scr_xor_rect ($beg_row, $beg_col\fR, \f(CW$end_row\fR, \f(CW$end_col\fR[, \f(CW$rstyle1\fR[, \f(CW$rstyle2]])" 4 +.el .IP "$term\->scr_xor_rect ($beg_row, \f(CW$beg_col\fR, \f(CW$end_row\fR, \f(CW$end_col\fR[, \f(CW$rstyle1\fR[, \f(CW$rstyle2\fR]])" 4 +.IX Item "$term->scr_xor_rect ($beg_row, $beg_col, $end_row, $end_col[, $rstyle1[, $rstyle2]])" +Similar to \f(CW\*(C`scr_xor_span\*(C'\fR, but xors a rectangle instead. Trailing +whitespace will additionally be xored with the \f(CW$rstyle2\fR, which defaults +to \f(CW\*(C`RS_RVid | RS_Uline\*(C'\fR, which removes reverse video again and underlines +it instead. +.IP "$term\->scr_bell" 4 +.IX Item "$term->scr_bell" +Ring the bell! .IP "$term\->scr_add_lines ($string)" 4 .IX Item "$term->scr_add_lines ($string)" Write the given text string to the screen, as if output by the application @@ -705,6 +749,13 @@ locale-specific encoding of the terminal and can contain command sequences Write the octets given in \f(CW$data\fR to the tty (i.e. as program input). To pass characters instead of octets, you should convert your strings first to the locale-specific encoding using \f(CW\*(C`$term\->locale_encode\*(C'\fR. +.ie n .IP "$old_events = $term\->pty_ev_events ([$new_events])" 4 +.el .IP "$old_events = \f(CW$term\fR\->pty_ev_events ([$new_events])" 4 +.IX Item "$old_events = $term->pty_ev_events ([$new_events])" +Replaces the event mask of the pty watcher by the given event mask. Can +be used to suppress input and output handling to the pty/tty. See the +description of \f(CW\*(C`urxvt::timer\->events\*(C'\fR. Make sure to always restore +the previous value. .ie n .IP "$windowid = $term\->parent" 4 .el .IP "$windowid = \f(CW$term\fR\->parent" 4 .IX Item "$windowid = $term->parent" @@ -752,6 +803,14 @@ Return the window id of the terminal window. .IX Item "$lines_in_scrollback = $term->nsaved" .PD Return various integers describing terminal characteristics. +.ie n .IP "$lc_ctype = $term\->locale" 4 +.el .IP "$lc_ctype = \f(CW$term\fR\->locale" 4 +.IX Item "$lc_ctype = $term->locale" +Returns the \s-1LC_CTYPE\s0 category string used by this rxvt\-unicode. +.ie n .IP "$x_display = $term\->display_id" 4 +.el .IP "$x_display = \f(CW$term\fR\->display_id" 4 +.IX Item "$x_display = $term->display_id" +Return the \s-1DISPLAY\s0 used by rxvt\-unicode. .ie n .IP "$modifiermask = $term\->ModLevel3Mask" 4 .el .IP "$modifiermask = \f(CW$term\fR\->ModLevel3Mask" 4 .IX Item "$modifiermask = $term->ModLevel3Mask" @@ -968,7 +1027,7 @@ This class implements io watchers/events. Example: \& $term->{iow} = urxvt::iow \& ->new \& ->fd (fileno $term->{socket}) -\& ->events (1) # wait for read data +\& ->events (urxvt::EVENT_READ) \& ->start \& ->cb (sub { \& my ($iow, $revents) = @_; @@ -992,8 +1051,9 @@ Set the filedescriptor (not handle) to watch. .ie n .IP "$iow = $iow\->events ($eventmask)" 4 .el .IP "$iow = \f(CW$iow\fR\->events ($eventmask)" 4 .IX Item "$iow = $iow->events ($eventmask)" -Set the event mask to watch. Bit #0 (value \f(CW1\fR) enables watching for read -data, Bit #1 (value \f(CW2\fR) enables watching for write data. +Set the event mask to watch. The only allowed values are +\&\f(CW\*(C`urxvt::EVENT_READ\*(C'\fR and \f(CW\*(C`urxvt::EVENT_WRITE\*(C'\fR, which might be ORed +together, or \f(CW\*(C`urxvt::EVENT_NONE\*(C'\fR. .ie n .IP "$iow = $iow\->start" 4 .el .IP "$iow = \f(CW$iow\fR\->start" 4 .IX Item "$iow = $iow->start" diff --git a/doc/rxvtperl.3.txt b/doc/rxvtperl.3.txt
--- a/doc/rxvtperl.3.txt +++ b/doc/rxvtperl.3.txt @@ -52,6 +52,16 @@ DESCRIPTION Binds a popup menu to Ctrl-Button3 that lets you convert the selection text into various other formats/action. + searchable-scrollback<hotkey> (enabled by default) + Adds regex search functionality to the scrollback buffer, triggered + by a hotkey (default: "M-s"). When in search mode, normal terminal + input/output is suspended. + + "/" starts an incremental regex search, "n" searches further, "p" or + "N" jump to the previous match, "G" jumps to the bottom and clears + the history, "enter" leaves search mode at the current position and + "escape" returns to the original position. + digital-clock Displays a digital clock using the built-in overlay. @@ -98,24 +108,44 @@ DESCRIPTION Either binary data or - more common - a text string encoded in a locale-specific way. + Extension Objects + Very perl extension is a perl class. A separate perl object is created + for each terminal and each extension and passed as the first parameter + to hooks. So extensions can use their $self object without having to + think about other extensions, with the exception of methods and members + that begin with an underscore character "_": these are reserved for + internal use. + + Although it isn't a "urxvt::term" object, you can call all methods of + the "urxvt::term" class on this object. + + It has the following methods and data members: + + $urxvt_term = $self->{term} + Returns the "urxvt::term" object associated with this instance of + the extension. This member *must not* be changed in any way. + + $self->enable ($hook_name => $cb, [$hook_name => $cb..]) + Dynamically enable the given hooks (named without the "on_" prefix) + for this extension, replacing any previous hook. This is useful when + you want to overwrite time-critical hooks only temporarily. + + $self->disable ($hook_name[, $hook_name..]) + Dynamically disable the given hooks. + Hooks The following subroutines can be declared in extension files, and will be called whenever the relevant event happens. - The first argument passed to them is an object private to each terminal - and extension package. You can call all "urxvt::term" methods on it, but - its not a real "urxvt::term" object. Instead, the real "urxvt::term" - object that is shared between all packages is stored in the "term" - member. It is, however, blessed intot he package of the extension - script, so for all practical purposes you can treat an extension script - as a class. + The first argument passed to them is an extension oject as described in + the in the "Extension Objects" section. - All of them must return a boolean value. If it is true, then the event - counts as being *consumed*, and the invocation of other hooks is + All of these hooks must return a boolean value. If it is true, then the + event counts as being *consumed*, and the invocation of other hooks is skipped, and the relevant action might not be carried out by the C++ code. - When in doubt, return a false value (preferably "()"). + *When in doubt, return a false value (preferably "()").* on_init $term Called after a new terminal object has been initialized, but before @@ -191,6 +221,10 @@ DESCRIPTION Please note that this might be very slow, however, as your hook is called for all text being output. + on_tt_write $term, $octets + Called whenever some data is written to the tty/pty and can be used + to suppress or filter tty input. + on_line_update $term, $row Called whenever a line was updated or changed. Can be used to filter screen output (e.g. underline urls or other useless stuff). Only @@ -227,8 +261,8 @@ DESCRIPTION Called wheneever the window loses keyboard focus, before rxvt-unicode does focus out processing. - on_key_press $term, $event, $octets - on_key_release $term, $event + on_key_press $term, $event, $keysym, $octets + on_key_release $term, $event, $keysym on_button_press $term, $event on_button_release $term, $event on_motion_notify $term, $event @@ -388,6 +422,10 @@ DESCRIPTION shade term_name title transparent transparent_all tripleclickwords utmpInhibit visualBell + $success = $term->parse_keysym ($keysym_spec, $command_string) + Adds a keymap translation exactly as specified via a resource. See + the "keysym" resource in the rxvt(1) manpage. + $rend = $term->rstyle ([$new_rstyle]) Return and optionally change the current rendition. Text that is output by the terminal application will use this style. @@ -411,13 +449,9 @@ DESCRIPTION Return the current selection text and optionally replace it by $newtext. - #=item $term->overlay ($x, $y, $text) # #Create a simple multi-line - overlay box. See the next method for details. # #=cut # #sub - urxvt::term::scr_overlay { # my ($self, $x, $y, $text) = @_; # # my - @lines = split /\n/, $text; # # my $w = 0; # for (map - $self->strwidth ($_), @lines) { # $w = $_ if $w < $_; # } # # - $self->scr_overlay_new ($x, $y, $w, scalar @lines); # - $self->scr_overlay_set (0, $_, $lines[$_]) for 0.. $#lines; #} + $term->overlay_simple ($x, $y, $text) + Create a simple multi-line overlay box. See the next method for + details. $term->overlay ($x, $y, $width, $height[, $rstyle[, $border]]) Create a new (empty) overlay at the given position with the given @@ -462,6 +496,21 @@ DESCRIPTION $string = $term->locale_decode ($octets) Convert the given locale-encoded octets into a perl string. + $term->scr_xor_span ($beg_row, $beg_col, $end_row, $end_col[, $rstyle]) + XORs the rendition values in the given span with the provided value + (default: "RS_RVid"). Useful in refresh hooks to provide effects + similar to the selection. + + $term->scr_xor_rect ($beg_row, $beg_col, $end_row, $end_col[, $rstyle1[, + $rstyle2]]) + Similar to "scr_xor_span", but xors a rectangle instead. Trailing + whitespace will additionally be xored with the $rstyle2, which + defaults to "RS_RVid | RS_Uline", which removes reverse video again + and underlines it instead. + + $term->scr_bell + Ring the bell! + $term->scr_add_lines ($string) Write the given text string to the screen, as if output by the application running inside the terminal. It may not contain command @@ -484,6 +533,12 @@ DESCRIPTION strings first to the locale-specific encoding using "$term->locale_encode". + $old_events = $term->pty_ev_events ([$new_events]) + Replaces the event mask of the pty watcher by the given event mask. + Can be used to suppress input and output handling to the pty/tty. + See the description of "urxvt::timer->events". Make sure to always + restore the previous value. + $windowid = $term->parent Return the window id of the toplevel window. @@ -504,6 +559,12 @@ DESCRIPTION $lines_in_scrollback = $term->nsaved Return various integers describing terminal characteristics. + $lc_ctype = $term->locale + Returns the LC_CTYPE category string used by this rxvt-unicode. + + $x_display = $term->display_id + Return the DISPLAY used by rxvt-unicode. + $modifiermask = $term->ModLevel3Mask $modifiermask = $term->ModMetaMask $modifiermask = $term->ModNumLockMask @@ -675,7 +736,7 @@ DESCRIPTION $term->{iow} = urxvt::iow ->new ->fd (fileno $term->{socket}) - ->events (1) # wait for read data + ->events (urxvt::EVENT_READ) ->start ->cb (sub { my ($iow, $revents) = @_; @@ -695,8 +756,9 @@ DESCRIPTION Set the filedescriptor (not handle) to watch. $iow = $iow->events ($eventmask) - Set the event mask to watch. Bit #0 (value 1) enables watching - for read data, Bit #1 (value 2) enables watching for write data. + Set the event mask to watch. The only allowed values are + "urxvt::EVENT_READ" and "urxvt::EVENT_WRITE", which might be + ORed together, or "urxvt::EVENT_NONE". $iow = $iow->start Start watching for requested events on the given handle. diff --git a/src/perl/searchable-scrollback b/src/perl/searchable-scrollback
--- a/src/perl/searchable-scrollback +++ b/src/perl/searchable-scrollback @@ -46,7 +46,7 @@ sub enter { ); $self->{manpage_overlay} = $self->overlay (0, -2, $self->ncol, 1, urxvt::OVERLAY_RSTYLE, 0); - $self->{manpage_overlay}->set (0, 0, "scrollback search, see man ${urxvt::RXVTNAME}perl"); + $self->{manpage_overlay}->set (0, 0, "scrollback search, see man ${urxvt::RXVTNAME}perl for details"); $self->idle; } diff --git a/src/urxvt.pm b/src/urxvt.pm
--- a/src/urxvt.pm +++ b/src/urxvt.pm @@ -68,13 +68,16 @@ runtime. Binds a popup menu to Ctrl-Button3 that lets you convert the selection text into various other formats/action. -=item searchable-scrollback (enabled by default) +=item searchable-scrollback<hotkey> (enabled by default) -Adds regex search functionality to the scrollback buffer, triggered by a -hotkey (default: C<M-s>). When in search mode, terminal input/output is -suspended, C</> starts an incremental regex search, C<n> searches further, -C<p> jumps to the previous match. C<enter> leaves search mode at the -current position and C<escape> returns to the original position. +Adds regex search functionality to the scrollback buffer, triggered +by a hotkey (default: C<M-s>). When in search mode, normal terminal +input/output is suspended. + +C</> starts an incremental regex search, C<n> searches further, C<p> or +C<N> jump to the previous match, C<G> jumps to the bottom and clears the +history, C<enter> leaves search mode at the current position and C<escape> +returns to the original position. =item digital-clock
-----END OF PAGE-----
-- Response ended
-- Page fetched on Sun Jun 2 13:49:48 2024