ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/urxvt.pm
(Generate patch)

Comparing rxvt-unicode/src/urxvt.pm (file contents):
Revision 1.8 by root, Mon Jan 2 20:35:39 2006 UTC vs.
Revision 1.16 by root, Tue Jan 3 01:41:06 2006 UTC

1=head1 NAME 1=head1 NAME
2 2
3rxvtperl - rxvt-unicode's embedded perl interpreter 3@@RXVT_NAME@@perl - rxvt-unicode's embedded perl interpreter
4 4
5=head1 SYNOPSIS 5=head1 SYNOPSIS
6 6
7* Put your scripts into F<@@RXVT_LIBDIR@@/urxvt/perl-ext/>, they will be loaded automatically. 7 # create a file grab_test in $HOME:
8
9* Scripts are evaluated in a 'use strict' and 'use utf8' environment, and
10thus must be encoded as UTF-8.
11 8
12 sub on_sel_grab { 9 sub on_sel_grab {
13 warn "you selected ", $_[0]->selection; 10 warn "you selected ", $_[0]->selection;
14 () 11 ()
15 } 12 }
16 13
17 1 14 # start a @@RXVT_NAME@@ using it:
15
16 @@RXVT_NAME@@ --perl-lib $HOME -pe grab_test
18 17
19=head1 DESCRIPTION 18=head1 DESCRIPTION
20 19
21Everytime a terminal object gets created, scripts specified via the 20Everytime a terminal object gets created, scripts specified via the
22C<perl> resource are associated with it. 21C<perl> resource are loaded and associated with it.
22
23Scripts are compiled in a 'use strict' and 'use utf8' environment, and
24thus must be encoded as UTF-8.
23 25
24Each script will only ever be loaded once, even in @@RXVT_NAME@@d, where 26Each script will only ever be loaded once, even in @@RXVT_NAME@@d, where
25scripts will be shared (But not enabled) for all terminals. 27scripts will be shared (but not enabled) for all terminals.
28
29=head1 PACKAGED EXTENSIONS
30
31This section describes the extensiosn delivered with this version. You can
32find them in F<@@RXVT_LIBDIR@@/urxvt/perl/>.
33
34You can activate them like this:
35
36 @@RXVT_NAME@@ -pe <extensionname>
37
38=over 4
39
40=item selection
41
42Miscellaneous selection modifications.
43
44=over 4
45
46=item rot13
47
48Rot-13 the selection when activated. Used via keyboard trigger:
49
50 URxvt.keysym.C-M-r: perl:selection:rot13
51
52=back
53
54=item digital-clock
55
56Displays a very simple digital clock in the upper right corner of the
57window. Illustrates overwriting the refresh callbacks to create your own
58overlays or changes.
59
60=item simple-overlay-clock
61
62Displays a digital clock using the built-in overlay (colorful, useless).
63
64=back
26 65
27=head2 General API Considerations 66=head2 General API Considerations
28 67
29All objects (such as terminals, time watchers etc.) are typical 68All objects (such as terminals, time watchers etc.) are typical
30reference-to-hash objects. The hash can be used to store anything you 69reference-to-hash objects. The hash can be used to store anything you
121code is run after this hook, and takes precedence. 160code is run after this hook, and takes precedence.
122 161
123=item on_refresh_end $term 162=item on_refresh_end $term
124 163
125Called just after the screen gets redrawn. See C<on_refresh_begin>. 164Called just after the screen gets redrawn. See C<on_refresh_begin>.
165
166=item on_keyboard_command $term, $string
167
168Called whenever the user presses a key combination that has a
169C<perl:string> action bound to it (see description of the B<keysym>
170resource in the @@RXVT_NAME@@(1) manpage).
126 171
127=back 172=back
128 173
129=head2 Functions in the C<urxvt> Package 174=head2 Functions in the C<urxvt> Package
130 175
226sub invoke { 271sub invoke {
227 local $term = shift; 272 local $term = shift;
228 my $htype = shift; 273 my $htype = shift;
229 274
230 if ($htype == 0) { # INIT 275 if ($htype == 0) { # INIT
231 my @dirs = ((split /:/, $term->resource ("perl_lib")), $LIBDIR); 276 my @dirs = ((split /:/, $term->resource ("perl_lib")), "$LIBDIR/perl");
232 277
233 for my $ext (split /:/, $term->resource ("perl_ext")) { 278 for my $ext (split /:/, $term->resource ("perl_ext")) {
234 my @files = grep -f $_, map "$_/$ext", @dirs; 279 my @files = grep -f $_, map "$_/$ext", @dirs;
235 280
236 if (@files) { 281 if (@files) {
382Convert the given locale-encoded octets into a perl string. 427Convert the given locale-encoded octets into a perl string.
383 428
384=item $term->tt_write ($octets) 429=item $term->tt_write ($octets)
385 430
386Write the octets given in C<$data> to the tty (i.e. as program input). To 431Write the octets given in C<$data> to the tty (i.e. as program input). To
387pass characters instead of octets, you should convetr you strings first to 432pass characters instead of octets, you should convert your strings first
388the locale-specific encoding using C<< $term->locale_encode >>. 433to the locale-specific encoding using C<< $term->locale_encode >>.
389 434
435=item $nrow = $term->nrow
436
437=item $ncol = $term->ncol
438
439Return the number of rows/columns of the terminal window (i.e. as
440specified by C<-geometry>, excluding any scrollback).
441
442=item $nsaved = $term->nsaved
443
444Returns the number of lines in the scrollback buffer.
445
446=item $view_start = $term->view_start ([$newvalue])
447
448Returns the negative row number of the topmost line. Minimum value is
449C<0>, which displays the normal terminal contents. Larger values scroll
450this many lines into the scrollback buffer.
451
452=item $term->want_refresh
453
454Requests a screen refresh. At the next opportunity, rxvt-unicode will
455compare the on-screen display with its stored representation. If they
456differ, it redraws the differences.
457
458Used after changing terminal contents to display them.
459
460=item $text = $term->ROW_t ($row_number[, $new_text[, $start_col]])
461
462Returns the text of the entire row with number C<$row_number>. Row C<0>
463is the topmost terminal line, row C<< $term->$ncol-1 >> is the bottommost
464terminal line. The scrollback buffer starts at line C<-1> and extends to
465line C<< -$term->nsaved >>.
466
467If C<$new_text> is specified, it will replace characters in the current
468line, starting at column C<$start_col> (default C<0>), which is useful
469to replace only parts of a line. The font iindex in the rendition will
470automatically be updated.
471
472C<$text> is in a special encoding: tabs and wide characters that use more
473than one cell when displayed are padded with urxvt::NOCHAR characters
474(C<chr 65535>). Characters with combining characters and other characters
475that do not fit into the normal tetx encoding will be replaced with
476characters in the private use area.
477
478You have to obey this encoding when changing text. The advantage is
479that C<substr> and similar functions work on screen cells and not on
480characters.
481
482The methods C<< $term->special_encode >> and C<< $term->special_decode >>
483can be used to convert normal strings into this encoding and vice versa.
484
485=item $rend = $term->ROW_r ($row_number[, $new_rend[, $start_col]])
486
487Like C<< $term->ROW_t >>, but returns an arrayref with rendition
488bitsets. Rendition bitsets contain information about colour, font, font
489styles and similar information. See also C<< $term->ROW_t >>.
490
491When setting rendition, the font mask will be ignored.
492
493See the section on RENDITION, below.
494
495=item $length = $term->ROW_l ($row_number[, $new_length])
496
497Returns the number of screen cells that are in use ("the line length"). If
498it is C<-1>, then the line is part of a multiple-row logical "line", which
499means all characters are in use and it is continued on the next row.
500
501=item $text = $term->special_encode $string
502
503Converts a perl string into the special encoding used by rxvt-unicode,
504where one character corresponds to one screen cell. See
505C<< $term->ROW_t >> for details.
506
507=item $string = $term->special_decode $text
508
509Converts rxvt-unicodes text reprsentation into a perl string. See
510C<< $term->ROW_t >> for details.
511
390=back 512=back
513
514=head2 RENDITION
515
516Rendition bitsets contain information about colour, font, font styles and
517similar information for each screen cell.
518
519The following "macros" deal with changes in rendition sets. You should
520never just create a bitset, you should always modify an existing one,
521as they contain important information required for correct operation of
522rxvt-unicode.
523
524=over 4
525
526=item $rend = urxvt::DEFAULT_RSTYLE
527
528Returns the default rendition, as used when the terminal is starting up or
529being reset. Useful as a base
530
531=back
532
533=cut
391 534
392=head2 The C<urxvt::timer> Class 535=head2 The C<urxvt::timer> Class
393 536
394This class implements timer watchers/events. Time is represented as a 537This class implements timer watchers/events. Time is represented as a
395fractional number of seconds since the epoch. Example: 538fractional number of seconds since the epoch. Example:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines