… | |
… | |
22 | <li><a href="#hooks">Hooks</a></li> |
22 | <li><a href="#hooks">Hooks</a></li> |
23 | <li><a href="#variables_in_the_urxvt_package">Variables in the <code>urxvt</code> Package</a></li> |
23 | <li><a href="#variables_in_the_urxvt_package">Variables in the <code>urxvt</code> Package</a></li> |
24 | <li><a href="#functions_in_the_urxvt_package">Functions in the <code>urxvt</code> Package</a></li> |
24 | <li><a href="#functions_in_the_urxvt_package">Functions in the <code>urxvt</code> Package</a></li> |
25 | <li><a href="#rendition">RENDITION</a></li> |
25 | <li><a href="#rendition">RENDITION</a></li> |
26 | <li><a href="#the_urxvt__term_class">The <code>urxvt::term</code> Class</a></li> |
26 | <li><a href="#the_urxvt__term_class">The <code>urxvt::term</code> Class</a></li> |
|
|
27 | <li><a href="#the_urxvt__popup_class">The <code>urxvt::popup</code> Class</a></li> |
27 | <li><a href="#the_urxvt__timer_class">The <code>urxvt::timer</code> Class</a></li> |
28 | <li><a href="#the_urxvt__timer_class">The <code>urxvt::timer</code> Class</a></li> |
28 | <li><a href="#the_urxvt__iow_class">The <code>urxvt::iow</code> Class</a></li> |
29 | <li><a href="#the_urxvt__iow_class">The <code>urxvt::iow</code> Class</a></li> |
29 | </ul> |
30 | </ul> |
30 | |
31 | |
31 | <li><a href="#environment">ENVIRONMENT</a></li> |
32 | <li><a href="#environment">ENVIRONMENT</a></li> |
… | |
… | |
61 | rxvt --perl-lib $HOME -pe grab_test</pre> |
62 | rxvt --perl-lib $HOME -pe grab_test</pre> |
62 | <p> |
63 | <p> |
63 | </p> |
64 | </p> |
64 | <hr /> |
65 | <hr /> |
65 | <h1><a name="description">DESCRIPTION</a></h1> |
66 | <h1><a name="description">DESCRIPTION</a></h1> |
66 | <p>Everytime a terminal object gets created, scripts specified via the |
67 | <p>Everytime a terminal object gets created, extension scripts specified via |
67 | <code>perl</code> resource are loaded and associated with it.</p> |
68 | the <code>perl</code> resource are loaded and associated with it.</p> |
68 | <p>Scripts are compiled in a 'use strict' and 'use utf8' environment, and |
69 | <p>Scripts are compiled in a 'use strict' and 'use utf8' environment, and |
69 | thus must be encoded as UTF-8.</p> |
70 | thus must be encoded as UTF-8.</p> |
70 | <p>Each script will only ever be loaded once, even in rxvtd, where |
71 | <p>Each script will only ever be loaded once, even in rxvtd, where |
71 | scripts will be shared (but not enabled) for all terminals.</p> |
72 | scripts will be shared (but not enabled) for all terminals.</p> |
72 | <p> |
73 | <p> |
… | |
… | |
169 | </p> |
170 | </p> |
170 | <h2><a name="hooks">Hooks</a></h2> |
171 | <h2><a name="hooks">Hooks</a></h2> |
171 | <p>The following subroutines can be declared in extension files, and will be |
172 | <p>The following subroutines can be declared in extension files, and will be |
172 | called whenever the relevant event happens.</p> |
173 | called whenever the relevant event happens.</p> |
173 | <p>The first argument passed to them is an object private to each terminal |
174 | <p>The first argument passed to them is an object private to each terminal |
174 | and extension package. You can call all <code>urxvt::term</code> methods on it, but |
175 | and extension package. You can call all <code>urxvt::term</code> methods on it, but |
175 | its not a real <code>urxvt::term</code> object. Instead, the real <code>urxvt::term</code> |
176 | its not a real <code>urxvt::term</code> object. Instead, the real <code>urxvt::term</code> |
176 | object that is shared between all packages is stored in the <code>term</code> |
177 | object that is shared between all packages is stored in the <code>term</code> |
177 | member.</p> |
178 | member. It is, however, blessed intot he package of the extension script, |
|
|
179 | so for all practical purposes you can treat an extension script as a class.</p> |
178 | <p>All of them must return a boolean value. If it is true, then the event |
180 | <p>All of them must return a boolean value. If it is true, then the event |
179 | counts as being <em>consumed</em>, and the invocation of other hooks is skipped, |
181 | counts as being <em>consumed</em>, and the invocation of other hooks is skipped, |
180 | and the relevant action might not be carried out by the C++ code.</p> |
182 | and the relevant action might not be carried out by the C++ code.</p> |
181 | <p>When in doubt, return a false value (preferably <code>()</code>).</p> |
183 | <p>When in doubt, return a false value (preferably <code>()</code>).</p> |
182 | <dl> |
184 | <dl> |
… | |
… | |
236 | should extend the selection itelf and return true to suppress the built-in |
238 | should extend the selection itelf and return true to suppress the built-in |
237 | processing. |
239 | processing. |
238 | </dd> |
240 | </dd> |
239 | <dd> |
241 | <dd> |
240 | <p>See the <em>selection</em> example extension.</p> |
242 | <p>See the <em>selection</em> example extension.</p> |
241 | </dd> |
|
|
242 | <p></p> |
|
|
243 | <dt><strong><a name="item_on_focus_in__24term">on_focus_in $term</a></strong><br /> |
|
|
244 | </dt> |
|
|
245 | <dd> |
|
|
246 | Called whenever the window gets the keyboard focus, before urxvt does |
|
|
247 | focus in processing. |
|
|
248 | </dd> |
|
|
249 | <p></p> |
|
|
250 | <dt><strong><a name="item_on_focus_out__24term">on_focus_out $term</a></strong><br /> |
|
|
251 | </dt> |
|
|
252 | <dd> |
|
|
253 | Called wheneever the window loses keyboard focus, before urxvt does focus |
|
|
254 | out processing. |
|
|
255 | </dd> |
243 | </dd> |
256 | <p></p> |
244 | <p></p> |
257 | <dt><strong><a name="item_on_view_change__24term_2c__24offset">on_view_change $term, $offset</a></strong><br /> |
245 | <dt><strong><a name="item_on_view_change__24term_2c__24offset">on_view_change $term, $offset</a></strong><br /> |
258 | </dt> |
246 | </dt> |
259 | <dd> |
247 | <dd> |
… | |
… | |
346 | Called whenever the user presses a key combination that has a |
334 | Called whenever the user presses a key combination that has a |
347 | <code>perl:string</code> action bound to it (see description of the <strong>keysym</strong> |
335 | <code>perl:string</code> action bound to it (see description of the <strong>keysym</strong> |
348 | resource in the <code>rxvt(1)</code> manpage). |
336 | resource in the <code>rxvt(1)</code> manpage). |
349 | </dd> |
337 | </dd> |
350 | <p></p> |
338 | <p></p> |
|
|
339 | <dt><strong><a name="item_on_focus_in__24term">on_focus_in $term</a></strong><br /> |
|
|
340 | </dt> |
|
|
341 | <dd> |
|
|
342 | Called whenever the window gets the keyboard focus, before rxvt-unicode |
|
|
343 | does focus in processing. |
|
|
344 | </dd> |
|
|
345 | <p></p> |
|
|
346 | <dt><strong><a name="item_on_focus_out__24term">on_focus_out $term</a></strong><br /> |
|
|
347 | </dt> |
|
|
348 | <dd> |
|
|
349 | Called wheneever the window loses keyboard focus, before rxvt-unicode does |
|
|
350 | focus out processing. |
|
|
351 | </dd> |
|
|
352 | <p></p> |
351 | <dt><strong><a name="item_on_key_press__24term_2c__24event_2c__24octets">on_key_press $term, $event, $octets</a></strong><br /> |
353 | <dt><strong><a name="item_on_key_press__24term_2c__24event_2c__24octets">on_key_press $term, $event, $octets</a></strong><br /> |
352 | </dt> |
354 | </dt> |
353 | <dt><strong><a name="item_on_key_release__24term_2c__24event">on_key_release $term, $event</a></strong><br /> |
355 | <dt><strong><a name="item_on_key_release__24term_2c__24event">on_key_release $term, $event</a></strong><br /> |
354 | </dt> |
356 | </dt> |
355 | <dt><strong><a name="item_on_button_press__24term_2c__24event">on_button_press $term, $event</a></strong><br /> |
357 | <dt><strong><a name="item_on_button_press__24term_2c__24event">on_button_press $term, $event</a></strong><br /> |
356 | </dt> |
358 | </dt> |
357 | <dt><strong><a name="item_on_button_release__24term_2c__24event">on_button_release $term, $event</a></strong><br /> |
359 | <dt><strong><a name="item_on_button_release__24term_2c__24event">on_button_release $term, $event</a></strong><br /> |
358 | </dt> |
360 | </dt> |
359 | <dt><strong><a name="item_on_motion_notify__24term_2c__24event">on_motion_notify $term, $event</a></strong><br /> |
361 | <dt><strong><a name="item_on_motion_notify__24term_2c__24event">on_motion_notify $term, $event</a></strong><br /> |
|
|
362 | </dt> |
|
|
363 | <dt><strong><a name="item_on_map_notify__24term_2c__24event">on_map_notify $term, $event</a></strong><br /> |
|
|
364 | </dt> |
|
|
365 | <dt><strong><a name="item_on_unmap_notify__24term_2c__24event">on_unmap_notify $term, $event</a></strong><br /> |
360 | </dt> |
366 | </dt> |
361 | <dd> |
367 | <dd> |
362 | Called whenever the corresponding X event is received for the terminal If |
368 | Called whenever the corresponding X event is received for the terminal If |
363 | the hook returns true, then the even will be ignored by rxvt-unicode. |
369 | the hook returns true, then the even will be ignored by rxvt-unicode. |
364 | </dd> |
370 | </dd> |
… | |
… | |
422 | <p></p> |
428 | <p></p> |
423 | <dt><strong><a name="item__24time__3d_urxvt_3a_3anow">$time = urxvt::NOW</a></strong><br /> |
429 | <dt><strong><a name="item__24time__3d_urxvt_3a_3anow">$time = urxvt::NOW</a></strong><br /> |
424 | </dt> |
430 | </dt> |
425 | <dd> |
431 | <dd> |
426 | Returns the ``current time'' (as per the event loop). |
432 | Returns the ``current time'' (as per the event loop). |
|
|
433 | </dd> |
|
|
434 | <p></p> |
|
|
435 | <dt><strong><a name="item_urxvt_3a_3acurrenttime">urxvt::CurrentTime</a></strong><br /> |
|
|
436 | </dt> |
|
|
437 | <dt><strong><a name="item_urxvt_3a_3ashiftmask_2c_lockmask_2c_controlmask_2c">urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, |
|
|
438 | Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, |
|
|
439 | Button4Mask, Button5Mask, AnyModifier</a></strong><br /> |
|
|
440 | </dt> |
|
|
441 | <dd> |
|
|
442 | Various constants for use in X events. |
427 | </dd> |
443 | </dd> |
428 | <p></p></dl> |
444 | <p></p></dl> |
429 | <p> |
445 | <p> |
430 | </p> |
446 | </p> |
431 | <h2><a name="rendition">RENDITION</a></h2> |
447 | <h2><a name="rendition">RENDITION</a></h2> |
… | |
… | |
496 | </dt> |
512 | </dt> |
497 | <dd> |
513 | <dd> |
498 | Destroy the terminal object (close the window, free resources etc.). |
514 | Destroy the terminal object (close the window, free resources etc.). |
499 | </dd> |
515 | </dd> |
500 | <p></p> |
516 | <p></p> |
|
|
517 | <dt><strong><a name="item_option">$isset = $term->option ($optval[, $set])</a></strong><br /> |
|
|
518 | </dt> |
|
|
519 | <dd> |
|
|
520 | Returns true if the option specified by <code>$optval</code> is enabled, and |
|
|
521 | optionally change it. All option values are stored by name in the hash |
|
|
522 | <code>%urxvt::OPTION</code>. Options not enabled in this binary are not in the hash. |
|
|
523 | </dd> |
|
|
524 | <dd> |
|
|
525 | <p>Here is a a likely non-exhaustive list of option names, please see the |
|
|
526 | source file <em>/src/optinc.h</em> to see the actual list:</p> |
|
|
527 | </dd> |
|
|
528 | <dd> |
|
|
529 | <pre> |
|
|
530 | borderLess console cursorBlink cursorUnderline hold iconic insecure |
|
|
531 | intensityStyles jumpScroll loginShell mapAlert meta8 mouseWheelScrollPage |
|
|
532 | pastableTabs pointerBlank reverseVideo scrollBar scrollBar_floating |
|
|
533 | scrollBar_right scrollTtyKeypress scrollTtyOutput scrollWithBuffer |
|
|
534 | secondaryScreen secondaryScroll skipBuiltinGlyphs transparent |
|
|
535 | tripleclickwords utmpInhibit visualBell</pre> |
|
|
536 | </dd> |
|
|
537 | <p></p> |
501 | <dt><strong><a name="item_resource">$value = $term->resource ($name[, $newval])</a></strong><br /> |
538 | <dt><strong><a name="item_resource">$value = $term->resource ($name[, $newval])</a></strong><br /> |
502 | </dt> |
539 | </dt> |
503 | <dd> |
540 | <dd> |
504 | Returns the current resource value associated with a given name and |
541 | Returns the current resource value associated with a given name and |
505 | optionally sets a new value. Setting values is most useful in the <code>init</code> |
542 | optionally sets a new value. Setting values is most useful in the <code>init</code> |
… | |
… | |
519 | <p>Please note that resource strings will currently only be freed when the |
556 | <p>Please note that resource strings will currently only be freed when the |
520 | terminal is destroyed, so changing options frequently will eat memory.</p> |
557 | terminal is destroyed, so changing options frequently will eat memory.</p> |
521 | </dd> |
558 | </dd> |
522 | <dd> |
559 | <dd> |
523 | <p>Here is a a likely non-exhaustive list of resource names, not all of which |
560 | <p>Here is a a likely non-exhaustive list of resource names, not all of which |
524 | are supported in every build, please see the source to see the actual |
561 | are supported in every build, please see the source file <em>/src/rsinc.h</em> |
525 | list:</p> |
562 | to see the actual list:</p> |
526 | </dd> |
563 | </dd> |
527 | <dd> |
564 | <dd> |
528 | <pre> |
565 | <pre> |
529 | answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont |
566 | answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont |
530 | borderLess color cursorBlink cursorUnderline cutchars delete_key |
567 | borderLess color cursorBlink cursorUnderline cutchars delete_key |
… | |
… | |
640 | </dt> |
677 | </dt> |
641 | <dd> |
678 | <dd> |
642 | If hidden, display the overlay again. |
679 | If hidden, display the overlay again. |
643 | </dd> |
680 | </dd> |
644 | <p></p></dl> |
681 | <p></p></dl> |
|
|
682 | <dt><strong><a name="item_popup">$popup = $term->popup ($event)</a></strong><br /> |
|
|
683 | </dt> |
|
|
684 | <dd> |
|
|
685 | Creates a new <code>urxvt::popup</code> object that implements a popup menu. The |
|
|
686 | <code>$event</code> <em>must</em> be the event causing the menu to pop up (a button event, |
|
|
687 | currently). |
|
|
688 | </dd> |
|
|
689 | <p></p> |
645 | <dt><strong><a name="item_strwidth">$cellwidth = $term->strwidth ($string)</a></strong><br /> |
690 | <dt><strong><a name="item_strwidth">$cellwidth = $term->strwidth ($string)</a></strong><br /> |
646 | </dt> |
691 | </dt> |
647 | <dd> |
692 | <dd> |
648 | Returns the number of screen-cells this string would need. Correctly |
693 | Returns the number of screen-cells this string would need. Correctly |
649 | accounts for wide and combining characters. |
694 | accounts for wide and combining characters. |
… | |
… | |
727 | </dt> |
772 | </dt> |
728 | <dt><strong><a name="item_nsaved">$lines_in_scrollback = $term->nsaved</a></strong><br /> |
773 | <dt><strong><a name="item_nsaved">$lines_in_scrollback = $term->nsaved</a></strong><br /> |
729 | </dt> |
774 | </dt> |
730 | <dd> |
775 | <dd> |
731 | Return various integers describing terminal characteristics. |
776 | Return various integers describing terminal characteristics. |
|
|
777 | </dd> |
|
|
778 | <p></p> |
|
|
779 | <dt><strong><a name="item_modlevel3mask">$modifiermask = $term->ModLevel3Mask</a></strong><br /> |
|
|
780 | </dt> |
|
|
781 | <dt><strong><a name="item_modmetamask">$modifiermask = $term->ModMetaMask</a></strong><br /> |
|
|
782 | </dt> |
|
|
783 | <dt><strong><a name="item_modnumlockmask">$modifiermask = $term->ModNumLockMask</a></strong><br /> |
|
|
784 | </dt> |
|
|
785 | <dd> |
|
|
786 | Return the modifier masks corresponding to the ``ISO Level 3 Shift'' (often |
|
|
787 | AltGr), the meta key (often Alt) and the num lock key, if applicable. |
732 | </dd> |
788 | </dd> |
733 | <p></p> |
789 | <p></p> |
734 | <dt><strong><a name="item_view_start">$view_start = $term->view_start ([$newvalue])</a></strong><br /> |
790 | <dt><strong><a name="item_view_start">$view_start = $term->view_start ([$newvalue])</a></strong><br /> |
735 | </dt> |
791 | </dt> |
736 | <dd> |
792 | <dd> |
… | |
… | |
874 | <dd> |
930 | <dd> |
875 | Converts rxvt-unicodes text reprsentation into a perl string. See |
931 | Converts rxvt-unicodes text reprsentation into a perl string. See |
876 | <a href="#item_row_t"><code>$term->ROW_t</code></a> for details. |
932 | <a href="#item_row_t"><code>$term->ROW_t</code></a> for details. |
877 | </dd> |
933 | </dd> |
878 | <p></p></dl> |
934 | <p></p></dl> |
|
|
935 | <p> |
|
|
936 | </p> |
|
|
937 | <h2><a name="the_urxvt__popup_class">The <code>urxvt::popup</code> Class</a></h2> |
879 | <p> |
938 | <p> |
880 | </p> |
939 | </p> |
881 | <h2><a name="the_urxvt__timer_class">The <code>urxvt::timer</code> Class</a></h2> |
940 | <h2><a name="the_urxvt__timer_class">The <code>urxvt::timer</code> Class</a></h2> |
882 | <p>This class implements timer watchers/events. Time is represented as a |
941 | <p>This class implements timer watchers/events. Time is represented as a |
883 | fractional number of seconds since the epoch. Example:</p> |
942 | fractional number of seconds since the epoch. Example:</p> |