1urxvt(3)                         RXVT-UNICODE                         urxvt(3)
2
3
4

NAME

6       urxvtperl - rxvt-unicode's embedded perl interpreter
7

SYNOPSIS

9          # create a file grab_test in $HOME:
10
11          sub on_sel_grab {
12             warn "you selected ", $_[0]->selection;
13             ()
14          }
15
16          # start a urxvt using it:
17
18          urxvt --perl-lib $HOME -pe grab_test
19

DESCRIPTION

21       Every time a terminal object gets created, extension scripts specified
22       via the "perl" resource are loaded and associated with it.
23
24       Scripts are compiled in a 'use strict' and 'use utf8' environment, and
25       thus must be encoded as UTF-8.
26
27       Each script will only ever be loaded once, even in urxvtd, where
28       scripts will be shared (but not enabled) for all terminals.
29
30       You can disable the embedded perl interpreter by setting both "perl-
31       ext" and "perl-ext-common" resources to the empty string.
32

PREPACKAGED EXTENSIONS

34       This section describes the extensions delivered with this release. You
35       can find them in /usr/lib64/urxvt/perl/.
36
37       You can activate them like this:
38
39         urxvt -pe <extensionname>
40
41       Or by adding them to the resource for extensions loaded by default:
42
43         URxvt.perl-ext-common: default,selection-autotransform
44
45       selection (enabled by default)
46           (More) intelligent selection. This extension tries to be more
47           intelligent when the user extends selections (double-click and
48           further clicks). Right now, it tries to select words, urls and
49           complete shell-quoted arguments, which is very convenient, too, if
50           your ls supports "--quoting-style=shell".
51
52           A double-click usually selects the word under the cursor, further
53           clicks will enlarge the selection.
54
55           The selection works by trying to match a number of regexes and
56           displaying them in increasing order of length. You can add your own
57           regexes by specifying resources of the form:
58
59              URxvt.selection.pattern-0: perl-regex
60              URxvt.selection.pattern-1: perl-regex
61              ...
62
63           The index number (0, 1...) must not have any holes, and each regex
64           must contain at least one pair of capturing parentheses, which will
65           be used for the match. For example, the following adds a regex that
66           matches everything between two vertical bars:
67
68              URxvt.selection.pattern-0: \\|([^|]+)\\|
69
70           Another example: Programs I use often output "absolute path: " at
71           the beginning of a line when they process multiple files. The
72           following pattern matches the filename (note, there is a single
73           space at the very end):
74
75              URxvt.selection.pattern-0: ^(/[^:]+):\
76
77           You can look at the source of the selection extension to see more
78           interesting uses, such as parsing a line from beginning to end.
79
80           This extension also offers following bindable keyboard commands:
81
82           rot13
83               Rot-13 the selection when activated. Used via keyboard trigger:
84
85                  URxvt.keysym.C-M-r: perl:selection:rot13
86
87       option-popup (enabled by default)
88           Binds a popup menu to Ctrl-Button2 that lets you toggle (some)
89           options at runtime.
90
91           Other extensions can extend this popup menu by pushing a code
92           reference onto "@{ $term-"{option_popup_hook} }>, which gets called
93           whenever the popup is being displayed.
94
95           Its sole argument is the popup menu, which can be modified.  It
96           should either return nothing or a string, the initial boolean value
97           and a code reference. The string will be used as button text and
98           the code reference will be called when the toggle changes, with the
99           new boolean value as first argument.
100
101           The following will add an entry "myoption" that changes
102           "$self-"{myoption}>:
103
104              push @{ $self->{term}{option_popup_hook} }, sub {
105                 ("my option" => $myoption, sub { $self->{myoption} = $_[0] })
106              };
107
108       selection-popup (enabled by default)
109           Binds a popup menu to Ctrl-Button3 that lets you convert the
110           selection text into various other formats/action (such as uri
111           unescaping, perl evaluation, web-browser starting etc.), depending
112           on content.
113
114           Other extensions can extend this popup menu by pushing a code
115           reference onto "@{ $term-"{selection_popup_hook} }>, which gets
116           called whenever the popup is being displayed.
117
118           Its sole argument is the popup menu, which can be modified. The
119           selection is in $_, which can be used to decide whether to add
120           something or not.  It should either return nothing or a string and
121           a code reference. The string will be used as button text and the
122           code reference will be called when the button gets activated and
123           should transform $_.
124
125           The following will add an entry "a to b" that transforms all "a"s
126           in the selection to "b"s, but only if the selection currently
127           contains any "a"s:
128
129              push @{ $self->{term}{selection_popup_hook} }, sub {
130                 /a/ ? ("a to b" => sub { s/a/b/g }
131                     : ()
132              };
133
134       searchable-scrollback<hotkey> (enabled by default)
135           Adds regex search functionality to the scrollback buffer, triggered
136           by a hotkey (default: "M-s"). While in search mode, normal terminal
137           input/output is suspended and a regex is displayed at the bottom of
138           the screen.
139
140           Inputting characters appends them to the regex and continues
141           incremental search. "BackSpace" removes a character from the regex,
142           "Up" and "Down" search upwards/downwards in the scrollback buffer,
143           "End" jumps to the bottom. "Escape" leaves search mode and returns
144           to the point where search was started, while "Enter" or "Return"
145           stay at the current position and additionally stores the first
146           match in the current line into the primary selection if the "Shift"
147           modifier is active.
148
149           The regex defaults to "(?i)", resulting in a case-insensitive
150           search. To get a case-sensitive search you can delete this prefix
151           using "BackSpace" or simply use an uppercase character which
152           removes the "(?i)" prefix.
153
154           See perlre for more info about perl regular expression syntax.
155
156       readline (enabled by default)
157           A support package that tries to make editing with readline easier.
158           At the moment, it reacts to clicking shift-left mouse button by
159           trying to move the text cursor to this position. It does so by
160           generating as many cursor-left or cursor-right keypresses as
161           required (this only works for programs that correctly support wide
162           characters).
163
164           To avoid too many false positives, this is only done when:
165
166           - the tty is in ICANON state.
167           - the text cursor is visible.
168           - the primary screen is currently being displayed.
169           - the mouse is on the same (multi-row-) line as the text cursor.
170
171           The normal selection mechanism isn't disabled, so quick successive
172           clicks might interfere with selection creation in harmless ways.
173
174       selection-autotransform
175           This selection allows you to do automatic transforms on a selection
176           whenever a selection is made.
177
178           It works by specifying perl snippets (most useful is a single
179           "s///" operator) that modify $_ as resources:
180
181              URxvt.selection-autotransform.0: transform
182              URxvt.selection-autotransform.1: transform
183              ...
184
185           For example, the following will transform selections of the form
186           "filename:number", often seen in compiler messages, into "vi
187           +$filename $word":
188
189              URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/vi +$2 \\Q$1\\E\\x0d/
190
191           And this example matches the same,but replaces it with vi-commands
192           you can paste directly into your (vi :) editor:
193
194              URxvt.selection-autotransform.0: s/^([^:[:space:]]+(\\d+):?$/:e \\Q$1\\E\\x0d:$2\\x0d/
195
196           Of course, this can be modified to suit your needs and your editor
197           :)
198
199           To expand the example above to typical perl error messages ("XXX at
200           FILENAME line YYY."), you need a slightly more elaborate solution:
201
202              URxvt.selection.pattern-0: ( at .*? line \\d+[,.])
203              URxvt.selection-autotransform.0: s/^ at (.*?) line (\\d+)[,.]$/:e \\Q$1\E\\x0d:$2\\x0d/
204
205           The first line tells the selection code to treat the unchanging
206           part of every error message as a selection pattern, and the second
207           line transforms the message into vi commands to load the file.
208
209       tabbed
210           This transforms the terminal into a tabbar with additional
211           terminals, that is, it implements what is commonly referred to as
212           "tabbed terminal". The topmost line displays a "[NEW]" button,
213           which, when clicked, will add a new tab, followed by one button per
214           tab.
215
216           Clicking a button will activate that tab. Pressing Shift-Left and
217           Shift-Right will switch to the tab left or right of the current
218           one, while Shift-Down creates a new tab.
219
220           The tabbar itself can be configured similarly to a normal terminal,
221           but with a resource class of "URxvt.tabbed". In addition, it
222           supports the following four resources (shown with defaults):
223
224              URxvt.tabbed.tabbar-fg: <colour-index, default 3>
225              URxvt.tabbed.tabbar-bg: <colour-index, default 0>
226              URxvt.tabbed.tab-fg:    <colour-index, default 0>
227              URxvt.tabbed.tab-bg:    <colour-index, default 1>
228
229           See COLOR AND GRAPHICS in the urxvt(1) manpage for valid indices.
230
231       matcher
232           Uses per-line display filtering ("on_line_update") to underline
233           text matching a certain pattern and make it clickable. When clicked
234           with the mouse button specified in the "matcher.button" resource
235           (default 2, or middle), the program specified in the
236           "matcher.launcher" resource (default, the "urlLauncher" resource,
237           "sensible-browser") will be started with the matched text as first
238           argument.  The default configuration is suitable for matching URLs
239           and launching a web browser, like the former "mark-urls" extension.
240
241           The default pattern to match URLs can be overridden with the
242           "matcher.pattern.0" resource, and additional patterns can be
243           specified with numbered patterns, in a manner similar to the
244           "selection" extension.  The launcher can also be overridden on a
245           per-pattern basis.
246
247           It is possible to activate the most recently seen match from the
248           keyboard.  Simply bind a keysym to "perl:matcher" as seen in the
249           example below.
250
251           Example configuration:
252
253               URxvt.perl-ext:           default,matcher
254               URxvt.urlLauncher:        sensible-browser
255               URxvt.keysym.C-Delete:    perl:matcher
256               URxvt.matcher.button:     1
257               URxvt.matcher.pattern.1:  \\bwww\\.[\\w-]+\\.[\\w./?&@#-]*[\\w/-]
258               URxvt.matcher.pattern.2:  \\B(/\\S+?):(\\d+)(?=:|$)
259               URxvt.matcher.launcher.2: gvim +$2 $1
260
261       xim-onthespot
262           This (experimental) perl extension implements OnTheSpot editing. It
263           does not work perfectly, and some input methods don't seem to work
264           well with OnTheSpot editing in general, but it seems to work at
265           least for SCIM and kinput2.
266
267           You enable it by specifying this extension and a preedit style of
268           "OnTheSpot", i.e.:
269
270              urxvt -pt OnTheSpot -pe xim-onthespot
271
272       kuake<hotkey>
273           A very primitive quake-console-like extension. It was inspired by a
274           description of how the programs "kuake" and "yakuake" work:
275           Whenever the user presses a global accelerator key (by default
276           "F10"), the terminal will show or hide itself. Another press of the
277           accelerator key will hide or show it again.
278
279           Initially, the window will not be shown when using this extension.
280
281           This is useful if you need a single terminal that is not using any
282           desktop space most of the time but is quickly available at the
283           press of a key.
284
285           The accelerator key is grabbed regardless of any modifiers, so this
286           extension will actually grab a physical key just for this function.
287
288           If you want a quake-like animation, tell your window manager to do
289           so (fvwm can do it).
290
291       block-graphics-to-ascii
292           A not very useful example of filtering all text output to the
293           terminal by replacing all line-drawing characters (U+2500 ..
294           U+259F) by a similar-looking ascii character.
295
296       digital-clock
297           Displays a digital clock using the built-in overlay.
298
299       remote-clipboard
300           Somewhat of a misnomer, this extension adds two menu entries to the
301           selection popup that allows one to run external commands to store
302           the selection somewhere and fetch it again.
303
304           We use it to implement a "distributed selection mechanism", which
305           just means that one command uploads the file to a remote server,
306           and another reads it.
307
308           The commands can be set using the "URxvt.remote-selection.store"
309           and "URxvt.remote-selection.fetch" resources. The first should read
310           the selection to store from STDIN (always in UTF-8), the second
311           should provide the selection data on STDOUT (also in UTF-8).
312
313           The defaults (which are likely useless to you) use rsh and cat:
314
315              URxvt.remote-selection.store: rsh ruth 'cat >/tmp/distributed-selection'
316              URxvt.remote-selection.fetch: rsh ruth 'cat /tmp/distributed-selection'
317
318       selection-pastebin
319           This is a little rarely useful extension that Uploads the selection
320           as textfile to a remote site (or does other things). (The
321           implementation is not currently secure for use in a multiuser
322           environment as it writes to /tmp directly.).
323
324           It listens to the "selection-pastebin:remote-pastebin" keyboard
325           command, i.e.
326
327              URxvt.keysym.C-M-e: perl:selection-pastebin:remote-pastebin
328
329           Pressing this combination runs a command with "%" replaced by the
330           name of the textfile. This command can be set via a resource:
331
332              URxvt.selection-pastebin.cmd: rsync -apP % ruth:/var/www/www.ta-sa.org/files/txt/.
333
334           And the default is likely not useful to anybody but the few people
335           around here :)
336
337           The name of the textfile is the hex encoded md5 sum of the
338           selection, so the same content should lead to the same filename.
339
340           After a successful upload the selection will be replaced by the
341           text given in the "selection-pastebin-url" resource (again, the %
342           is the placeholder for the filename):
343
344              URxvt.selection-pastebin.url: http://www.ta-sa.org/files/txt/%
345
346           Note to xrdb users: xrdb uses the C preprocessor, which might
347           interpret the double "/" characters as comment start. Use
348           "\057\057" instead, which works regardless of wether xrdb is used
349           to parse the resource file or not.
350
351       example-refresh-hooks
352           Displays a very simple digital clock in the upper right corner of
353           the window. Illustrates overwriting the refresh callbacks to create
354           your own overlays or changes.
355

API DOCUMENTATION

357       General API Considerations
358
359       All objects (such as terminals, time watchers etc.) are typical
360       reference-to-hash objects. The hash can be used to store anything you
361       like. All members starting with an underscore (such as "_ptr" or
362       "_hook") are reserved for internal uses and MUST NOT be accessed or
363       modified).
364
365       When objects are destroyed on the C++ side, the perl object hashes are
366       emptied, so its best to store related objects such as time watchers and
367       the like inside the terminal object so they get destroyed as soon as
368       the terminal is destroyed.
369
370       Argument names also often indicate the type of a parameter. Here are
371       some hints on what they mean:
372
373       $text
374           Rxvt-unicodes special way of encoding text, where one "unicode"
375           character always represents one screen cell. See ROW_t for a
376           discussion of this format.
377
378       $string
379           A perl text string, with an emphasis on text. It can store all
380           unicode characters and is to be distinguished with text encoded in
381           a specific encoding (often locale-specific) and binary data.
382
383       $octets
384           Either binary data or - more common - a text string encoded in a
385           locale-specific way.
386
387       Extension Objects
388
389       Every perl extension is a perl class. A separate perl object is created
390       for each terminal, and each terminal has its own set of extenion
391       objects, which are passed as the first parameter to hooks. So
392       extensions can use their $self object without having to think about
393       clashes with other extensions or other terminals, with the exception of
394       methods and members that begin with an underscore character "_": these
395       are reserved for internal use.
396
397       Although it isn't a "urxvt::term" object, you can call all methods of
398       the "urxvt::term" class on this object.
399
400       It has the following methods and data members:
401
402       $urxvt_term = $self->{term}
403           Returns the "urxvt::term" object associated with this instance of
404           the extension. This member must not be changed in any way.
405
406       $self->enable ($hook_name => $cb, [$hook_name => $cb..])
407           Dynamically enable the given hooks (named without the "on_" prefix)
408           for this extension, replacing any previous hook. This is useful
409           when you want to overwrite time-critical hooks only temporarily.
410
411       $self->disable ($hook_name[, $hook_name..])
412           Dynamically disable the given hooks.
413
414       Hooks
415
416       The following subroutines can be declared in extension files, and will
417       be called whenever the relevant event happens.
418
419       The first argument passed to them is an extension object as described
420       in the in the "Extension Objects" section.
421
422       All of these hooks must return a boolean value. If any of the called
423       hooks returns true, then the event counts as being consumed, and the
424       relevant action might not be carried out by the C++ code.
425
426       When in doubt, return a false value (preferably "()").
427
428       on_init $term
429           Called after a new terminal object has been initialized, but before
430           windows are created or the command gets run. Most methods are
431           unsafe to call or deliver senseless data, as terminal size and
432           other characteristics have not yet been determined. You can safely
433           query and change resources and options, though. For many purposes
434           the "on_start" hook is a better place.
435
436       on_start $term
437           Called at the very end of initialisation of a new terminal, just
438           before trying to map (display) the toplevel and returning to the
439           main loop.
440
441       on_destroy $term
442           Called whenever something tries to destroy terminal, when the
443           terminal is still fully functional (not for long, though).
444
445       on_reset $term
446           Called after the screen is "reset" for any reason, such as resizing
447           or control sequences. Here is where you can react on changes to
448           size-related variables.
449
450       on_child_start $term, $pid
451           Called just after the child process has been "fork"ed.
452
453       on_child_exit $term, $status
454           Called just after the child process has exited. $status is the
455           status from "waitpid".
456
457       on_sel_make $term, $eventtime
458           Called whenever a selection has been made by the user, but before
459           the selection text is copied, so changes to the beginning, end or
460           type of the selection will be honored.
461
462           Returning a true value aborts selection making by urxvt, in which
463           case you have to make a selection yourself by calling
464           "$term->selection_grab".
465
466       on_sel_grab $term, $eventtime
467           Called whenever a selection has been copied, but before the
468           selection is requested from the server.  The selection text can be
469           queried and changed by calling "$term->selection".
470
471           Returning a true value aborts selection grabbing. It will still be
472           highlighted.
473
474       on_sel_extend $term
475           Called whenever the user tries to extend the selection (e.g. with a
476           double click) and is either supposed to return false (normal
477           operation), or should extend the selection itself and return true
478           to suppress the built-in processing. This can happen multiple
479           times, as long as the callback returns true, it will be called on
480           every further click by the user and is supposed to enlarge the
481           selection more and more, if possible.
482
483           See the selection example extension.
484
485       on_view_change $term, $offset
486           Called whenever the view offset changes, i.e. the user or program
487           scrolls. Offset 0 means display the normal terminal, positive
488           values show this many lines of scrollback.
489
490       on_scroll_back $term, $lines, $saved
491           Called whenever lines scroll out of the terminal area into the
492           scrollback buffer. $lines is the number of lines scrolled out and
493           may be larger than the scroll back buffer or the terminal.
494
495           It is called before lines are scrolled out (so rows 0 .. min
496           ($lines - 1, $nrow - 1) represent the lines to be scrolled out).
497           $saved is the total number of lines that will be in the scrollback
498           buffer.
499
500       on_osc_seq $term, $op, $args
501           Called on every OSC sequence and can be used to suppress it or
502           modify its behaviour.  The default should be to return an empty
503           list. A true value suppresses execution of the request completely.
504           Make sure you don't get confused by recursive invocations when you
505           output an osc sequence within this callback.
506
507           "on_osc_seq_perl" should be used for new behaviour.
508
509       on_osc_seq_perl $term, $string
510           Called whenever the ESC ] 777 ; string ST command sequence (OSC =
511           operating system command) is processed. Cursor position and other
512           state information is up-to-date when this happens. For
513           interoperability, the string should start with the extension name
514           and a colon, to distinguish it from commands for other extensions,
515           and this might be enforced in the future.
516
517           Be careful not ever to trust (in a security sense) the data you
518           receive, as its source can not easily be controlled (e-mail
519           content, messages from other users on the same system etc.).
520
521       on_add_lines $term, $string
522           Called whenever text is about to be output, with the text as
523           argument. You can filter/change and output the text yourself by
524           returning a true value and calling "$term->scr_add_lines" yourself.
525           Please note that this might be very slow, however, as your hook is
526           called for all text being output.
527
528       on_tt_write $term, $octets
529           Called whenever some data is written to the tty/pty and can be used
530           to suppress or filter tty input.
531
532       on_line_update $term, $row
533           Called whenever a line was updated or changed. Can be used to
534           filter screen output (e.g. underline urls or other useless stuff).
535           Only lines that are being shown will be filtered, and, due to
536           performance reasons, not always immediately.
537
538           The row number is always the topmost row of the line if the line
539           spans multiple rows.
540
541           Please note that, if you change the line, then the hook might get
542           called later with the already-modified line (e.g. if unrelated
543           parts change), so you cannot just toggle rendition bits, but only
544           set them.
545
546       on_refresh_begin $term
547           Called just before the screen gets redrawn. Can be used for overlay
548           or similar effects by modify terminal contents in refresh_begin,
549           and restoring them in refresh_end. The built-in overlay and
550           selection display code is run after this hook, and takes
551           precedence.
552
553       on_refresh_end $term
554           Called just after the screen gets redrawn. See "on_refresh_begin".
555
556       on_user_command $term, $string
557           Called whenever a user-configured event is being activated (e.g.
558           via a "perl:string" action bound to a key, see description of the
559           keysym resource in the urxvt(1) manpage).
560
561           The event is simply the action string. This interface is assumed to
562           change slightly in the future.
563
564       on_resize_all_windows $tern, $new_width, $new_height
565           Called just after the new window size has been calculated, but
566           before windows are actually being resized or hints are being set.
567           If this hook returns TRUE, setting of the window hints is being
568           skipped.
569
570       on_x_event $term, $event
571           Called on every X event received on the vt window (and possibly
572           other windows). Should only be used as a last resort. Most event
573           structure members are not passed.
574
575       on_root_event $term, $event
576           Like "on_x_event", but is called for events on the root window.
577
578       on_focus_in $term
579           Called whenever the window gets the keyboard focus, before rxvt-
580           unicode does focus in processing.
581
582       on_focus_out $term
583           Called whenever the window loses keyboard focus, before rxvt-
584           unicode does focus out processing.
585
586       on_configure_notify $term, $event
587       on_property_notify $term, $event
588       on_key_press $term, $event, $keysym, $octets
589       on_key_release $term, $event, $keysym
590       on_button_press $term, $event
591       on_button_release $term, $event
592       on_motion_notify $term, $event
593       on_map_notify $term, $event
594       on_unmap_notify $term, $event
595           Called whenever the corresponding X event is received for the
596           terminal If the hook returns true, then the even will be ignored by
597           rxvt-unicode.
598
599           The event is a hash with most values as named by Xlib (see the
600           XEvent manpage), with the additional members "row" and "col", which
601           are the (real, not screen-based) row and column under the mouse
602           cursor.
603
604           "on_key_press" additionally receives the string rxvt-unicode would
605           output, if any, in locale-specific encoding.
606
607           subwindow.
608
609       on_client_message $term, $event
610       on_wm_protocols $term, $event
611       on_wm_delete_window $term, $event
612           Called when various types of ClientMessage events are received (all
613           with format=32, WM_PROTOCOLS or WM_PROTOCOLS:WM_DELETE_WINDOW).
614
615       Variables in the "urxvt" Package
616
617       $urxvt::LIBDIR
618           The rxvt-unicode library directory, where, among other things, the
619           perl modules and scripts are stored.
620
621       $urxvt::RESCLASS, $urxvt::RESCLASS
622           The resource class and name rxvt-unicode uses to look up X
623           resources.
624
625       $urxvt::RXVTNAME
626           The basename of the installed binaries, usually "urxvt".
627
628       $urxvt::TERM
629           The current terminal. This variable stores the current
630           "urxvt::term" object, whenever a callback/hook is executing.
631
632       @urxvt::TERM_INIT
633           All code references in this array will be called as methods of the
634           next newly created "urxvt::term" object (during the "on_init"
635           phase). The array gets cleared before the code references that were
636           in it are being executed, so references can push themselves onto it
637           again if they so desire.
638
639           This complements to the perl-eval command line option, but gets
640           executed first.
641
642       @urxvt::TERM_EXT
643           Works similar to @TERM_INIT, but contains perl package/class names,
644           which get registered as normal extensions after calling the hooks
645           in @TERM_INIT but before other extensions. Gets cleared just like
646           @TERM_INIT.
647
648       Functions in the "urxvt" Package
649
650       urxvt::fatal $errormessage
651           Fatally aborts execution with the given error message. Avoid at all
652           costs! The only time this is acceptable is when the terminal
653           process starts up.
654
655       urxvt::warn $string
656           Calls "rxvt_warn" with the given string which should not include a
657           newline. The module also overwrites the "warn" builtin with a
658           function that calls this function.
659
660           Using this function has the advantage that its output ends up in
661           the correct place, e.g. on stderr of the connecting urxvtc client.
662
663           Messages have a size limit of 1023 bytes currently.
664
665       @terms = urxvt::termlist
666           Returns all urxvt::term objects that exist in this process,
667           regardless of whether they are started, being destroyed etc., so be
668           careful. Only term objects that have perl extensions attached will
669           be returned (because there is no urxvt::term objet associated with
670           others).
671
672       $time = urxvt::NOW
673           Returns the "current time" (as per the event loop).
674
675       urxvt::CurrentTime
676       urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask,
677       Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, Button4Mask,
678       Button5Mask, AnyModifier
679       urxvt::NoEventMask, KeyPressMask, KeyReleaseMask, ButtonPressMask,
680       ButtonReleaseMask, EnterWindowMask, LeaveWindowMask, PointerMotionMask,
681       PointerMotionHintMask, Button1MotionMask, Button2MotionMask,
682       Button3MotionMask, Button4MotionMask, Button5MotionMask,
683       ButtonMotionMask, KeymapStateMask, ExposureMask, VisibilityChangeMask,
684       StructureNotifyMask, ResizeRedirectMask, SubstructureNotifyMask,
685       SubstructureRedirectMask, FocusChangeMask, PropertyChangeMask,
686       ColormapChangeMask, OwnerGrabButtonMask
687       urxvt::KeyPress, KeyRelease, ButtonPress, ButtonRelease, MotionNotify,
688       EnterNotify, LeaveNotify, FocusIn, FocusOut, KeymapNotify, Expose,
689       GraphicsExpose, NoExpose, VisibilityNotify, CreateNotify,
690       DestroyNotify, UnmapNotify, MapNotify, MapRequest, ReparentNotify,
691       ConfigureNotify, ConfigureRequest, GravityNotify, ResizeRequest,
692       CirculateNotify, CirculateRequest, PropertyNotify, SelectionClear,
693       SelectionRequest, SelectionNotify, ColormapNotify, ClientMessage,
694       MappingNotify
695           Various constants for use in X calls and event processing.
696
697       RENDITION
698
699       Rendition bitsets contain information about colour, font, font styles
700       and similar information for each screen cell.
701
702       The following "macros" deal with changes in rendition sets. You should
703       never just create a bitset, you should always modify an existing one,
704       as they contain important information required for correct operation of
705       rxvt-unicode.
706
707       $rend = urxvt::DEFAULT_RSTYLE
708           Returns the default rendition, as used when the terminal is
709           starting up or being reset. Useful as a base to start when creating
710           renditions.
711
712       $rend = urxvt::OVERLAY_RSTYLE
713           Return the rendition mask used for overlays by default.
714
715       $rendbit = urxvt::RS_Bold, RS_Italic, RS_Blink, RS_RVid, RS_Uline
716           Return the bit that enabled bold, italic, blink, reverse-video and
717           underline, respectively. To enable such a style, just logically OR
718           it into the bitset.
719
720       $foreground = urxvt::GET_BASEFG $rend
721       $background = urxvt::GET_BASEBG $rend
722           Return the foreground/background colour index, respectively.
723
724       $rend = urxvt::SET_FGCOLOR $rend, $new_colour
725       $rend = urxvt::SET_BGCOLOR $rend, $new_colour
726       $rend = urxvt::SET_COLOR $rend, $new_fg, $new_bg
727           Replace the foreground/background colour in the rendition mask with
728           the specified one.
729
730       $value = urxvt::GET_CUSTOM $rend
731           Return the "custom" value: Every rendition has 5 bits for use by
732           extensions. They can be set and changed as you like and are
733           initially zero.
734
735       $rend = urxvt::SET_CUSTOM $rend, $new_value
736           Change the custom value.
737
738       The "urxvt::anyevent" Class
739
740       The sole purpose of this class is to deliver an interface to the
741       "AnyEvent" module - any module using it will work inside urxvt without
742       further programming. The only exception is that you cannot wait on
743       condition variables, but non-blocking condvar use is ok. What this
744       means is that you cannot use blocking APIs, but the non-blocking
745       variant should work.
746
747       The "urxvt::term" Class
748
749       $term = new urxvt::term $envhashref, $rxvtname, [arg...]
750           Creates a new terminal, very similar as if you had started it with
751           system "$rxvtname, arg...". $envhashref must be a reference to a
752           %ENV-like hash which defines the environment of the new terminal.
753
754           Croaks (and probably outputs an error message) if the new instance
755           couldn't be created.  Returns "undef" if the new instance didn't
756           initialise perl, and the terminal object otherwise. The "init" and
757           "start" hooks will be called before this call returns, and are free
758           to refer to global data (which is race free).
759
760       $term->destroy
761           Destroy the terminal object (close the window, free resources
762           etc.). Please note that urxvt will not exit as long as any event
763           watchers (timers, io watchers) are still active.
764
765       $term->exec_async ($cmd[, @args])
766           Works like the combination of the "fork"/"exec" builtins, which
767           executes ("starts") programs in the background. This function takes
768           care of setting the user environment before exec'ing the command
769           (e.g. "PATH") and should be preferred over explicit calls to "exec"
770           or "system".
771
772           Returns the pid of the subprocess or "undef" on error.
773
774       $isset = $term->option ($optval[, $set])
775           Returns true if the option specified by $optval is enabled, and
776           optionally change it. All option values are stored by name in the
777           hash %urxvt::OPTION. Options not enabled in this binary are not in
778           the hash.
779
780           Here is a likely non-exhaustive list of option names, please see
781           the source file /src/optinc.h to see the actual list:
782
783            borderLess console cursorBlink cursorUnderline hold iconic insecure
784            intensityStyles jumpScroll loginShell mapAlert meta8 mouseWheelScrollPage
785            override-redirect pastableTabs pointerBlank reverseVideo scrollBar
786            scrollBar_floating scrollBar_right scrollTtyKeypress scrollTtyOutput
787            scrollWithBuffer secondaryScreen secondaryScroll skipBuiltinGlyphs
788            transparent tripleclickwords utmpInhibit visualBell
789
790       $value = $term->resource ($name[, $newval])
791           Returns the current resource value associated with a given name and
792           optionally sets a new value. Setting values is most useful in the
793           "init" hook. Unset resources are returned and accepted as "undef".
794
795           The new value must be properly encoded to a suitable character
796           encoding before passing it to this method. Similarly, the returned
797           value may need to be converted from the used encoding to text.
798
799           Resource names are as defined in src/rsinc.h. Colours can be
800           specified as resource names of the form "color+<index>", e.g.
801           "color+5". (will likely change).
802
803           Please note that resource strings will currently only be freed when
804           the terminal is destroyed, so changing options frequently will eat
805           memory.
806
807           Here is a likely non-exhaustive list of resource names, not all of
808           which are supported in every build, please see the source file
809           /src/rsinc.h to see the actual list:
810
811             answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont
812             borderLess color cursorBlink cursorUnderline cutchars delete_key
813             display_name embed ext_bwidth fade font geometry hold iconName
814             imFont imLocale inputMethod insecure int_bwidth intensityStyles
815             italicFont jumpScroll lineSpace loginShell mapAlert meta8 modifier
816             mouseWheelScrollPage name override_redirect pastableTabs path perl_eval
817             perl_ext_1 perl_ext_2 perl_lib pointerBlank pointerBlankDelay
818             preeditType print_pipe pty_fd reverseVideo saveLines scrollBar
819             scrollBar_align scrollBar_floating scrollBar_right scrollBar_thickness
820             scrollTtyKeypress scrollTtyOutput scrollWithBuffer scrollstyle
821             secondaryScreen secondaryScroll shade term_name title
822             transient_for transparent transparent_all tripleclickwords utmpInhibit
823             visualBell
824
825       $value = $term->x_resource ($pattern)
826           Returns the X-Resource for the given pattern, excluding the program
827           or class name, i.e.  "$term->x_resource ("boldFont")" should return
828           the same value as used by this instance of rxvt-unicode. Returns
829           "undef" if no resource with that pattern exists.
830
831           This method should only be called during the "on_start" hook, as
832           there is only one resource database per display, and later
833           invocations might return the wrong resources.
834
835       $success = $term->parse_keysym ($keysym_spec, $command_string)
836           Adds a keymap translation exactly as specified via a resource. See
837           the "keysym" resource in the urxvt(1) manpage.
838
839       $rend = $term->rstyle ([$new_rstyle])
840           Return and optionally change the current rendition. Text that is
841           output by the terminal application will use this style.
842
843       ($row, $col) = $term->screen_cur ([$row, $col])
844           Return the current coordinates of the text cursor position and
845           optionally set it (which is usually bad as applications don't
846           expect that).
847
848       ($row, $col) = $term->selection_mark ([$row, $col])
849       ($row, $col) = $term->selection_beg ([$row, $col])
850       ($row, $col) = $term->selection_end ([$row, $col])
851           Return the current values of the selection mark, begin or end
852           positions, and optionally set them to new values.
853
854       $term->selection_make ($eventtime[, $rectangular])
855           Tries to make a selection as set by "selection_beg" and
856           "selection_end". If $rectangular is true (default: false), a
857           rectangular selection will be made. This is the prefered function
858           to make a selection.
859
860       $success = $term->selection_grab ($eventtime)
861           Try to request the primary selection text from the server (for
862           example, as set by the next method). No visual feedback will be
863           given. This function is mostly useful from within "on_sel_grab"
864           hooks.
865
866       $oldtext = $term->selection ([$newtext])
867           Return the current selection text and optionally replace it by
868           $newtext.
869
870       $term->overlay_simple ($x, $y, $text)
871           Create a simple multi-line overlay box. See the next method for
872           details.
873
874       $term->overlay ($x, $y, $width, $height[, $rstyle[, $border]])
875           Create a new (empty) overlay at the given position with the given
876           width/height. $rstyle defines the initial rendition style (default:
877           "OVERLAY_RSTYLE").
878
879           If $border is 2 (default), then a decorative border will be put
880           around the box.
881
882           If either $x or $y is negative, then this is counted from the
883           right/bottom side, respectively.
884
885           This method returns an urxvt::overlay object. The overlay will be
886           visible as long as the perl object is referenced.
887
888           The methods currently supported on "urxvt::overlay" objects are:
889
890           $overlay->set ($x, $y, $text, $rend)
891               Similar to "$term->ROW_t" and "$term->ROW_r" in that it puts
892               text in rxvt-unicode's special encoding and an array of
893               rendition values at a specific position inside the overlay.
894
895           $overlay->hide
896               If visible, hide the overlay, but do not destroy it.
897
898           $overlay->show
899               If hidden, display the overlay again.
900
901       $popup = $term->popup ($event)
902           Creates a new "urxvt::popup" object that implements a popup menu.
903           The $event must be the event causing the menu to pop up (a button
904           event, currently).
905
906       $cellwidth = $term->strwidth ($string)
907           Returns the number of screen-cells this string would need.
908           Correctly accounts for wide and combining characters.
909
910       $octets = $term->locale_encode ($string)
911           Convert the given text string into the corresponding locale
912           encoding.
913
914       $string = $term->locale_decode ($octets)
915           Convert the given locale-encoded octets into a perl string.
916
917       $term->scr_xor_span ($beg_row, $beg_col, $end_row, $end_col[, $rstyle])
918           XORs the rendition values in the given span with the provided value
919           (default: "RS_RVid"), which MUST NOT contain font styles. Useful in
920           refresh hooks to provide effects similar to the selection.
921
922       $term->scr_xor_rect ($beg_row, $beg_col, $end_row, $end_col[,
923       $rstyle1[, $rstyle2]])
924           Similar to "scr_xor_span", but xors a rectangle instead. Trailing
925           whitespace will additionally be xored with the $rstyle2, which
926           defaults to "RS_RVid | RS_Uline", which removes reverse video again
927           and underlines it instead. Both styles MUST NOT contain font
928           styles.
929
930       $term->scr_bell
931           Ring the bell!
932
933       $term->scr_add_lines ($string)
934           Write the given text string to the screen, as if output by the
935           application running inside the terminal. It may not contain command
936           sequences (escape codes), but is free to use line feeds, carriage
937           returns and tabs. The string is a normal text string, not in
938           locale-dependent encoding.
939
940           Normally its not a good idea to use this function, as programs
941           might be confused by changes in cursor position or scrolling. Its
942           useful inside a "on_add_lines" hook, though.
943
944       $term->scr_change_screen ($screen)
945           Switch to given screen - 0 primary, 1 secondary.
946
947       $term->cmd_parse ($octets)
948           Similar to "scr_add_lines", but the argument must be in the locale-
949           specific encoding of the terminal and can contain command sequences
950           (escape codes) that will be interpreted.
951
952       $term->tt_write ($octets)
953           Write the octets given in $data to the tty (i.e. as program input).
954           To pass characters instead of octets, you should convert your
955           strings first to the locale-specific encoding using
956           "$term->locale_encode".
957
958       $old_events = $term->pty_ev_events ([$new_events])
959           Replaces the event mask of the pty watcher by the given event mask.
960           Can be used to suppress input and output handling to the pty/tty.
961           See the description of "urxvt::timer->events". Make sure to always
962           restore the previous value.
963
964       $fd = $term->pty_fd
965           Returns the master file descriptor for the pty in use, or "-1" if
966           no pty is used.
967
968       $windowid = $term->parent
969           Return the window id of the toplevel window.
970
971       $windowid = $term->vt
972           Return the window id of the terminal window.
973
974       $term->vt_emask_add ($x_event_mask)
975           Adds the specified events to the vt event mask. Useful e.g. when
976           you want to receive pointer events all the times:
977
978              $term->vt_emask_add (urxvt::PointerMotionMask);
979
980       $term->focus_in
981       $term->focus_out
982       $term->key_press ($state, $keycode[, $time])
983       $term->key_release ($state, $keycode[, $time])
984           Deliver various fake events to to terminal.
985
986       $window_width = $term->width
987       $window_height = $term->height
988       $font_width = $term->fwidth
989       $font_height = $term->fheight
990       $font_ascent = $term->fbase
991       $terminal_rows = $term->nrow
992       $terminal_columns = $term->ncol
993       $has_focus = $term->focus
994       $is_mapped = $term->mapped
995       $max_scrollback = $term->saveLines
996       $nrow_plus_saveLines = $term->total_rows
997       $topmost_scrollback_row = $term->top_row
998           Return various integers describing terminal characteristics.
999
1000       $x_display = $term->display_id
1001           Return the DISPLAY used by rxvt-unicode.
1002
1003       $lc_ctype = $term->locale
1004           Returns the LC_CTYPE category string used by this rxvt-unicode.
1005
1006       $env = $term->env
1007           Returns a copy of the environment in effect for the terminal as a
1008           hashref similar to "\%ENV".
1009
1010       @envv = $term->envv
1011           Returns the environment as array of strings of the form
1012           "VAR=VALUE".
1013
1014       @argv = $term->argv
1015           Return the argument vector as this terminal, similar to @ARGV, but
1016           includes the program name as first element.
1017
1018       $modifiermask = $term->ModLevel3Mask
1019       $modifiermask = $term->ModMetaMask
1020       $modifiermask = $term->ModNumLockMask
1021           Return the modifier masks corresponding to the "ISO Level 3 Shift"
1022           (often AltGr), the meta key (often Alt) and the num lock key, if
1023           applicable.
1024
1025       $screen = $term->current_screen
1026           Returns the currently displayed screen (0 primary, 1 secondary).
1027
1028       $cursor_is_hidden = $term->hidden_cursor
1029           Returns whether the cursor is currently hidden or not.
1030
1031       $view_start = $term->view_start ([$newvalue])
1032           Returns the row number of the topmost displayed line. Maximum value
1033           is 0, which displays the normal terminal contents. Lower values
1034           scroll this many lines into the scrollback buffer.
1035
1036       $term->want_refresh
1037           Requests a screen refresh. At the next opportunity, rxvt-unicode
1038           will compare the on-screen display with its stored representation.
1039           If they differ, it redraws the differences.
1040
1041           Used after changing terminal contents to display them.
1042
1043       $text = $term->ROW_t ($row_number[, $new_text[, $start_col]])
1044           Returns the text of the entire row with number $row_number. Row 0
1045           is the topmost terminal line, row "$term->$ncol-1" is the
1046           bottommost terminal line. The scrollback buffer starts at line "-1"
1047           and extends to line "-$term->nsaved". Nothing will be returned if a
1048           nonexistent line is requested.
1049
1050           If $new_text is specified, it will replace characters in the
1051           current line, starting at column $start_col (default 0), which is
1052           useful to replace only parts of a line. The font index in the
1053           rendition will automatically be updated.
1054
1055           $text is in a special encoding: tabs and wide characters that use
1056           more than one cell when displayed are padded with $urxvt::NOCHAR
1057           (chr 65535) characters. Characters with combining characters and
1058           other characters that do not fit into the normal text encoding will
1059           be replaced with characters in the private use area.
1060
1061           You have to obey this encoding when changing text. The advantage is
1062           that "substr" and similar functions work on screen cells and not on
1063           characters.
1064
1065           The methods "$term->special_encode" and "$term->special_decode" can
1066           be used to convert normal strings into this encoding and vice
1067           versa.
1068
1069       $rend = $term->ROW_r ($row_number[, $new_rend[, $start_col]])
1070           Like "$term->ROW_t", but returns an arrayref with rendition
1071           bitsets. Rendition bitsets contain information about colour, font,
1072           font styles and similar information. See also "$term->ROW_t".
1073
1074           When setting rendition, the font mask will be ignored.
1075
1076           See the section on RENDITION, above.
1077
1078       $length = $term->ROW_l ($row_number[, $new_length])
1079           Returns the number of screen cells that are in use ("the line
1080           length"). Unlike the urxvt core, this returns "$term->ncol" if the
1081           line is joined with the following one.
1082
1083       $bool = $term->is_longer ($row_number)
1084           Returns true if the row is part of a multiple-row logical "line"
1085           (i.e.  joined with the following row), which means all characters
1086           are in use and it is continued on the next row (and possibly a
1087           continuation of the previous row(s)).
1088
1089       $line = $term->line ($row_number)
1090           Create and return a new "urxvt::line" object that stores
1091           information about the logical line that row $row_number is part of.
1092           It supports the following methods:
1093
1094           $text = $line->t ([$new_text])
1095               Returns or replaces the full text of the line, similar to
1096               "ROW_t"
1097
1098           $rend = $line->r ([$new_rend])
1099               Returns or replaces the full rendition array of the line,
1100               similar to "ROW_r"
1101
1102           $length = $line->l
1103               Returns the length of the line in cells, similar to "ROW_l".
1104
1105           $rownum = $line->beg
1106           $rownum = $line->end
1107               Return the row number of the first/last row of the line,
1108               respectively.
1109
1110           $offset = $line->offset_of ($row, $col)
1111               Returns the character offset of the given row|col pair within
1112               the logical line. Works for rows outside the line, too, and
1113               returns corresponding offsets outside the string.
1114
1115           ($row, $col) = $line->coord_of ($offset)
1116               Translates a string offset into terminal coordinates again.
1117
1118       $text = $term->special_encode $string
1119           Converts a perl string into the special encoding used by rxvt-
1120           unicode, where one character corresponds to one screen cell. See
1121           "$term->ROW_t" for details.
1122
1123       $string = $term->special_decode $text
1124           Converts rxvt-unicodes text representation into a perl string. See
1125           "$term->ROW_t" for details.
1126
1127       $success = $term->grab_button ($button, $modifiermask[, $window =
1128       $term->vt])
1129       $term->ungrab_button ($button, $modifiermask[, $window = $term->vt])
1130           Register/unregister a synchronous button grab. See the XGrabButton
1131           manpage.
1132
1133       $success = $term->grab ($eventtime[, $sync])
1134           Calls XGrabPointer and XGrabKeyboard in asynchronous (default) or
1135           synchronous ($sync is true). Also remembers the grab timestamp.
1136
1137       $term->allow_events_async
1138           Calls XAllowEvents with AsyncBoth for the most recent grab.
1139
1140       $term->allow_events_sync
1141           Calls XAllowEvents with SyncBoth for the most recent grab.
1142
1143       $term->allow_events_replay
1144           Calls XAllowEvents with both ReplayPointer and ReplayKeyboard for
1145           the most recent grab.
1146
1147       $term->ungrab
1148           Calls XUngrab for the most recent grab. Is called automatically on
1149           evaluation errors, as it is better to lose the grab in the error
1150           case as the session.
1151
1152       $atom = $term->XInternAtom ($atom_name[, $only_if_exists])
1153       $atom_name = $term->XGetAtomName ($atom)
1154       @atoms = $term->XListProperties ($window)
1155       ($type,$format,$octets) = $term->XGetWindowProperty ($window,
1156       $property)
1157       $term->XChangeWindowProperty ($window, $property, $type, $format,
1158       $octets)
1159       $term->XDeleteProperty ($window, $property)
1160       $window = $term->DefaultRootWindow
1161       $term->XReparentWindow ($window, $parent, [$x, $y])
1162       $term->XMapWindow ($window)
1163       $term->XUnmapWindow ($window)
1164       $term->XMoveResizeWindow ($window, $x, $y, $width, $height)
1165       ($x, $y, $child_window) = $term->XTranslateCoordinates ($src, $dst, $x,
1166       $y)
1167       $term->XChangeInput ($window, $add_events[, $del_events])
1168           Various X or X-related functions. The $term object only serves as
1169           the source of the display, otherwise those functions map more-or-
1170           less directory onto the X functions of the same name.
1171
1172       The "urxvt::popup" Class
1173
1174       $popup->add_title ($title)
1175           Adds a non-clickable title to the popup.
1176
1177       $popup->add_separator ([$sepchr])
1178           Creates a separator, optionally using the character given as
1179           $sepchr.
1180
1181       $popup->add_button ($text, $cb)
1182           Adds a clickable button to the popup. $cb is called whenever it is
1183           selected.
1184
1185       $popup->add_toggle ($text, $initial_value, $cb)
1186           Adds a toggle/checkbox item to the popup. The callback gets called
1187           whenever it gets toggled, with a boolean indicating its new value
1188           as its first argument.
1189
1190       $popup->show
1191           Displays the popup (which is initially hidden).
1192
1193       The "urxvt::timer" Class
1194
1195       This class implements timer watchers/events. Time is represented as a
1196       fractional number of seconds since the epoch. Example:
1197
1198          $term->{overlay} = $term->overlay (-1, 0, 8, 1, urxvt::OVERLAY_RSTYLE, 0);
1199          $term->{timer} = urxvt::timer
1200                           ->new
1201                           ->interval (1)
1202                           ->cb (sub {
1203                              $term->{overlay}->set (0, 0,
1204                                 sprintf "%2d:%02d:%02d", (localtime urxvt::NOW)[2,1,0]);
1205                           });
1206
1207       $timer = new urxvt::timer
1208           Create a new timer object in started state. It is scheduled to fire
1209           immediately.
1210
1211       $timer = $timer->cb (sub { my ($timer) = @_; ... })
1212           Set the callback to be called when the timer triggers.
1213
1214       $tstamp = $timer->at
1215           Return the time this watcher will fire next.
1216
1217       $timer = $timer->set ($tstamp)
1218           Set the time the event is generated to $tstamp.
1219
1220       $timer = $timer->interval ($interval)
1221           Normally (and when $interval is 0), the timer will automatically
1222           stop after it has fired once. If $interval is non-zero, then the
1223           timer is automatically rescheduled at the given intervals.
1224
1225       $timer = $timer->start
1226           Start the timer.
1227
1228       $timer = $timer->start ($tstamp)
1229           Set the event trigger time to $tstamp and start the timer.
1230
1231       $timer = $timer->after ($delay)
1232           Like "start", but sets the expiry timer to c<urxvt::NOW + $delay>.
1233
1234       $timer = $timer->stop
1235           Stop the timer.
1236
1237       The "urxvt::iow" Class
1238
1239       This class implements io watchers/events. Example:
1240
1241         $term->{socket} = ...
1242         $term->{iow} = urxvt::iow
1243                        ->new
1244                        ->fd (fileno $term->{socket})
1245                        ->events (urxvt::EV_READ)
1246                        ->start
1247                        ->cb (sub {
1248                          my ($iow, $revents) = @_;
1249                          # $revents must be 1 here, no need to check
1250                          sysread $term->{socket}, my $buf, 8192
1251                             or end-of-file;
1252                        });
1253
1254       $iow = new urxvt::iow
1255           Create a new io watcher object in stopped state.
1256
1257       $iow = $iow->cb (sub { my ($iow, $reventmask) = @_; ... })
1258           Set the callback to be called when io events are triggered.
1259           $reventmask is a bitset as described in the "events" method.
1260
1261       $iow = $iow->fd ($fd)
1262           Set the file descriptor (not handle) to watch.
1263
1264       $iow = $iow->events ($eventmask)
1265           Set the event mask to watch. The only allowed values are
1266           "urxvt::EV_READ" and "urxvt::EV_WRITE", which might be ORed
1267           together, or "urxvt::EV_NONE".
1268
1269       $iow = $iow->start
1270           Start watching for requested events on the given handle.
1271
1272       $iow = $iow->stop
1273           Stop watching for events on the given file handle.
1274
1275       The "urxvt::iw" Class
1276
1277       This class implements idle watchers, that get called automatically when
1278       the process is idle. They should return as fast as possible, after
1279       doing some useful work.
1280
1281       $iw = new urxvt::iw
1282           Create a new idle watcher object in stopped state.
1283
1284       $iw = $iw->cb (sub { my ($iw) = @_; ... })
1285           Set the callback to be called when the watcher triggers.
1286
1287       $timer = $timer->start
1288           Start the watcher.
1289
1290       $timer = $timer->stop
1291           Stop the watcher.
1292
1293       The "urxvt::pw" Class
1294
1295       This class implements process watchers. They create an event whenever a
1296       process exits, after which they stop automatically.
1297
1298          my $pid = fork;
1299          ...
1300          $term->{pw} = urxvt::pw
1301                           ->new
1302                           ->start ($pid)
1303                           ->cb (sub {
1304                              my ($pw, $exit_status) = @_;
1305                              ...
1306                           });
1307
1308       $pw = new urxvt::pw
1309           Create a new process watcher in stopped state.
1310
1311       $pw = $pw->cb (sub { my ($pw, $exit_status) = @_; ... })
1312           Set the callback to be called when the timer triggers.
1313
1314       $pw = $timer->start ($pid)
1315           Tells the watcher to start watching for process $pid.
1316
1317       $pw = $pw->stop
1318           Stop the watcher.
1319

ENVIRONMENT

1321       URXVT_PERL_VERBOSITY
1322
1323       This variable controls the verbosity level of the perl extension.
1324       Higher numbers indicate more verbose output.
1325
1326       == 0 - fatal messages
1327       >= 3 - script loading and management
1328       >=10 - all called hooks
1329       >=11 - hook return values
1330

AUTHOR

1332        Marc Lehmann <pcg@goof.com>
1333        http://software.schmorp.de/pkg/rxvt-unicode
1334
1335
1336
13378.9                               2008-01-25                          urxvt(3)
Impressum