--- rxvt-unicode/doc/rxvtperl.3.txt 2006/01/02 20:35:39 1.2 +++ rxvt-unicode/doc/rxvtperl.3.txt 2006/01/03 01:39:56 1.4 @@ -2,26 +2,52 @@ rxvtperl - rxvt-unicode's embedded perl interpreter SYNOPSIS - * Put your scripts into /opt/rxvt/lib/urxvt/perl-ext/, they will be - loaded automatically. - - * Scripts are evaluated in a 'use strict' and 'use utf8' environment, - and thus must be encoded as UTF-8. + # create a file grab_test in $HOME: sub on_sel_grab { warn "you selected ", $_[0]->selection; () } - 1 + # start a rxvt using it: + + rxvt --perl-lib $HOME -pe grab_test DESCRIPTION Everytime a terminal object gets created, scripts specified via the - "perl" resource are associated with it. + "perl" resource are loaded and associated with it. + + Scripts are compiled in a 'use strict' and 'use utf8' environment, and + thus must be encoded as UTF-8. Each script will only ever be loaded once, even in rxvtd, where scripts will be shared (But not enabled) for all terminals. +PACKAGED EXTENSIONS + This section describes the extensiosn delivered with this version. You + can find them in /opt/rxvt/lib/urxvt/perl/. + + You can activate them like this: + + rxvt -pe + + selection + Miscellaneous selection modifications. + + rot13 + Rot-13 the selection when activated. Used via keyboard trigger: + + URxvt.keysym.C-M-r: perl:selection:rot13 + + digital-clock + Displays a very simple digital clock in the upper right corner of + the window. Illustrates overwriting the refresh callbacks to create + your own overlays or changes. + + simple-overlay-clock + Displays a digital clock using the built-in overlay (colorful, + useless). + General API Considerations All objects (such as terminals, time watchers etc.) are typical reference-to-hash objects. The hash can be used to store anything you @@ -110,6 +136,11 @@ on_refresh_end $term Called just after the screen gets redrawn. See "on_refresh_begin". + on_keyboard_command $term, $string + Called whenever the user presses a key combination that has a + "perl:string" action bound to it (see description of the keysym + resource in the rxvt(1) manpage). + Functions in the "urxvt" Package urxvt::fatal $errormessage Fatally aborts execution with the given error message. Avoid at all @@ -209,8 +240,90 @@ $term->tt_write ($octets) Write the octets given in $data to the tty (i.e. as program input). - To pass characters instead of octets, you should convetr you strings - first to the locale-specific encoding using "$term->locale_encode". + To pass characters instead of octets, you should convert your + strings first to the locale-specific encoding using + "$term->locale_encode". + + $nrow = $term->nrow + $ncol = $term->ncol + Return the number of rows/columns of the terminal window (i.e. as + specified by "-geometry", excluding any scrollback). + + $nsaved = $term->nsaved + Returns the number of lines in the scrollback buffer. + + $view_start = $term->view_start ([$newvalue]) + Returns the negative row number of the topmost line. Minimum value + is 0, which displays the normal terminal contents. Larger values + scroll this many lines into the scrollback buffer. + + $term->want_refresh + Requests a screen refresh. At the next opportunity, rxvt-unicode + will compare the on-screen display with its stored representation. + If they differ, it redraws the differences. + + Used after changing terminal contents to display them. + + $text = $term->ROW_t ($row_number[, $new_text[, $start_col]]) + Returns the text of the entire row with number $row_number. Row 0 is + the topmost terminal line, row "$term->$ncol-1" is the bottommost + terminal line. The scrollback buffer starts at line -1 and extends + to line "-$term->nsaved". + + If $new_text is specified, it will replace characters in the current + line, starting at column $start_col (default 0), which is useful to + replace only parts of a line. The font iindex in the rendition will + automatically be updated. + + $text is in a special encoding: tabs and wide characters that use + more than one cell when displayed are padded with urxvt::NOCHAR + characters ("chr 65535"). Characters with combining characters and + other characters that do not fit into the normal tetx encoding will + be replaced with characters in the private use area. + + You have to obey this encoding when changing text. The advantage is + that "substr" and similar functions work on screen cells and not on + characters. + + The methods "$term->special_encode" and "$term->special_decode" can + be used to convert normal strings into this encoding and vice versa. + + $rend = $term->ROW_r ($row_number[, $new_rend[, $start_col]]) + Like "$term->ROW_t", but returns an arrayref with rendition bitsets. + Rendition bitsets contain information about colour, font, font + styles and similar information. See also "$term->ROW_t". + + When setting rendition, the font mask will be ignored. + + See the section on RENDITION, below. + + $length = $term->ROW_l ($row_number[, $new_length]) + Returns the number of screen cells that are in use ("the line + length"). If it is -1, then the line is part of a multiple-row + logical "line", which means all characters are in use and it is + continued on the next row. + + $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. + + $string = $term->special_decode $text + Converts rxvt-unicodes text reprsentation into a perl string. See + "$term->ROW_t" for details. + + RENDITION + Rendition bitsets contain information about colour, font, font styles + and similar information for each screen cell. + + The following "macros" deal with changes in rendition sets. You should + never just create a bitset, you should always modify an existing one, as + they contain important information required for correct operation of + rxvt-unicode. + + $rend = urxvt::DEFAULT_RSTYLE + Returns the default rendition, as used when the terminal is starting + up or being reset. Useful as a base The "urxvt::timer" Class This class implements timer watchers/events. Time is represented as a