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