ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvtperl.3.txt
Revision: 1.50
Committed: Sun Jun 24 22:12:18 2007 UTC (16 years, 11 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.49: +7 -0 lines
Log Message:
use pod2xhtml and our stylesheet

File Contents

# Content
1 NAME
2 rxvtperl - rxvt-unicode's embedded perl interpreter
3
4 SYNOPSIS
5 # create a file grab_test in $HOME:
6
7 sub on_sel_grab {
8 warn "you selected ", $_[0]->selection;
9 ()
10 }
11
12 # start a rxvt using it:
13
14 rxvt --perl-lib $HOME -pe grab_test
15
16 DESCRIPTION
17 Every time a terminal object gets created, extension scripts specified
18 via the "perl" resource are loaded and associated with it.
19
20 Scripts are compiled in a 'use strict' and 'use utf8' environment, and
21 thus must be encoded as UTF-8.
22
23 Each script will only ever be loaded once, even in rxvtd, where scripts
24 will be shared (but not enabled) for all terminals.
25
26 You can disable the embedded perl interpreter by setting both "perl-ext"
27 and "perl-ext-common" resources to the empty string.
28
29 PREPACKAGED EXTENSIONS
30 This section describes the extensions delivered with this release. You
31 can find them in /opt/rxvt/lib/urxvt/perl/.
32
33 You can activate them like this:
34
35 rxvt -pe <extensionname>
36
37 Or by adding them to the resource for extensions loaded by default:
38
39 URxvt.perl-ext-common: default,automove-background,selection-autotransform
40
41 selection (enabled by default)
42 (More) intelligent selection. This extension tries to be more
43 intelligent when the user extends selections (double-click and
44 further clicks). Right now, it tries to select words, urls and
45 complete shell-quoted arguments, which is very convenient, too, if
46 your ls supports "--quoting-style=shell".
47
48 A double-click usually selects the word under the cursor, further
49 clicks will enlarge the selection.
50
51 The selection works by trying to match a number of regexes and
52 displaying them in increasing order of length. You can add your own
53 regexes by specifying resources of the form:
54
55 URxvt.selection.pattern-0: perl-regex
56 URxvt.selection.pattern-1: perl-regex
57 ...
58
59 The index number (0, 1...) must not have any holes, and each regex
60 must contain at least one pair of capturing parentheses, which will
61 be used for the match. For example, the following adds a regex that
62 matches everything between two vertical bars:
63
64 URxvt.selection.pattern-0: \\|([^|]+)\\|
65
66 Another example: Programs I use often output "absolute path: " at
67 the beginning of a line when they process multiple files. The
68 following pattern matches the filename (note, there is a single
69 space at the very end):
70
71 URxvt.selection.pattern-0: ^(/[^:]+):\
72
73 You can look at the source of the selection extension to see more
74 interesting uses, such as parsing a line from beginning to end.
75
76 This extension also offers following bindable keyboard commands:
77
78 rot13
79 Rot-13 the selection when activated. Used via keyboard trigger:
80
81 URxvt.keysym.C-M-r: perl:selection:rot13
82
83 option-popup (enabled by default)
84 Binds a popup menu to Ctrl-Button2 that lets you toggle (some)
85 options at runtime.
86
87 Other extensions can extend this popup menu by pushing a code
88 reference onto "@{ $term-"{option_popup_hook} }>, which gets called
89 whenever the popup is being displayed.
90
91 It's sole argument is the popup menu, which can be modified. It
92 should either return nothing or a string, the initial boolean value
93 and a code reference. The string will be used as button text and the
94 code reference will be called when the toggle changes, with the new
95 boolean value as first argument.
96
97 The following will add an entry "myoption" that changes
98 "$self-"{myoption}>:
99
100 push @{ $self->{term}{option_popup_hook} }, sub {
101 ("my option" => $myoption, sub { $self->{myoption} = $_[0] })
102 };
103
104 selection-popup (enabled by default)
105 Binds a popup menu to Ctrl-Button3 that lets you convert the
106 selection text into various other formats/action (such as uri
107 unescaping, perl evaluation, web-browser starting etc.), depending
108 on content.
109
110 Other extensions can extend this popup menu by pushing a code
111 reference onto "@{ $term-"{selection_popup_hook} }>, which gets
112 called whenever the popup is being displayed.
113
114 It's sole argument is the popup menu, which can be modified. The
115 selection is in $_, which can be used to decide whether to add
116 something or not. It should either return nothing or a string and a
117 code reference. The string will be used as button text and the code
118 reference will be called when the button gets activated and should
119 transform $_.
120
121 The following will add an entry "a to b" that transforms all "a"s in
122 the selection to "b"s, but only if the selection currently contains
123 any "a"s:
124
125 push @{ $self->{term}{selection_popup_hook} }, sub {
126 /a/ ? ("a to be" => sub { s/a/b/g }
127 : ()
128 };
129
130 searchable-scrollback<hotkey> (enabled by default)
131 Adds regex search functionality to the scrollback buffer, triggered
132 by a hotkey (default: "M-s"). While in search mode, normal terminal
133 input/output is suspended and a regex is displayed at the bottom of
134 the screen.
135
136 Inputting characters appends them to the regex and continues
137 incremental search. "BackSpace" removes a character from the regex,
138 "Up" and "Down" search upwards/downwards in the scrollback buffer,
139 "End" jumps to the bottom. "Escape" leaves search mode and returns
140 to the point where search was started, while "Enter" or "Return"
141 stay at the current position and additionally stores the first match
142 in the current line into the primary selection.
143
144 The regex defaults to "(?i)", resulting in a case-insensitive
145 search. To get a case-sensitive search you can delete this prefix
146 using "BackSpace" or simply use an uppercase character which removes
147 the "(?i)" prefix.
148
149 See perlre for more info about perl regular expression syntax.
150
151 readline (enabled by default)
152 A support package that tries to make editing with readline easier.
153 At the moment, it reacts to clicking shift-left mouse button by
154 trying to move the text cursor to this position. It does so by
155 generating as many cursor-left or cursor-right keypresses as
156 required (the this only works for programs that correctly support
157 wide characters).
158
159 To avoid too many false positives, this is only done when:
160
161 - the tty is in ICANON state.
162 - the text cursor is visible.
163 - the primary screen is currently being displayed.
164 - the mouse is on the same (multi-row-) line as the text cursor.
165
166 The normal selection mechanism isn't disabled, so quick successive
167 clicks might interfere with selection creation in harmless ways.
168
169 selection-autotransform
170 This selection allows you to do automatic transforms on a selection
171 whenever a selection is made.
172
173 It works by specifying perl snippets (most useful is a single "s///"
174 operator) that modify $_ as resources:
175
176 URxvt.selection-autotransform.0: transform
177 URxvt.selection-autotransform.1: transform
178 ...
179
180 For example, the following will transform selections of the form
181 "filename:number", often seen in compiler messages, into "vi
182 +$filename $word":
183
184 URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/vi +$2 \\Q$1\\E\\x0d/
185
186 And this example matches the same,but replaces it with vi-commands
187 you can paste directly into your (vi :) editor:
188
189 URxvt.selection-autotransform.0: s/^([^:[:space:]]+(\\d+):?$/:e \\Q$1\\E\\x0d:$2\\x0d/
190
191 Of course, this can be modified to suit your needs and your editor
192 :)
193
194 To expand the example above to typical perl error messages ("XXX at
195 FILENAME line YYY."), you need a slightly more elaborate solution:
196
197 URxvt.selection.pattern-0: ( at .*? line \\d+[,.])
198 URxvt.selection-autotransform.0: s/^ at (.*?) line (\\d+)[,.]$/:e \\Q$1\E\\x0d:$2\\x0d/
199
200 The first line tells the selection code to treat the unchanging part
201 of every error message as a selection pattern, and the second line
202 transforms the message into vi commands to load the file.
203
204 tabbed
205 This transforms the terminal into a tabbar with additional
206 terminals, that is, it implements what is commonly referred to as
207 "tabbed terminal". The topmost line displays a "[NEW]" button,
208 which, when clicked, will add a new tab, followed by one button per
209 tab.
210
211 Clicking a button will activate that tab. Pressing Shift-Left and
212 Shift-Right will switch to the tab left or right of the current one,
213 while Shift-Down creates a new tab.
214
215 The tabbar itself can be configured similarly to a normal terminal,
216 but with a resource class of "URxvt.tabbed". In addition, it
217 supports the following four resources (shown with defaults):
218
219 URxvt.tabbed.tabbar-fg: <colour-index, default 3>
220 URxvt.tabbed.tabbar-bg: <colour-index, default 0>
221 URxvt.tabbed.tab-fg: <colour-index, default 0>
222 URxvt.tabbed.tab-bg: <colour-index, default 1>
223
224 See *COLOR AND GRAPHICS* in the rxvt(1) manpage for valid indices.
225
226 matcher
227 Uses per-line display filtering ("on_line_update") to underline text
228 matching a certain pattern and make it clickable. When clicked with
229 the mouse button specified in the "matcher.button" resource (default
230 2, or middle), the program specified in the "matcher.launcher"
231 resource (default, the "urlLauncher" resource, "sensible-browser")
232 will be started with the matched text as first argument. The default
233 configuration is suitable for matching URLs and launching a web
234 browser, like the former "mark-urls" extension.
235
236 The default pattern to match URLs can be overridden with the
237 "matcher.pattern.0" resource, and additional patterns can be
238 specified with numbered patterns, in a manner similar to the
239 "selection" extension. The launcher can also be overridden on a
240 per-pattern basis.
241
242 It is possible to activate the most recently seen match from the
243 keyboard. Simply bind a keysym to "perl:matcher" as seen in the
244 example below.
245
246 Example configuration:
247
248 URxvt.perl-ext: default,matcher
249 URxvt.urlLauncher: sensible-browser
250 URxvt.keysym.C-Delete: perl:matcher
251 URxvt.matcher.button: 1
252 URxvt.matcher.pattern.1: \\bwww\\.[\\w-]+\\.[\\w./?&@#-]*[\\w/-]
253 URxvt.matcher.pattern.2: \\B(/\\S+?):(\\d+)(?=:|$)
254 URxvt.matcher.launcher.2: gvim +$2 $1
255
256 xim-onthespot
257 This (experimental) perl extension implements OnTheSpot editing. It
258 does not work perfectly, and some input methods don't seem to work
259 well with OnTheSpot editing in general, but it seems to work at
260 leats for SCIM and kinput2.
261
262 You enable it by specifying this extension and a preedit style of
263 "OnTheSpot", i.e.:
264
265 rxvt -pt OnTheSpot -pe xim-onthespot
266
267 kuake<hotkey>
268 A very primitive quake-console-like extension. It was inspired by a
269 description of how the programs "kuake" and "yakuake" work: Whenever
270 the user presses a global accelerator key (by default "F10"), the
271 terminal will show or hide itself. Another press of the accelerator
272 key will hide or show it again.
273
274 Initially, the window will not be shown when using this extension.
275
276 This is useful if you need a single terminal thats not using any
277 desktop space most of the time but is quickly available at the press
278 of a key.
279
280 The accelerator key is grabbed regardless of any modifiers, so this
281 extension will actually grab a physical key just for this function.
282
283 If you want a quake-like animation, tell your window manager to do
284 so (fvwm can do it).
285
286 automove-background
287 This is basically a very small extension that dynamically changes
288 the background pixmap offset to the window position, in effect
289 creating the same effect as pseudo transparency with a custom
290 pixmap. No scaling is supported in this mode. Example:
291
292 rxvt -pixmap background.xpm -pe automove-background
293
294 <http://wiki.archlinux.org/index.php/Perl_Background_Rotation/Extens
295 ions> shows how this extension can be used to implement an
296 automatically blurred transparent background.
297
298 block-graphics-to-ascii
299 A not very useful example of filtering all text output to the
300 terminal by replacing all line-drawing characters (U+2500 .. U+259F)
301 by a similar-looking ascii character.
302
303 digital-clock
304 Displays a digital clock using the built-in overlay.
305
306 remote-clipboard
307 Somewhat of a misnomer, this extension adds two menu entries to the
308 selection popup that allows one ti run external commands to store
309 the selection somewhere and fetch it again.
310
311 We use it to implement a "distributed selection mechanism", which
312 just means that one command uploads the file to a remote server, and
313 another reads it.
314
315 The commands can be set using the "URxvt.remote-selection.store" and
316 "URxvt.remote-selection.fetch" resources. The first should read the
317 selection to store from STDIN (always in UTF-8), the second should
318 provide the selection data on STDOUT (also in UTF-8).
319
320 The defaults (which are likely useless to you) use rsh and cat:
321
322 URxvt.remote-selection.store: rsh ruth 'cat >/tmp/distributed-selection'
323 URxvt.remote-selection.fetch: rsh ruth 'cat /tmp/distributed-selection'
324
325 selection-pastebin
326 This is a little rarely useful extension that Uploads the selection
327 as textfile to a remote site (or does other things). (The
328 implementation is not currently secure for use in a multiuser
329 environment as it writes to /tmp directly.).
330
331 It listens to the "selection-pastebin:remote-pastebin" keyboard
332 command, i.e.
333
334 URxvt.keysym.C-M-e: perl:selection-pastebin:remote-pastebin
335
336 Pressing this combination runs a command with "%" replaced by the
337 name of the textfile. This command can be set via a resource:
338
339 URxvt.selection-pastebin.cmd: rsync -apP % ruth:/var/www/www.ta-sa.org/files/txt/.
340
341 And the default is likely not useful to anybody but the few people
342 around here :)
343
344 The name of the textfile is the hex encoded md5 sum of the
345 selection, so the same content should lead to the same filename.
346
347 After a successful upload the selection will be replaced by the text
348 given in the "selection-pastebin-url" resource (again, the % is the
349 placeholder for the filename):
350
351 URxvt.selection-pastebin.url: http://www.ta-sa.org/files/txt/%
352
353 *Note to xrdb users:* xrdb uses the C preprocessor, which might
354 interpret the double "/" characters as comment start. Use "\057\057"
355 instead, which works regardless of wether xrdb is used to parse the
356 resource file or not.
357
358 example-refresh-hooks
359 Displays a very simple digital clock in the upper right corner of
360 the window. Illustrates overwriting the refresh callbacks to create
361 your own overlays or changes.
362
363 API DOCUMENTATION
364 General API Considerations
365 All objects (such as terminals, time watchers etc.) are typical
366 reference-to-hash objects. The hash can be used to store anything you
367 like. All members starting with an underscore (such as "_ptr" or
368 "_hook") are reserved for internal uses and MUST NOT be accessed or
369 modified).
370
371 When objects are destroyed on the C++ side, the perl object hashes are
372 emptied, so its best to store related objects such as time watchers and
373 the like inside the terminal object so they get destroyed as soon as the
374 terminal is destroyed.
375
376 Argument names also often indicate the type of a parameter. Here are
377 some hints on what they mean:
378
379 $text
380 Rxvt-unicodes special way of encoding text, where one "unicode"
381 character always represents one screen cell. See ROW_t for a
382 discussion of this format.
383
384 $string
385 A perl text string, with an emphasis on *text*. It can store all
386 unicode characters and is to be distinguished with text encoded in a
387 specific encoding (often locale-specific) and binary data.
388
389 $octets
390 Either binary data or - more common - a text string encoded in a
391 locale-specific way.
392
393 Extension Objects
394 Every perl extension is a perl class. A separate perl object is created
395 for each terminal, and each terminal has its own set of extenion
396 objects, which are passed as the first parameter to hooks. So extensions
397 can use their $self object without having to think about clashes with
398 other extensions or other terminals, with the exception of methods and
399 members that begin with an underscore character "_": these are reserved
400 for internal use.
401
402 Although it isn't a "urxvt::term" object, you can call all methods of
403 the "urxvt::term" class on this object.
404
405 It has the following methods and data members:
406
407 $urxvt_term = $self->{term}
408 Returns the "urxvt::term" object associated with this instance of
409 the extension. This member *must not* be changed in any way.
410
411 $self->enable ($hook_name => $cb, [$hook_name => $cb..])
412 Dynamically enable the given hooks (named without the "on_" prefix)
413 for this extension, replacing any previous hook. This is useful when
414 you want to overwrite time-critical hooks only temporarily.
415
416 $self->disable ($hook_name[, $hook_name..])
417 Dynamically disable the given hooks.
418
419 Hooks
420 The following subroutines can be declared in extension files, and will
421 be called whenever the relevant event happens.
422
423 The first argument passed to them is an extension object as described in
424 the in the "Extension Objects" section.
425
426 All of these hooks must return a boolean value. If any of the called
427 hooks returns true, then the event counts as being *consumed*, and the
428 relevant action might not be carried out by the C++ code.
429
430 *When in doubt, return a false value (preferably "()").*
431
432 on_init $term
433 Called after a new terminal object has been initialized, but before
434 windows are created or the command gets run. Most methods are unsafe
435 to call or deliver senseless data, as terminal size and other
436 characteristics have not yet been determined. You can safely query
437 and change resources and options, though. For many purposes the
438 "on_start" hook is a better place.
439
440 on_start $term
441 Called at the very end of initialisation of a new terminal, just
442 before trying to map (display) the toplevel and returning to the
443 main loop.
444
445 on_destroy $term
446 Called whenever something tries to destroy terminal, when the
447 terminal is still fully functional (not for long, though).
448
449 on_reset $term
450 Called after the screen is "reset" for any reason, such as resizing
451 or control sequences. Here is where you can react on changes to
452 size-related variables.
453
454 on_child_start $term, $pid
455 Called just after the child process has been "fork"ed.
456
457 on_child_exit $term, $status
458 Called just after the child process has exited. $status is the
459 status from "waitpid".
460
461 on_sel_make $term, $eventtime
462 Called whenever a selection has been made by the user, but before
463 the selection text is copied, so changes to the beginning, end or
464 type of the selection will be honored.
465
466 Returning a true value aborts selection making by urxvt, in which
467 case you have to make a selection yourself by calling
468 "$term->selection_grab".
469
470 on_sel_grab $term, $eventtime
471 Called whenever a selection has been copied, but before the
472 selection is requested from the server. The selection text can be
473 queried and changed by calling "$term->selection".
474
475 Returning a true value aborts selection grabbing. It will still be
476 highlighted.
477
478 on_sel_extend $term
479 Called whenever the user tries to extend the selection (e.g. with a
480 double click) and is either supposed to return false (normal
481 operation), or should extend the selection itself and return true to
482 suppress the built-in processing. This can happen multiple times, as
483 long as the callback returns true, it will be called on every
484 further click by the user and is supposed to enlarge the selection
485 more and more, if possible.
486
487 See the selection example extension.
488
489 on_view_change $term, $offset
490 Called whenever the view offset changes, i.e. the user or program
491 scrolls. Offset 0 means display the normal terminal, positive values
492 show this many lines of scrollback.
493
494 on_scroll_back $term, $lines, $saved
495 Called whenever lines scroll out of the terminal area into the
496 scrollback buffer. $lines is the number of lines scrolled out and
497 may be larger than the scroll back buffer or the terminal.
498
499 It is called before lines are scrolled out (so rows 0 .. min ($lines
500 - 1, $nrow - 1) represent the lines to be scrolled out). $saved is
501 the total number of lines that will be in the scrollback buffer.
502
503 on_osc_seq $term, $op, $args
504 Called on every OSC sequence and can be used to suppress it or
505 modify its behaviour. The default should be to return an empty list.
506 A true value suppresses execution of the request completely. Make
507 sure you don't get confused by recursive invocations when you output
508 an osc sequence within this callback.
509
510 "on_osc_seq_perl" should be used for new behaviour.
511
512 on_osc_seq_perl $term, $string
513 Called whenever the ESC ] 777 ; string ST command sequence (OSC =
514 operating system command) is processed. Cursor position and other
515 state information is up-to-date when this happens. For
516 interoperability, the string should start with the extension name
517 and a colon, to distinguish it from commands for other extensions,
518 and this might be enforced in the future.
519
520 Be careful not ever to trust (in a security sense) the data you
521 receive, as its source can not easily be controlled (e-mail content,
522 messages from other users on the same system etc.).
523
524 on_add_lines $term, $string
525 Called whenever text is about to be output, with the text as
526 argument. You can filter/change and output the text yourself by
527 returning a true value and calling "$term->scr_add_lines" yourself.
528 Please note that this might be very slow, however, as your hook is
529 called for all text being output.
530
531 on_tt_write $term, $octets
532 Called whenever some data is written to the tty/pty and can be used
533 to suppress or filter tty input.
534
535 on_line_update $term, $row
536 Called whenever a line was updated or changed. Can be used to filter
537 screen output (e.g. underline urls or other useless stuff). Only
538 lines that are being shown will be filtered, and, due to performance
539 reasons, not always immediately.
540
541 The row number is always the topmost row of the line if the line
542 spans multiple rows.
543
544 Please note that, if you change the line, then the hook might get
545 called later with the already-modified line (e.g. if unrelated parts
546 change), so you cannot just toggle rendition bits, but only set
547 them.
548
549 on_refresh_begin $term
550 Called just before the screen gets redrawn. Can be used for overlay
551 or similar effects by modify terminal contents in refresh_begin, and
552 restoring them in refresh_end. The built-in overlay and selection
553 display code is run after this hook, and takes precedence.
554
555 on_refresh_end $term
556 Called just after the screen gets redrawn. See "on_refresh_begin".
557
558 on_user_command $term, $string
559 Called whenever a user-configured event is being activated (e.g. via
560 a "perl:string" action bound to a key, see description of the keysym
561 resource in the rxvt(1) manpage).
562
563 The event is simply the action string. This interface is assumed to
564 change slightly in the future.
565
566 on_resize_all_windows $tern, $new_width, $new_height
567 Called just after the new window size has been calculated, but
568 before windows are actually being resized or hints are being set. If
569 this hook returns TRUE, setting of the window hints is being
570 skipped.
571
572 on_x_event $term, $event
573 Called on every X event received on the vt window (and possibly
574 other windows). Should only be used as a last resort. Most event
575 structure members are not passed.
576
577 on_root_event $term, $event
578 Like "on_x_event", but is called for events on the root window.
579
580 on_focus_in $term
581 Called whenever the window gets the keyboard focus, before
582 rxvt-unicode does focus in processing.
583
584 on_focus_out $term
585 Called whenever the window loses keyboard focus, before rxvt-unicode
586 does focus out processing.
587
588 on_configure_notify $term, $event
589 on_property_notify $term, $event
590 on_key_press $term, $event, $keysym, $octets
591 on_key_release $term, $event, $keysym
592 on_button_press $term, $event
593 on_button_release $term, $event
594 on_motion_notify $term, $event
595 on_map_notify $term, $event
596 on_unmap_notify $term, $event
597 Called whenever the corresponding X event is received for the
598 terminal If the hook returns true, then the even will be ignored by
599 rxvt-unicode.
600
601 The event is a hash with most values as named by Xlib (see the
602 XEvent manpage), with the additional members "row" and "col", which
603 are the (real, not screen-based) row and column under the mouse
604 cursor.
605
606 "on_key_press" additionally receives the string rxvt-unicode would
607 output, if any, in locale-specific encoding.
608
609 subwindow.
610
611 on_client_message $term, $event
612 on_wm_protocols $term, $event
613 on_wm_delete_window $term, $event
614 Called when various types of ClientMessage events are received (all
615 with format=32, WM_PROTOCOLS or WM_PROTOCOLS:WM_DELETE_WINDOW).
616
617 Variables in the "urxvt" Package
618 $urxvt::LIBDIR
619 The rxvt-unicode library directory, where, among other things, the
620 perl modules and scripts are stored.
621
622 $urxvt::RESCLASS, $urxvt::RESCLASS
623 The resource class and name rxvt-unicode uses to look up X
624 resources.
625
626 $urxvt::RXVTNAME
627 The basename of the installed binaries, usually "urxvt".
628
629 $urxvt::TERM
630 The current terminal. This variable stores the current "urxvt::term"
631 object, whenever a callback/hook is executing.
632
633 @urxvt::TERM_INIT
634 All code references in this array will be called as methods of the
635 next newly created "urxvt::term" object (during the "on_init"
636 phase). The array gets cleared before the code references that were
637 in it are being executed, so references can push themselves onto it
638 again if they so desire.
639
640 This complements to the perl-eval command line option, but gets
641 executed first.
642
643 @urxvt::TERM_EXT
644 Works similar to @TERM_INIT, but contains perl package/class names,
645 which get registered as normal extensions after calling the hooks in
646 @TERM_INIT but before other extensions. Gets cleared just like
647 @TERM_INIT.
648
649 Functions in the "urxvt" Package
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 process
653 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 the
661 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, DestroyNotify,
690 UnmapNotify, MapNotify, MapRequest, ReparentNotify, ConfigureNotify,
691 ConfigureRequest, GravityNotify, ResizeRequest, CirculateNotify,
692 CirculateRequest, PropertyNotify, SelectionClear, SelectionRequest,
693 SelectionNotify, ColormapNotify, ClientMessage, MappingNotify
694 Various constants for use in X calls and event processing.
695
696 RENDITION
697 Rendition bitsets contain information about colour, font, font styles
698 and similar information for each screen cell.
699
700 The following "macros" deal with changes in rendition sets. You should
701 never just create a bitset, you should always modify an existing one, as
702 they contain important information required for correct operation of
703 rxvt-unicode.
704
705 $rend = urxvt::DEFAULT_RSTYLE
706 Returns the default rendition, as used when the terminal is starting
707 up or being reset. Useful as a base to start when creating
708 renditions.
709
710 $rend = urxvt::OVERLAY_RSTYLE
711 Return the rendition mask used for overlays by default.
712
713 $rendbit = urxvt::RS_Bold, RS_Italic, RS_Blink, RS_RVid, RS_Uline
714 Return the bit that enabled bold, italic, blink, reverse-video and
715 underline, respectively. To enable such a style, just logically OR
716 it into the bitset.
717
718 $foreground = urxvt::GET_BASEFG $rend
719 $background = urxvt::GET_BASEBG $rend
720 Return the foreground/background colour index, respectively.
721
722 $rend = urxvt::SET_FGCOLOR $rend, $new_colour
723 $rend = urxvt::SET_BGCOLOR $rend, $new_colour
724 $rend = urxvt::SET_COLOR $rend, $new_fg, $new_bg
725 Replace the foreground/background colour in the rendition mask with
726 the specified one.
727
728 $value = urxvt::GET_CUSTOM $rend
729 Return the "custom" value: Every rendition has 5 bits for use by
730 extensions. They can be set and changed as you like and are
731 initially zero.
732
733 $rend = urxvt::SET_CUSTOM $rend, $new_value
734 Change the custom value.
735
736 The "urxvt::anyevent" Class
737 The sole purpose of this class is to deliver an interface to the
738 "AnyEvent" module - any module using it will work inside urxvt without
739 further programming. The only exception is that you cannot wait on
740 condition variables, but non-blocking condvar use is ok. What this means
741 is that you cannot use blocking APIs, but the non-blocking variant
742 should work.
743
744 The "urxvt::term" Class
745 $term = new urxvt::term $envhashref, $rxvtname, [arg...]
746 Creates a new terminal, very similar as if you had started it with
747 system "$rxvtname, arg...". $envhashref must be a reference to a
748 %ENV-like hash which defines the environment of the new terminal.
749
750 Croaks (and probably outputs an error message) if the new instance
751 couldn't be created. Returns "undef" if the new instance didn't
752 initialise perl, and the terminal object otherwise. The "init" and
753 "start" hooks will be called before this call returns, and are free
754 to refer to global data (which is race free).
755
756 $term->destroy
757 Destroy the terminal object (close the window, free resources etc.).
758 Please note that rxvt will not exit as long as any event watchers
759 (timers, io watchers) are still active.
760
761 $term->exec_async ($cmd[, @args])
762 Works like the combination of the "fork"/"exec" builtins, which
763 executes ("starts") programs in the background. This function takes
764 care of setting the user environment before exec'ing the command
765 (e.g. "PATH") and should be preferred over explicit calls to "exec"
766 or "system".
767
768 Returns the pid of the subprocess or "undef" on error.
769
770 $isset = $term->option ($optval[, $set])
771 Returns true if the option specified by $optval is enabled, and
772 optionally change it. All option values are stored by name in the
773 hash %urxvt::OPTION. Options not enabled in this binary are not in
774 the hash.
775
776 Here is a likely non-exhaustive list of option names, please see the
777 source file /src/optinc.h to see the actual list:
778
779 borderLess console cursorBlink cursorUnderline hold iconic insecure
780 intensityStyles jumpScroll loginShell mapAlert meta8 mouseWheelScrollPage
781 override-redirect pastableTabs pointerBlank reverseVideo scrollBar
782 scrollBar_floating scrollBar_right scrollTtyKeypress scrollTtyOutput
783 scrollWithBuffer secondaryScreen secondaryScroll skipBuiltinGlyphs
784 transparent tripleclickwords utmpInhibit visualBell
785
786 $value = $term->resource ($name[, $newval])
787 Returns the current resource value associated with a given name and
788 optionally sets a new value. Setting values is most useful in the
789 "init" hook. Unset resources are returned and accepted as "undef".
790
791 The new value must be properly encoded to a suitable character
792 encoding before passing it to this method. Similarly, the returned
793 value may need to be converted from the used encoding to text.
794
795 Resource names are as defined in src/rsinc.h. Colours can be
796 specified as resource names of the form "color+<index>", e.g.
797 "color+5". (will likely change).
798
799 Please note that resource strings will currently only be freed when
800 the terminal is destroyed, so changing options frequently will eat
801 memory.
802
803 Here is a likely non-exhaustive list of resource names, not all of
804 which are supported in every build, please see the source file
805 /src/rsinc.h to see the actual list:
806
807 answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont
808 borderLess color cursorBlink cursorUnderline cutchars delete_key
809 display_name embed ext_bwidth fade font geometry hold iconName
810 imFont imLocale inputMethod insecure int_bwidth intensityStyles
811 italicFont jumpScroll lineSpace loginShell mapAlert meta8 modifier
812 mouseWheelScrollPage name override_redirect pastableTabs path perl_eval
813 perl_ext_1 perl_ext_2 perl_lib pointerBlank pointerBlankDelay
814 preeditType print_pipe pty_fd reverseVideo saveLines scrollBar
815 scrollBar_align scrollBar_floating scrollBar_right scrollBar_thickness
816 scrollTtyKeypress scrollTtyOutput scrollWithBuffer scrollstyle
817 secondaryScreen secondaryScroll selectstyle shade term_name title
818 transient_for transparent transparent_all tripleclickwords utmpInhibit
819 visualBell
820
821 $value = $term->x_resource ($pattern)
822 Returns the X-Resource for the given pattern, excluding the program
823 or class name, i.e. "$term->x_resource ("boldFont")" should return
824 the same value as used by this instance of rxvt-unicode. Returns
825 "undef" if no resource with that pattern exists.
826
827 This method should only be called during the "on_start" hook, as
828 there is only one resource database per display, and later
829 invocations might return the wrong resources.
830
831 $success = $term->parse_keysym ($keysym_spec, $command_string)
832 Adds a keymap translation exactly as specified via a resource. See
833 the "keysym" resource in the rxvt(1) manpage.
834
835 $rend = $term->rstyle ([$new_rstyle])
836 Return and optionally change the current rendition. Text that is
837 output by the terminal application will use this style.
838
839 ($row, $col) = $term->screen_cur ([$row, $col])
840 Return the current coordinates of the text cursor position and
841 optionally set it (which is usually bad as applications don't expect
842 that).
843
844 ($row, $col) = $term->selection_mark ([$row, $col])
845 ($row, $col) = $term->selection_beg ([$row, $col])
846 ($row, $col) = $term->selection_end ([$row, $col])
847 Return the current values of the selection mark, begin or end
848 positions, and optionally set them to new values.
849
850 $term->selection_make ($eventtime[, $rectangular])
851 Tries to make a selection as set by "selection_beg" and
852 "selection_end". If $rectangular is true (default: false), a
853 rectangular selection will be made. This is the prefered function to
854 make a selection.
855
856 $success = $term->selection_grab ($eventtime)
857 Try to request the primary selection text from the server (for
858 example, as set by the next method). No visual feedback will be
859 given. This function is mostly useful from within "on_sel_grab"
860 hooks.
861
862 $oldtext = $term->selection ([$newtext])
863 Return the current selection text and optionally replace it by
864 $newtext.
865
866 $term->overlay_simple ($x, $y, $text)
867 Create a simple multi-line overlay box. See the next method for
868 details.
869
870 $term->overlay ($x, $y, $width, $height[, $rstyle[, $border]])
871 Create a new (empty) overlay at the given position with the given
872 width/height. $rstyle defines the initial rendition style (default:
873 "OVERLAY_RSTYLE").
874
875 If $border is 2 (default), then a decorative border will be put
876 around the box.
877
878 If either $x or $y is negative, then this is counted from the
879 right/bottom side, respectively.
880
881 This method returns an urxvt::overlay object. The overlay will be
882 visible as long as the perl object is referenced.
883
884 The methods currently supported on "urxvt::overlay" objects are:
885
886 $overlay->set ($x, $y, $text, $rend)
887 Similar to "$term->ROW_t" and "$term->ROW_r" in that it puts
888 text in rxvt-unicode's special encoding and an array of
889 rendition values at a specific position inside the overlay.
890
891 $overlay->hide
892 If visible, hide the overlay, but do not destroy it.
893
894 $overlay->show
895 If hidden, display the overlay again.
896
897 $popup = $term->popup ($event)
898 Creates a new "urxvt::popup" object that implements a popup menu.
899 The $event *must* be the event causing the menu to pop up (a button
900 event, currently).
901
902 $cellwidth = $term->strwidth ($string)
903 Returns the number of screen-cells this string would need. Correctly
904 accounts for wide and combining characters.
905
906 $octets = $term->locale_encode ($string)
907 Convert the given text string into the corresponding locale
908 encoding.
909
910 $string = $term->locale_decode ($octets)
911 Convert the given locale-encoded octets into a perl string.
912
913 $term->scr_xor_span ($beg_row, $beg_col, $end_row, $end_col[, $rstyle])
914 XORs the rendition values in the given span with the provided value
915 (default: "RS_RVid"), which *MUST NOT* contain font styles. Useful
916 in refresh hooks to provide effects similar to the selection.
917
918 $term->scr_xor_rect ($beg_row, $beg_col, $end_row, $end_col[, $rstyle1[,
919 $rstyle2]])
920 Similar to "scr_xor_span", but xors a rectangle instead. Trailing
921 whitespace will additionally be xored with the $rstyle2, which
922 defaults to "RS_RVid | RS_Uline", which removes reverse video again
923 and underlines it instead. Both styles *MUST NOT* contain font
924 styles.
925
926 $term->scr_bell
927 Ring the bell!
928
929 $term->scr_add_lines ($string)
930 Write the given text string to the screen, as if output by the
931 application running inside the terminal. It may not contain command
932 sequences (escape codes), but is free to use line feeds, carriage
933 returns and tabs. The string is a normal text string, not in
934 locale-dependent encoding.
935
936 Normally its not a good idea to use this function, as programs might
937 be confused by changes in cursor position or scrolling. Its useful
938 inside a "on_add_lines" hook, though.
939
940 $term->scr_change_screen ($screen)
941 Switch to given screen - 0 primary, 1 secondary.
942
943 $term->cmd_parse ($octets)
944 Similar to "scr_add_lines", but the argument must be in the
945 locale-specific encoding of the terminal and can contain command
946 sequences (escape codes) that will be interpreted.
947
948 $term->tt_write ($octets)
949 Write the octets given in $data to the tty (i.e. as program input).
950 To pass characters instead of octets, you should convert your
951 strings first to the locale-specific encoding using
952 "$term->locale_encode".
953
954 $old_events = $term->pty_ev_events ([$new_events])
955 Replaces the event mask of the pty watcher by the given event mask.
956 Can be used to suppress input and output handling to the pty/tty.
957 See the description of "urxvt::timer->events". Make sure to always
958 restore the previous value.
959
960 $fd = $term->pty_fd
961 Returns the master file descriptor for the pty in use, or -1 if no
962 pty is used.
963
964 $windowid = $term->parent
965 Return the window id of the toplevel window.
966
967 $windowid = $term->vt
968 Return the window id of the terminal window.
969
970 $term->vt_emask_add ($x_event_mask)
971 Adds the specified events to the vt event mask. Useful e.g. when you
972 want to receive pointer events all the times:
973
974 $term->vt_emask_add (urxvt::PointerMotionMask);
975
976 $term->focus_in
977 $term->focus_out
978 $term->key_press ($state, $keycode[, $time])
979 $term->key_release ($state, $keycode[, $time])
980 Deliver various fake events to to terminal.
981
982 $window_width = $term->width
983 $window_height = $term->height
984 $font_width = $term->fwidth
985 $font_height = $term->fheight
986 $font_ascent = $term->fbase
987 $terminal_rows = $term->nrow
988 $terminal_columns = $term->ncol
989 $has_focus = $term->focus
990 $is_mapped = $term->mapped
991 $max_scrollback = $term->saveLines
992 $nrow_plus_saveLines = $term->total_rows
993 $topmost_scrollback_row = $term->top_row
994 Return various integers describing terminal characteristics.
995
996 $x_display = $term->display_id
997 Return the DISPLAY used by rxvt-unicode.
998
999 $lc_ctype = $term->locale
1000 Returns the LC_CTYPE category string used by this rxvt-unicode.
1001
1002 $env = $term->env
1003 Returns a copy of the environment in effect for the terminal as a
1004 hashref similar to "\%ENV".
1005
1006 @envv = $term->envv
1007 Returns the environment as array of strings of the form "VAR=VALUE".
1008
1009 @argv = $term->argv
1010 Return the argument vector as this terminal, similar to @ARGV, but
1011 includes the program name as first element.
1012
1013 $modifiermask = $term->ModLevel3Mask
1014 $modifiermask = $term->ModMetaMask
1015 $modifiermask = $term->ModNumLockMask
1016 Return the modifier masks corresponding to the "ISO Level 3 Shift"
1017 (often AltGr), the meta key (often Alt) and the num lock key, if
1018 applicable.
1019
1020 $screen = $term->current_screen
1021 Returns the currently displayed screen (0 primary, 1 secondary).
1022
1023 $cursor_is_hidden = $term->hidden_cursor
1024 Returns whether the cursor is currently hidden or not.
1025
1026 $view_start = $term->view_start ([$newvalue])
1027 Returns the row number of the topmost displayed line. Maximum value
1028 is 0, which displays the normal terminal contents. Lower values
1029 scroll this many lines into the scrollback buffer.
1030
1031 $term->want_refresh
1032 Requests a screen refresh. At the next opportunity, rxvt-unicode
1033 will compare the on-screen display with its stored representation.
1034 If they differ, it redraws the differences.
1035
1036 Used after changing terminal contents to display them.
1037
1038 $text = $term->ROW_t ($row_number[, $new_text[, $start_col]])
1039 Returns the text of the entire row with number $row_number. Row 0 is
1040 the topmost terminal line, row "$term->$ncol-1" is the bottommost
1041 terminal line. The scrollback buffer starts at line -1 and extends
1042 to line "-$term->nsaved". Nothing will be returned if a nonexistent
1043 line is requested.
1044
1045 If $new_text is specified, it will replace characters in the current
1046 line, starting at column $start_col (default 0), which is useful to
1047 replace only parts of a line. The font index in the rendition will
1048 automatically be updated.
1049
1050 $text is in a special encoding: tabs and wide characters that use
1051 more than one cell when displayed are padded with $urxvt::NOCHAR
1052 (chr 65535) characters. Characters with combining characters and
1053 other characters that do not fit into the normal tetx encoding will
1054 be replaced with characters in the private use area.
1055
1056 You have to obey this encoding when changing text. The advantage is
1057 that "substr" and similar functions work on screen cells and not on
1058 characters.
1059
1060 The methods "$term->special_encode" and "$term->special_decode" can
1061 be used to convert normal strings into this encoding and vice versa.
1062
1063 $rend = $term->ROW_r ($row_number[, $new_rend[, $start_col]])
1064 Like "$term->ROW_t", but returns an arrayref with rendition bitsets.
1065 Rendition bitsets contain information about colour, font, font
1066 styles and similar information. See also "$term->ROW_t".
1067
1068 When setting rendition, the font mask will be ignored.
1069
1070 See the section on RENDITION, above.
1071
1072 $length = $term->ROW_l ($row_number[, $new_length])
1073 Returns the number of screen cells that are in use ("the line
1074 length"). Unlike the urxvt core, this returns "$term->ncol" if the
1075 line is joined with the following one.
1076
1077 $bool = $term->is_longer ($row_number)
1078 Returns true if the row is part of a multiple-row logical "line"
1079 (i.e. joined with the following row), which means all characters are
1080 in use and it is continued on the next row (and possibly a
1081 continuation of the previous row(s)).
1082
1083 $line = $term->line ($row_number)
1084 Create and return a new "urxvt::line" object that stores information
1085 about the logical line that row $row_number is part of. It supports
1086 the following methods:
1087
1088 $text = $line->t ([$new_text])
1089 Returns or replaces the full text of the line, similar to
1090 "ROW_t"
1091
1092 $rend = $line->r ([$new_rend])
1093 Returns or replaces the full rendition array of the line,
1094 similar to "ROW_r"
1095
1096 $length = $line->l
1097 Returns the length of the line in cells, similar to "ROW_l".
1098
1099 $rownum = $line->beg
1100 $rownum = $line->end
1101 Return the row number of the first/last row of the line,
1102 respectively.
1103
1104 $offset = $line->offset_of ($row, $col)
1105 Returns the character offset of the given row|col pair within
1106 the logical line. Works for rows outside the line, too, and
1107 returns corresponding offsets outside the string.
1108
1109 ($row, $col) = $line->coord_of ($offset)
1110 Translates a string offset into terminal coordinates again.
1111
1112 $text = $term->special_encode $string
1113 Converts a perl string into the special encoding used by
1114 rxvt-unicode, where one character corresponds to one screen cell.
1115 See "$term->ROW_t" for details.
1116
1117 $string = $term->special_decode $text
1118 Converts rxvt-unicodes text representation into a perl string. See
1119 "$term->ROW_t" for details.
1120
1121 $success = $term->grab_button ($button, $modifiermask[, $window =
1122 $term->vt])
1123 $term->ungrab_button ($button, $modifiermask[, $window = $term->vt])
1124 Register/unregister a synchronous button grab. See the XGrabButton
1125 manpage.
1126
1127 $success = $term->grab ($eventtime[, $sync])
1128 Calls XGrabPointer and XGrabKeyboard in asynchronous (default) or
1129 synchronous ($sync is true). Also remembers the grab timestamp.
1130
1131 $term->allow_events_async
1132 Calls XAllowEvents with AsyncBoth for the most recent grab.
1133
1134 $term->allow_events_sync
1135 Calls XAllowEvents with SyncBoth for the most recent grab.
1136
1137 $term->allow_events_replay
1138 Calls XAllowEvents with both ReplayPointer and ReplayKeyboard for
1139 the most recent grab.
1140
1141 $term->ungrab
1142 Calls XUngrab for the most recent grab. Is called automatically on
1143 evaluation errors, as it is better to lose the grab in the error
1144 case as the session.
1145
1146 $atom = $term->XInternAtom ($atom_name[, $only_if_exists])
1147 $atom_name = $term->XGetAtomName ($atom)
1148 @atoms = $term->XListProperties ($window)
1149 ($type,$format,$octets) = $term->XGetWindowProperty ($window, $property)
1150 $term->XChangeWindowProperty ($window, $property, $type, $format,
1151 $octets)
1152 $term->XDeleteProperty ($window, $property)
1153 $window = $term->DefaultRootWindow
1154 $term->XReparentWindow ($window, $parent, [$x, $y])
1155 $term->XMapWindow ($window)
1156 $term->XUnmapWindow ($window)
1157 $term->XMoveResizeWindow ($window, $x, $y, $width, $height)
1158 ($x, $y, $child_window) = $term->XTranslateCoordinates ($src, $dst, $x,
1159 $y)
1160 $term->XChangeInput ($window, $add_events[, $del_events])
1161 Various X or X-related functions. The $term object only serves as
1162 the source of the display, otherwise those functions map
1163 more-or-less directory onto the X functions of the same name.
1164
1165 The "urxvt::popup" Class
1166 $popup->add_title ($title)
1167 Adds a non-clickable title to the popup.
1168
1169 $popup->add_separator ([$sepchr])
1170 Creates a separator, optionally using the character given as
1171 $sepchr.
1172
1173 $popup->add_button ($text, $cb)
1174 Adds a clickable button to the popup. $cb is called whenever it is
1175 selected.
1176
1177 $popup->add_toggle ($text, $initial_value, $cb)
1178 Adds a toggle/checkbox item to the popup. The callback gets called
1179 whenever it gets toggled, with a boolean indicating its new value as
1180 its first argument.
1181
1182 $popup->show
1183 Displays the popup (which is initially hidden).
1184
1185 The "urxvt::timer" Class
1186 This class implements timer watchers/events. Time is represented as a
1187 fractional number of seconds since the epoch. Example:
1188
1189 $term->{overlay} = $term->overlay (-1, 0, 8, 1, urxvt::OVERLAY_RSTYLE, 0);
1190 $term->{timer} = urxvt::timer
1191 ->new
1192 ->interval (1)
1193 ->cb (sub {
1194 $term->{overlay}->set (0, 0,
1195 sprintf "%2d:%02d:%02d", (localtime urxvt::NOW)[2,1,0]);
1196 });
1197
1198 $timer = new urxvt::timer
1199 Create a new timer object in started state. It is scheduled to fire
1200 immediately.
1201
1202 $timer = $timer->cb (sub { my ($timer) = @_; ... })
1203 Set the callback to be called when the timer triggers.
1204
1205 $tstamp = $timer->at
1206 Return the time this watcher will fire next.
1207
1208 $timer = $timer->set ($tstamp)
1209 Set the time the event is generated to $tstamp.
1210
1211 $timer = $timer->interval ($interval)
1212 Normally (and when $interval is 0), the timer will automatically
1213 stop after it has fired once. If $interval is non-zero, then the
1214 timer is automatically rescheduled at the given intervals.
1215
1216 $timer = $timer->start
1217 Start the timer.
1218
1219 $timer = $timer->start ($tstamp)
1220 Set the event trigger time to $tstamp and start the timer.
1221
1222 $timer = $timer->after ($delay)
1223 Like "start", but sets the expiry timer to c<urxvt::NOW + $delay>.
1224
1225 $timer = $timer->stop
1226 Stop the timer.
1227
1228 The "urxvt::iow" Class
1229 This class implements io watchers/events. Example:
1230
1231 $term->{socket} = ...
1232 $term->{iow} = urxvt::iow
1233 ->new
1234 ->fd (fileno $term->{socket})
1235 ->events (urxvt::EVENT_READ)
1236 ->start
1237 ->cb (sub {
1238 my ($iow, $revents) = @_;
1239 # $revents must be 1 here, no need to check
1240 sysread $term->{socket}, my $buf, 8192
1241 or end-of-file;
1242 });
1243
1244 $iow = new urxvt::iow
1245 Create a new io watcher object in stopped state.
1246
1247 $iow = $iow->cb (sub { my ($iow, $reventmask) = @_; ... })
1248 Set the callback to be called when io events are triggered.
1249 $reventmask is a bitset as described in the "events" method.
1250
1251 $iow = $iow->fd ($fd)
1252 Set the file descriptor (not handle) to watch.
1253
1254 $iow = $iow->events ($eventmask)
1255 Set the event mask to watch. The only allowed values are
1256 "urxvt::EVENT_READ" and "urxvt::EVENT_WRITE", which might be ORed
1257 together, or "urxvt::EVENT_NONE".
1258
1259 $iow = $iow->start
1260 Start watching for requested events on the given handle.
1261
1262 $iow = $iow->stop
1263 Stop watching for events on the given file handle.
1264
1265 The "urxvt::iw" Class
1266 This class implements idle watchers, that get called automatically when
1267 the process is idle. They should return as fast as possible, after doing
1268 some useful work.
1269
1270 $iw = new urxvt::iw
1271 Create a new idle watcher object in stopped state.
1272
1273 $iw = $iw->cb (sub { my ($iw) = @_; ... })
1274 Set the callback to be called when the watcher triggers.
1275
1276 $timer = $timer->start
1277 Start the watcher.
1278
1279 $timer = $timer->stop
1280 Stop the watcher.
1281
1282 The "urxvt::pw" Class
1283 This class implements process watchers. They create an event whenever a
1284 process exits, after which they stop automatically.
1285
1286 my $pid = fork;
1287 ...
1288 $term->{pw} = urxvt::pw
1289 ->new
1290 ->start ($pid)
1291 ->cb (sub {
1292 my ($pw, $exit_status) = @_;
1293 ...
1294 });
1295
1296 $pw = new urxvt::pw
1297 Create a new process watcher in stopped state.
1298
1299 $pw = $pw->cb (sub { my ($pw, $exit_status) = @_; ... })
1300 Set the callback to be called when the timer triggers.
1301
1302 $pw = $timer->start ($pid)
1303 Tells the watcher to start watching for process $pid.
1304
1305 $pw = $pw->stop
1306 Stop the watcher.
1307
1308 ENVIRONMENT
1309 URXVT_PERL_VERBOSITY
1310 This variable controls the verbosity level of the perl extension. Higher
1311 numbers indicate more verbose output.
1312
1313 == 0 - fatal messages
1314 >= 3 - script loading and management
1315 >=10 - all called hooks
1316 >=11 - hook return values
1317
1318 AUTHOR
1319 Marc Lehmann <pcg@goof.com>
1320 http://software.schmorp.de/pkg/rxvt-unicode
1321