1urxvt(3) RXVT-UNICODE urxvt(3)
2
3
4
6 urxvtperl - rxvt-unicode's embedded perl interpreter
7
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
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
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
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
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
1332 Marc Lehmann <pcg@goof.com>
1333 http://software.schmorp.de/pkg/rxvt-unicode
1334
1335
1336
13378.9 2008-01-25 urxvt(3)