ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvtperl.3.txt
Revision: 1.13
Committed: Sun Jan 8 00:20:12 2006 UTC (18 years, 5 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.12: +124 -85 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 NAME
2     rxvtperl - rxvt-unicode's embedded perl interpreter
3    
4     SYNOPSIS
5 root 1.3 # create a file grab_test in $HOME:
6 root 1.1
7     sub on_sel_grab {
8     warn "you selected ", $_[0]->selection;
9     ()
10     }
11    
12 root 1.3 # start a rxvt using it:
13    
14     rxvt --perl-lib $HOME -pe grab_test
15 root 1.1
16     DESCRIPTION
17 root 1.13 Everytime a terminal object gets created, extension scripts specified
18     via the "perl" resource are loaded and associated with it.
19 root 1.3
20     Scripts are compiled in a 'use strict' and 'use utf8' environment, and
21     thus must be encoded as UTF-8.
22 root 1.1
23     Each script will only ever be loaded once, even in rxvtd, where scripts
24 root 1.5 will be shared (but not enabled) for all terminals.
25 root 1.1
26 root 1.5 Prepackaged Extensions
27 root 1.4 This section describes the extensiosn delivered with this version. You
28     can find them in /opt/rxvt/lib/urxvt/perl/.
29    
30     You can activate them like this:
31    
32     rxvt -pe <extensionname>
33    
34     selection
35 root 1.8 Intelligent selection. This extension tries to be more intelligent
36     when the user extends selections (double-click). Right now, it tries
37     to select urls and complete shell-quoted arguments, which is very
38     convenient, too, if your ls supports "--quoting-style=shell".
39 root 1.7
40     It also offers the following bindable event:
41 root 1.4
42     rot13
43     Rot-13 the selection when activated. Used via keyboard trigger:
44    
45     URxvt.keysym.C-M-r: perl:selection:rot13
46    
47     digital-clock
48 root 1.6 Displays a digital clock using the built-in overlay.
49    
50 root 1.12 mark-urls
51     Uses per-line display filtering ("on_line_update") to underline
52     urls.
53    
54     block-graphics-to-ascii
55     A not very useful example of filtering all text output to the
56     terminal, by replacing all line-drawing characters (U+2500 ..
57     U+259F) by a similar-looking ascii character.
58    
59 root 1.6 example-refresh-hooks
60 root 1.4 Displays a very simple digital clock in the upper right corner of
61     the window. Illustrates overwriting the refresh callbacks to create
62     your own overlays or changes.
63    
64 root 1.1 General API Considerations
65     All objects (such as terminals, time watchers etc.) are typical
66     reference-to-hash objects. The hash can be used to store anything you
67     like. All members starting with an underscore (such as "_ptr" or
68 root 1.7 "_hook") are reserved for internal uses and MUST NOT be accessed or
69 root 1.1 modified).
70    
71     When objects are destroyed on the C++ side, the perl object hashes are
72     emptied, so its best to store related objects such as time watchers and
73     the like inside the terminal object so they get destroyed as soon as the
74     terminal is destroyed.
75    
76 root 1.12 Argument names also often indicate the type of a parameter. Here are
77     some hints on what they mean:
78    
79     $text
80     Rxvt-unicodes special way of encoding text, where one "unicode"
81     character always represents one screen cell. See row_t for a
82     discussion of this format.
83    
84     $string
85     A perl text string, with an emphasis on *text*. It can store all
86     unicode characters and is to be distinguished with text encoded in a
87     specific encoding (often locale-specific) and binary data.
88    
89     $octets
90     Either binary data or - more common - a text string encoded in a
91     locale-specific way.
92    
93 root 1.1 Hooks
94 root 1.12 The following subroutines can be declared in extension files, and will
95     be called whenever the relevant event happens.
96 root 1.1
97 root 1.7 The first argument passed to them is an object private to each terminal
98     and extension package. You can call all "urxvt::term" methods on it, but
99     its not a real "urxvt::term" object. Instead, the real "urxvt::term"
100     object that is shared between all packages is stored in the "term"
101 root 1.13 member. It is, however, blessed intot he package of the extension
102     script, so for all practical purposes you can treat an extension script
103     as a class.
104 root 1.7
105 root 1.1 All of them must return a boolean value. If it is true, then the event
106     counts as being *consumed*, and the invocation of other hooks is
107     skipped, and the relevant action might not be carried out by the C++
108     code.
109    
110     When in doubt, return a false value (preferably "()").
111    
112     on_init $term
113     Called after a new terminal object has been initialized, but before
114 root 1.12 windows are created or the command gets run. Most methods are unsafe
115     to call or deliver senseless data, as terminal size and other
116     characteristics have not yet been determined. You can safely query
117     and change resources, though.
118 root 1.1
119     on_reset $term
120     Called after the screen is "reset" for any reason, such as resizing
121     or control sequences. Here is where you can react on changes to
122     size-related variables.
123    
124     on_start $term
125     Called at the very end of initialisation of a new terminal, just
126     before returning to the mainloop.
127    
128     on_sel_make $term, $eventtime
129     Called whenever a selection has been made by the user, but before
130     the selection text is copied, so changes to the beginning, end or
131     type of the selection will be honored.
132    
133     Returning a true value aborts selection making by urxvt, in which
134     case you have to make a selection yourself by calling
135     "$term->selection_grab".
136    
137     on_sel_grab $term, $eventtime
138     Called whenever a selection has been copied, but before the
139     selection is requested from the server. The selection text can be
140     queried and changed by calling "$term->selection".
141    
142     Returning a true value aborts selection grabbing. It will still be
143     hilighted.
144    
145 root 1.7 on_sel_extend $term
146     Called whenever the user tries to extend the selection (e.g. with a
147     double click) and is either supposed to return false (normal
148     operation), or should extend the selection itelf and return true to
149     suppress the built-in processing.
150    
151     See the selection example extension.
152    
153 root 1.1 on_view_change $term, $offset
154     Called whenever the view offset changes, i..e the user or program
155     scrolls. Offset 0 means display the normal terminal, positive values
156     show this many lines of scrollback.
157    
158     on_scroll_back $term, $lines, $saved
159     Called whenever lines scroll out of the terminal area into the
160     scrollback buffer. $lines is the number of lines scrolled out and
161     may be larger than the scroll back buffer or the terminal.
162    
163     It is called before lines are scrolled out (so rows 0 .. min ($lines
164     - 1, $nrow - 1) represent the lines to be scrolled out). $saved is
165     the total number of lines that will be in the scrollback buffer.
166    
167     on_tty_activity $term *NYI*
168     Called whenever the program(s) running in the urxvt window send
169     output.
170    
171 root 1.9 on_osc_seq $term, $string
172     Called whenever the ESC ] 777 ; string ST command sequence (OSC =
173     operating system command) is processed. Cursor position and other
174     state information is up-to-date when this happens. For
175     interoperability, the string should start with the extension name
176     and a colon, to distinguish it from commands for other extensions,
177     and this might be enforced in the future.
178    
179     Be careful not ever to trust (in a security sense) the data you
180     receive, as its source can not easily be controleld (e-mail content,
181     messages from other users on the same system etc.).
182    
183 root 1.12 on_add_lines $term, $string
184     Called whenever text is about to be output, with the text as
185     argument. You can filter/change and output the text yourself by
186     returning a true value and calling "$term->scr_add_lines" yourself.
187     Please note that this might be very slow, however, as your hook is
188     called for all text being output.
189    
190     on_line_update $term, $row
191     Called whenever a line was updated or changed. Can be used to filter
192     screen output (e.g. underline urls or other useless stuff). Only
193     lines that are being shown will be filtered, and, due to performance
194     reasons, not always immediately.
195    
196     The row number is always the topmost row of the line if the line
197     spans multiple rows.
198    
199     Please note that, if you change the line, then the hook might get
200     called later with the already-modified line (e.g. if unrelated parts
201     change), so you cannot just toggle rendition bits, but only set
202     them.
203    
204 root 1.1 on_refresh_begin $term
205     Called just before the screen gets redrawn. Can be used for overlay
206     or similar effects by modify terminal contents in refresh_begin, and
207     restoring them in refresh_end. The built-in overlay and selection
208     display code is run after this hook, and takes precedence.
209    
210     on_refresh_end $term
211     Called just after the screen gets redrawn. See "on_refresh_begin".
212    
213 root 1.3 on_keyboard_command $term, $string
214     Called whenever the user presses a key combination that has a
215     "perl:string" action bound to it (see description of the keysym
216     resource in the rxvt(1) manpage).
217    
218 root 1.13 on_focus_in $term
219     Called whenever the window gets the keyboard focus, before
220     rxvt-unicode does focus in processing.
221    
222     on_focus_out $term
223     Called wheneever the window loses keyboard focus, before
224     rxvt-unicode does focus out processing.
225    
226 root 1.12 on_key_press $term, $event, $octets
227     on_key_release $term, $event
228     on_button_press $term, $event
229     on_button_release $term, $event
230     on_motion_notify $term, $event
231 root 1.13 on_map_notify $term, $event
232     on_unmap_notify $term, $event
233 root 1.12 Called whenever the corresponding X event is received for the
234     terminal If the hook returns true, then the even will be ignored by
235     rxvt-unicode.
236    
237     The event is a hash with most values as named by Xlib (see the
238     XEvent manpage), with the additional members "row" and "col", which
239     are the row and column under the mouse cursor.
240    
241     "on_key_press" additionally receives the string rxvt-unicode would
242     output, if any, in locale-specific encoding.
243    
244     subwindow.
245    
246 root 1.7 Variables in the "urxvt" Package
247     $urxvt::TERM
248 root 1.12 The current terminal. This variable stores the current "urxvt::term"
249     object, whenever a callback/hook is executing.
250 root 1.7
251 root 1.1 Functions in the "urxvt" Package
252 root 1.12 $term = new urxvt [arg...]
253     Creates a new terminal, very similar as if you had started it with
254     "system $binfile, arg...". Croaks (and probably outputs an error
255     message) if the new instance couldn't be created. Returns "undef" if
256     the new instance didn't initialise perl, and the terminal object
257     otherwise. The "init" and "start" hooks will be called during the
258     call.
259    
260 root 1.1 urxvt::fatal $errormessage
261     Fatally aborts execution with the given error message. Avoid at all
262     costs! The only time this is acceptable is when the terminal process
263     starts up.
264    
265     urxvt::warn $string
266     Calls "rxvt_warn" with the given string which should not include a
267     newline. The module also overwrites the "warn" builtin with a
268     function that calls this function.
269    
270     Using this function has the advantage that its output ends up in the
271     correct place, e.g. on stderr of the connecting urxvtc client.
272    
273     $time = urxvt::NOW
274     Returns the "current time" (as per the event loop).
275    
276 root 1.13 urxvt::CurrentTime
277     urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask,
278     Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, Button4Mask,
279     Button5Mask, AnyModifier
280     Various constants for use in X events.
281    
282 root 1.6 RENDITION
283     Rendition bitsets contain information about colour, font, font styles
284     and similar information for each screen cell.
285    
286     The following "macros" deal with changes in rendition sets. You should
287     never just create a bitset, you should always modify an existing one, as
288     they contain important information required for correct operation of
289     rxvt-unicode.
290    
291     $rend = urxvt::DEFAULT_RSTYLE
292     Returns the default rendition, as used when the terminal is starting
293     up or being reset. Useful as a base to start when creating
294     renditions.
295    
296     $rend = urxvt::OVERLAY_RSTYLE
297     Return the rendition mask used for overlays by default.
298    
299     $rendbit = urxvt::RS_Bold, RS_Italic, RS_Blink, RS_RVid, RS_Uline
300     Return the bit that enabled bold, italic, blink, reverse-video and
301     underline, respectively. To enable such a style, just logically OR
302     it into the bitset.
303    
304     $foreground = urxvt::GET_BASEFG $rend
305     $background = urxvt::GET_BASEBG $rend
306     Return the foreground/background colour index, respectively.
307    
308     $rend = urxvt::SET_FGCOLOR ($rend, $new_colour)
309     $rend = urxvt::SET_BGCOLOR ($rend, $new_colour)
310     Replace the foreground/background colour in the rendition mask with
311     the specified one.
312    
313     $value = urxvt::GET_CUSTOM ($rend)
314     Return the "custom" value: Every rendition has 5 bits for use by
315     extensions. They can be set and changed as you like and are
316     initially zero.
317    
318     $rend = urxvt::SET_CUSTOM ($rend, $new_value)
319     Change the custom value.
320    
321 root 1.1 The "urxvt::term" Class
322 root 1.12 $term->destroy
323     Destroy the terminal object (close the window, free resources etc.).
324    
325 root 1.13 $isset = $term->option ($optval[, $set])
326     Returns true if the option specified by $optval is enabled, and
327     optionally change it. All option values are stored by name in the
328     hash %urxvt::OPTION. Options not enabled in this binary are not in
329     the hash.
330    
331     Here is a a likely non-exhaustive list of option names, please see
332     the source file /src/optinc.h to see the actual list:
333    
334     borderLess console cursorBlink cursorUnderline hold iconic insecure
335     intensityStyles jumpScroll loginShell mapAlert meta8 mouseWheelScrollPage
336     pastableTabs pointerBlank reverseVideo scrollBar scrollBar_floating
337     scrollBar_right scrollTtyKeypress scrollTtyOutput scrollWithBuffer
338     secondaryScreen secondaryScroll skipBuiltinGlyphs transparent
339     tripleclickwords utmpInhibit visualBell
340    
341 root 1.1 $value = $term->resource ($name[, $newval])
342     Returns the current resource value associated with a given name and
343     optionally sets a new value. Setting values is most useful in the
344     "init" hook. Unset resources are returned and accepted as "undef".
345    
346     The new value must be properly encoded to a suitable character
347     encoding before passing it to this method. Similarly, the returned
348     value may need to be converted from the used encoding to text.
349    
350     Resource names are as defined in src/rsinc.h. Colours can be
351     specified as resource names of the form "color+<index>", e.g.
352     "color+5". (will likely change).
353    
354     Please note that resource strings will currently only be freed when
355     the terminal is destroyed, so changing options frequently will eat
356     memory.
357    
358     Here is a a likely non-exhaustive list of resource names, not all of
359 root 1.13 which are supported in every build, please see the source file
360     /src/rsinc.h to see the actual list:
361 root 1.1
362     answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont
363     borderLess color cursorBlink cursorUnderline cutchars delete_key
364     display_name embed ext_bwidth fade font geometry hold iconName
365     imFont imLocale inputMethod insecure int_bwidth intensityStyles
366 root 1.2 italicFont jumpScroll lineSpace loginShell mapAlert menu meta8 modifier
367 root 1.10 mouseWheelScrollPage name pastableTabs path perl_eval perl_ext_1 perl_ext_2
368 root 1.1 perl_lib pointerBlank pointerBlankDelay preeditType print_pipe pty_fd
369     reverseVideo saveLines scrollBar scrollBar_align scrollBar_floating
370     scrollBar_right scrollBar_thickness scrollTtyKeypress scrollTtyOutput
371     scrollWithBuffer scrollstyle secondaryScreen secondaryScroll selectstyle
372     shade term_name title transparent transparent_all tripleclickwords
373     utmpInhibit visualBell
374    
375 root 1.12 $rend = $term->rstyle ([$new_rstyle])
376     Return and optionally change the current rendition. Text that is
377     output by the terminal application will use this style.
378 root 1.11
379     ($row, $col) = $term->screen_cur ([$row, $col])
380     Return the current coordinates of the text cursor position and
381     optionally set it (which is usually bad as applications don't expect
382     that).
383    
384 root 1.1 ($row, $col) = $term->selection_mark ([$row, $col])
385     ($row, $col) = $term->selection_beg ([$row, $col])
386     ($row, $col) = $term->selection_end ([$row, $col])
387     Return the current values of the selection mark, begin or end
388     positions, and optionally set them to new values.
389    
390     $success = $term->selection_grab ($eventtime)
391     Try to request the primary selection from the server (for example,
392     as set by the next method).
393    
394     $oldtext = $term->selection ([$newtext])
395     Return the current selection text and optionally replace it by
396     $newtext.
397    
398 root 1.6 #=item $term->overlay ($x, $y, $text) # #Create a simple multi-line
399 root 1.12 overlay box. See the next method for details. # #=cut # #sub
400     urxvt::term::scr_overlay { # my ($self, $x, $y, $text) = @_; # # my
401     @lines = split /\n/, $text; # # my $w = 0; # for (map
402     $self->strwidth ($_), @lines) { # $w = $_ if $w < $_; # } # #
403     $self->scr_overlay_new ($x, $y, $w, scalar @lines); #
404     $self->scr_overlay_set (0, $_, $lines[$_]) for 0.. $#lines; #}
405 root 1.6
406     $term->overlay ($x, $y, $width, $height[, $rstyle[, $border]])
407 root 1.1 Create a new (empty) overlay at the given position with the given
408 root 1.6 width/height. $rstyle defines the initial rendition style (default:
409     "OVERLAY_RSTYLE").
410    
411     If $border is 2 (default), then a decorative border will be put
412     around the box.
413    
414     If either $x or $y is negative, then this is counted from the
415     right/bottom side, respectively.
416    
417     This method returns an urxvt::overlay object. The overlay will be
418     visible as long as the perl object is referenced.
419 root 1.1
420 root 1.7 The methods currently supported on "urxvt::overlay" objects are:
421 root 1.6
422 root 1.7 $overlay->set ($x, $y, $text, $rend)
423     Similar to "$term->ROW_t" and "$term->ROW_r" in that it puts
424     text in rxvt-unicode's special encoding and an array of
425     rendition values at a specific position inside the overlay.
426    
427     $overlay->hide
428     If visible, hide the overlay, but do not destroy it.
429    
430     $overlay->show
431     If hidden, display the overlay again.
432 root 1.1
433 root 1.13 $popup = $term->popup ($event)
434     Creates a new "urxvt::popup" object that implements a popup menu.
435     The $event *must* be the event causing the menu to pop up (a button
436     event, currently).
437    
438 root 1.12 $cellwidth = $term->strwidth ($string)
439 root 1.1 Returns the number of screen-cells this string would need. Correctly
440     accounts for wide and combining characters.
441    
442 root 1.12 $octets = $term->locale_encode ($string)
443 root 1.1 Convert the given text string into the corresponding locale
444     encoding.
445    
446 root 1.12 $string = $term->locale_decode ($octets)
447 root 1.1 Convert the given locale-encoded octets into a perl string.
448    
449 root 1.12 $term->scr_add_lines ($string)
450     Write the given text string to the screen, as if output by the
451     application running inside the terminal. It may not contain command
452     sequences (escape codes), but is free to use line feeds, carriage
453     returns and tabs. The string is a normal text string, not in
454     locale-dependent encoding.
455    
456     Normally its not a good idea to use this function, as programs might
457     be confused by changes in cursor position or scrolling. Its useful
458     inside a "on_add_lines" hook, though.
459    
460     $term->cmd_parse ($octets)
461     Similar to "scr_add_lines", but the argument must be in the
462     locale-specific encoding of the terminal and can contain command
463     sequences (escape codes) that will be interpreted.
464    
465 root 1.1 $term->tt_write ($octets)
466     Write the octets given in $data to the tty (i.e. as program input).
467 root 1.4 To pass characters instead of octets, you should convert your
468     strings first to the locale-specific encoding using
469     "$term->locale_encode".
470    
471 root 1.12 $windowid = $term->parent
472     Return the window id of the toplevel window.
473    
474     $windowid = $term->vt
475     Return the window id of the terminal window.
476    
477 root 1.11 $window_width = $term->width
478     $window_height = $term->height
479     $font_width = $term->fwidth
480     $font_height = $term->fheight
481     $font_ascent = $term->fbase
482     $terminal_rows = $term->nrow
483     $terminal_columns = $term->ncol
484     $has_focus = $term->focus
485     $is_mapped = $term->mapped
486     $max_scrollback = $term->saveLines
487     $nrow_plus_saveLines = $term->total_rows
488     $lines_in_scrollback = $term->nsaved
489     Return various integers describing terminal characteristics.
490 root 1.4
491 root 1.13 $modifiermask = $term->ModLevel3Mask
492     $modifiermask = $term->ModMetaMask
493     $modifiermask = $term->ModNumLockMask
494     Return the modifier masks corresponding to the "ISO Level 3 Shift"
495     (often AltGr), the meta key (often Alt) and the num lock key, if
496     applicable.
497    
498 root 1.4 $view_start = $term->view_start ([$newvalue])
499     Returns the negative row number of the topmost line. Minimum value
500     is 0, which displays the normal terminal contents. Larger values
501     scroll this many lines into the scrollback buffer.
502    
503     $term->want_refresh
504     Requests a screen refresh. At the next opportunity, rxvt-unicode
505     will compare the on-screen display with its stored representation.
506     If they differ, it redraws the differences.
507    
508     Used after changing terminal contents to display them.
509    
510     $text = $term->ROW_t ($row_number[, $new_text[, $start_col]])
511     Returns the text of the entire row with number $row_number. Row 0 is
512     the topmost terminal line, row "$term->$ncol-1" is the bottommost
513     terminal line. The scrollback buffer starts at line -1 and extends
514 root 1.7 to line "-$term->nsaved". Nothing will be returned if a nonexistent
515     line is requested.
516 root 1.4
517     If $new_text is specified, it will replace characters in the current
518     line, starting at column $start_col (default 0), which is useful to
519 root 1.6 replace only parts of a line. The font index in the rendition will
520 root 1.4 automatically be updated.
521    
522     $text is in a special encoding: tabs and wide characters that use
523     more than one cell when displayed are padded with urxvt::NOCHAR
524     characters ("chr 65535"). Characters with combining characters and
525     other characters that do not fit into the normal tetx encoding will
526     be replaced with characters in the private use area.
527    
528     You have to obey this encoding when changing text. The advantage is
529     that "substr" and similar functions work on screen cells and not on
530     characters.
531    
532     The methods "$term->special_encode" and "$term->special_decode" can
533     be used to convert normal strings into this encoding and vice versa.
534    
535     $rend = $term->ROW_r ($row_number[, $new_rend[, $start_col]])
536     Like "$term->ROW_t", but returns an arrayref with rendition bitsets.
537     Rendition bitsets contain information about colour, font, font
538     styles and similar information. See also "$term->ROW_t".
539    
540     When setting rendition, the font mask will be ignored.
541    
542 root 1.6 See the section on RENDITION, above.
543 root 1.4
544     $length = $term->ROW_l ($row_number[, $new_length])
545     Returns the number of screen cells that are in use ("the line
546 root 1.7 length"). Unlike the urxvt core, this returns "$term->ncol" if the
547     line is joined with the following one.
548    
549     $bool = $term->is_longer ($row_number)
550     Returns true if the row is part of a multiple-row logical "line"
551     (i.e. joined with the following row), which means all characters are
552     in use and it is continued on the next row (and possibly a
553     continuation of the previous row(s)).
554    
555     $line = $term->line ($row_number)
556     Create and return a new "urxvt::line" object that stores information
557     about the logical line that row $row_number is part of. It supports
558     the following methods:
559    
560 root 1.12 $text = $line->t ([$new_text])
561     Returns or replaces the full text of the line, similar to
562     "ROW_t"
563    
564     $rend = $line->r ([$new_rend])
565     Returns or replaces the full rendition array of the line,
566     similar to "ROW_r"
567 root 1.7
568     $length = $line->l
569     Returns the length of the line in cells, similar to "ROW_l".
570    
571     $rownum = $line->beg
572     $rownum = $line->end
573     Return the row number of the first/last row of the line,
574     respectively.
575    
576     $offset = $line->offset_of ($row, $col)
577     Returns the character offset of the given row|col pair within
578     the logical line.
579    
580     ($row, $col) = $line->coord_of ($offset)
581     Translates a string offset into terminal coordinates again.
582 root 1.4
583 root 1.7 ($row, $col) = $line->coord_of ($offset) =item $text =
584     $term->special_encode $string
585 root 1.4 Converts a perl string into the special encoding used by
586     rxvt-unicode, where one character corresponds to one screen cell.
587     See "$term->ROW_t" for details.
588    
589     $string = $term->special_decode $text
590     Converts rxvt-unicodes text reprsentation into a perl string. See
591     "$term->ROW_t" for details.
592    
593 root 1.13 The "urxvt::popup" Class
594 root 1.1 The "urxvt::timer" Class
595 root 1.13 This class implements timer watchers/events. Time is represented as
596     a fractional number of seconds since the epoch. Example:
597 root 1.1
598 root 1.13 $term->{overlay} = $term->overlay (-1, 0, 8, 1, urxvt::OVERLAY_RSTYLE, 0);
599     $term->{timer} = urxvt::timer
600     ->new
601     ->interval (1)
602     ->cb (sub {
603     $term->{overlay}->set (0, 0,
604     sprintf "%2d:%02d:%02d", (localtime urxvt::NOW)[2,1,0]);
605     });
606    
607     $timer = new urxvt::timer
608     Create a new timer object in started state. It is scheduled to
609     fire immediately.
610    
611     $timer = $timer->cb (sub { my ($timer) = @_; ... })
612     Set the callback to be called when the timer triggers.
613    
614     $tstamp = $timer->at
615     Return the time this watcher will fire next.
616    
617     $timer = $timer->set ($tstamp)
618     Set the time the event is generated to $tstamp.
619    
620     $timer = $timer->interval ($interval)
621     Normally (and when $interval is 0), the timer will automatically
622     stop after it has fired once. If $interval is non-zero, then the
623     timer is automatically rescheduled at the given intervals.
624 root 1.6
625 root 1.13 $timer = $timer->start
626     Start the timer.
627 root 1.1
628 root 1.13 $timer = $timer->start ($tstamp)
629     Set the event trigger time to $tstamp and start the timer.
630 root 1.1
631 root 1.13 $timer = $timer->stop
632     Stop the timer.
633 root 1.1
634     The "urxvt::iow" Class
635 root 1.13 This class implements io watchers/events. Example:
636 root 1.1
637 root 1.13 $term->{socket} = ...
638     $term->{iow} = urxvt::iow
639     ->new
640     ->fd (fileno $term->{socket})
641     ->events (1) # wait for read data
642     ->start
643     ->cb (sub {
644     my ($iow, $revents) = @_;
645     # $revents must be 1 here, no need to check
646     sysread $term->{socket}, my $buf, 8192
647     or end-of-file;
648     });
649    
650     $iow = new urxvt::iow
651     Create a new io watcher object in stopped state.
652    
653     $iow = $iow->cb (sub { my ($iow, $reventmask) = @_; ... })
654     Set the callback to be called when io events are triggered.
655     $reventmask is a bitset as described in the "events" method.
656    
657     $iow = $iow->fd ($fd)
658     Set the filedescriptor (not handle) to watch.
659    
660     $iow = $iow->events ($eventmask)
661     Set the event mask to watch. Bit #0 (value 1) enables watching
662     for read data, Bit #1 (value 2) enables watching for write data.
663 root 1.1
664 root 1.13 $iow = $iow->start
665     Start watching for requested events on the given handle.
666 root 1.1
667 root 1.13 $iow = $iow->stop
668     Stop watching for events on the given filehandle.
669 root 1.1
670     ENVIRONMENT
671     URXVT_PERL_VERBOSITY
672 root 1.13 This variable controls the verbosity level of the perl extension.
673     Higher numbers indicate more verbose output.
674 root 1.1
675 root 1.13 =0 - only fatal messages
676     =3 - script loading and management
677     =10 - all events received
678 root 1.1
679     AUTHOR
680 root 1.13 Marc Lehmann <pcg@goof.com>
681     http://software.schmorp.de/pkg/rxvt-unicode
682 root 1.1