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.27 by root, Fri Jan 13 12:40:46 2006 UTC vs.
Revision 1.33 by root, Fri Jan 20 22:49:34 2006 UTC

1NAME 1NAME
2 urxvtperl - rxvt-unicode's embedded perl interpreter 2 rxvtperl - rxvt-unicode's embedded perl interpreter
3 3
4SYNOPSIS 4SYNOPSIS
5 # create a file grab_test in $HOME: 5 # create a file grab_test in $HOME:
6 6
7 sub on_sel_grab { 7 sub on_sel_grab {
8 warn "you selected ", $_[0]->selection; 8 warn "you selected ", $_[0]->selection;
9 () 9 ()
10 } 10 }
11 11
12 # start a urxvt using it: 12 # start a rxvt using it:
13 13
14 urxvt --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 Everytime 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
23 Each script will only ever be loaded once, even in urxvtd, where scripts 23 Each script will only ever be loaded once, even in rxvtd, where scripts
24 will be shared (but not enabled) for all terminals. 24 will be shared (but not enabled) for all terminals.
25 25
26PREPACKAGED EXTENSIONS 26PREPACKAGED EXTENSIONS
27 This section describes the extensions delivered with this release. You 27 This section describes the extensions delivered with this release. You
28 can find them in /usr/local/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 urxvt -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
57 URxvt.selection.pattern-0: \\|([^|]+)\\| 61 URxvt.selection.pattern-0: \\|([^|]+)\\|
58 62
59 You can look at the source of the selection extension to see more 63 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. 64 interesting uses, such as parsing a line from beginning to end.
61 65
62 This extension also offers the following bindable keyboard command: 66 This extension also offers following bindable keyboard commands:
63 67
64 rot13 68 rot13
65 Rot-13 the selection when activated. Used via keyboard trigger: 69 Rot-13 the selection when activated. Used via keyboard trigger:
66 70
67 URxvt.keysym.C-M-r: perl:selection:rot13 71 URxvt.keysym.C-M-r: perl:selection:rot13
71 options at runtime. 75 options at runtime.
72 76
73 selection-popup (enabled by default) 77 selection-popup (enabled by default)
74 Binds a popup menu to Ctrl-Button3 that lets you convert the 78 Binds a popup menu to Ctrl-Button3 that lets you convert the
75 selection text into various other formats/action (such as uri 79 selection text into various other formats/action (such as uri
76 unescaping, perl evalution, web-browser starting etc.), depending on 80 unescaping, perl evaluation, web-browser starting etc.), depending
77 content. 81 on content.
82
83 Other extensions can extend this popup menu by pushing a code
84 reference onto "@{ $term-"{selection_popup_hook} }>, that is called
85 whenever the popup is displayed.
86
87 It's sole argument is the popup menu, which can be modified. The
88 selection is in $_, which can be used to decide wether to add
89 something or not. It should either return nothing or a string and a
90 code reference. The string will be used as button text and the code
91 reference will be called when the button gets activated and should
92 transform $_.
93
94 The following will add an entry "a to b" that transforms all "a"s in
95 the selection to "b"s, but only if the selection currently contains
96 any "a"s:
97
98 push @{ $self->{term}{selection_popup_hook} }, sub {
99 /a/ ? ("a to be" => sub { s/a/b/g }
100 : ()
101 };
78 102
79 searchable-scrollback<hotkey> (enabled by default) 103 searchable-scrollback<hotkey> (enabled by default)
80 Adds regex search functionality to the scrollback buffer, triggered 104 Adds regex search functionality to the scrollback buffer, triggered
81 by a hotkey (default: "M-s"). While in search mode, normal terminal 105 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 106 input/output is suspended and a regex is displayed at the bottom of
108 URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/vi +$2 \\Q$1\\E\\x0d/ 132 URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/vi +$2 \\Q$1\\E\\x0d/
109 133
110 And this example matches the same,but replaces it with vi-commands 134 And this example matches the same,but replaces it with vi-commands
111 you can paste directly into your (vi :) editor: 135 you can paste directly into your (vi :) editor:
112 136
113 URxvt.selection-autotransform.0: s/^([^:[:space:]]+(\\d+):?$/\\x1b:e \\Q$1\\E\\x0d:$2\\x0d/ 137 URxvt.selection-autotransform.0: s/^([^:[:space:]]+(\\d+):?$/:e \\Q$1\\E\\x0d:$2\\x0d/
114 138
115 Of course, this can be modified to suit your needs and your editor 139 Of course, this can be modified to suit your needs and your editor
116 :) 140 :)
117 141
118 To expand the example above to typical perl error messages ("XXX at 142 To expand the example above to typical perl error messages ("XXX at
119 FILENAME line YYY."), you need a slightly more elaborate solution: 143 FILENAME line YYY."), you need a slightly more elaborate solution:
120 144
121 URxvt.selection.pattern-0: ( at .*? line \\d+\\.) 145 URxvt.selection.pattern-0: ( at .*? line \\d+[,.])
122 URxvt.selection-autotransform.0: s/^ at (.*?) line (\\d+)\\.$/\x1b:e \\Q$1\E\\x0d:$2\\x0d/ 146 URxvt.selection-autotransform.0: s/^ at (.*?) line (\\d+)[,.]$/:e \\Q$1\E\\x0d:$2\\x0d/
123 147
124 The first line tells the selection code to treat the unchanging part 148 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 149 of every error message as a selection pattern, and the second line
126 transforms the message into vi commands to load the file. 150 transforms the message into vi commands to load the file.
151
152 readline
153 A support package that tries to make editing with readline easier.
154 At the moment, it reacts to clicking with the left mouse button by
155 trying to move the text cursor to this position. It does so by
156 generating as many cursor-left or cursor-right keypresses as
157 required (the this only works for programs that correctly support
158 wide characters).
159
160 It only works when clicking into the same line (possibly extended
161 over multiple rows) as the text cursor and on the primary screen, to
162 reduce the risk of misinterpreting. The normal selection isn't
163 disabled, so quick successive clicks might interfere with selection
164 creation in harmless ways.
165
166 tabbed
167 This transforms the terminal into a tabbar with additional
168 terminals, that is, it implements what is commonly refered to as
169 "tabbed terminal". The topmost line displays a "[NEW]" button,
170 which, when clicked, will add a new tab, followed by one button per
171 tab.
172
173 Clicking a button will activate that tab. Pressing Shift-Left and
174 Shift-Right will switch to the tab left or right of the current one,
175 while Shift-Down creates a new tab.
127 176
128 mark-urls 177 mark-urls
129 Uses per-line display filtering ("on_line_update") to underline urls 178 Uses per-line display filtering ("on_line_update") to underline urls
130 and make them clickable. When middle-clicked, the program specified 179 and make them clickable. When middle-clicked, the program specified
131 in the resource "urlLauncher" (default "x-www-browser") will be 180 in the resource "urlLauncher" (default "x-www-browser") will be
132 started with the URL as first argument. 181 started with the URL as first argument.
133 182
183 automove-background
184 This is basically a one-line extension that dynamically changes the
185 background pixmap offset to the window position, in effect creating
186 the same effect as pseudo transparency with a custom pixmap. No
187 scaling is supported in this mode. Exmaple:
188
189 rxvt -pixmap background.xpm -pe automove-background
190
134 block-graphics-to-ascii 191 block-graphics-to-ascii
135 A not very useful example of filtering all text output to the 192 A not very useful example of filtering all text output to the
136 terminal, by replacing all line-drawing characters (U+2500 .. 193 terminal, by replacing all line-drawing characters (U+2500 ..
137 U+259F) by a similar-looking ascii character. 194 U+259F) by a similar-looking ascii character.
138 195
141 198
142 example-refresh-hooks 199 example-refresh-hooks
143 Displays a very simple digital clock in the upper right corner of 200 Displays a very simple digital clock in the upper right corner of
144 the window. Illustrates overwriting the refresh callbacks to create 201 the window. Illustrates overwriting the refresh callbacks to create
145 your own overlays or changes. 202 your own overlays or changes.
203
204 selection-pastebin
205 This is a little rarely useful extension that Uploads the selection
206 as textfile to a remote site (or does other things). (The
207 implementation is not currently secure for use in a multiuser
208 environment as it writes to /tmp directly.).
209
210 It listens to the "selection-pastebin:remote-pastebin" keyboard
211 command, i.e.
212
213 URxvt.keysym.C-M-e: perl:selection-pastebin:remote-pastebin
214
215 Pressing this combination runs a command with "%" replaced by the
216 name of the textfile. This command can be set via a resource:
217
218 URxvt.selection-pastebin.cmd: rsync -apP % ruth:/var/www/www.ta-sa.org/files/txt/.
219
220 And the default is likely not useful to anybody but the few people
221 around here :)
222
223 The name of the textfile is the hex encoded md5 sum of the
224 selection, so the same content should lead to the same filename.
225
226 After a successful upload the selection will be replaced by the text
227 given in the "selection-pastebin-url" resource (again, the % is the
228 placeholder for the filename):
229
230 URxvt.selection-pastebin.url: http://www.ta-sa.org/files/txt/%
146 231
147API DOCUMENTATION 232API DOCUMENTATION
148 General API Considerations 233 General API Considerations
149 All objects (such as terminals, time watchers etc.) are typical 234 All objects (such as terminals, time watchers etc.) are typical
150 reference-to-hash objects. The hash can be used to store anything you 235 reference-to-hash objects. The hash can be used to store anything you
204 be called whenever the relevant event happens. 289 be called whenever the relevant event happens.
205 290
206 The first argument passed to them is an extension oject as described in 291 The first argument passed to them is an extension oject as described in
207 the in the "Extension Objects" section. 292 the in the "Extension Objects" section.
208 293
209 All of these hooks must return a boolean value. If it is true, then the 294 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 295 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++ 296 relevant action might not be carried out by the C++ code.
212 code.
213 297
214 *When in doubt, return a false value (preferably "()").* 298 *When in doubt, return a false value (preferably "()").*
215 299
216 on_init $term 300 on_init $term
217 Called after a new terminal object has been initialized, but before 301 Called after a new terminal object has been initialized, but before
218 windows are created or the command gets run. Most methods are unsafe 302 windows are created or the command gets run. Most methods are unsafe
219 to call or deliver senseless data, as terminal size and other 303 to call or deliver senseless data, as terminal size and other
220 characteristics have not yet been determined. You can safely query 304 characteristics have not yet been determined. You can safely query
221 and change resources, though. 305 and change resources and options, though. For many purposes the
306 "on_start" hook is a better place.
307
308 on_start $term
309 Called at the very end of initialisation of a new terminal, just
310 before trying to map (display) the toplevel and returning to the
311 mainloop.
312
313 on_destroy $term
314 Called whenever something tries to destroy terminal, before doing
315 anything yet. If this hook returns true, then destruction is
316 skipped, but this is rarely a good idea.
222 317
223 on_reset $term 318 on_reset $term
224 Called after the screen is "reset" for any reason, such as resizing 319 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 320 or control sequences. Here is where you can react on changes to
226 size-related variables. 321 size-related variables.
227 322
228 on_start $term 323 on_child_start $term, $pid
229 Called at the very end of initialisation of a new terminal, just 324 Called just after the child process has been "fork"ed.
230 before returning to the mainloop. 325
326 on_child_exit $term, $status
327 Called just after the child process has exited. $status is the
328 status from "waitpid".
231 329
232 on_sel_make $term, $eventtime 330 on_sel_make $term, $eventtime
233 Called whenever a selection has been made by the user, but before 331 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 332 the selection text is copied, so changes to the beginning, end or
235 type of the selection will be honored. 333 type of the selection will be honored.
318 Called just after the screen gets redrawn. See "on_refresh_begin". 416 Called just after the screen gets redrawn. See "on_refresh_begin".
319 417
320 on_keyboard_command $term, $string 418 on_keyboard_command $term, $string
321 Called whenever the user presses a key combination that has a 419 Called whenever the user presses a key combination that has a
322 "perl:string" action bound to it (see description of the keysym 420 "perl:string" action bound to it (see description of the keysym
323 resource in the urxvt(1) manpage). 421 resource in the rxvt(1) manpage).
324 422
325 on_x_event $term, $event 423 on_x_event $term, $event
326 Called on every X event received on the vt window (and possibly 424 Called on every X event received on the vt window (and possibly
327 other windows). Should only be used as a last resort. Most event 425 other windows). Should only be used as a last resort. Most event
328 structure members are not passed. 426 structure members are not passed.
333 431
334 on_focus_out $term 432 on_focus_out $term
335 Called wheneever the window loses keyboard focus, before 433 Called wheneever the window loses keyboard focus, before
336 rxvt-unicode does focus out processing. 434 rxvt-unicode does focus out processing.
337 435
436 on_configure_notify $term, $event
437 on_property_notify $term, $event
338 on_key_press $term, $event, $keysym, $octets 438 on_key_press $term, $event, $keysym, $octets
339 on_key_release $term, $event, $keysym 439 on_key_release $term, $event, $keysym
340 on_button_press $term, $event 440 on_button_press $term, $event
341 on_button_release $term, $event 441 on_button_release $term, $event
342 on_motion_notify $term, $event 442 on_motion_notify $term, $event
346 terminal If the hook returns true, then the even will be ignored by 446 terminal If the hook returns true, then the even will be ignored by
347 rxvt-unicode. 447 rxvt-unicode.
348 448
349 The event is a hash with most values as named by Xlib (see the 449 The event is a hash with most values as named by Xlib (see the
350 XEvent manpage), with the additional members "row" and "col", which 450 XEvent manpage), with the additional members "row" and "col", which
351 are the row and column under the mouse cursor. 451 are the (real, not screen-based) row and column under the mouse
452 cursor.
352 453
353 "on_key_press" additionally receives the string rxvt-unicode would 454 "on_key_press" additionally receives the string rxvt-unicode would
354 output, if any, in locale-specific encoding. 455 output, if any, in locale-specific encoding.
355 456
356 subwindow. 457 subwindow.
458
459 on_client_message $term, $event
460 on_wm_protocols $term, $event
461 on_wm_delete_window $term, $event
462 Called when various types of ClientMessage events are received (all
463 with format=32, WM_PROTOCOLS or WM_PROTOCOLS:WM_DELETE_WINDOW).
357 464
358 Variables in the "urxvt" Package 465 Variables in the "urxvt" Package
359 $urxvt::LIBDIR 466 $urxvt::LIBDIR
360 The rxvt-unicode library directory, where, among other things, the 467 The rxvt-unicode library directory, where, among other things, the
361 perl modules and scripts are stored. 468 perl modules and scripts are stored.
368 The basename of the installed binaries, usually "urxvt". 475 The basename of the installed binaries, usually "urxvt".
369 476
370 $urxvt::TERM 477 $urxvt::TERM
371 The current terminal. This variable stores the current "urxvt::term" 478 The current terminal. This variable stores the current "urxvt::term"
372 object, whenever a callback/hook is executing. 479 object, whenever a callback/hook is executing.
480
481 @urxvt::TERM_INIT
482 All coderefs in this array will be called as methods of the next
483 newly created "urxvt::term" object (during the "on_init" phase). The
484 array gets cleared before the codereferences that were in it are
485 being executed, so coderefs can push themselves onto it again if
486 they so desire.
487
488 This complements to the perl-eval commandline option, but gets
489 executed first.
490
491 @urxvt::TERM_EXT
492 Works similar to @TERM_INIT, but contains perl package/class names,
493 which get registered as normal extensions after calling the hooks in
494 @TERM_INIT but before other extensions. Gets cleared just like
495 @TERM_INIT.
373 496
374 Functions in the "urxvt" Package 497 Functions in the "urxvt" Package
375 urxvt::fatal $errormessage 498 urxvt::fatal $errormessage
376 Fatally aborts execution with the given error message. Avoid at all 499 Fatally aborts execution with the given error message. Avoid at all
377 costs! The only time this is acceptable is when the terminal process 500 costs! The only time this is acceptable is when the terminal process
384 507
385 Using this function has the advantage that its output ends up in the 508 Using this function has the advantage that its output ends up in the
386 correct place, e.g. on stderr of the connecting urxvtc client. 509 correct place, e.g. on stderr of the connecting urxvtc client.
387 510
388 Messages have a size limit of 1023 bytes currently. 511 Messages have a size limit of 1023 bytes currently.
389
390 $is_safe = urxvt::safe
391 Returns true when it is safe to do potentially unsafe things, such
392 as evaluating perl code specified by the user. This is true when
393 urxvt was started setuid or setgid.
394 512
395 $time = urxvt::NOW 513 $time = urxvt::NOW
396 Returns the "current time" (as per the event loop). 514 Returns the "current time" (as per the event loop).
397 515
398 urxvt::CurrentTime 516 urxvt::CurrentTime
474 initialise perl, and the terminal object otherwise. The "init" and 592 initialise perl, and the terminal object otherwise. The "init" and
475 "start" hooks will be called during this call. 593 "start" hooks will be called during this call.
476 594
477 $term->destroy 595 $term->destroy
478 Destroy the terminal object (close the window, free resources etc.). 596 Destroy the terminal object (close the window, free resources etc.).
479 Please note that urxvt will not exit as long as any event watchers 597 Please note that rxvt will not exit as long as any event watchers
480 (timers, io watchers) are still active. 598 (timers, io watchers) are still active.
599
600 $term->exec_async ($cmd[, @args])
601 Works like the combination of the "fork"/"exec" builtins, which
602 executes ("starts") programs in the background. This function takes
603 care of setting the user environment before exec'ing the command
604 (e.g. "PATH") and should be preferred over explicit calls to "exec"
605 or "system".
606
607 Returns the pid of the subprocess or "undef" on error.
481 608
482 $isset = $term->option ($optval[, $set]) 609 $isset = $term->option ($optval[, $set])
483 Returns true if the option specified by $optval is enabled, and 610 Returns true if the option specified by $optval is enabled, and
484 optionally change it. All option values are stored by name in the 611 optionally change it. All option values are stored by name in the
485 hash %urxvt::OPTION. Options not enabled in this binary are not in 612 hash %urxvt::OPTION. Options not enabled in this binary are not in
488 Here is a a likely non-exhaustive list of option names, please see 615 Here is a a likely non-exhaustive list of option names, please see
489 the source file /src/optinc.h to see the actual list: 616 the source file /src/optinc.h to see the actual list:
490 617
491 borderLess console cursorBlink cursorUnderline hold iconic insecure 618 borderLess console cursorBlink cursorUnderline hold iconic insecure
492 intensityStyles jumpScroll loginShell mapAlert meta8 mouseWheelScrollPage 619 intensityStyles jumpScroll loginShell mapAlert meta8 mouseWheelScrollPage
493 pastableTabs pointerBlank reverseVideo scrollBar scrollBar_floating 620 override-redirect pastableTabs pointerBlank reverseVideo scrollBar
494 scrollBar_right scrollTtyKeypress scrollTtyOutput scrollWithBuffer 621 scrollBar_floating scrollBar_right scrollTtyKeypress scrollTtyOutput
495 secondaryScreen secondaryScroll skipBuiltinGlyphs transparent 622 scrollWithBuffer secondaryScreen secondaryScroll skipBuiltinGlyphs
496 tripleclickwords utmpInhibit visualBell 623 transparent tripleclickwords utmpInhibit visualBell
497 624
498 $value = $term->resource ($name[, $newval]) 625 $value = $term->resource ($name[, $newval])
499 Returns the current resource value associated with a given name and 626 Returns the current resource value associated with a given name and
500 optionally sets a new value. Setting values is most useful in the 627 optionally sets a new value. Setting values is most useful in the
501 "init" hook. Unset resources are returned and accepted as "undef". 628 "init" hook. Unset resources are returned and accepted as "undef".
518 645
519 answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont 646 answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont
520 borderLess color cursorBlink cursorUnderline cutchars delete_key 647 borderLess color cursorBlink cursorUnderline cutchars delete_key
521 display_name embed ext_bwidth fade font geometry hold iconName 648 display_name embed ext_bwidth fade font geometry hold iconName
522 imFont imLocale inputMethod insecure int_bwidth intensityStyles 649 imFont imLocale inputMethod insecure int_bwidth intensityStyles
523 italicFont jumpScroll lineSpace loginShell mapAlert menu meta8 modifier 650 italicFont jumpScroll lineSpace loginShell mapAlert meta8 modifier
524 mouseWheelScrollPage name pastableTabs path perl_eval perl_ext_1 perl_ext_2 651 mouseWheelScrollPage name override_redirect pastableTabs path perl_eval
525 perl_lib pointerBlank pointerBlankDelay preeditType print_pipe pty_fd 652 perl_ext_1 perl_ext_2 perl_lib pointerBlank pointerBlankDelay
526 reverseVideo saveLines scrollBar scrollBar_align scrollBar_floating 653 preeditType print_pipe pty_fd reverseVideo saveLines scrollBar
527 scrollBar_right scrollBar_thickness scrollTtyKeypress scrollTtyOutput 654 scrollBar_align scrollBar_floating scrollBar_right scrollBar_thickness
528 scrollWithBuffer scrollstyle secondaryScreen secondaryScroll selectstyle 655 scrollTtyKeypress scrollTtyOutput scrollWithBuffer scrollstyle
656 secondaryScreen secondaryScroll selectstyle shade term_name title
529 shade term_name title transparent transparent_all tripleclickwords 657 transient_for transparent transparent_all tripleclickwords utmpInhibit
530 utmpInhibit visualBell 658 visualBell
531 659
532 $value = $term->x_resource ($pattern) 660 $value = $term->x_resource ($pattern)
533 Returns the X-Resource for the given pattern, excluding the program 661 Returns the X-Resource for the given pattern, excluding the program
534 or class name, i.e. "$term->x_resource ("boldFont")" should return 662 or class name, i.e. "$term->x_resource ("boldFont")" should return
535 the same value as used by this instance of rxvt-unicode. Returns 663 the same value as used by this instance of rxvt-unicode. Returns
539 there is only one resource database per display, and later 667 there is only one resource database per display, and later
540 invocations might return the wrong resources. 668 invocations might return the wrong resources.
541 669
542 $success = $term->parse_keysym ($keysym_spec, $command_string) 670 $success = $term->parse_keysym ($keysym_spec, $command_string)
543 Adds a keymap translation exactly as specified via a resource. See 671 Adds a keymap translation exactly as specified via a resource. See
544 the "keysym" resource in the urxvt(1) manpage. 672 the "keysym" resource in the rxvt(1) manpage.
545 673
546 $rend = $term->rstyle ([$new_rstyle]) 674 $rend = $term->rstyle ([$new_rstyle])
547 Return and optionally change the current rendition. Text that is 675 Return and optionally change the current rendition. Text that is
548 output by the terminal application will use this style. 676 output by the terminal application will use this style.
549 677
645 locale-dependent encoding. 773 locale-dependent encoding.
646 774
647 Normally its not a good idea to use this function, as programs might 775 Normally its not a good idea to use this function, as programs might
648 be confused by changes in cursor position or scrolling. Its useful 776 be confused by changes in cursor position or scrolling. Its useful
649 inside a "on_add_lines" hook, though. 777 inside a "on_add_lines" hook, though.
778
779 $term->scr_change_screen ($screen)
780 Switch to given screen - 0 primary, 1 secondary.
650 781
651 $term->cmd_parse ($octets) 782 $term->cmd_parse ($octets)
652 Similar to "scr_add_lines", but the argument must be in the 783 Similar to "scr_add_lines", but the argument must be in the
653 locale-specific encoding of the terminal and can contain command 784 locale-specific encoding of the terminal and can contain command
654 sequences (escape codes) that will be interpreted. 785 sequences (escape codes) that will be interpreted.
686 $terminal_columns = $term->ncol 817 $terminal_columns = $term->ncol
687 $has_focus = $term->focus 818 $has_focus = $term->focus
688 $is_mapped = $term->mapped 819 $is_mapped = $term->mapped
689 $max_scrollback = $term->saveLines 820 $max_scrollback = $term->saveLines
690 $nrow_plus_saveLines = $term->total_rows 821 $nrow_plus_saveLines = $term->total_rows
691 $lines_in_scrollback = $term->nsaved 822 $topmost_scrollback_row = $term->top_row
692 Return various integers describing terminal characteristics. 823 Return various integers describing terminal characteristics.
693 824
694 $x_display = $term->display_id 825 $x_display = $term->display_id
695 Return the DISPLAY used by rxvt-unicode. 826 Return the DISPLAY used by rxvt-unicode.
696 827
706 $modifiermask = $term->ModNumLockMask 837 $modifiermask = $term->ModNumLockMask
707 Return the modifier masks corresponding to the "ISO Level 3 Shift" 838 Return the modifier masks corresponding to the "ISO Level 3 Shift"
708 (often AltGr), the meta key (often Alt) and the num lock key, if 839 (often AltGr), the meta key (often Alt) and the num lock key, if
709 applicable. 840 applicable.
710 841
842 $screen = $term->current_screen
843 Returns the currently displayed screen (0 primary, 1 secondary).
844
711 $view_start = $term->view_start ([$newvalue]) 845 $view_start = $term->view_start ([$newvalue])
712 Returns the negative row number of the topmost line. Minimum value 846 Returns the row number of the topmost displayed line. Maximum value
713 is 0, which displays the normal terminal contents. Larger values 847 is 0, which displays the normal terminal contents. Lower values
714 scroll this many lines into the scrollback buffer. 848 scroll this many lines into the scrollback buffer.
715 849
716 $term->want_refresh 850 $term->want_refresh
717 Requests a screen refresh. At the next opportunity, rxvt-unicode 851 Requests a screen refresh. At the next opportunity, rxvt-unicode
718 will compare the on-screen display with its stored representation. 852 will compare the on-screen display with its stored representation.
731 line, starting at column $start_col (default 0), which is useful to 865 line, starting at column $start_col (default 0), which is useful to
732 replace only parts of a line. The font index in the rendition will 866 replace only parts of a line. The font index in the rendition will
733 automatically be updated. 867 automatically be updated.
734 868
735 $text is in a special encoding: tabs and wide characters that use 869 $text is in a special encoding: tabs and wide characters that use
736 more than one cell when displayed are padded with urxvt::NOCHAR 870 more than one cell when displayed are padded with $urxvt::NOCHAR
737 characters ("chr 65535"). Characters with combining characters and 871 characters. Characters with combining characters and other
738 other characters that do not fit into the normal tetx encoding will 872 characters that do not fit into the normal tetx encoding will be
739 be replaced with characters in the private use area. 873 replaced with characters in the private use area.
740 874
741 You have to obey this encoding when changing text. The advantage is 875 You have to obey this encoding when changing text. The advantage is
742 that "substr" and similar functions work on screen cells and not on 876 that "substr" and similar functions work on screen cells and not on
743 characters. 877 characters.
744 878
822 956
823 $term->ungrab 957 $term->ungrab
824 Calls XUngrab for the most recent grab. Is called automatically on 958 Calls XUngrab for the most recent grab. Is called automatically on
825 evaluation errors, as it is better to lose the grab in the error 959 evaluation errors, as it is better to lose the grab in the error
826 case as the session. 960 case as the session.
961
962 $atom = $term->XInternAtom ($atom_name[, $only_if_exists])
963 $atom_name = $term->XGetAtomName ($atom)
964 @atoms = $term->XListProperties ($window)
965 ($type,$format,$octets) = $term->XGetWindowProperty ($window, $property)
966 $term->XChangeWindowProperty ($window, $property, $type, $format,
967 $octets)
968 $term->XDeleteProperty ($window, $property)
969 $window = $term->DefaultRootWindow
970 $term->XReparentWindow ($window, $parent, [$x, $y])
971 $term->XMapWindow ($window)
972 $term->XUnmapWindow ($window)
973 $term->XMoveResizeWindow ($window, $x, $y, $width, $height)
974 ($x, $y, $child_window) = $term->XTranslateCoordinates ($src, $dst, $x,
975 $y)
976 $term->XChangeInput ($window, $add_events[, $del_events])
977 Various X or X-related functions. The $term object only serves as
978 the source of the display, otherwise those functions map
979 more-or-less directory onto the X functions of the same name.
827 980
828 The "urxvt::popup" Class 981 The "urxvt::popup" Class
829 $popup->add_title ($title) 982 $popup->add_title ($title)
830 Adds a non-clickable title to the popup. 983 Adds a non-clickable title to the popup.
831 984
879 $timer = $timer->start 1032 $timer = $timer->start
880 Start the timer. 1033 Start the timer.
881 1034
882 $timer = $timer->start ($tstamp) 1035 $timer = $timer->start ($tstamp)
883 Set the event trigger time to $tstamp and start the timer. 1036 Set the event trigger time to $tstamp and start the timer.
1037
1038 $timer = $timer->after ($delay)
1039 Like "start", but sets the expiry timer to c<urxvt::NOW + $delay>.
884 1040
885 $timer = $timer->stop 1041 $timer = $timer->stop
886 Stop the timer. 1042 Stop the timer.
887 1043
888 The "urxvt::iow" Class 1044 The "urxvt::iow" Class
920 Start watching for requested events on the given handle. 1076 Start watching for requested events on the given handle.
921 1077
922 $iow = $iow->stop 1078 $iow = $iow->stop
923 Stop watching for events on the given filehandle. 1079 Stop watching for events on the given filehandle.
924 1080
1081 The "urxvt::iw" Class
1082 This class implements idle watchers, that get called automatically when
1083 the process is idle. They should return as fast as possible, after doing
1084 some useful work.
1085
1086 $iw = new urxvt::iw
1087 Create a new idle watcher object in stopped state.
1088
1089 $iw = $iw->cb (sub { my ($iw) = @_; ... })
1090 Set the callback to be called when the watcher triggers.
1091
1092 $timer = $timer->start
1093 Start the watcher.
1094
1095 $timer = $timer->stop
1096 Stop the watcher.
1097
1098 The "urxvt::pw" Class
1099 This class implements process watchers. They create an event whenever a
1100 process exits, after which they stop automatically.
1101
1102 my $pid = fork;
1103 ...
1104 $term->{pw} = urxvt::pw
1105 ->new
1106 ->start ($pid)
1107 ->cb (sub {
1108 my ($pw, $exit_status) = @_;
1109 ...
1110 });
1111
1112 $pw = new urxvt::pw
1113 Create a new process watcher in stopped state.
1114
1115 $pw = $pw->cb (sub { my ($pw, $exit_status) = @_; ... })
1116 Set the callback to be called when the timer triggers.
1117
1118 $pw = $timer->start ($pid)
1119 Tells the wqtcher to start watching for process $pid.
1120
1121 $pw = $pw->stop
1122 Stop the watcher.
1123
925ENVIRONMENT 1124ENVIRONMENT
926 URXVT_PERL_VERBOSITY 1125 URXVT_PERL_VERBOSITY
927 This variable controls the verbosity level of the perl extension. Higher 1126 This variable controls the verbosity level of the perl extension. Higher
928 numbers indicate more verbose output. 1127 numbers indicate more verbose output.
929 1128

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines