… | |
… | |
44 | |
44 | |
45 | URxvt.keysym.C-M-r: perl:selection:rot13 |
45 | URxvt.keysym.C-M-r: perl:selection:rot13 |
46 | |
46 | |
47 | digital-clock |
47 | digital-clock |
48 | Displays a digital clock using the built-in overlay. |
48 | Displays a digital clock using the built-in overlay. |
|
|
49 | |
|
|
50 | mark-urls |
|
|
51 | Uses per-line display filtering ("on_line_update") to underline |
|
|
52 | urls. |
|
|
53 | |
|
|
54 | block-graphics-to-ascii |
|
|
55 | A not very useful example of filtering all text output to the |
|
|
56 | terminal, by replacing all line-drawing characters (U+2500 .. |
|
|
57 | U+259F) by a similar-looking ascii character. |
49 | |
58 | |
50 | example-refresh-hooks |
59 | example-refresh-hooks |
51 | Displays a very simple digital clock in the upper right corner of |
60 | Displays a very simple digital clock in the upper right corner of |
52 | the window. Illustrates overwriting the refresh callbacks to create |
61 | the window. Illustrates overwriting the refresh callbacks to create |
53 | your own overlays or changes. |
62 | your own overlays or changes. |
… | |
… | |
62 | When objects are destroyed on the C++ side, the perl object hashes are |
71 | When objects are destroyed on the C++ side, the perl object hashes are |
63 | emptied, so its best to store related objects such as time watchers and |
72 | emptied, so its best to store related objects such as time watchers and |
64 | the like inside the terminal object so they get destroyed as soon as the |
73 | the like inside the terminal object so they get destroyed as soon as the |
65 | terminal is destroyed. |
74 | terminal is destroyed. |
66 | |
75 | |
|
|
76 | Argument names also often indicate the type of a parameter. Here are |
|
|
77 | some hints on what they mean: |
|
|
78 | |
|
|
79 | $text |
|
|
80 | Rxvt-unicodes special way of encoding text, where one "unicode" |
|
|
81 | character always represents one screen cell. See row_t for a |
|
|
82 | discussion of this format. |
|
|
83 | |
|
|
84 | $string |
|
|
85 | A perl text string, with an emphasis on *text*. It can store all |
|
|
86 | unicode characters and is to be distinguished with text encoded in a |
|
|
87 | specific encoding (often locale-specific) and binary data. |
|
|
88 | |
|
|
89 | $octets |
|
|
90 | Either binary data or - more common - a text string encoded in a |
|
|
91 | locale-specific way. |
|
|
92 | |
67 | Hooks |
93 | Hooks |
68 | The following subroutines can be declared in loaded scripts, and will be |
94 | The following subroutines can be declared in extension files, and will |
69 | called whenever the relevant event happens. |
95 | be called whenever the relevant event happens. |
70 | |
96 | |
71 | The first argument passed to them is an object private to each terminal |
97 | The first argument passed to them is an object private to each terminal |
72 | and extension package. You can call all "urxvt::term" methods on it, but |
98 | and extension package. You can call all "urxvt::term" methods on it, but |
73 | its not a real "urxvt::term" object. Instead, the real "urxvt::term" |
99 | its not a real "urxvt::term" object. Instead, the real "urxvt::term" |
74 | object that is shared between all packages is stored in the "term" |
100 | object that is shared between all packages is stored in the "term" |
… | |
… | |
81 | |
107 | |
82 | When in doubt, return a false value (preferably "()"). |
108 | When in doubt, return a false value (preferably "()"). |
83 | |
109 | |
84 | on_init $term |
110 | on_init $term |
85 | Called after a new terminal object has been initialized, but before |
111 | Called after a new terminal object has been initialized, but before |
86 | windows are created or the command gets run. |
112 | windows are created or the command gets run. Most methods are unsafe |
|
|
113 | to call or deliver senseless data, as terminal size and other |
|
|
114 | characteristics have not yet been determined. You can safely query |
|
|
115 | and change resources, though. |
87 | |
116 | |
88 | on_reset $term |
117 | on_reset $term |
89 | Called after the screen is "reset" for any reason, such as resizing |
118 | Called after the screen is "reset" for any reason, such as resizing |
90 | or control sequences. Here is where you can react on changes to |
119 | or control sequences. Here is where you can react on changes to |
91 | size-related variables. |
120 | size-related variables. |
… | |
… | |
155 | |
184 | |
156 | Be careful not ever to trust (in a security sense) the data you |
185 | Be careful not ever to trust (in a security sense) the data you |
157 | receive, as its source can not easily be controleld (e-mail content, |
186 | receive, as its source can not easily be controleld (e-mail content, |
158 | messages from other users on the same system etc.). |
187 | messages from other users on the same system etc.). |
159 | |
188 | |
|
|
189 | on_add_lines $term, $string |
|
|
190 | Called whenever text is about to be output, with the text as |
|
|
191 | argument. You can filter/change and output the text yourself by |
|
|
192 | returning a true value and calling "$term->scr_add_lines" yourself. |
|
|
193 | Please note that this might be very slow, however, as your hook is |
|
|
194 | called for all text being output. |
|
|
195 | |
|
|
196 | on_line_update $term, $row |
|
|
197 | Called whenever a line was updated or changed. Can be used to filter |
|
|
198 | screen output (e.g. underline urls or other useless stuff). Only |
|
|
199 | lines that are being shown will be filtered, and, due to performance |
|
|
200 | reasons, not always immediately. |
|
|
201 | |
|
|
202 | The row number is always the topmost row of the line if the line |
|
|
203 | spans multiple rows. |
|
|
204 | |
|
|
205 | Please note that, if you change the line, then the hook might get |
|
|
206 | called later with the already-modified line (e.g. if unrelated parts |
|
|
207 | change), so you cannot just toggle rendition bits, but only set |
|
|
208 | them. |
|
|
209 | |
160 | on_refresh_begin $term |
210 | on_refresh_begin $term |
161 | Called just before the screen gets redrawn. Can be used for overlay |
211 | Called just before the screen gets redrawn. Can be used for overlay |
162 | or similar effects by modify terminal contents in refresh_begin, and |
212 | or similar effects by modify terminal contents in refresh_begin, and |
163 | restoring them in refresh_end. The built-in overlay and selection |
213 | restoring them in refresh_end. The built-in overlay and selection |
164 | display code is run after this hook, and takes precedence. |
214 | display code is run after this hook, and takes precedence. |
… | |
… | |
169 | on_keyboard_command $term, $string |
219 | on_keyboard_command $term, $string |
170 | Called whenever the user presses a key combination that has a |
220 | Called whenever the user presses a key combination that has a |
171 | "perl:string" action bound to it (see description of the keysym |
221 | "perl:string" action bound to it (see description of the keysym |
172 | resource in the rxvt(1) manpage). |
222 | resource in the rxvt(1) manpage). |
173 | |
223 | |
|
|
224 | on_key_press $term, $event, $octets |
|
|
225 | on_key_release $term, $event |
|
|
226 | on_button_press $term, $event |
|
|
227 | on_button_release $term, $event |
|
|
228 | on_motion_notify $term, $event |
|
|
229 | Called whenever the corresponding X event is received for the |
|
|
230 | terminal If the hook returns true, then the even will be ignored by |
|
|
231 | rxvt-unicode. |
|
|
232 | |
|
|
233 | The event is a hash with most values as named by Xlib (see the |
|
|
234 | XEvent manpage), with the additional members "row" and "col", which |
|
|
235 | are the row and column under the mouse cursor. |
|
|
236 | |
|
|
237 | "on_key_press" additionally receives the string rxvt-unicode would |
|
|
238 | output, if any, in locale-specific encoding. |
|
|
239 | |
|
|
240 | subwindow. |
|
|
241 | |
174 | Variables in the "urxvt" Package |
242 | Variables in the "urxvt" Package |
175 | $urxvt::TERM |
243 | $urxvt::TERM |
176 | The current terminal. Whenever a callback/Hook is bein executed, |
|
|
177 | this variable stores the current "urxvt::term" object. |
244 | The current terminal. This variable stores the current "urxvt::term" |
|
|
245 | object, whenever a callback/hook is executing. |
178 | |
246 | |
179 | Functions in the "urxvt" Package |
247 | Functions in the "urxvt" Package |
|
|
248 | $term = new urxvt [arg...] |
|
|
249 | Creates a new terminal, very similar as if you had started it with |
|
|
250 | "system $binfile, arg...". Croaks (and probably outputs an error |
|
|
251 | message) if the new instance couldn't be created. Returns "undef" if |
|
|
252 | the new instance didn't initialise perl, and the terminal object |
|
|
253 | otherwise. The "init" and "start" hooks will be called during the |
|
|
254 | call. |
|
|
255 | |
180 | urxvt::fatal $errormessage |
256 | urxvt::fatal $errormessage |
181 | Fatally aborts execution with the given error message. Avoid at all |
257 | Fatally aborts execution with the given error message. Avoid at all |
182 | costs! The only time this is acceptable is when the terminal process |
258 | costs! The only time this is acceptable is when the terminal process |
183 | starts up. |
259 | starts up. |
184 | |
260 | |
… | |
… | |
231 | |
307 | |
232 | $rend = urxvt::SET_CUSTOM ($rend, $new_value) |
308 | $rend = urxvt::SET_CUSTOM ($rend, $new_value) |
233 | Change the custom value. |
309 | Change the custom value. |
234 | |
310 | |
235 | The "urxvt::term" Class |
311 | The "urxvt::term" Class |
|
|
312 | $term->destroy |
|
|
313 | Destroy the terminal object (close the window, free resources etc.). |
|
|
314 | |
236 | $value = $term->resource ($name[, $newval]) |
315 | $value = $term->resource ($name[, $newval]) |
237 | Returns the current resource value associated with a given name and |
316 | Returns the current resource value associated with a given name and |
238 | optionally sets a new value. Setting values is most useful in the |
317 | optionally sets a new value. Setting values is most useful in the |
239 | "init" hook. Unset resources are returned and accepted as "undef". |
318 | "init" hook. Unset resources are returned and accepted as "undef". |
240 | |
319 | |
… | |
… | |
257 | answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont |
336 | answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont |
258 | borderLess color cursorBlink cursorUnderline cutchars delete_key |
337 | borderLess color cursorBlink cursorUnderline cutchars delete_key |
259 | display_name embed ext_bwidth fade font geometry hold iconName |
338 | display_name embed ext_bwidth fade font geometry hold iconName |
260 | imFont imLocale inputMethod insecure int_bwidth intensityStyles |
339 | imFont imLocale inputMethod insecure int_bwidth intensityStyles |
261 | italicFont jumpScroll lineSpace loginShell mapAlert menu meta8 modifier |
340 | italicFont jumpScroll lineSpace loginShell mapAlert menu meta8 modifier |
262 | mouseWheelScrollPage name pastableTabs path perl_eval perl_ext |
341 | mouseWheelScrollPage name pastableTabs path perl_eval perl_ext_1 perl_ext_2 |
263 | perl_lib pointerBlank pointerBlankDelay preeditType print_pipe pty_fd |
342 | perl_lib pointerBlank pointerBlankDelay preeditType print_pipe pty_fd |
264 | reverseVideo saveLines scrollBar scrollBar_align scrollBar_floating |
343 | reverseVideo saveLines scrollBar scrollBar_align scrollBar_floating |
265 | scrollBar_right scrollBar_thickness scrollTtyKeypress scrollTtyOutput |
344 | scrollBar_right scrollBar_thickness scrollTtyKeypress scrollTtyOutput |
266 | scrollWithBuffer scrollstyle secondaryScreen secondaryScroll selectstyle |
345 | scrollWithBuffer scrollstyle secondaryScreen secondaryScroll selectstyle |
267 | shade term_name title transparent transparent_all tripleclickwords |
346 | shade term_name title transparent transparent_all tripleclickwords |
268 | utmpInhibit visualBell |
347 | utmpInhibit visualBell |
269 | |
348 | |
|
|
349 | $rend = $term->rstyle ([$new_rstyle]) |
|
|
350 | Return and optionally change the current rendition. Text that is |
|
|
351 | output by the terminal application will use this style. |
|
|
352 | |
|
|
353 | ($row, $col) = $term->screen_cur ([$row, $col]) |
|
|
354 | Return the current coordinates of the text cursor position and |
|
|
355 | optionally set it (which is usually bad as applications don't expect |
|
|
356 | that). |
|
|
357 | |
270 | ($row, $col) = $term->selection_mark ([$row, $col]) |
358 | ($row, $col) = $term->selection_mark ([$row, $col]) |
271 | ($row, $col) = $term->selection_beg ([$row, $col]) |
359 | ($row, $col) = $term->selection_beg ([$row, $col]) |
272 | ($row, $col) = $term->selection_end ([$row, $col]) |
360 | ($row, $col) = $term->selection_end ([$row, $col]) |
273 | Return the current values of the selection mark, begin or end |
361 | Return the current values of the selection mark, begin or end |
274 | positions, and optionally set them to new values. |
362 | positions, and optionally set them to new values. |
… | |
… | |
280 | $oldtext = $term->selection ([$newtext]) |
368 | $oldtext = $term->selection ([$newtext]) |
281 | Return the current selection text and optionally replace it by |
369 | Return the current selection text and optionally replace it by |
282 | $newtext. |
370 | $newtext. |
283 | |
371 | |
284 | #=item $term->overlay ($x, $y, $text) # #Create a simple multi-line |
372 | #=item $term->overlay ($x, $y, $text) # #Create a simple multi-line |
285 | overlay box. See the next method for details. # #=cut |
373 | overlay box. See the next method for details. # #=cut # #sub |
286 | |
|
|
287 | sub urxvt::term::scr_overlay { die; my ($self, $x, $y, $text) = @_; |
374 | urxvt::term::scr_overlay { # my ($self, $x, $y, $text) = @_; # # my |
288 | |
375 | @lines = split /\n/, $text; # # my $w = 0; # for (map |
289 | my @lines = split /\n/, $text; |
376 | $self->strwidth ($_), @lines) { # $w = $_ if $w < $_; # } # # |
290 | |
|
|
291 | my $w = 0; |
|
|
292 | for (map $self->strwidth ($_), @lines) { |
|
|
293 | $w = $_ if $w < $_; |
|
|
294 | } |
|
|
295 | |
|
|
296 | $self->scr_overlay_new ($x, $y, $w, scalar @lines); |
377 | $self->scr_overlay_new ($x, $y, $w, scalar @lines); # |
297 | $self->scr_overlay_set (0, $_, $lines[$_]) for 0.. $#lines; |
378 | $self->scr_overlay_set (0, $_, $lines[$_]) for 0.. $#lines; #} |
298 | } |
|
|
299 | |
379 | |
300 | $term->overlay ($x, $y, $width, $height[, $rstyle[, $border]]) |
380 | $term->overlay ($x, $y, $width, $height[, $rstyle[, $border]]) |
301 | Create a new (empty) overlay at the given position with the given |
381 | Create a new (empty) overlay at the given position with the given |
302 | width/height. $rstyle defines the initial rendition style (default: |
382 | width/height. $rstyle defines the initial rendition style (default: |
303 | "OVERLAY_RSTYLE"). |
383 | "OVERLAY_RSTYLE"). |
… | |
… | |
322 | If visible, hide the overlay, but do not destroy it. |
402 | If visible, hide the overlay, but do not destroy it. |
323 | |
403 | |
324 | $overlay->show |
404 | $overlay->show |
325 | If hidden, display the overlay again. |
405 | If hidden, display the overlay again. |
326 | |
406 | |
327 | $cellwidth = $term->strwidth $string |
407 | $cellwidth = $term->strwidth ($string) |
328 | Returns the number of screen-cells this string would need. Correctly |
408 | Returns the number of screen-cells this string would need. Correctly |
329 | accounts for wide and combining characters. |
409 | accounts for wide and combining characters. |
330 | |
410 | |
331 | $octets = $term->locale_encode $string |
411 | $octets = $term->locale_encode ($string) |
332 | Convert the given text string into the corresponding locale |
412 | Convert the given text string into the corresponding locale |
333 | encoding. |
413 | encoding. |
334 | |
414 | |
335 | $string = $term->locale_decode $octets |
415 | $string = $term->locale_decode ($octets) |
336 | Convert the given locale-encoded octets into a perl string. |
416 | Convert the given locale-encoded octets into a perl string. |
|
|
417 | |
|
|
418 | $term->scr_add_lines ($string) |
|
|
419 | Write the given text string to the screen, as if output by the |
|
|
420 | application running inside the terminal. It may not contain command |
|
|
421 | sequences (escape codes), but is free to use line feeds, carriage |
|
|
422 | returns and tabs. The string is a normal text string, not in |
|
|
423 | locale-dependent encoding. |
|
|
424 | |
|
|
425 | Normally its not a good idea to use this function, as programs might |
|
|
426 | be confused by changes in cursor position or scrolling. Its useful |
|
|
427 | inside a "on_add_lines" hook, though. |
|
|
428 | |
|
|
429 | $term->cmd_parse ($octets) |
|
|
430 | Similar to "scr_add_lines", but the argument must be in the |
|
|
431 | locale-specific encoding of the terminal and can contain command |
|
|
432 | sequences (escape codes) that will be interpreted. |
337 | |
433 | |
338 | $term->tt_write ($octets) |
434 | $term->tt_write ($octets) |
339 | Write the octets given in $data to the tty (i.e. as program input). |
435 | Write the octets given in $data to the tty (i.e. as program input). |
340 | To pass characters instead of octets, you should convert your |
436 | To pass characters instead of octets, you should convert your |
341 | strings first to the locale-specific encoding using |
437 | strings first to the locale-specific encoding using |
342 | "$term->locale_encode". |
438 | "$term->locale_encode". |
343 | |
439 | |
|
|
440 | $windowid = $term->parent |
|
|
441 | Return the window id of the toplevel window. |
|
|
442 | |
|
|
443 | $windowid = $term->vt |
|
|
444 | Return the window id of the terminal window. |
|
|
445 | |
|
|
446 | $window_width = $term->width |
|
|
447 | $window_height = $term->height |
|
|
448 | $font_width = $term->fwidth |
|
|
449 | $font_height = $term->fheight |
|
|
450 | $font_ascent = $term->fbase |
344 | $nrow = $term->nrow |
451 | $terminal_rows = $term->nrow |
345 | $ncol = $term->ncol |
452 | $terminal_columns = $term->ncol |
346 | Return the number of rows/columns of the terminal window (i.e. as |
453 | $has_focus = $term->focus |
347 | specified by "-geometry", excluding any scrollback). |
|
|
348 | |
|
|
349 | $nsaved = $term->nsaved |
454 | $is_mapped = $term->mapped |
350 | Returns the number of lines in the scrollback buffer. |
455 | $max_scrollback = $term->saveLines |
|
|
456 | $nrow_plus_saveLines = $term->total_rows |
|
|
457 | $lines_in_scrollback = $term->nsaved |
|
|
458 | Return various integers describing terminal characteristics. |
351 | |
459 | |
352 | $view_start = $term->view_start ([$newvalue]) |
460 | $view_start = $term->view_start ([$newvalue]) |
353 | Returns the negative row number of the topmost line. Minimum value |
461 | Returns the negative row number of the topmost line. Minimum value |
354 | is 0, which displays the normal terminal contents. Larger values |
462 | is 0, which displays the normal terminal contents. Larger values |
355 | scroll this many lines into the scrollback buffer. |
463 | scroll this many lines into the scrollback buffer. |
… | |
… | |
409 | $line = $term->line ($row_number) |
517 | $line = $term->line ($row_number) |
410 | Create and return a new "urxvt::line" object that stores information |
518 | Create and return a new "urxvt::line" object that stores information |
411 | about the logical line that row $row_number is part of. It supports |
519 | about the logical line that row $row_number is part of. It supports |
412 | the following methods: |
520 | the following methods: |
413 | |
521 | |
414 | $text = $line->t |
522 | $text = $line->t ([$new_text]) |
415 | Returns the full text of the line, similar to "ROW_t" |
523 | Returns or replaces the full text of the line, similar to |
|
|
524 | "ROW_t" |
416 | |
525 | |
417 | $rend = $line->r |
526 | $rend = $line->r ([$new_rend]) |
418 | Returns the full rendition array of the line, similar to "ROW_r" |
527 | Returns or replaces the full rendition array of the line, |
|
|
528 | similar to "ROW_r" |
419 | |
529 | |
420 | $length = $line->l |
530 | $length = $line->l |
421 | Returns the length of the line in cells, similar to "ROW_l". |
531 | Returns the length of the line in cells, similar to "ROW_l". |
422 | |
532 | |
423 | $rownum = $line->beg |
533 | $rownum = $line->beg |