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