ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvtperl.3.txt
(Generate patch)

Comparing rxvt-unicode/doc/rxvtperl.3.txt (file contents):
Revision 1.26 by root, Fri Jan 13 01:09:37 2006 UTC vs.
Revision 1.44 by root, Mon Aug 7 16:17:30 2006 UTC

12 # start a rxvt using it: 12 # start a rxvt using it:
13 13
14 rxvt --perl-lib $HOME -pe grab_test 14 rxvt --perl-lib $HOME -pe grab_test
15 15
16DESCRIPTION 16DESCRIPTION
17 Everytime a terminal object gets created, extension scripts specified 17 Every time a terminal object gets created, extension scripts specified
18 via the "perl" resource are loaded and associated with it. 18 via the "perl" resource are loaded and associated with it.
19 19
20 Scripts are compiled in a 'use strict' and 'use utf8' environment, and 20 Scripts are compiled in a 'use strict' and 'use utf8' environment, and
21 thus must be encoded as UTF-8. 21 thus must be encoded as UTF-8.
22 22
28 can find them in /opt/rxvt/lib/urxvt/perl/. 28 can find them in /opt/rxvt/lib/urxvt/perl/.
29 29
30 You can activate them like this: 30 You can activate them like this:
31 31
32 rxvt -pe <extensionname> 32 rxvt -pe <extensionname>
33
34 Or by adding them to the resource for extensions loaded by default:
35
36 URxvt.perl-ext-common: default,automove-background,selection-autotransform
33 37
34 selection (enabled by default) 38 selection (enabled by default)
35 (More) intelligent selection. This extension tries to be more 39 (More) intelligent selection. This extension tries to be more
36 intelligent when the user extends selections (double-click and 40 intelligent when the user extends selections (double-click and
37 further clicks). Right now, it tries to select words, urls and 41 further clicks). Right now, it tries to select words, urls and
49 URxvt.selection.pattern-1: perl-regex 53 URxvt.selection.pattern-1: perl-regex
50 ... 54 ...
51 55
52 The index number (0, 1...) must not have any holes, and each regex 56 The index number (0, 1...) must not have any holes, and each regex
53 must contain at least one pair of capturing parentheses, which will 57 must contain at least one pair of capturing parentheses, which will
54 be used for the match. For example, the followign adds a regex that 58 be used for the match. For example, the following adds a regex that
55 matches everything between two vertical bars: 59 matches everything between two vertical bars:
56 60
57 URxvt.selection.pattern-0: \\|([^|]+)\\| 61 URxvt.selection.pattern-0: \\|([^|]+)\\|
62
63 Another example: Programs I use often output "absolute path: " at
64 the beginning of a line when they process multiple files. The
65 following pattern matches the filename (note, there is a single
66 space at the very end):
67
68 URxvt.selection.pattern-0: ^(/[^:]+):\
58 69
59 You can look at the source of the selection extension to see more 70 You can look at the source of the selection extension to see more
60 interesting uses, such as parsing a line from beginning to end. 71 interesting uses, such as parsing a line from beginning to end.
61 72
62 This extension also offers the following bindable keyboard command: 73 This extension also offers following bindable keyboard commands:
63 74
64 rot13 75 rot13
65 Rot-13 the selection when activated. Used via keyboard trigger: 76 Rot-13 the selection when activated. Used via keyboard trigger:
66 77
67 URxvt.keysym.C-M-r: perl:selection:rot13 78 URxvt.keysym.C-M-r: perl:selection:rot13
68 79
69 option-popup (enabled by default) 80 option-popup (enabled by default)
70 Binds a popup menu to Ctrl-Button2 that lets you toggle (some) 81 Binds a popup menu to Ctrl-Button2 that lets you toggle (some)
71 options at runtime. 82 options at runtime.
72 83
84 Other extensions can extend this popup menu by pushing a code
85 reference onto "@{ $term-"{option_popup_hook} }>, which gets called
86 whenever the popup is being displayed.
87
88 It's sole argument is the popup menu, which can be modified. It
89 should either return nothing or a string, the initial boolean value
90 and a code reference. The string will be used as button text and the
91 code reference will be called when the toggle changes, with the new
92 boolean value as first argument.
93
94 The following will add an entry "myoption" that changes
95 "$self-"{myoption}>:
96
97 push @{ $self->{term}{option_popup_hook} }, sub {
98 ("my option" => $myoption, sub { $self->{myoption} = $_[0] })
99 };
100
73 selection-popup (enabled by default) 101 selection-popup (enabled by default)
74 Binds a popup menu to Ctrl-Button3 that lets you convert the 102 Binds a popup menu to Ctrl-Button3 that lets you convert the
75 selection text into various other formats/action (such as uri 103 selection text into various other formats/action (such as uri
76 unescaping, perl evalution, web-browser starting etc.), depending on 104 unescaping, perl evaluation, web-browser starting etc.), depending
77 content. 105 on content.
106
107 Other extensions can extend this popup menu by pushing a code
108 reference onto "@{ $term-"{selection_popup_hook} }>, which gets
109 called whenever the popup is being displayed.
110
111 It's sole argument is the popup menu, which can be modified. The
112 selection is in $_, which can be used to decide whether to add
113 something or not. It should either return nothing or a string and a
114 code reference. The string will be used as button text and the code
115 reference will be called when the button gets activated and should
116 transform $_.
117
118 The following will add an entry "a to b" that transforms all "a"s in
119 the selection to "b"s, but only if the selection currently contains
120 any "a"s:
121
122 push @{ $self->{term}{selection_popup_hook} }, sub {
123 /a/ ? ("a to be" => sub { s/a/b/g }
124 : ()
125 };
78 126
79 searchable-scrollback<hotkey> (enabled by default) 127 searchable-scrollback<hotkey> (enabled by default)
80 Adds regex search functionality to the scrollback buffer, triggered 128 Adds regex search functionality to the scrollback buffer, triggered
81 by a hotkey (default: "M-s"). While in search mode, normal terminal 129 by a hotkey (default: "M-s"). While in search mode, normal terminal
82 input/output is suspended and a regex is displayed at the bottom of 130 input/output is suspended and a regex is displayed at the bottom of
88 "End" jumps to the bottom. "Escape" leaves search mode and returns 136 "End" jumps to the bottom. "Escape" leaves search mode and returns
89 to the point where search was started, while "Enter" or "Return" 137 to the point where search was started, while "Enter" or "Return"
90 stay at the current position and additionally stores the first match 138 stay at the current position and additionally stores the first match
91 in the current line into the primary selection. 139 in the current line into the primary selection.
92 140
141 The regex defaults to "(?i)", resulting in a case-insensitive
142 search. To get a case-sensitive search you can delete this prefix
143 using "BackSpace" or simply use an uppercase character which removes
144 the "(?i)" prefix.
145
146 See perlre for more info about perl regular expression syntax.
147
148 readline (enabled by default)
149 A support package that tries to make editing with readline easier.
150 At the moment, it reacts to clicking shift-left mouse button by
151 trying to move the text cursor to this position. It does so by
152 generating as many cursor-left or cursor-right keypresses as
153 required (the this only works for programs that correctly support
154 wide characters).
155
156 To avoid too many false positives, this is only done when:
157
158 - the tty is in ICANON state.
159 - the text cursor is visible.
160 - the primary screen is currently being displayed.
161 - the mouse is on the same (multi-row-) line as the text cursor.
162
163 The normal selection mechanism isn't disabled, so quick successive
164 clicks might interfere with selection creation in harmless ways.
165
93 selection-autotransform 166 selection-autotransform
94 This selection allows you to do automatic transforms on a selection 167 This selection allows you to do automatic transforms on a selection
95 whenever a selection is made. 168 whenever a selection is made.
96 169
97 It works by specifying perl snippets (most useful is a single "s///" 170 It works by specifying perl snippets (most useful is a single "s///"
103 176
104 For example, the following will transform selections of the form 177 For example, the following will transform selections of the form
105 "filename:number", often seen in compiler messages, into "vi 178 "filename:number", often seen in compiler messages, into "vi
106 +$filename $word": 179 +$filename $word":
107 180
108 URxvt.selection-autotransform.0: s/^(\\S+):(\\d+):?$/vi +$2 \\Q$1\\E\\x0d/ 181 URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/vi +$2 \\Q$1\\E\\x0d/
109 182
110 And this example matches the same,but replaces it with vi-commands 183 And this example matches the same,but replaces it with vi-commands
111 you can paste directly into your (vi :) editor: 184 you can paste directly into your (vi :) editor:
112 185
113 URxvt.selection-autotransform.0: s/^(S+):(d+):?$/\\x1b:e \\Q$1\\E\\x0d:$2\\x0d/ 186 URxvt.selection-autotransform.0: s/^([^:[:space:]]+(\\d+):?$/:e \\Q$1\\E\\x0d:$2\\x0d/
114 187
115 Of course, this can be modified to suit your needs and your editor 188 Of course, this can be modified to suit your needs and your editor
116 :) 189 :)
117 190
118 To expand the example above to typical perl error messages ("XXX at 191 To expand the example above to typical perl error messages ("XXX at
119 FILENAME line YYY."), you need a slightly more elaborate solution: 192 FILENAME line YYY."), you need a slightly more elaborate solution:
120 193
121 URxvt.selection.pattern-0: ( at .*? line \\d+\\.) 194 URxvt.selection.pattern-0: ( at .*? line \\d+[,.])
122 URxvt.selection-autotransform.0: s/^ at (.*?) line (\\d+)\\.$/\x1b:e \\Q$1\E\\x0d:$2\\x0d/ 195 URxvt.selection-autotransform.0: s/^ at (.*?) line (\\d+)[,.]$/:e \\Q$1\E\\x0d:$2\\x0d/
123 196
124 The first line tells the selection code to treat the unchanging part 197 The first line tells the selection code to treat the unchanging part
125 of every error message as a selection pattern, and the second line 198 of every error message as a selection pattern, and the second line
126 transforms the message into vi commands to load the file. 199 transforms the message into vi commands to load the file.
200
201 tabbed
202 This transforms the terminal into a tabbar with additional
203 terminals, that is, it implements what is commonly referred to as
204 "tabbed terminal". The topmost line displays a "[NEW]" button,
205 which, when clicked, will add a new tab, followed by one button per
206 tab.
207
208 Clicking a button will activate that tab. Pressing Shift-Left and
209 Shift-Right will switch to the tab left or right of the current one,
210 while Shift-Down creates a new tab.
211
212 The tabbar itself can be configured similarly to a normal terminal,
213 but with a resource class of "URxvt.tabbed". In addition, it
214 supports the following four resources (shown with defaults):
215
216 URxvt.tabbed.tabbar-fg: <colour-index, default 3>
217 URxvt.tabbed.tabbar-bg: <colour-index, default 0>
218 URxvt.tabbed.tab-fg: <colour-index, default 0>
219 URxvt.tabbed.tab-bg: <colour-index, default 1>
220
221 See *COLOR AND GRAPHICS* in the rxvt(1) manpage for valid indices.
127 222
128 mark-urls 223 mark-urls
129 Uses per-line display filtering ("on_line_update") to underline urls 224 Uses per-line display filtering ("on_line_update") to underline urls
130 and make them clickable. When middle-clicked, the program specified 225 and make them clickable. When middle-clicked, the program specified
131 in the resource "urlLauncher" (default "x-www-browser") will be 226 in the resource "urlLauncher" (default "x-www-browser") will be
132 started with the URL as first argument. 227 started with the URL as first argument.
133 228
229 xim-onthespot
230 This (experimental) perl extension implements OnTheSpot editing. It
231 does not work perfectly, and some input methods don't seem to work
232 well with OnTheSpot editing in general, but it seems to work at
233 leats for SCIM and kinput2.
234
235 You enable it by specifying this extension and a preedit style of
236 "OnTheSpot", i.e.:
237
238 rxvt -pt OnTheSpot -pe xim-onthespot
239
240 kuake<hotkey>
241 A very primitive quake-console-like extension. It was inspired by a
242 description of how the programs "kuake" and "yakuake" work: Whenever
243 the user presses a global accelerator key (by default "F10"), the
244 terminal will show or hide itself. Another press of the accelerator
245 key will hide or show it again.
246
247 Initially, the window will not be shown when using this extension.
248
249 This is useful if you need a single terminal thats not using any
250 desktop space most of the time but is quickly available at the press
251 of a key.
252
253 The accelerator key is grabbed regardless of any modifiers, so this
254 extension will actually grab a physical key just for this function.
255
256 If you want a quake-like animation, tell your window manager to do
257 so (fvwm can do it).
258
259 automove-background
260 This is basically a very small extension that dynamically changes
261 the background pixmap offset to the window position, in effect
262 creating the same effect as pseudo transparency with a custom
263 pixmap. No scaling is supported in this mode. Example:
264
265 rxvt -pixmap background.xpm -pe automove-background
266
134 block-graphics-to-ascii 267 block-graphics-to-ascii
135 A not very useful example of filtering all text output to the 268 A not very useful example of filtering all text output to the
136 terminal, by replacing all line-drawing characters (U+2500 .. 269 terminal by replacing all line-drawing characters (U+2500 .. U+259F)
137 U+259F) by a similar-looking ascii character. 270 by a similar-looking ascii character.
138 271
139 digital-clock 272 digital-clock
140 Displays a digital clock using the built-in overlay. 273 Displays a digital clock using the built-in overlay.
274
275 remote-clipboard
276 Somewhat of a misnomer, this extension adds two menu entries to the
277 selection popup that allows one ti run external commands to store
278 the selection somewhere and fetch it again.
279
280 We use it to implement a "distributed selection mechanism", which
281 just means that one command uploads the file to a remote server, and
282 another reads it.
283
284 The commands can be set using the "URxvt.remote-selection.store" and
285 "URxvt.remote-selection.fetch" resources. The first should read the
286 selection to store from STDIN (always in UTF-8), the second should
287 provide the selection data on STDOUT (also in UTF-8).
288
289 The defaults (which are likely useless to you) use rsh and cat:
290
291 URxvt.remote-selection.store: rsh ruth 'cat >/tmp/distributed-selection'
292 URxvt.remote-selection.fetch: rsh ruth 'cat /tmp/distributed-selection'
293
294 selection-pastebin
295 This is a little rarely useful extension that Uploads the selection
296 as textfile to a remote site (or does other things). (The
297 implementation is not currently secure for use in a multiuser
298 environment as it writes to /tmp directly.).
299
300 It listens to the "selection-pastebin:remote-pastebin" keyboard
301 command, i.e.
302
303 URxvt.keysym.C-M-e: perl:selection-pastebin:remote-pastebin
304
305 Pressing this combination runs a command with "%" replaced by the
306 name of the textfile. This command can be set via a resource:
307
308 URxvt.selection-pastebin.cmd: rsync -apP % ruth:/var/www/www.ta-sa.org/files/txt/.
309
310 And the default is likely not useful to anybody but the few people
311 around here :)
312
313 The name of the textfile is the hex encoded md5 sum of the
314 selection, so the same content should lead to the same filename.
315
316 After a successful upload the selection will be replaced by the text
317 given in the "selection-pastebin-url" resource (again, the % is the
318 placeholder for the filename):
319
320 URxvt.selection-pastebin.url: http://www.ta-sa.org/files/txt/%
141 321
142 example-refresh-hooks 322 example-refresh-hooks
143 Displays a very simple digital clock in the upper right corner of 323 Displays a very simple digital clock in the upper right corner of
144 the window. Illustrates overwriting the refresh callbacks to create 324 the window. Illustrates overwriting the refresh callbacks to create
145 your own overlays or changes. 325 your own overlays or changes.
173 $octets 353 $octets
174 Either binary data or - more common - a text string encoded in a 354 Either binary data or - more common - a text string encoded in a
175 locale-specific way. 355 locale-specific way.
176 356
177 Extension Objects 357 Extension Objects
178 Very perl extension is a perl class. A separate perl object is created 358 Every perl extension is a perl class. A separate perl object is created
179 for each terminal and each extension and passed as the first parameter 359 for each terminal and each extension and passed as the first parameter
180 to hooks. So extensions can use their $self object without having to 360 to hooks. So extensions can use their $self object without having to
181 think about other extensions, with the exception of methods and members 361 think about other extensions, with the exception of methods and members
182 that begin with an underscore character "_": these are reserved for 362 that begin with an underscore character "_": these are reserved for
183 internal use. 363 internal use.
201 381
202 Hooks 382 Hooks
203 The following subroutines can be declared in extension files, and will 383 The following subroutines can be declared in extension files, and will
204 be called whenever the relevant event happens. 384 be called whenever the relevant event happens.
205 385
206 The first argument passed to them is an extension oject as described in 386 The first argument passed to them is an extension object as described in
207 the in the "Extension Objects" section. 387 the in the "Extension Objects" section.
208 388
209 All of these hooks must return a boolean value. If it is true, then the 389 All of these hooks must return a boolean value. If any of the called
210 event counts as being *consumed*, and the invocation of other hooks is 390 hooks returns true, then the event counts as being *consumed*, and the
211 skipped, and the relevant action might not be carried out by the C++ 391 relevant action might not be carried out by the C++ code.
212 code.
213 392
214 *When in doubt, return a false value (preferably "()").* 393 *When in doubt, return a false value (preferably "()").*
215 394
216 on_init $term 395 on_init $term
217 Called after a new terminal object has been initialized, but before 396 Called after a new terminal object has been initialized, but before
218 windows are created or the command gets run. Most methods are unsafe 397 windows are created or the command gets run. Most methods are unsafe
219 to call or deliver senseless data, as terminal size and other 398 to call or deliver senseless data, as terminal size and other
220 characteristics have not yet been determined. You can safely query 399 characteristics have not yet been determined. You can safely query
221 and change resources, though. 400 and change resources and options, though. For many purposes the
401 "on_start" hook is a better place.
402
403 on_start $term
404 Called at the very end of initialisation of a new terminal, just
405 before trying to map (display) the toplevel and returning to the
406 main loop.
407
408 on_destroy $term
409 Called whenever something tries to destroy terminal, when the
410 terminal is still fully functional (not for long, though).
222 411
223 on_reset $term 412 on_reset $term
224 Called after the screen is "reset" for any reason, such as resizing 413 Called after the screen is "reset" for any reason, such as resizing
225 or control sequences. Here is where you can react on changes to 414 or control sequences. Here is where you can react on changes to
226 size-related variables. 415 size-related variables.
227 416
228 on_start $term 417 on_child_start $term, $pid
229 Called at the very end of initialisation of a new terminal, just 418 Called just after the child process has been "fork"ed.
230 before returning to the mainloop. 419
420 on_child_exit $term, $status
421 Called just after the child process has exited. $status is the
422 status from "waitpid".
231 423
232 on_sel_make $term, $eventtime 424 on_sel_make $term, $eventtime
233 Called whenever a selection has been made by the user, but before 425 Called whenever a selection has been made by the user, but before
234 the selection text is copied, so changes to the beginning, end or 426 the selection text is copied, so changes to the beginning, end or
235 type of the selection will be honored. 427 type of the selection will be honored.
242 Called whenever a selection has been copied, but before the 434 Called whenever a selection has been copied, but before the
243 selection is requested from the server. The selection text can be 435 selection is requested from the server. The selection text can be
244 queried and changed by calling "$term->selection". 436 queried and changed by calling "$term->selection".
245 437
246 Returning a true value aborts selection grabbing. It will still be 438 Returning a true value aborts selection grabbing. It will still be
247 hilighted. 439 highlighted.
248 440
249 on_sel_extend $term 441 on_sel_extend $term
250 Called whenever the user tries to extend the selection (e.g. with a 442 Called whenever the user tries to extend the selection (e.g. with a
251 double click) and is either supposed to return false (normal 443 double click) and is either supposed to return false (normal
252 operation), or should extend the selection itelf and return true to 444 operation), or should extend the selection itself and return true to
253 suppress the built-in processing. This can happen multiple times, as 445 suppress the built-in processing. This can happen multiple times, as
254 long as the callback returns true, it will be called on every 446 long as the callback returns true, it will be called on every
255 further click by the user and is supposed to enlarge the selection 447 further click by the user and is supposed to enlarge the selection
256 more and more, if possible. 448 more and more, if possible.
257 449
258 See the selection example extension. 450 See the selection example extension.
259 451
260 on_view_change $term, $offset 452 on_view_change $term, $offset
261 Called whenever the view offset changes, i..e the user or program 453 Called whenever the view offset changes, i.e. the user or program
262 scrolls. Offset 0 means display the normal terminal, positive values 454 scrolls. Offset 0 means display the normal terminal, positive values
263 show this many lines of scrollback. 455 show this many lines of scrollback.
264 456
265 on_scroll_back $term, $lines, $saved 457 on_scroll_back $term, $lines, $saved
266 Called whenever lines scroll out of the terminal area into the 458 Called whenever lines scroll out of the terminal area into the
269 461
270 It is called before lines are scrolled out (so rows 0 .. min ($lines 462 It is called before lines are scrolled out (so rows 0 .. min ($lines
271 - 1, $nrow - 1) represent the lines to be scrolled out). $saved is 463 - 1, $nrow - 1) represent the lines to be scrolled out). $saved is
272 the total number of lines that will be in the scrollback buffer. 464 the total number of lines that will be in the scrollback buffer.
273 465
466 on_osc_seq $term, $op, $args
467 Called on every OSC sequence and can be used to suppress it or
468 modify its behaviour. The default should be to return an empty list.
469 A true value suppresses execution of the request completely. Make
470 sure you don't get confused by recursive invocations when you output
471 an osc sequence within this callback.
472
473 "on_osc_seq_perl" should be used for new behaviour.
474
274 on_osc_seq $term, $string 475 on_osc_seq_perl $term, $string
275 Called whenever the ESC ] 777 ; string ST command sequence (OSC = 476 Called whenever the ESC ] 777 ; string ST command sequence (OSC =
276 operating system command) is processed. Cursor position and other 477 operating system command) is processed. Cursor position and other
277 state information is up-to-date when this happens. For 478 state information is up-to-date when this happens. For
278 interoperability, the string should start with the extension name 479 interoperability, the string should start with the extension name
279 and a colon, to distinguish it from commands for other extensions, 480 and a colon, to distinguish it from commands for other extensions,
280 and this might be enforced in the future. 481 and this might be enforced in the future.
281 482
282 Be careful not ever to trust (in a security sense) the data you 483 Be careful not ever to trust (in a security sense) the data you
283 receive, as its source can not easily be controleld (e-mail content, 484 receive, as its source can not easily be controlled (e-mail content,
284 messages from other users on the same system etc.). 485 messages from other users on the same system etc.).
285 486
286 on_add_lines $term, $string 487 on_add_lines $term, $string
287 Called whenever text is about to be output, with the text as 488 Called whenever text is about to be output, with the text as
288 argument. You can filter/change and output the text yourself by 489 argument. You can filter/change and output the text yourself by
315 display code is run after this hook, and takes precedence. 516 display code is run after this hook, and takes precedence.
316 517
317 on_refresh_end $term 518 on_refresh_end $term
318 Called just after the screen gets redrawn. See "on_refresh_begin". 519 Called just after the screen gets redrawn. See "on_refresh_begin".
319 520
320 on_keyboard_command $term, $string 521 on_user_command $term, $string
321 Called whenever the user presses a key combination that has a 522 Called whenever a user-configured event is being activated (e.g. via
322 "perl:string" action bound to it (see description of the keysym 523 a "perl:string" action bound to a key, see description of the keysym
323 resource in the rxvt(1) manpage). 524 resource in the rxvt(1) manpage).
525
526 The event is simply the action string. This interface is assumed to
527 change slightly in the future.
528
529 on_resize_all_windows $tern, $new_width, $new_height
530 Called just after the new window size has been calculated, but
531 before windows are actually being resized or hints are being set. If
532 this hook returns TRUE, setting of the window hints is being
533 skipped.
534
535 on_x_event $term, $event
536 Called on every X event received on the vt window (and possibly
537 other windows). Should only be used as a last resort. Most event
538 structure members are not passed.
539
540 on_root_event $term, $event
541 Like "on_x_event", but is called for events on the root window.
324 542
325 on_focus_in $term 543 on_focus_in $term
326 Called whenever the window gets the keyboard focus, before 544 Called whenever the window gets the keyboard focus, before
327 rxvt-unicode does focus in processing. 545 rxvt-unicode does focus in processing.
328 546
329 on_focus_out $term 547 on_focus_out $term
330 Called wheneever the window loses keyboard focus, before 548 Called whenever the window loses keyboard focus, before rxvt-unicode
331 rxvt-unicode does focus out processing. 549 does focus out processing.
332 550
551 on_configure_notify $term, $event
552 on_property_notify $term, $event
333 on_key_press $term, $event, $keysym, $octets 553 on_key_press $term, $event, $keysym, $octets
334 on_key_release $term, $event, $keysym 554 on_key_release $term, $event, $keysym
335 on_button_press $term, $event 555 on_button_press $term, $event
336 on_button_release $term, $event 556 on_button_release $term, $event
337 on_motion_notify $term, $event 557 on_motion_notify $term, $event
341 terminal If the hook returns true, then the even will be ignored by 561 terminal If the hook returns true, then the even will be ignored by
342 rxvt-unicode. 562 rxvt-unicode.
343 563
344 The event is a hash with most values as named by Xlib (see the 564 The event is a hash with most values as named by Xlib (see the
345 XEvent manpage), with the additional members "row" and "col", which 565 XEvent manpage), with the additional members "row" and "col", which
346 are the row and column under the mouse cursor. 566 are the (real, not screen-based) row and column under the mouse
567 cursor.
347 568
348 "on_key_press" additionally receives the string rxvt-unicode would 569 "on_key_press" additionally receives the string rxvt-unicode would
349 output, if any, in locale-specific encoding. 570 output, if any, in locale-specific encoding.
350 571
351 subwindow. 572 subwindow.
573
574 on_client_message $term, $event
575 on_wm_protocols $term, $event
576 on_wm_delete_window $term, $event
577 Called when various types of ClientMessage events are received (all
578 with format=32, WM_PROTOCOLS or WM_PROTOCOLS:WM_DELETE_WINDOW).
352 579
353 Variables in the "urxvt" Package 580 Variables in the "urxvt" Package
354 $urxvt::LIBDIR 581 $urxvt::LIBDIR
355 The rxvt-unicode library directory, where, among other things, the 582 The rxvt-unicode library directory, where, among other things, the
356 perl modules and scripts are stored. 583 perl modules and scripts are stored.
363 The basename of the installed binaries, usually "urxvt". 590 The basename of the installed binaries, usually "urxvt".
364 591
365 $urxvt::TERM 592 $urxvt::TERM
366 The current terminal. This variable stores the current "urxvt::term" 593 The current terminal. This variable stores the current "urxvt::term"
367 object, whenever a callback/hook is executing. 594 object, whenever a callback/hook is executing.
595
596 @urxvt::TERM_INIT
597 All code references in this array will be called as methods of the
598 next newly created "urxvt::term" object (during the "on_init"
599 phase). The array gets cleared before the code references that were
600 in it are being executed, so references can push themselves onto it
601 again if they so desire.
602
603 This complements to the perl-eval command line option, but gets
604 executed first.
605
606 @urxvt::TERM_EXT
607 Works similar to @TERM_INIT, but contains perl package/class names,
608 which get registered as normal extensions after calling the hooks in
609 @TERM_INIT but before other extensions. Gets cleared just like
610 @TERM_INIT.
368 611
369 Functions in the "urxvt" Package 612 Functions in the "urxvt" Package
370 urxvt::fatal $errormessage 613 urxvt::fatal $errormessage
371 Fatally aborts execution with the given error message. Avoid at all 614 Fatally aborts execution with the given error message. Avoid at all
372 costs! The only time this is acceptable is when the terminal process 615 costs! The only time this is acceptable is when the terminal process
380 Using this function has the advantage that its output ends up in the 623 Using this function has the advantage that its output ends up in the
381 correct place, e.g. on stderr of the connecting urxvtc client. 624 correct place, e.g. on stderr of the connecting urxvtc client.
382 625
383 Messages have a size limit of 1023 bytes currently. 626 Messages have a size limit of 1023 bytes currently.
384 627
385 $is_safe = urxvt::safe 628 @terms = urxvt::termlist
386 Returns true when it is safe to do potentially unsafe things, such 629 Returns all urxvt::term objects that exist in this process,
387 as evaluating perl code specified by the user. This is true when 630 regardless of whether they are started, being destroyed etc., so be
388 urxvt was started setuid or setgid. 631 careful. Only term objects that have perl extensions attached will
632 be returned (because there is no urxvt::term objet associated with
633 others).
389 634
390 $time = urxvt::NOW 635 $time = urxvt::NOW
391 Returns the "current time" (as per the event loop). 636 Returns the "current time" (as per the event loop).
392 637
393 urxvt::CurrentTime 638 urxvt::CurrentTime
394 urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, 639 urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask,
395 Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, Button4Mask, 640 Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, Button4Mask,
396 Button5Mask, AnyModifier 641 Button5Mask, AnyModifier
642 urxvt::NoEventMask, KeyPressMask, KeyReleaseMask, ButtonPressMask,
643 ButtonReleaseMask, EnterWindowMask, LeaveWindowMask, PointerMotionMask,
644 PointerMotionHintMask, Button1MotionMask, Button2MotionMask,
645 Button3MotionMask, Button4MotionMask, Button5MotionMask,
646 ButtonMotionMask, KeymapStateMask, ExposureMask, VisibilityChangeMask,
647 StructureNotifyMask, ResizeRedirectMask, SubstructureNotifyMask,
648 SubstructureRedirectMask, FocusChangeMask, PropertyChangeMask,
649 ColormapChangeMask, OwnerGrabButtonMask
650 urxvt::KeyPress, KeyRelease, ButtonPress, ButtonRelease, MotionNotify,
651 EnterNotify, LeaveNotify, FocusIn, FocusOut, KeymapNotify, Expose,
652 GraphicsExpose, NoExpose, VisibilityNotify, CreateNotify, DestroyNotify,
653 UnmapNotify, MapNotify, MapRequest, ReparentNotify, ConfigureNotify,
654 ConfigureRequest, GravityNotify, ResizeRequest, CirculateNotify,
655 CirculateRequest, PropertyNotify, SelectionClear, SelectionRequest,
656 SelectionNotify, ColormapNotify, ClientMessage, MappingNotify
397 Various constants for use in X calls and event processing. 657 Various constants for use in X calls and event processing.
398 658
399 RENDITION 659 RENDITION
400 Rendition bitsets contain information about colour, font, font styles 660 Rendition bitsets contain information about colour, font, font styles
401 and similar information for each screen cell. 661 and similar information for each screen cell.
422 $background = urxvt::GET_BASEBG $rend 682 $background = urxvt::GET_BASEBG $rend
423 Return the foreground/background colour index, respectively. 683 Return the foreground/background colour index, respectively.
424 684
425 $rend = urxvt::SET_FGCOLOR $rend, $new_colour 685 $rend = urxvt::SET_FGCOLOR $rend, $new_colour
426 $rend = urxvt::SET_BGCOLOR $rend, $new_colour 686 $rend = urxvt::SET_BGCOLOR $rend, $new_colour
687 $rend = urxvt::SET_COLOR $rend, $new_fg, $new_bg
427 Replace the foreground/background colour in the rendition mask with 688 Replace the foreground/background colour in the rendition mask with
428 the specified one. 689 the specified one.
429 690
430 $value = urxvt::GET_CUSTOM $rend 691 $value = urxvt::GET_CUSTOM $rend
431 Return the "custom" value: Every rendition has 5 bits for use by 692 Return the "custom" value: Every rendition has 5 bits for use by
450 %ENV-like hash which defines the environment of the new terminal. 711 %ENV-like hash which defines the environment of the new terminal.
451 712
452 Croaks (and probably outputs an error message) if the new instance 713 Croaks (and probably outputs an error message) if the new instance
453 couldn't be created. Returns "undef" if the new instance didn't 714 couldn't be created. Returns "undef" if the new instance didn't
454 initialise perl, and the terminal object otherwise. The "init" and 715 initialise perl, and the terminal object otherwise. The "init" and
455 "start" hooks will be called during this call. 716 "start" hooks will be called before this call returns, and are free
717 to refer to global data (which is race free).
456 718
457 $term->destroy 719 $term->destroy
458 Destroy the terminal object (close the window, free resources etc.). 720 Destroy the terminal object (close the window, free resources etc.).
459 Please note that rxvt will not exit as long as any event watchers 721 Please note that rxvt will not exit as long as any event watchers
460 (timers, io watchers) are still active. 722 (timers, io watchers) are still active.
723
724 $term->exec_async ($cmd[, @args])
725 Works like the combination of the "fork"/"exec" builtins, which
726 executes ("starts") programs in the background. This function takes
727 care of setting the user environment before exec'ing the command
728 (e.g. "PATH") and should be preferred over explicit calls to "exec"
729 or "system".
730
731 Returns the pid of the subprocess or "undef" on error.
461 732
462 $isset = $term->option ($optval[, $set]) 733 $isset = $term->option ($optval[, $set])
463 Returns true if the option specified by $optval is enabled, and 734 Returns true if the option specified by $optval is enabled, and
464 optionally change it. All option values are stored by name in the 735 optionally change it. All option values are stored by name in the
465 hash %urxvt::OPTION. Options not enabled in this binary are not in 736 hash %urxvt::OPTION. Options not enabled in this binary are not in
466 the hash. 737 the hash.
467 738
468 Here is a a likely non-exhaustive list of option names, please see 739 Here is a likely non-exhaustive list of option names, please see the
469 the source file /src/optinc.h to see the actual list: 740 source file /src/optinc.h to see the actual list:
470 741
471 borderLess console cursorBlink cursorUnderline hold iconic insecure 742 borderLess console cursorBlink cursorUnderline hold iconic insecure
472 intensityStyles jumpScroll loginShell mapAlert meta8 mouseWheelScrollPage 743 intensityStyles jumpScroll loginShell mapAlert meta8 mouseWheelScrollPage
473 pastableTabs pointerBlank reverseVideo scrollBar scrollBar_floating 744 override-redirect pastableTabs pointerBlank reverseVideo scrollBar
474 scrollBar_right scrollTtyKeypress scrollTtyOutput scrollWithBuffer 745 scrollBar_floating scrollBar_right scrollTtyKeypress scrollTtyOutput
475 secondaryScreen secondaryScroll skipBuiltinGlyphs transparent 746 scrollWithBuffer secondaryScreen secondaryScroll skipBuiltinGlyphs
476 tripleclickwords utmpInhibit visualBell 747 transparent tripleclickwords utmpInhibit visualBell
477 748
478 $value = $term->resource ($name[, $newval]) 749 $value = $term->resource ($name[, $newval])
479 Returns the current resource value associated with a given name and 750 Returns the current resource value associated with a given name and
480 optionally sets a new value. Setting values is most useful in the 751 optionally sets a new value. Setting values is most useful in the
481 "init" hook. Unset resources are returned and accepted as "undef". 752 "init" hook. Unset resources are returned and accepted as "undef".
490 761
491 Please note that resource strings will currently only be freed when 762 Please note that resource strings will currently only be freed when
492 the terminal is destroyed, so changing options frequently will eat 763 the terminal is destroyed, so changing options frequently will eat
493 memory. 764 memory.
494 765
495 Here is a a likely non-exhaustive list of resource names, not all of 766 Here is a likely non-exhaustive list of resource names, not all of
496 which are supported in every build, please see the source file 767 which are supported in every build, please see the source file
497 /src/rsinc.h to see the actual list: 768 /src/rsinc.h to see the actual list:
498 769
499 answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont 770 answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont
500 borderLess color cursorBlink cursorUnderline cutchars delete_key 771 borderLess color cursorBlink cursorUnderline cutchars delete_key
501 display_name embed ext_bwidth fade font geometry hold iconName 772 display_name embed ext_bwidth fade font geometry hold iconName
502 imFont imLocale inputMethod insecure int_bwidth intensityStyles 773 imFont imLocale inputMethod insecure int_bwidth intensityStyles
503 italicFont jumpScroll lineSpace loginShell mapAlert menu meta8 modifier 774 italicFont jumpScroll lineSpace loginShell mapAlert meta8 modifier
504 mouseWheelScrollPage name pastableTabs path perl_eval perl_ext_1 perl_ext_2 775 mouseWheelScrollPage name override_redirect pastableTabs path perl_eval
505 perl_lib pointerBlank pointerBlankDelay preeditType print_pipe pty_fd 776 perl_ext_1 perl_ext_2 perl_lib pointerBlank pointerBlankDelay
506 reverseVideo saveLines scrollBar scrollBar_align scrollBar_floating 777 preeditType print_pipe pty_fd reverseVideo saveLines scrollBar
507 scrollBar_right scrollBar_thickness scrollTtyKeypress scrollTtyOutput 778 scrollBar_align scrollBar_floating scrollBar_right scrollBar_thickness
508 scrollWithBuffer scrollstyle secondaryScreen secondaryScroll selectstyle 779 scrollTtyKeypress scrollTtyOutput scrollWithBuffer scrollstyle
780 secondaryScreen secondaryScroll selectstyle shade term_name title
509 shade term_name title transparent transparent_all tripleclickwords 781 transient_for transparent transparent_all tripleclickwords utmpInhibit
510 utmpInhibit visualBell 782 visualBell
511 783
512 $value = $term->x_resource ($pattern) 784 $value = $term->x_resource ($pattern)
513 Returns the X-Resource for the given pattern, excluding the program 785 Returns the X-Resource for the given pattern, excluding the program
514 or class name, i.e. "$term->x_resource ("boldFont")" should return 786 or class name, i.e. "$term->x_resource ("boldFont")" should return
515 the same value as used by this instance of rxvt-unicode. Returns 787 the same value as used by this instance of rxvt-unicode. Returns
626 898
627 Normally its not a good idea to use this function, as programs might 899 Normally its not a good idea to use this function, as programs might
628 be confused by changes in cursor position or scrolling. Its useful 900 be confused by changes in cursor position or scrolling. Its useful
629 inside a "on_add_lines" hook, though. 901 inside a "on_add_lines" hook, though.
630 902
903 $term->scr_change_screen ($screen)
904 Switch to given screen - 0 primary, 1 secondary.
905
631 $term->cmd_parse ($octets) 906 $term->cmd_parse ($octets)
632 Similar to "scr_add_lines", but the argument must be in the 907 Similar to "scr_add_lines", but the argument must be in the
633 locale-specific encoding of the terminal and can contain command 908 locale-specific encoding of the terminal and can contain command
634 sequences (escape codes) that will be interpreted. 909 sequences (escape codes) that will be interpreted.
635 910
643 Replaces the event mask of the pty watcher by the given event mask. 918 Replaces the event mask of the pty watcher by the given event mask.
644 Can be used to suppress input and output handling to the pty/tty. 919 Can be used to suppress input and output handling to the pty/tty.
645 See the description of "urxvt::timer->events". Make sure to always 920 See the description of "urxvt::timer->events". Make sure to always
646 restore the previous value. 921 restore the previous value.
647 922
923 $fd = $term->pty_fd
924 Returns the master file descriptor for the pty in use, or -1 if no
925 pty is used.
926
648 $windowid = $term->parent 927 $windowid = $term->parent
649 Return the window id of the toplevel window. 928 Return the window id of the toplevel window.
650 929
651 $windowid = $term->vt 930 $windowid = $term->vt
652 Return the window id of the terminal window. 931 Return the window id of the terminal window.
932
933 $term->vt_emask_add ($x_event_mask)
934 Adds the specified events to the vt event mask. Useful e.g. when you
935 want to receive pointer events all the times:
936
937 $term->vt_emask_add (urxvt::PointerMotionMask);
938
939 $term->focus_in
940 $term->focus_out
941 $term->key_press ($state, $keycode[, $time])
942 $term->key_release ($state, $keycode[, $time])
943 Deliver various fake events to to terminal.
653 944
654 $window_width = $term->width 945 $window_width = $term->width
655 $window_height = $term->height 946 $window_height = $term->height
656 $font_width = $term->fwidth 947 $font_width = $term->fwidth
657 $font_height = $term->fheight 948 $font_height = $term->fheight
660 $terminal_columns = $term->ncol 951 $terminal_columns = $term->ncol
661 $has_focus = $term->focus 952 $has_focus = $term->focus
662 $is_mapped = $term->mapped 953 $is_mapped = $term->mapped
663 $max_scrollback = $term->saveLines 954 $max_scrollback = $term->saveLines
664 $nrow_plus_saveLines = $term->total_rows 955 $nrow_plus_saveLines = $term->total_rows
665 $lines_in_scrollback = $term->nsaved 956 $topmost_scrollback_row = $term->top_row
666 Return various integers describing terminal characteristics. 957 Return various integers describing terminal characteristics.
667 958
668 $x_display = $term->display_id 959 $x_display = $term->display_id
669 Return the DISPLAY used by rxvt-unicode. 960 Return the DISPLAY used by rxvt-unicode.
670 961
672 Returns the LC_CTYPE category string used by this rxvt-unicode. 963 Returns the LC_CTYPE category string used by this rxvt-unicode.
673 964
674 $env = $term->env 965 $env = $term->env
675 Returns a copy of the environment in effect for the terminal as a 966 Returns a copy of the environment in effect for the terminal as a
676 hashref similar to "\%ENV". 967 hashref similar to "\%ENV".
968
969 @envv = $term->envv
970 Returns the environment as array of strings of the form "VAR=VALUE".
971
972 @argv = $term->argv
973 Return the argument vector as this terminal, similar to @ARGV, but
974 includes the program name as first element.
677 975
678 $modifiermask = $term->ModLevel3Mask 976 $modifiermask = $term->ModLevel3Mask
679 $modifiermask = $term->ModMetaMask 977 $modifiermask = $term->ModMetaMask
680 $modifiermask = $term->ModNumLockMask 978 $modifiermask = $term->ModNumLockMask
681 Return the modifier masks corresponding to the "ISO Level 3 Shift" 979 Return the modifier masks corresponding to the "ISO Level 3 Shift"
682 (often AltGr), the meta key (often Alt) and the num lock key, if 980 (often AltGr), the meta key (often Alt) and the num lock key, if
683 applicable. 981 applicable.
684 982
983 $screen = $term->current_screen
984 Returns the currently displayed screen (0 primary, 1 secondary).
985
986 $cursor_is_hidden = $term->hidden_cursor
987 Returns whether the cursor is currently hidden or not.
988
685 $view_start = $term->view_start ([$newvalue]) 989 $view_start = $term->view_start ([$newvalue])
686 Returns the negative row number of the topmost line. Minimum value 990 Returns the row number of the topmost displayed line. Maximum value
687 is 0, which displays the normal terminal contents. Larger values 991 is 0, which displays the normal terminal contents. Lower values
688 scroll this many lines into the scrollback buffer. 992 scroll this many lines into the scrollback buffer.
689 993
690 $term->want_refresh 994 $term->want_refresh
691 Requests a screen refresh. At the next opportunity, rxvt-unicode 995 Requests a screen refresh. At the next opportunity, rxvt-unicode
692 will compare the on-screen display with its stored representation. 996 will compare the on-screen display with its stored representation.
705 line, starting at column $start_col (default 0), which is useful to 1009 line, starting at column $start_col (default 0), which is useful to
706 replace only parts of a line. The font index in the rendition will 1010 replace only parts of a line. The font index in the rendition will
707 automatically be updated. 1011 automatically be updated.
708 1012
709 $text is in a special encoding: tabs and wide characters that use 1013 $text is in a special encoding: tabs and wide characters that use
710 more than one cell when displayed are padded with urxvt::NOCHAR 1014 more than one cell when displayed are padded with $urxvt::NOCHAR
711 characters ("chr 65535"). Characters with combining characters and 1015 (chr 65535) characters. Characters with combining characters and
712 other characters that do not fit into the normal tetx encoding will 1016 other characters that do not fit into the normal tetx encoding will
713 be replaced with characters in the private use area. 1017 be replaced with characters in the private use area.
714 1018
715 You have to obey this encoding when changing text. The advantage is 1019 You have to obey this encoding when changing text. The advantage is
716 that "substr" and similar functions work on screen cells and not on 1020 that "substr" and similar functions work on screen cells and not on
772 Converts a perl string into the special encoding used by 1076 Converts a perl string into the special encoding used by
773 rxvt-unicode, where one character corresponds to one screen cell. 1077 rxvt-unicode, where one character corresponds to one screen cell.
774 See "$term->ROW_t" for details. 1078 See "$term->ROW_t" for details.
775 1079
776 $string = $term->special_decode $text 1080 $string = $term->special_decode $text
777 Converts rxvt-unicodes text reprsentation into a perl string. See 1081 Converts rxvt-unicodes text representation into a perl string. See
778 "$term->ROW_t" for details. 1082 "$term->ROW_t" for details.
779 1083
780 $success = $term->grab_button ($button, $modifiermask) 1084 $success = $term->grab_button ($button, $modifiermask[, $window =
1085 $term->vt])
1086 $term->ungrab_button ($button, $modifiermask[, $window = $term->vt])
781 Registers a synchronous button grab. See the XGrabButton manpage. 1087 Register/unregister a synchronous button grab. See the XGrabButton
1088 manpage.
782 1089
783 $success = $term->grab ($eventtime[, $sync]) 1090 $success = $term->grab ($eventtime[, $sync])
784 Calls XGrabPointer and XGrabKeyboard in asynchronous (default) or 1091 Calls XGrabPointer and XGrabKeyboard in asynchronous (default) or
785 synchronous ($sync is true). Also remembers the grab timestampe. 1092 synchronous ($sync is true). Also remembers the grab timestamp.
786 1093
787 $term->allow_events_async 1094 $term->allow_events_async
788 Calls XAllowEvents with AsyncBoth for the most recent grab. 1095 Calls XAllowEvents with AsyncBoth for the most recent grab.
789 1096
790 $term->allow_events_sync 1097 $term->allow_events_sync
797 $term->ungrab 1104 $term->ungrab
798 Calls XUngrab for the most recent grab. Is called automatically on 1105 Calls XUngrab for the most recent grab. Is called automatically on
799 evaluation errors, as it is better to lose the grab in the error 1106 evaluation errors, as it is better to lose the grab in the error
800 case as the session. 1107 case as the session.
801 1108
1109 $atom = $term->XInternAtom ($atom_name[, $only_if_exists])
1110 $atom_name = $term->XGetAtomName ($atom)
1111 @atoms = $term->XListProperties ($window)
1112 ($type,$format,$octets) = $term->XGetWindowProperty ($window, $property)
1113 $term->XChangeWindowProperty ($window, $property, $type, $format,
1114 $octets)
1115 $term->XDeleteProperty ($window, $property)
1116 $window = $term->DefaultRootWindow
1117 $term->XReparentWindow ($window, $parent, [$x, $y])
1118 $term->XMapWindow ($window)
1119 $term->XUnmapWindow ($window)
1120 $term->XMoveResizeWindow ($window, $x, $y, $width, $height)
1121 ($x, $y, $child_window) = $term->XTranslateCoordinates ($src, $dst, $x,
1122 $y)
1123 $term->XChangeInput ($window, $add_events[, $del_events])
1124 Various X or X-related functions. The $term object only serves as
1125 the source of the display, otherwise those functions map
1126 more-or-less directory onto the X functions of the same name.
1127
802 The "urxvt::popup" Class 1128 The "urxvt::popup" Class
803 $popup->add_title ($title) 1129 $popup->add_title ($title)
804 Adds a non-clickable title to the popup. 1130 Adds a non-clickable title to the popup.
805 1131
806 $popup->add_separator ([$sepchr]) 1132 $popup->add_separator ([$sepchr])
809 1135
810 $popup->add_button ($text, $cb) 1136 $popup->add_button ($text, $cb)
811 Adds a clickable button to the popup. $cb is called whenever it is 1137 Adds a clickable button to the popup. $cb is called whenever it is
812 selected. 1138 selected.
813 1139
814 $popup->add_toggle ($text, $cb, $initial_value) 1140 $popup->add_toggle ($text, $initial_value, $cb)
815 Adds a toggle/checkbox item to the popup. Teh callback gets called 1141 Adds a toggle/checkbox item to the popup. The callback gets called
816 whenever it gets toggled, with a boolean indicating its value as its 1142 whenever it gets toggled, with a boolean indicating its new value as
817 first argument. 1143 its first argument.
818 1144
819 $popup->show 1145 $popup->show
820 Displays the popup (which is initially hidden). 1146 Displays the popup (which is initially hidden).
821 1147
822 The "urxvt::timer" Class 1148 The "urxvt::timer" Class
828 ->new 1154 ->new
829 ->interval (1) 1155 ->interval (1)
830 ->cb (sub { 1156 ->cb (sub {
831 $term->{overlay}->set (0, 0, 1157 $term->{overlay}->set (0, 0,
832 sprintf "%2d:%02d:%02d", (localtime urxvt::NOW)[2,1,0]); 1158 sprintf "%2d:%02d:%02d", (localtime urxvt::NOW)[2,1,0]);
833 }); 1159 });
834 1160
835 $timer = new urxvt::timer 1161 $timer = new urxvt::timer
836 Create a new timer object in started state. It is scheduled to fire 1162 Create a new timer object in started state. It is scheduled to fire
837 immediately. 1163 immediately.
838 1164
853 $timer = $timer->start 1179 $timer = $timer->start
854 Start the timer. 1180 Start the timer.
855 1181
856 $timer = $timer->start ($tstamp) 1182 $timer = $timer->start ($tstamp)
857 Set the event trigger time to $tstamp and start the timer. 1183 Set the event trigger time to $tstamp and start the timer.
1184
1185 $timer = $timer->after ($delay)
1186 Like "start", but sets the expiry timer to c<urxvt::NOW + $delay>.
858 1187
859 $timer = $timer->stop 1188 $timer = $timer->stop
860 Stop the timer. 1189 Stop the timer.
861 1190
862 The "urxvt::iow" Class 1191 The "urxvt::iow" Class
881 $iow = $iow->cb (sub { my ($iow, $reventmask) = @_; ... }) 1210 $iow = $iow->cb (sub { my ($iow, $reventmask) = @_; ... })
882 Set the callback to be called when io events are triggered. 1211 Set the callback to be called when io events are triggered.
883 $reventmask is a bitset as described in the "events" method. 1212 $reventmask is a bitset as described in the "events" method.
884 1213
885 $iow = $iow->fd ($fd) 1214 $iow = $iow->fd ($fd)
886 Set the filedescriptor (not handle) to watch. 1215 Set the file descriptor (not handle) to watch.
887 1216
888 $iow = $iow->events ($eventmask) 1217 $iow = $iow->events ($eventmask)
889 Set the event mask to watch. The only allowed values are 1218 Set the event mask to watch. The only allowed values are
890 "urxvt::EVENT_READ" and "urxvt::EVENT_WRITE", which might be ORed 1219 "urxvt::EVENT_READ" and "urxvt::EVENT_WRITE", which might be ORed
891 together, or "urxvt::EVENT_NONE". 1220 together, or "urxvt::EVENT_NONE".
892 1221
893 $iow = $iow->start 1222 $iow = $iow->start
894 Start watching for requested events on the given handle. 1223 Start watching for requested events on the given handle.
895 1224
896 $iow = $iow->stop 1225 $iow = $iow->stop
897 Stop watching for events on the given filehandle. 1226 Stop watching for events on the given file handle.
1227
1228 The "urxvt::iw" Class
1229 This class implements idle watchers, that get called automatically when
1230 the process is idle. They should return as fast as possible, after doing
1231 some useful work.
1232
1233 $iw = new urxvt::iw
1234 Create a new idle watcher object in stopped state.
1235
1236 $iw = $iw->cb (sub { my ($iw) = @_; ... })
1237 Set the callback to be called when the watcher triggers.
1238
1239 $timer = $timer->start
1240 Start the watcher.
1241
1242 $timer = $timer->stop
1243 Stop the watcher.
1244
1245 The "urxvt::pw" Class
1246 This class implements process watchers. They create an event whenever a
1247 process exits, after which they stop automatically.
1248
1249 my $pid = fork;
1250 ...
1251 $term->{pw} = urxvt::pw
1252 ->new
1253 ->start ($pid)
1254 ->cb (sub {
1255 my ($pw, $exit_status) = @_;
1256 ...
1257 });
1258
1259 $pw = new urxvt::pw
1260 Create a new process watcher in stopped state.
1261
1262 $pw = $pw->cb (sub { my ($pw, $exit_status) = @_; ... })
1263 Set the callback to be called when the timer triggers.
1264
1265 $pw = $timer->start ($pid)
1266 Tells the watcher to start watching for process $pid.
1267
1268 $pw = $pw->stop
1269 Stop the watcher.
898 1270
899ENVIRONMENT 1271ENVIRONMENT
900 URXVT_PERL_VERBOSITY 1272 URXVT_PERL_VERBOSITY
901 This variable controls the verbosity level of the perl extension. Higher 1273 This variable controls the verbosity level of the perl extension. Higher
902 numbers indicate more verbose output. 1274 numbers indicate more verbose output.
903 1275
904 == 0 - fatal messages 1276 == 0 - fatal messages
905 >= 3 - script loading and management 1277 >= 3 - script loading and management
906 >=10 - all called hooks 1278 >=10 - all called hooks
907 >=11 - hook reutrn values 1279 >=11 - hook return values
908 1280
909AUTHOR 1281AUTHOR
910 Marc Lehmann <pcg@goof.com> 1282 Marc Lehmann <pcg@goof.com>
911 http://software.schmorp.de/pkg/rxvt-unicode 1283 http://software.schmorp.de/pkg/rxvt-unicode
912 1284

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines