WISH: just for fun, do shade and tint with XRender.
WISH: support tex fonts
-TODO: document transient_for, vt and the grab etc. functionality
-
- - perl: implement additional hook: line_update, add_lines.
+ - selection, selection-popup and option-popup extensions
+ enabled by default.
+ - perl: much increased functionality, better overlays, popup support
+ and much much more.
- perl: urxvt::line now can set via ->t and ->r.
- perl: changed interpretation of --perl-ext-common and -pe.
- perl: finally implemented --perl-eval.
- - perl: much increased functionality, better overlays, popup support
- and much much more.
- - perl: anyevent support.
- - perl: run tainted and ignore perl-eval/perl-lib if installed
+ - perl: non-blocking anyevent support.
+ - perl: run tainted and ignore perl-eval/perl-lib if started
setuid/setgid.
- - free the resource database: this plugs a massive memory hole. as a
+ - free the resource database: this plugs a massive memory leak. As a
side effect, it also gets rid of XGetDefault calls.
- - free one of the cursors, fixes a small memory leaks.
+ - free one of the cursors, fixes a small memory leak.
6.3 Wed Jan 4 22:37:10 CET 2006
- SECURITY FIX: on systems using openpty, permissions were
<dt><strong><a name="item_perl_2deval_3a_string"><strong>perl-eval</strong>: <em>string</em></a></strong><br />
</dt>
<dd>
-Perl code to be evaluated when all extensions have been registered. See the
-<code>rxvtperl(3)</code> manpage.
+Perl code to be evaluated when all extensions have been registered. See
+the <code>rxvtperl(3)</code> manpage. Due to security reasons, this resource
+will be ignored when running setuid/setgid.
</dd>
<p></p>
<dt><strong><a name="item_perl_2dlib_3a_path"><strong>perl-lib</strong>: <em>path</em></a></strong><br />
Colon-separated list of additional directories that hold extension
scripts. When looking for extensions specified by the <code>perl</code> resource,
rxvt will first look in these directories and then in
-<em>/opt/rxvt/lib/urxvt/perl/</em>.
+<em>/opt/rxvt/lib/urxvt/perl/</em>. Due to security reasons, this resource
+will be ignored when running setuid/setgid.
</dd>
<dd>
<p>See the <code>rxvtperl(3)</code> manpage.</p>
</dd>
+<p></p>
+<dt><strong><a name="item_transient_2dfor_3a_windowid"><strong>transient-for</strong>: <em>windowid</em></a></strong><br />
+</dt>
+<dd>
+Sets the WM_TRANSIENT_FOR property to the given window iw.
+</dd>
<p></p></dl>
<p>
</p>
.\" ========================================================================
.\"
.IX Title "rxvt 1"
-.TH rxvt 1 "2006-01-08" "6.3" "RXVT-UNICODE"
+.TH rxvt 1 "2006-01-09" "6.3" "RXVT-UNICODE"
.SH "NAME"
rxvt\-unicode (ouR XVT, unicode) \- (a VT102 emulator for the X window system)
.SH "SYNOPSIS"
all instances, while \fBperl-ext\fR is used for specific instances.
.IP "\fBperl-eval\fR: \fIstring\fR" 4
.IX Item "perl-eval: string"
-Perl code to be evaluated when all extensions have been registered. See the
-@@RXVT_NAME@@\fIperl\fR\|(3) manpage.
+Perl code to be evaluated when all extensions have been registered. See
+the @@RXVT_NAME@@\fIperl\fR\|(3) manpage. Due to security reasons, this resource
+will be ignored when running setuid/setgid.
.IP "\fBperl-lib\fR: \fIpath\fR" 4
.IX Item "perl-lib: path"
Colon-separated list of additional directories that hold extension
scripts. When looking for extensions specified by the \f(CW\*(C`perl\*(C'\fR resource,
@@RXVT_NAME@@ will first look in these directories and then in
-\&\fI@@RXVT_LIBDIR@@/urxvt/perl/\fR.
+\&\fI@@RXVT_LIBDIR@@/urxvt/perl/\fR. Due to security reasons, this resource
+will be ignored when running setuid/setgid.
.Sp
See the @@RXVT_NAME@@\fIperl\fR\|(3) manpage.
+.IP "\fBtransient-for\fR: \fIwindowid\fR" 4
+.IX Item "transient-for: windowid"
+Sets the \s-1WM_TRANSIENT_FOR\s0 property to the given window iw.
.SH "THE SCROLLBAR"
.IX Header "THE SCROLLBAR"
Lines of text that scroll off the top of the \fB@@RXVT_NAME@@\fR window
See the @@RXVT_NAME@@perl(3) manpage.
+=item B<transient-for>: I<windowid>
+
+Sets the WM_TRANSIENT_FOR property to the given window iw.
+
=back
=head1 THE SCROLLBAR
perl-eval: *string*
Perl code to be evaluated when all extensions have been registered.
- See the rxvtperl(3) manpage.
+ See the rxvtperl(3) manpage. Due to security reasons, this resource
+ will be ignored when running setuid/setgid.
perl-lib: *path*
Colon-separated list of additional directories that hold extension
scripts. When looking for extensions specified by the "perl"
resource, rxvt will first look in these directories and then in
- /opt/rxvt/lib/urxvt/perl/.
+ /opt/rxvt/lib/urxvt/perl/. Due to security reasons, this resource
+ will be ignored when running setuid/setgid.
See the rxvtperl(3) manpage.
+ transient-for: *windowid*
+ Sets the WM_TRANSIENT_FOR property to the given window iw.
+
THE SCROLLBAR
Lines of text that scroll off the top of the rxvt window (resource:
saveLines) and can be scrolled back using the scrollbar or by
<dt><strong><a name="item_popup">option-popup (enabled by default)</a></strong><br />
</dt>
<dd>
-Binds a popup menu to Ctrl-Button3 that lets you toggle (some) options at
+Binds a popup menu to Ctrl-Button2 that lets you toggle (some) options at
runtime.
</dd>
<p></p>
+<dt><strong>selection-popup (enabled by default)</strong><br />
+</dt>
+<dd>
+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_digital_2dclock">digital-clock</a></strong><br />
</dt>
<dd>
number of lines that will be in the scrollback buffer.</p>
</dd>
<p></p>
-<dt><strong><a name="item_on_tty_activity__24term__2anyi_2a">on_tty_activity $term *NYI*</a></strong><br />
-</dt>
-<dd>
-Called whenever the <code>program(s)</code> running in the urxvt window send output.
-</dd>
-<p></p>
<dt><strong><a name="item_on_osc_seq__24term_2c__24string">on_osc_seq $term, $string</a></strong><br />
</dt>
<dd>
characters.</p>
</dd>
<dd>
-<p>The methods <code>$term->special_encode</code> and <a href="#item_special_decode"><code>$term->special_decode</code></a>
+<p>The methods <a href="#item_special_encode"><code>$term->special_encode</code></a> and <a href="#item_special_decode"><code>$term->special_decode</code></a>
can be used to convert normal strings into this encoding and vice versa.</p>
</dd>
<p></p>
Translates a string offset into terminal coordinates again.
</dd>
<p></p></dl>
-<dt><strong>($row, $col) = $line->coord_of ($offset)
-=item $text = $term->special_encode $string</strong><br />
+<dt><strong><a name="item_special_encode">$text = $term->special_encode $string</a></strong><br />
</dt>
<dd>
Converts a perl string into the special encoding used by rxvt-unicode,
Converts rxvt-unicodes text reprsentation into a perl string. See
<a href="#item_row_t"><code>$term->ROW_t</code></a> for details.
</dd>
+<p></p>
+<dt><strong><a name="item_grab_button">$success = $term->grab_button ($button, $modifiermask)</a></strong><br />
+</dt>
+<dd>
+Registers a synchronous button grab. See XGrabButton.
+</dd>
+<p></p>
+<dt><strong><a name="item_grab">$success = $term->grab ($eventtime[, $sync])</a></strong><br />
+</dt>
+<dd>
+Calls XGrabPointer and XGrabKeyboard in asynchronous (default) or
+synchronous (<code>$sync</code> is true). Also remembers the grab timestampe.
+</dd>
+<p></p>
+<dt><strong><a name="item_allow_events_async">$term->allow_events_async</a></strong><br />
+</dt>
+<dd>
+Calls XAllowEvents with AsyncBoth for the most recent grab.
+</dd>
+<p></p>
+<dt><strong><a name="item_allow_events_sync">$term->allow_events_sync</a></strong><br />
+</dt>
+<dd>
+Calls XAllowEvents with SyncBoth for the most recent grab.
+</dd>
+<p></p>
+<dt><strong><a name="item_allow_events_replay">$term->allow_events_replay</a></strong><br />
+</dt>
+<dd>
+Calls XAllowEvents with both ReplayPointer and ReplayKeyboard for the most
+recent grab.
+</dd>
+<p></p>
+<dt><strong><a name="item_ungrab">$term->ungrab</a></strong><br />
+</dt>
+<dd>
+Calls XUngrab for the most recent grab. Is called automatically on
+evaluation errors, as it is better to lose the grab in the error case as
+the session.
+</dd>
<p></p></dl>
<p>
</p>
<p>This variable controls the verbosity level of the perl extension. Higher
numbers indicate more verbose output.</p>
<dl>
-<dt><strong><a name="item__3d0__2d_only_fatal_messages">=0 - only fatal messages</a></strong><br />
+<dt><strong><a name="item__3d_3d_0__2d_fatal_messages">== 0 - fatal messages</a></strong><br />
</dt>
-<dt><strong><a name="item__3d3__2d_script_loading_and_management">=3 - script loading and management</a></strong><br />
+<dt><strong><a name="item__3e_3d_3__2d_script_loading_and_management">>= 3 - script loading and management</a></strong><br />
</dt>
-<dt><strong><a name="item__3d10__2d_all_events_received">=10 - all events received</a></strong><br />
+<dt><strong><a name="item__3e_3d10__2d_all_events_received">>=10 - all events received</a></strong><br />
</dt>
</dl>
<p>
.\" ========================================================================
.\"
.IX Title "rxvt 3"
-.TH rxvt 3 "2006-01-08" "6.3" "RXVT-UNICODE"
+.TH rxvt 3 "2006-01-09" "6.3" "RXVT-UNICODE"
.SH "NAME"
@@RXVT_NAME@@perl \- rxvt\-unicode's embedded perl interpreter
.SH "SYNOPSIS"
.RE
.IP "option-popup (enabled by default)" 4
.IX Item "option-popup (enabled by default)"
-Binds a popup menu to Ctrl\-Button3 that lets you toggle (some) options at
+Binds a popup menu to Ctrl\-Button2 that lets you toggle (some) options at
runtime.
+.IP "selection-popup (enabled by default)" 4
+.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 "digital-clock" 4
.IX Item "digital-clock"
Displays a digital clock using the built-in overlay.
It is called before lines are scrolled out (so rows 0 .. min ($lines \- 1,
\&\f(CW$nrow\fR \- 1) represent the lines to be scrolled out). \f(CW$saved\fR is the total
number of lines that will be in the scrollback buffer.
-.ie n .IP "on_tty_activity $term *NYI*" 4
-.el .IP "on_tty_activity \f(CW$term\fR *NYI*" 4
-.IX Item "on_tty_activity $term *NYI*"
-Called whenever the program(s) running in the urxvt window send output.
.ie n .IP "on_osc_seq $term\fR, \f(CW$string" 4
.el .IP "on_osc_seq \f(CW$term\fR, \f(CW$string\fR" 4
.IX Item "on_osc_seq $term, $string"
.RE
.RS 4
.RE
-.ie n .IP "($row, $col\fR) = \f(CW$line\fR\->coord_of ($offset) =item \f(CW$text\fR = \f(CW$term\fR\->special_encode \f(CW$string" 4
-.el .IP "($row, \f(CW$col\fR) = \f(CW$line\fR\->coord_of ($offset) =item \f(CW$text\fR = \f(CW$term\fR\->special_encode \f(CW$string\fR" 4
-.IX Item "($row, $col) = $line->coord_of ($offset) =item $text = $term->special_encode $string"
+.ie n .IP "$text = $term\fR\->special_encode \f(CW$string" 4
+.el .IP "$text = \f(CW$term\fR\->special_encode \f(CW$string\fR" 4
+.IX Item "$text = $term->special_encode $string"
Converts a perl string into the special encoding used by rxvt\-unicode,
where one character corresponds to one screen cell. See
\&\f(CW\*(C`$term\->ROW_t\*(C'\fR for details.
.IX Item "$string = $term->special_decode $text"
Converts rxvt-unicodes text reprsentation into a perl string. See
\&\f(CW\*(C`$term\->ROW_t\*(C'\fR for details.
+.ie n .IP "$success = $term\fR\->grab_button ($button, \f(CW$modifiermask)" 4
+.el .IP "$success = \f(CW$term\fR\->grab_button ($button, \f(CW$modifiermask\fR)" 4
+.IX Item "$success = $term->grab_button ($button, $modifiermask)"
+Registers a synchronous button grab. See XGrabButton.
+.ie n .IP "$success = $term\fR\->grab ($eventtime[, \f(CW$sync])" 4
+.el .IP "$success = \f(CW$term\fR\->grab ($eventtime[, \f(CW$sync\fR])" 4
+.IX Item "$success = $term->grab ($eventtime[, $sync])"
+Calls XGrabPointer and XGrabKeyboard in asynchronous (default) or
+synchronous (\f(CW$sync\fR is true). Also remembers the grab timestampe.
+.IP "$term\->allow_events_async" 4
+.IX Item "$term->allow_events_async"
+Calls XAllowEvents with AsyncBoth for the most recent grab.
+.IP "$term\->allow_events_sync" 4
+.IX Item "$term->allow_events_sync"
+Calls XAllowEvents with SyncBoth for the most recent grab.
+.IP "$term\->allow_events_replay" 4
+.IX Item "$term->allow_events_replay"
+Calls XAllowEvents with both ReplayPointer and ReplayKeyboard for the most
+recent grab.
+.IP "$term\->ungrab" 4
+.IX Item "$term->ungrab"
+Calls XUngrab for the most recent grab. Is called automatically on
+evaluation errors, as it is better to lose the grab in the error case as
+the session.
.ie n .Sh "The ""urxvt::popup"" Class"
.el .Sh "The \f(CWurxvt::popup\fP Class"
.IX Subsection "The urxvt::popup Class"
.IX Subsection "URXVT_PERL_VERBOSITY"
This variable controls the verbosity level of the perl extension. Higher
numbers indicate more verbose output.
-.IP "=0 \- only fatal messages" 4
-.IX Item "=0 - only fatal messages"
+.IP "== 0 \- fatal messages" 4
+.IX Item "== 0 - fatal messages"
.PD 0
-.IP "=3 \- script loading and management" 4
-.IX Item "=3 - script loading and management"
-.IP "=10 \- all events received" 4
-.IX Item "=10 - all events received"
+.IP ">= 3 \- script loading and management" 4
+.IX Item ">= 3 - script loading and management"
+.IP ">=10 \- all events received" 4
+.IX Item ">=10 - all events received"
.RE
.RS 4
.PD
URxvt.keysym.C-M-r: perl:selection:rot13
option-popup (enabled by default)
- Binds a popup menu to Ctrl-Button3 that lets you toggle (some)
+ Binds a popup menu to Ctrl-Button2 that lets you toggle (some)
options at runtime.
+ selection-popup (enabled by default)
+ Binds a popup menu to Ctrl-Button3 that lets you convert the
+ selection text into various other formats/action.
+
digital-clock
Displays a digital clock using the built-in overlay.
- 1, $nrow - 1) represent the lines to be scrolled out). $saved is
the total number of lines that will be in the scrollback buffer.
- on_tty_activity $term *NYI*
- Called whenever the program(s) running in the urxvt window send
- output.
-
on_osc_seq $term, $string
Called whenever the ESC ] 777 ; string ST command sequence (OSC =
operating system command) is processed. Cursor position and other
($row, $col) = $line->coord_of ($offset)
Translates a string offset into terminal coordinates again.
- ($row, $col) = $line->coord_of ($offset) =item $text =
- $term->special_encode $string
+ $text = $term->special_encode $string
Converts a perl string into the special encoding used by
rxvt-unicode, where one character corresponds to one screen cell.
See "$term->ROW_t" for details.
Converts rxvt-unicodes text reprsentation into a perl string. See
"$term->ROW_t" for details.
+ $success = $term->grab_button ($button, $modifiermask)
+ Registers a synchronous button grab. See XGrabButton.
+
+ $success = $term->grab ($eventtime[, $sync])
+ Calls XGrabPointer and XGrabKeyboard in asynchronous (default) or
+ synchronous ($sync is true). Also remembers the grab timestampe.
+
+ $term->allow_events_async
+ Calls XAllowEvents with AsyncBoth for the most recent grab.
+
+ $term->allow_events_sync
+ Calls XAllowEvents with SyncBoth for the most recent grab.
+
+ $term->allow_events_replay
+ Calls XAllowEvents with both ReplayPointer and ReplayKeyboard for
+ the most recent grab.
+
+ $term->ungrab
+ Calls XUngrab for the most recent grab. Is called automatically on
+ evaluation errors, as it is better to lose the grab in the error
+ case as the session.
+
The "urxvt::popup" Class
The "urxvt::timer" Class
This class implements timer watchers/events. Time is represented as
This variable controls the verbosity level of the perl extension.
Higher numbers indicate more verbose output.
- =0 - only fatal messages
- =3 - script loading and management
- =10 - all events received
+ == 0 - fatal messages
+ >= 3 - script loading and management
+ >=10 - all events received
AUTHOR
Marc Lehmann <pcg@goof.com>
RETVAL
void
-rxvt_term::cur (...)
+rxvt_term::screen_cur (...)
PROTOTYPE: $;$$
ALIAS:
screen_cur = 0
$nrow - 1) represent the lines to be scrolled out). C<$saved> is the total
number of lines that will be in the scrollback buffer.
-=item on_tty_activity $term *NYI*
-
-Called whenever the program(s) running in the urxvt window send output.
-
=item on_osc_seq $term, $string
Called whenever the B<ESC ] 777 ; string ST> command sequence (OSC =
)
}
-=item ($row, $col) = $line->coord_of ($offset)
=item $text = $term->special_encode $string
Converts a perl string into the special encoding used by rxvt-unicode,
Converts rxvt-unicodes text reprsentation into a perl string. See
C<< $term->ROW_t >> for details.
+=item $success = $term->grab_button ($button, $modifiermask)
+
+Registers a synchronous button grab. See XGrabButton.
+
+=item $success = $term->grab ($eventtime[, $sync])
+
+Calls XGrabPointer and XGrabKeyboard in asynchronous (default) or
+synchronous (C<$sync> is true). Also remembers the grab timestampe.
+
+=item $term->allow_events_async
+
+Calls XAllowEvents with AsyncBoth for the most recent grab.
+
+=item $term->allow_events_sync
+
+Calls XAllowEvents with SyncBoth for the most recent grab.
+
+=item $term->allow_events_replay
+
+Calls XAllowEvents with both ReplayPointer and ReplayKeyboard for the most
+recent grab.
+
+=item $term->ungrab
+
+Calls XUngrab for the most recent grab. Is called automatically on
+evaluation errors, as it is better to lose the grab in the error case as
+the session.
+
=back
=cut