ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvtperl.3.man.in
Revision: 1.25
Committed: Thu Jan 12 05:37:34 2006 UTC (18 years, 6 months ago) by root
Branch: MAIN
Changes since 1.24: +44 -22 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sh \" Subsection heading
6 .br
7 .if t .Sp
8 .ne 5
9 .PP
10 \fB\\$1\fR
11 .PP
12 ..
13 .de Sp \" Vertical space (when we can't use .PP)
14 .if t .sp .5v
15 .if n .sp
16 ..
17 .de Vb \" Begin verbatim text
18 .ft CW
19 .nf
20 .ne \\$1
21 ..
22 .de Ve \" End verbatim text
23 .ft R
24 .fi
25 ..
26 .\" Set up some character translations and predefined strings. \*(-- will
27 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28 .\" double quote, and \*(R" will give a right double quote. | will give a
29 .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30 .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31 .\" expand to `' in nroff, nothing in troff, for use with C<>.
32 .tr \(*W-|\(bv\*(Tr
33 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34 .ie n \{\
35 . ds -- \(*W-
36 . ds PI pi
37 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39 . ds L" ""
40 . ds R" ""
41 . ds C` ""
42 . ds C' ""
43 'br\}
44 .el\{\
45 . ds -- \|\(em\|
46 . ds PI \(*p
47 . ds L" ``
48 . ds R" ''
49 'br\}
50 .\"
51 .\" If the F register is turned on, we'll generate index entries on stderr for
52 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53 .\" entries marked with X<> in POD. Of course, you'll have to process the
54 .\" output yourself in some meaningful fashion.
55 .if \nF \{\
56 . de IX
57 . tm Index:\\$1\t\\n%\t"\\$2"
58 ..
59 . nr % 0
60 . rr F
61 .\}
62 .\"
63 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
64 .\" way too many mistakes in technical documents.
65 .hy 0
66 .if n .na
67 .\"
68 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69 .\" Fear. Run. Save yourself. No user-serviceable parts.
70 . \" fudge factors for nroff and troff
71 .if n \{\
72 . ds #H 0
73 . ds #V .8m
74 . ds #F .3m
75 . ds #[ \f1
76 . ds #] \fP
77 .\}
78 .if t \{\
79 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80 . ds #V .6m
81 . ds #F 0
82 . ds #[ \&
83 . ds #] \&
84 .\}
85 . \" simple accents for nroff and troff
86 .if n \{\
87 . ds ' \&
88 . ds ` \&
89 . ds ^ \&
90 . ds , \&
91 . ds ~ ~
92 . ds /
93 .\}
94 .if t \{\
95 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101 .\}
102 . \" troff and (daisy-wheel) nroff accents
103 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110 .ds ae a\h'-(\w'a'u*4/10)'e
111 .ds Ae A\h'-(\w'A'u*4/10)'E
112 . \" corrections for vroff
113 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115 . \" for low resolution devices (crt and lpr)
116 .if \n(.H>23 .if \n(.V>19 \
117 \{\
118 . ds : e
119 . ds 8 ss
120 . ds o a
121 . ds d- d\h'-1'\(ga
122 . ds D- D\h'-1'\(hy
123 . ds th \o'bp'
124 . ds Th \o'LP'
125 . ds ae ae
126 . ds Ae AE
127 .\}
128 .rm #[ #] #H #V #F C
129 .\" ========================================================================
130 .\"
131 .IX Title "rxvt 3"
132 .TH rxvt 3 "2006-01-12" "7.0" "RXVT-UNICODE"
133 .SH "NAME"
134 @@RXVT_NAME@@perl \- rxvt\-unicode's embedded perl interpreter
135 .SH "SYNOPSIS"
136 .IX Header "SYNOPSIS"
137 .Vb 1
138 \& # create a file grab_test in $HOME:
139 .Ve
140 .PP
141 .Vb 4
142 \& sub on_sel_grab {
143 \& warn "you selected ", $_[0]->selection;
144 \& ()
145 \& }
146 .Ve
147 .PP
148 .Vb 1
149 \& # start a @@RXVT_NAME@@ using it:
150 .Ve
151 .PP
152 .Vb 1
153 \& @@RXVT_NAME@@ --perl-lib $HOME -pe grab_test
154 .Ve
155 .SH "DESCRIPTION"
156 .IX Header "DESCRIPTION"
157 Everytime a terminal object gets created, extension scripts specified via
158 the \f(CW\*(C`perl\*(C'\fR resource are loaded and associated with it.
159 .PP
160 Scripts are compiled in a 'use strict' and 'use utf8' environment, and
161 thus must be encoded as \s-1UTF\-8\s0.
162 .PP
163 Each script will only ever be loaded once, even in @@RXVT_NAME@@d, where
164 scripts will be shared (but not enabled) for all terminals.
165 .SH "PREPACKAGED EXTENSIONS"
166 .IX Header "PREPACKAGED EXTENSIONS"
167 This section describes the extensions delivered with this release. You can
168 find them in \fI@@RXVT_LIBDIR@@/urxvt/perl/\fR.
169 .PP
170 You can activate them like this:
171 .PP
172 .Vb 1
173 \& @@RXVT_NAME@@ -pe <extensionname>
174 .Ve
175 .IP "selection (enabled by default)" 4
176 .IX Item "selection (enabled by default)"
177 (More) intelligent selection. This extension tries to be more intelligent
178 when the user extends selections (double\-click and further clicks). Right
179 now, it tries to select words, urls and complete shell-quoted
180 arguments, which is very convenient, too, if your \fIls\fR supports
181 \&\f(CW\*(C`\-\-quoting\-style=shell\*(C'\fR.
182 .Sp
183 A double-click usually selects the word under the cursor, further clicks
184 will enlarge the selection.
185 .Sp
186 It also offers the following bindable keyboard command:
187 .RS 4
188 .IP "rot13" 4
189 .IX Item "rot13"
190 Rot\-13 the selection when activated. Used via keyboard trigger:
191 .Sp
192 .Vb 1
193 \& URxvt.keysym.C-M-r: perl:selection:rot13
194 .Ve
195 .RE
196 .RS 4
197 .RE
198 .IP "option-popup (enabled by default)" 4
199 .IX Item "option-popup (enabled by default)"
200 Binds a popup menu to Ctrl\-Button2 that lets you toggle (some) options at
201 runtime.
202 .IP "selection-popup (enabled by default)" 4
203 .IX Item "selection-popup (enabled by default)"
204 Binds a popup menu to Ctrl\-Button3 that lets you convert the selection
205 text into various other formats/action (such as uri unescaping, perl
206 evalution, web-browser starting etc.), depending on content.
207 .IP "searchable\-scrollback<hotkey> (enabled by default)" 4
208 .IX Item "searchable-scrollback<hotkey> (enabled by default)"
209 Adds regex search functionality to the scrollback buffer, triggered
210 by a hotkey (default: \f(CW\*(C`M\-s\*(C'\fR). While in search mode, normal terminal
211 input/output is suspended and a regex is displayed at the bottom of the
212 screen.
213 .Sp
214 Inputting characters appends them to the regex and continues incremental
215 search. \f(CW\*(C`BackSpace\*(C'\fR removes a character from the regex, \f(CW\*(C`Up\*(C'\fR and \f(CW\*(C`Down\*(C'\fR
216 search upwards/downwards in the scrollback buffer, \f(CW\*(C`End\*(C'\fR jumps to the
217 bottom. \f(CW\*(C`Escape\*(C'\fR leaves search mode and returns to the point where search
218 was started, while \f(CW\*(C`Enter\*(C'\fR or \f(CW\*(C`Return\*(C'\fR stay at the current position and
219 additionally stores the first match in the current line into the primary
220 selection.
221 .IP "digital-clock" 4
222 .IX Item "digital-clock"
223 Displays a digital clock using the built-in overlay.
224 .IP "mark-urls" 4
225 .IX Item "mark-urls"
226 Uses per-line display filtering (\f(CW\*(C`on_line_update\*(C'\fR) to underline urls and
227 make them clickable. When middle\-clicked, the program specified in the
228 resource \f(CW\*(C`urlLauncher\*(C'\fR (default \f(CW\*(C`x\-www\-browser\*(C'\fR) will be started with
229 the \s-1URL\s0 as first argument.
230 .IP "block-graphics-to-ascii" 4
231 .IX Item "block-graphics-to-ascii"
232 A not very useful example of filtering all text output to the terminal,
233 by replacing all line-drawing characters (U+2500 .. U+259F) by a
234 similar-looking ascii character.
235 .IP "example-refresh-hooks" 4
236 .IX Item "example-refresh-hooks"
237 Displays a very simple digital clock in the upper right corner of the
238 window. Illustrates overwriting the refresh callbacks to create your own
239 overlays or changes.
240 .SH "API DOCUMENTATION"
241 .IX Header "API DOCUMENTATION"
242 .Sh "General \s-1API\s0 Considerations"
243 .IX Subsection "General API Considerations"
244 All objects (such as terminals, time watchers etc.) are typical
245 reference-to-hash objects. The hash can be used to store anything you
246 like. All members starting with an underscore (such as \f(CW\*(C`_ptr\*(C'\fR or
247 \&\f(CW\*(C`_hook\*(C'\fR) are reserved for internal uses and \fB\s-1MUST\s0 \s-1NOT\s0\fR be accessed or
248 modified).
249 .PP
250 When objects are destroyed on the \*(C+ side, the perl object hashes are
251 emptied, so its best to store related objects such as time watchers and
252 the like inside the terminal object so they get destroyed as soon as the
253 terminal is destroyed.
254 .PP
255 Argument names also often indicate the type of a parameter. Here are some
256 hints on what they mean:
257 .IP "$text" 4
258 .IX Item "$text"
259 Rxvt-unicodes special way of encoding text, where one \*(L"unicode\*(R" character
260 always represents one screen cell. See ROW_t for a discussion of this format.
261 .IP "$string" 4
262 .IX Item "$string"
263 A perl text string, with an emphasis on \fItext\fR. It can store all unicode
264 characters and is to be distinguished with text encoded in a specific
265 encoding (often locale\-specific) and binary data.
266 .IP "$octets" 4
267 .IX Item "$octets"
268 Either binary data or \- more common \- a text string encoded in a
269 locale-specific way.
270 .Sh "Extension Objects"
271 .IX Subsection "Extension Objects"
272 Very perl extension is a perl class. A separate perl object is created
273 for each terminal and each extension and passed as the first parameter to
274 hooks. So extensions can use their \f(CW$self\fR object without having to think
275 about other extensions, with the exception of methods and members that
276 begin with an underscore character \f(CW\*(C`_\*(C'\fR: these are reserved for internal
277 use.
278 .PP
279 Although it isn't a \f(CW\*(C`urxvt::term\*(C'\fR object, you can call all methods of the
280 \&\f(CW\*(C`urxvt::term\*(C'\fR class on this object.
281 .PP
282 It has the following methods and data members:
283 .ie n .IP "$urxvt_term = $self\->{term}" 4
284 .el .IP "$urxvt_term = \f(CW$self\fR\->{term}" 4
285 .IX Item "$urxvt_term = $self->{term}"
286 Returns the \f(CW\*(C`urxvt::term\*(C'\fR object associated with this instance of the
287 extension. This member \fImust not\fR be changed in any way.
288 .ie n .IP "$self\->enable ($hook_name => $cb\fR, [$hook_name => \f(CW$cb..])" 4
289 .el .IP "$self\->enable ($hook_name => \f(CW$cb\fR, [$hook_name => \f(CW$cb\fR..])" 4
290 .IX Item "$self->enable ($hook_name => $cb, [$hook_name => $cb..])"
291 Dynamically enable the given hooks (named without the \f(CW\*(C`on_\*(C'\fR prefix) for
292 this extension, replacing any previous hook. This is useful when you want
293 to overwrite time-critical hooks only temporarily.
294 .ie n .IP "$self\->disable ($hook_name[, $hook_name..])" 4
295 .el .IP "$self\->disable ($hook_name[, \f(CW$hook_name\fR..])" 4
296 .IX Item "$self->disable ($hook_name[, $hook_name..])"
297 Dynamically disable the given hooks.
298 .Sh "Hooks"
299 .IX Subsection "Hooks"
300 The following subroutines can be declared in extension files, and will be
301 called whenever the relevant event happens.
302 .PP
303 The first argument passed to them is an extension oject as described in
304 the in the \f(CW\*(C`Extension Objects\*(C'\fR section.
305 .PP
306 \&\fBAll\fR of these hooks must return a boolean value. If it is true, then the
307 event counts as being \fIconsumed\fR, and the invocation of other hooks is
308 skipped, and the relevant action might not be carried out by the \*(C+ code.
309 .PP
310 \&\fIWhen in doubt, return a false value (preferably \f(CI\*(C`()\*(C'\fI).\fR
311 .ie n .IP "on_init $term" 4
312 .el .IP "on_init \f(CW$term\fR" 4
313 .IX Item "on_init $term"
314 Called after a new terminal object has been initialized, but before
315 windows are created or the command gets run. Most methods are unsafe to
316 call or deliver senseless data, as terminal size and other characteristics
317 have not yet been determined. You can safely query and change resources,
318 though.
319 .ie n .IP "on_reset $term" 4
320 .el .IP "on_reset \f(CW$term\fR" 4
321 .IX Item "on_reset $term"
322 Called after the screen is \*(L"reset\*(R" for any reason, such as resizing or
323 control sequences. Here is where you can react on changes to size-related
324 variables.
325 .ie n .IP "on_start $term" 4
326 .el .IP "on_start \f(CW$term\fR" 4
327 .IX Item "on_start $term"
328 Called at the very end of initialisation of a new terminal, just before
329 returning to the mainloop.
330 .ie n .IP "on_sel_make $term\fR, \f(CW$eventtime" 4
331 .el .IP "on_sel_make \f(CW$term\fR, \f(CW$eventtime\fR" 4
332 .IX Item "on_sel_make $term, $eventtime"
333 Called whenever a selection has been made by the user, but before the
334 selection text is copied, so changes to the beginning, end or type of the
335 selection will be honored.
336 .Sp
337 Returning a true value aborts selection making by urxvt, in which case you
338 have to make a selection yourself by calling \f(CW\*(C`$term\->selection_grab\*(C'\fR.
339 .ie n .IP "on_sel_grab $term\fR, \f(CW$eventtime" 4
340 .el .IP "on_sel_grab \f(CW$term\fR, \f(CW$eventtime\fR" 4
341 .IX Item "on_sel_grab $term, $eventtime"
342 Called whenever a selection has been copied, but before the selection is
343 requested from the server. The selection text can be queried and changed
344 by calling \f(CW\*(C`$term\->selection\*(C'\fR.
345 .Sp
346 Returning a true value aborts selection grabbing. It will still be hilighted.
347 .ie n .IP "on_sel_extend $term" 4
348 .el .IP "on_sel_extend \f(CW$term\fR" 4
349 .IX Item "on_sel_extend $term"
350 Called whenever the user tries to extend the selection (e.g. with a double
351 click) and is either supposed to return false (normal operation), or
352 should extend the selection itelf and return true to suppress the built-in
353 processing. This can happen multiple times, as long as the callback
354 returns true, it will be called on every further click by the user and is
355 supposed to enlarge the selection more and more, if possible.
356 .Sp
357 See the \fIselection\fR example extension.
358 .ie n .IP "on_view_change $term\fR, \f(CW$offset" 4
359 .el .IP "on_view_change \f(CW$term\fR, \f(CW$offset\fR" 4
360 .IX Item "on_view_change $term, $offset"
361 Called whenever the view offset changes, i..e the user or program
362 scrolls. Offset \f(CW0\fR means display the normal terminal, positive values
363 show this many lines of scrollback.
364 .ie n .IP "on_scroll_back $term\fR, \f(CW$lines\fR, \f(CW$saved" 4
365 .el .IP "on_scroll_back \f(CW$term\fR, \f(CW$lines\fR, \f(CW$saved\fR" 4
366 .IX Item "on_scroll_back $term, $lines, $saved"
367 Called whenever lines scroll out of the terminal area into the scrollback
368 buffer. \f(CW$lines\fR is the number of lines scrolled out and may be larger
369 than the scroll back buffer or the terminal.
370 .Sp
371 It is called before lines are scrolled out (so rows 0 .. min ($lines \- 1,
372 \&\f(CW$nrow\fR \- 1) represent the lines to be scrolled out). \f(CW$saved\fR is the total
373 number of lines that will be in the scrollback buffer.
374 .ie n .IP "on_osc_seq $term\fR, \f(CW$string" 4
375 .el .IP "on_osc_seq \f(CW$term\fR, \f(CW$string\fR" 4
376 .IX Item "on_osc_seq $term, $string"
377 Called whenever the \fB\s-1ESC\s0 ] 777 ; string \s-1ST\s0\fR command sequence (\s-1OSC\s0 =
378 operating system command) is processed. Cursor position and other state
379 information is up-to-date when this happens. For interoperability, the
380 string should start with the extension name and a colon, to distinguish
381 it from commands for other extensions, and this might be enforced in the
382 future.
383 .Sp
384 Be careful not ever to trust (in a security sense) the data you receive,
385 as its source can not easily be controleld (e\-mail content, messages from
386 other users on the same system etc.).
387 .ie n .IP "on_add_lines $term\fR, \f(CW$string" 4
388 .el .IP "on_add_lines \f(CW$term\fR, \f(CW$string\fR" 4
389 .IX Item "on_add_lines $term, $string"
390 Called whenever text is about to be output, with the text as argument. You
391 can filter/change and output the text yourself by returning a true value
392 and calling \f(CW\*(C`$term\->scr_add_lines\*(C'\fR yourself. Please note that this
393 might be very slow, however, as your hook is called for \fBall\fR text being
394 output.
395 .ie n .IP "on_tt_write $term\fR, \f(CW$octets" 4
396 .el .IP "on_tt_write \f(CW$term\fR, \f(CW$octets\fR" 4
397 .IX Item "on_tt_write $term, $octets"
398 Called whenever some data is written to the tty/pty and can be used to
399 suppress or filter tty input.
400 .ie n .IP "on_line_update $term\fR, \f(CW$row" 4
401 .el .IP "on_line_update \f(CW$term\fR, \f(CW$row\fR" 4
402 .IX Item "on_line_update $term, $row"
403 Called whenever a line was updated or changed. Can be used to filter
404 screen output (e.g. underline urls or other useless stuff). Only lines
405 that are being shown will be filtered, and, due to performance reasons,
406 not always immediately.
407 .Sp
408 The row number is always the topmost row of the line if the line spans
409 multiple rows.
410 .Sp
411 Please note that, if you change the line, then the hook might get called
412 later with the already-modified line (e.g. if unrelated parts change), so
413 you cannot just toggle rendition bits, but only set them.
414 .ie n .IP "on_refresh_begin $term" 4
415 .el .IP "on_refresh_begin \f(CW$term\fR" 4
416 .IX Item "on_refresh_begin $term"
417 Called just before the screen gets redrawn. Can be used for overlay
418 or similar effects by modify terminal contents in refresh_begin, and
419 restoring them in refresh_end. The built-in overlay and selection display
420 code is run after this hook, and takes precedence.
421 .ie n .IP "on_refresh_end $term" 4
422 .el .IP "on_refresh_end \f(CW$term\fR" 4
423 .IX Item "on_refresh_end $term"
424 Called just after the screen gets redrawn. See \f(CW\*(C`on_refresh_begin\*(C'\fR.
425 .ie n .IP "on_keyboard_command $term\fR, \f(CW$string" 4
426 .el .IP "on_keyboard_command \f(CW$term\fR, \f(CW$string\fR" 4
427 .IX Item "on_keyboard_command $term, $string"
428 Called whenever the user presses a key combination that has a
429 \&\f(CW\*(C`perl:string\*(C'\fR action bound to it (see description of the \fBkeysym\fR
430 resource in the @@RXVT_NAME@@(1) manpage).
431 .ie n .IP "on_focus_in $term" 4
432 .el .IP "on_focus_in \f(CW$term\fR" 4
433 .IX Item "on_focus_in $term"
434 Called whenever the window gets the keyboard focus, before rxvt-unicode
435 does focus in processing.
436 .ie n .IP "on_focus_out $term" 4
437 .el .IP "on_focus_out \f(CW$term\fR" 4
438 .IX Item "on_focus_out $term"
439 Called wheneever the window loses keyboard focus, before rxvt-unicode does
440 focus out processing.
441 .ie n .IP "on_key_press $term\fR, \f(CW$event\fR, \f(CW$keysym\fR, \f(CW$octets" 4
442 .el .IP "on_key_press \f(CW$term\fR, \f(CW$event\fR, \f(CW$keysym\fR, \f(CW$octets\fR" 4
443 .IX Item "on_key_press $term, $event, $keysym, $octets"
444 .PD 0
445 .ie n .IP "on_key_release $term\fR, \f(CW$event\fR, \f(CW$keysym" 4
446 .el .IP "on_key_release \f(CW$term\fR, \f(CW$event\fR, \f(CW$keysym\fR" 4
447 .IX Item "on_key_release $term, $event, $keysym"
448 .ie n .IP "on_button_press $term\fR, \f(CW$event" 4
449 .el .IP "on_button_press \f(CW$term\fR, \f(CW$event\fR" 4
450 .IX Item "on_button_press $term, $event"
451 .ie n .IP "on_button_release $term\fR, \f(CW$event" 4
452 .el .IP "on_button_release \f(CW$term\fR, \f(CW$event\fR" 4
453 .IX Item "on_button_release $term, $event"
454 .ie n .IP "on_motion_notify $term\fR, \f(CW$event" 4
455 .el .IP "on_motion_notify \f(CW$term\fR, \f(CW$event\fR" 4
456 .IX Item "on_motion_notify $term, $event"
457 .ie n .IP "on_map_notify $term\fR, \f(CW$event" 4
458 .el .IP "on_map_notify \f(CW$term\fR, \f(CW$event\fR" 4
459 .IX Item "on_map_notify $term, $event"
460 .ie n .IP "on_unmap_notify $term\fR, \f(CW$event" 4
461 .el .IP "on_unmap_notify \f(CW$term\fR, \f(CW$event\fR" 4
462 .IX Item "on_unmap_notify $term, $event"
463 .PD
464 Called whenever the corresponding X event is received for the terminal If
465 the hook returns true, then the even will be ignored by rxvt\-unicode.
466 .Sp
467 The event is a hash with most values as named by Xlib (see the XEvent
468 manpage), with the additional members \f(CW\*(C`row\*(C'\fR and \f(CW\*(C`col\*(C'\fR, which are the row
469 and column under the mouse cursor.
470 .Sp
471 \&\f(CW\*(C`on_key_press\*(C'\fR additionally receives the string rxvt-unicode would
472 output, if any, in locale-specific encoding.
473 .Sp
474 subwindow.
475 .ie n .Sh "Variables in the ""urxvt"" Package"
476 .el .Sh "Variables in the \f(CWurxvt\fP Package"
477 .IX Subsection "Variables in the urxvt Package"
478 .IP "$urxvt::LIBDIR" 4
479 .IX Item "$urxvt::LIBDIR"
480 The rxvt-unicode library directory, where, among other things, the perl
481 modules and scripts are stored.
482 .ie n .IP "$urxvt::RESCLASS, $urxvt::RESCLASS" 4
483 .el .IP "$urxvt::RESCLASS, \f(CW$urxvt::RESCLASS\fR" 4
484 .IX Item "$urxvt::RESCLASS, $urxvt::RESCLASS"
485 The resource class and name rxvt-unicode uses to look up X resources.
486 .IP "$urxvt::RXVTNAME" 4
487 .IX Item "$urxvt::RXVTNAME"
488 The basename of the installed binaries, usually \f(CW\*(C`urxvt\*(C'\fR.
489 .IP "$urxvt::TERM" 4
490 .IX Item "$urxvt::TERM"
491 The current terminal. This variable stores the current \f(CW\*(C`urxvt::term\*(C'\fR
492 object, whenever a callback/hook is executing.
493 .ie n .Sh "Functions in the ""urxvt"" Package"
494 .el .Sh "Functions in the \f(CWurxvt\fP Package"
495 .IX Subsection "Functions in the urxvt Package"
496 .ie n .IP "urxvt::fatal $errormessage" 4
497 .el .IP "urxvt::fatal \f(CW$errormessage\fR" 4
498 .IX Item "urxvt::fatal $errormessage"
499 Fatally aborts execution with the given error message. Avoid at all
500 costs! The only time this is acceptable is when the terminal process
501 starts up.
502 .ie n .IP "urxvt::warn $string" 4
503 .el .IP "urxvt::warn \f(CW$string\fR" 4
504 .IX Item "urxvt::warn $string"
505 Calls \f(CW\*(C`rxvt_warn\*(C'\fR with the given string which should not include a
506 newline. The module also overwrites the \f(CW\*(C`warn\*(C'\fR builtin with a function
507 that calls this function.
508 .Sp
509 Using this function has the advantage that its output ends up in the
510 correct place, e.g. on stderr of the connecting urxvtc client.
511 .Sp
512 Messages have a size limit of 1023 bytes currently.
513 .IP "$is_safe = urxvt::safe" 4
514 .IX Item "$is_safe = urxvt::safe"
515 Returns true when it is safe to do potentially unsafe things, such as
516 evaluating perl code specified by the user. This is true when urxvt was
517 started setuid or setgid.
518 .IP "$time = urxvt::NOW" 4
519 .IX Item "$time = urxvt::NOW"
520 Returns the \*(L"current time\*(R" (as per the event loop).
521 .IP "urxvt::CurrentTime" 4
522 .IX Item "urxvt::CurrentTime"
523 .PD 0
524 .IP "urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, Button4Mask, Button5Mask, AnyModifier" 4
525 .IX Item "urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, Button4Mask, Button5Mask, AnyModifier"
526 .PD
527 Various constants for use in X calls and event processing.
528 .Sh "\s-1RENDITION\s0"
529 .IX Subsection "RENDITION"
530 Rendition bitsets contain information about colour, font, font styles and
531 similar information for each screen cell.
532 .PP
533 The following \*(L"macros\*(R" deal with changes in rendition sets. You should
534 never just create a bitset, you should always modify an existing one,
535 as they contain important information required for correct operation of
536 rxvt\-unicode.
537 .IP "$rend = urxvt::DEFAULT_RSTYLE" 4
538 .IX Item "$rend = urxvt::DEFAULT_RSTYLE"
539 Returns the default rendition, as used when the terminal is starting up or
540 being reset. Useful as a base to start when creating renditions.
541 .IP "$rend = urxvt::OVERLAY_RSTYLE" 4
542 .IX Item "$rend = urxvt::OVERLAY_RSTYLE"
543 Return the rendition mask used for overlays by default.
544 .IP "$rendbit = urxvt::RS_Bold, RS_Italic, RS_Blink, RS_RVid, RS_Uline" 4
545 .IX Item "$rendbit = urxvt::RS_Bold, RS_Italic, RS_Blink, RS_RVid, RS_Uline"
546 Return the bit that enabled bold, italic, blink, reverse-video and
547 underline, respectively. To enable such a style, just logically \s-1OR\s0 it into
548 the bitset.
549 .ie n .IP "$foreground = urxvt::GET_BASEFG $rend" 4
550 .el .IP "$foreground = urxvt::GET_BASEFG \f(CW$rend\fR" 4
551 .IX Item "$foreground = urxvt::GET_BASEFG $rend"
552 .PD 0
553 .ie n .IP "$background = urxvt::GET_BASEBG $rend" 4
554 .el .IP "$background = urxvt::GET_BASEBG \f(CW$rend\fR" 4
555 .IX Item "$background = urxvt::GET_BASEBG $rend"
556 .PD
557 Return the foreground/background colour index, respectively.
558 .ie n .IP "$rend = urxvt::SET_FGCOLOR $rend\fR, \f(CW$new_colour" 4
559 .el .IP "$rend = urxvt::SET_FGCOLOR \f(CW$rend\fR, \f(CW$new_colour\fR" 4
560 .IX Item "$rend = urxvt::SET_FGCOLOR $rend, $new_colour"
561 .PD 0
562 .ie n .IP "$rend = urxvt::SET_BGCOLOR $rend\fR, \f(CW$new_colour" 4
563 .el .IP "$rend = urxvt::SET_BGCOLOR \f(CW$rend\fR, \f(CW$new_colour\fR" 4
564 .IX Item "$rend = urxvt::SET_BGCOLOR $rend, $new_colour"
565 .PD
566 Replace the foreground/background colour in the rendition mask with the
567 specified one.
568 .ie n .IP "$value = urxvt::GET_CUSTOM $rend" 4
569 .el .IP "$value = urxvt::GET_CUSTOM \f(CW$rend\fR" 4
570 .IX Item "$value = urxvt::GET_CUSTOM $rend"
571 Return the \*(L"custom\*(R" value: Every rendition has 5 bits for use by
572 extensions. They can be set and changed as you like and are initially
573 zero.
574 .ie n .IP "$rend = urxvt::SET_CUSTOM $rend\fR, \f(CW$new_value" 4
575 .el .IP "$rend = urxvt::SET_CUSTOM \f(CW$rend\fR, \f(CW$new_value\fR" 4
576 .IX Item "$rend = urxvt::SET_CUSTOM $rend, $new_value"
577 Change the custom value.
578 .ie n .Sh "The ""urxvt::anyevent"" Class"
579 .el .Sh "The \f(CWurxvt::anyevent\fP Class"
580 .IX Subsection "The urxvt::anyevent Class"
581 The sole purpose of this class is to deliver an interface to the
582 \&\f(CW\*(C`AnyEvent\*(C'\fR module \- any module using it will work inside urxvt without
583 further programming. The only exception is that you cannot wait on
584 condition variables, but non-blocking condvar use is ok. What this means
585 is that you cannot use blocking APIs, but the non-blocking variant should
586 work.
587 .ie n .Sh "The ""urxvt::term"" Class"
588 .el .Sh "The \f(CWurxvt::term\fP Class"
589 .IX Subsection "The urxvt::term Class"
590 .ie n .IP "$term = new urxvt::term $envhashref\fR, \f(CW$rxvtname, [arg...]" 4
591 .el .IP "$term = new urxvt::term \f(CW$envhashref\fR, \f(CW$rxvtname\fR, [arg...]" 4
592 .IX Item "$term = new urxvt::term $envhashref, $rxvtname, [arg...]"
593 Creates a new terminal, very similar as if you had started it with system
594 \&\f(CW\*(C`$rxvtname, arg...\*(C'\fR. \f(CW$envhashref\fR must be a reference to a \f(CW%ENV\fR\-like
595 hash which defines the environment of the new terminal.
596 .Sp
597 Croaks (and probably outputs an error message) if the new instance
598 couldn't be created. Returns \f(CW\*(C`undef\*(C'\fR if the new instance didn't
599 initialise perl, and the terminal object otherwise. The \f(CW\*(C`init\*(C'\fR and
600 \&\f(CW\*(C`start\*(C'\fR hooks will be called during this call.
601 .IP "$term\->destroy" 4
602 .IX Item "$term->destroy"
603 Destroy the terminal object (close the window, free resources
604 etc.). Please note that @@RXVT_NAME@@ will not exit as long as any event
605 watchers (timers, io watchers) are still active.
606 .ie n .IP "$isset = $term\fR\->option ($optval[, \f(CW$set])" 4
607 .el .IP "$isset = \f(CW$term\fR\->option ($optval[, \f(CW$set\fR])" 4
608 .IX Item "$isset = $term->option ($optval[, $set])"
609 Returns true if the option specified by \f(CW$optval\fR is enabled, and
610 optionally change it. All option values are stored by name in the hash
611 \&\f(CW%urxvt::OPTION\fR. Options not enabled in this binary are not in the hash.
612 .Sp
613 Here is a a likely non-exhaustive list of option names, please see the
614 source file \fI/src/optinc.h\fR to see the actual list:
615 .Sp
616 .Vb 6
617 \& borderLess console cursorBlink cursorUnderline hold iconic insecure
618 \& intensityStyles jumpScroll loginShell mapAlert meta8 mouseWheelScrollPage
619 \& pastableTabs pointerBlank reverseVideo scrollBar scrollBar_floating
620 \& scrollBar_right scrollTtyKeypress scrollTtyOutput scrollWithBuffer
621 \& secondaryScreen secondaryScroll skipBuiltinGlyphs transparent
622 \& tripleclickwords utmpInhibit visualBell
623 .Ve
624 .ie n .IP "$value = $term\fR\->resource ($name[, \f(CW$newval])" 4
625 .el .IP "$value = \f(CW$term\fR\->resource ($name[, \f(CW$newval\fR])" 4
626 .IX Item "$value = $term->resource ($name[, $newval])"
627 Returns the current resource value associated with a given name and
628 optionally sets a new value. Setting values is most useful in the \f(CW\*(C`init\*(C'\fR
629 hook. Unset resources are returned and accepted as \f(CW\*(C`undef\*(C'\fR.
630 .Sp
631 The new value must be properly encoded to a suitable character encoding
632 before passing it to this method. Similarly, the returned value may need
633 to be converted from the used encoding to text.
634 .Sp
635 Resource names are as defined in \fIsrc/rsinc.h\fR. Colours can be specified
636 as resource names of the form \f(CW\*(C`color+<index>\*(C'\fR, e.g. \f(CW\*(C`color+5\*(C'\fR. (will
637 likely change).
638 .Sp
639 Please note that resource strings will currently only be freed when the
640 terminal is destroyed, so changing options frequently will eat memory.
641 .Sp
642 Here is a a likely non-exhaustive list of resource names, not all of which
643 are supported in every build, please see the source file \fI/src/rsinc.h\fR
644 to see the actual list:
645 .Sp
646 .Vb 12
647 \& answerbackstring backgroundPixmap backspace_key boldFont boldItalicFont
648 \& borderLess color cursorBlink cursorUnderline cutchars delete_key
649 \& display_name embed ext_bwidth fade font geometry hold iconName
650 \& imFont imLocale inputMethod insecure int_bwidth intensityStyles
651 \& italicFont jumpScroll lineSpace loginShell mapAlert menu meta8 modifier
652 \& mouseWheelScrollPage name pastableTabs path perl_eval perl_ext_1 perl_ext_2
653 \& perl_lib pointerBlank pointerBlankDelay preeditType print_pipe pty_fd
654 \& reverseVideo saveLines scrollBar scrollBar_align scrollBar_floating
655 \& scrollBar_right scrollBar_thickness scrollTtyKeypress scrollTtyOutput
656 \& scrollWithBuffer scrollstyle secondaryScreen secondaryScroll selectstyle
657 \& shade term_name title transparent transparent_all tripleclickwords
658 \& utmpInhibit visualBell
659 .Ve
660 .ie n .IP "$value = $term\->x_resource ($pattern)" 4
661 .el .IP "$value = \f(CW$term\fR\->x_resource ($pattern)" 4
662 .IX Item "$value = $term->x_resource ($pattern)"
663 Returns the X\-Resource for the given pattern, excluding the program or
664 class name, i.e. \f(CW\*(C`$term\->x_resource ("boldFont")\*(C'\fR should return the
665 same value as used by this instance of rxvt\-unicode. Returns \f(CW\*(C`undef\*(C'\fR if no
666 resource with that pattern exists.
667 .Sp
668 This method should only be called during the \f(CW\*(C`on_start\*(C'\fR hook, as there is
669 only one resource database per display, and later invocations might return
670 the wrong resources.
671 .ie n .IP "$success = $term\fR\->parse_keysym ($keysym_spec, \f(CW$command_string)" 4
672 .el .IP "$success = \f(CW$term\fR\->parse_keysym ($keysym_spec, \f(CW$command_string\fR)" 4
673 .IX Item "$success = $term->parse_keysym ($keysym_spec, $command_string)"
674 Adds a keymap translation exactly as specified via a resource. See the
675 \&\f(CW\*(C`keysym\*(C'\fR resource in the @@RXVT_NAME@@(1) manpage.
676 .ie n .IP "$rend = $term\->rstyle ([$new_rstyle])" 4
677 .el .IP "$rend = \f(CW$term\fR\->rstyle ([$new_rstyle])" 4
678 .IX Item "$rend = $term->rstyle ([$new_rstyle])"
679 Return and optionally change the current rendition. Text that is output by
680 the terminal application will use this style.
681 .ie n .IP "($row, $col\fR) = \f(CW$term\fR\->screen_cur ([$row, \f(CW$col])" 4
682 .el .IP "($row, \f(CW$col\fR) = \f(CW$term\fR\->screen_cur ([$row, \f(CW$col\fR])" 4
683 .IX Item "($row, $col) = $term->screen_cur ([$row, $col])"
684 Return the current coordinates of the text cursor position and optionally
685 set it (which is usually bad as applications don't expect that).
686 .ie n .IP "($row, $col\fR) = \f(CW$term\fR\->selection_mark ([$row, \f(CW$col])" 4
687 .el .IP "($row, \f(CW$col\fR) = \f(CW$term\fR\->selection_mark ([$row, \f(CW$col\fR])" 4
688 .IX Item "($row, $col) = $term->selection_mark ([$row, $col])"
689 .PD 0
690 .ie n .IP "($row, $col\fR) = \f(CW$term\fR\->selection_beg ([$row, \f(CW$col])" 4
691 .el .IP "($row, \f(CW$col\fR) = \f(CW$term\fR\->selection_beg ([$row, \f(CW$col\fR])" 4
692 .IX Item "($row, $col) = $term->selection_beg ([$row, $col])"
693 .ie n .IP "($row, $col\fR) = \f(CW$term\fR\->selection_end ([$row, \f(CW$col])" 4
694 .el .IP "($row, \f(CW$col\fR) = \f(CW$term\fR\->selection_end ([$row, \f(CW$col\fR])" 4
695 .IX Item "($row, $col) = $term->selection_end ([$row, $col])"
696 .PD
697 Return the current values of the selection mark, begin or end positions,
698 and optionally set them to new values.
699 .ie n .IP "$term\->selection_make ($eventtime[, $rectangular])" 4
700 .el .IP "$term\->selection_make ($eventtime[, \f(CW$rectangular\fR])" 4
701 .IX Item "$term->selection_make ($eventtime[, $rectangular])"
702 Tries to make a selection as set by \f(CW\*(C`selection_beg\*(C'\fR and
703 \&\f(CW\*(C`selection_end\*(C'\fR. If \f(CW$rectangular\fR is true (default: false), a
704 rectangular selection will be made. This is the prefered function to make
705 a selection.
706 .ie n .IP "$success = $term\->selection_grab ($eventtime)" 4
707 .el .IP "$success = \f(CW$term\fR\->selection_grab ($eventtime)" 4
708 .IX Item "$success = $term->selection_grab ($eventtime)"
709 Try to request the primary selection text from the server (for example, as
710 set by the next method). No visual feedback will be given. This function
711 is mostly useful from within \f(CW\*(C`on_sel_grab\*(C'\fR hooks.
712 .ie n .IP "$oldtext = $term\->selection ([$newtext])" 4
713 .el .IP "$oldtext = \f(CW$term\fR\->selection ([$newtext])" 4
714 .IX Item "$oldtext = $term->selection ([$newtext])"
715 Return the current selection text and optionally replace it by \f(CW$newtext\fR.
716 .ie n .IP "$term\->overlay_simple ($x, $y\fR, \f(CW$text)" 4
717 .el .IP "$term\->overlay_simple ($x, \f(CW$y\fR, \f(CW$text\fR)" 4
718 .IX Item "$term->overlay_simple ($x, $y, $text)"
719 Create a simple multi-line overlay box. See the next method for details.
720 .ie n .IP "$term\->overlay ($x, $y\fR, \f(CW$width\fR, \f(CW$height\fR[, \f(CW$rstyle\fR[, \f(CW$border]])" 4
721 .el .IP "$term\->overlay ($x, \f(CW$y\fR, \f(CW$width\fR, \f(CW$height\fR[, \f(CW$rstyle\fR[, \f(CW$border\fR]])" 4
722 .IX Item "$term->overlay ($x, $y, $width, $height[, $rstyle[, $border]])"
723 Create a new (empty) overlay at the given position with the given
724 width/height. \f(CW$rstyle\fR defines the initial rendition style
725 (default: \f(CW\*(C`OVERLAY_RSTYLE\*(C'\fR).
726 .Sp
727 If \f(CW$border\fR is \f(CW2\fR (default), then a decorative border will be put
728 around the box.
729 .Sp
730 If either \f(CW$x\fR or \f(CW$y\fR is negative, then this is counted from the
731 right/bottom side, respectively.
732 .Sp
733 This method returns an urxvt::overlay object. The overlay will be visible
734 as long as the perl object is referenced.
735 .Sp
736 The methods currently supported on \f(CW\*(C`urxvt::overlay\*(C'\fR objects are:
737 .RS 4
738 .ie n .IP "$overlay\->set ($x, $y\fR, \f(CW$text\fR, \f(CW$rend)" 4
739 .el .IP "$overlay\->set ($x, \f(CW$y\fR, \f(CW$text\fR, \f(CW$rend\fR)" 4
740 .IX Item "$overlay->set ($x, $y, $text, $rend)"
741 Similar to \f(CW\*(C`$term\->ROW_t\*(C'\fR and \f(CW\*(C`$term\->ROW_r\*(C'\fR in that it puts
742 text in rxvt\-unicode's special encoding and an array of rendition values
743 at a specific position inside the overlay.
744 .IP "$overlay\->hide" 4
745 .IX Item "$overlay->hide"
746 If visible, hide the overlay, but do not destroy it.
747 .IP "$overlay\->show" 4
748 .IX Item "$overlay->show"
749 If hidden, display the overlay again.
750 .RE
751 .RS 4
752 .RE
753 .ie n .IP "$popup = $term\->popup ($event)" 4
754 .el .IP "$popup = \f(CW$term\fR\->popup ($event)" 4
755 .IX Item "$popup = $term->popup ($event)"
756 Creates a new \f(CW\*(C`urxvt::popup\*(C'\fR object that implements a popup menu. The
757 \&\f(CW$event\fR \fImust\fR be the event causing the menu to pop up (a button event,
758 currently).
759 .ie n .IP "$cellwidth = $term\->strwidth ($string)" 4
760 .el .IP "$cellwidth = \f(CW$term\fR\->strwidth ($string)" 4
761 .IX Item "$cellwidth = $term->strwidth ($string)"
762 Returns the number of screen-cells this string would need. Correctly
763 accounts for wide and combining characters.
764 .ie n .IP "$octets = $term\->locale_encode ($string)" 4
765 .el .IP "$octets = \f(CW$term\fR\->locale_encode ($string)" 4
766 .IX Item "$octets = $term->locale_encode ($string)"
767 Convert the given text string into the corresponding locale encoding.
768 .ie n .IP "$string = $term\->locale_decode ($octets)" 4
769 .el .IP "$string = \f(CW$term\fR\->locale_decode ($octets)" 4
770 .IX Item "$string = $term->locale_decode ($octets)"
771 Convert the given locale-encoded octets into a perl string.
772 .ie n .IP "$term\->scr_xor_span ($beg_row, $beg_col\fR, \f(CW$end_row\fR, \f(CW$end_col\fR[, \f(CW$rstyle])" 4
773 .el .IP "$term\->scr_xor_span ($beg_row, \f(CW$beg_col\fR, \f(CW$end_row\fR, \f(CW$end_col\fR[, \f(CW$rstyle\fR])" 4
774 .IX Item "$term->scr_xor_span ($beg_row, $beg_col, $end_row, $end_col[, $rstyle])"
775 XORs the rendition values in the given span with the provided value
776 (default: \f(CW\*(C`RS_RVid\*(C'\fR), which \fI\s-1MUST\s0 \s-1NOT\s0\fR contain font styles. Useful in
777 refresh hooks to provide effects similar to the selection.
778 .ie n .IP "$term\->scr_xor_rect ($beg_row, $beg_col\fR, \f(CW$end_row\fR, \f(CW$end_col\fR[, \f(CW$rstyle1\fR[, \f(CW$rstyle2]])" 4
779 .el .IP "$term\->scr_xor_rect ($beg_row, \f(CW$beg_col\fR, \f(CW$end_row\fR, \f(CW$end_col\fR[, \f(CW$rstyle1\fR[, \f(CW$rstyle2\fR]])" 4
780 .IX Item "$term->scr_xor_rect ($beg_row, $beg_col, $end_row, $end_col[, $rstyle1[, $rstyle2]])"
781 Similar to \f(CW\*(C`scr_xor_span\*(C'\fR, but xors a rectangle instead. Trailing
782 whitespace will additionally be xored with the \f(CW$rstyle2\fR, which defaults
783 to \f(CW\*(C`RS_RVid | RS_Uline\*(C'\fR, which removes reverse video again and underlines
784 it instead. Both styles \fI\s-1MUST\s0 \s-1NOT\s0\fR contain font styles.
785 .IP "$term\->scr_bell" 4
786 .IX Item "$term->scr_bell"
787 Ring the bell!
788 .IP "$term\->scr_add_lines ($string)" 4
789 .IX Item "$term->scr_add_lines ($string)"
790 Write the given text string to the screen, as if output by the application
791 running inside the terminal. It may not contain command sequences (escape
792 codes), but is free to use line feeds, carriage returns and tabs. The
793 string is a normal text string, not in locale-dependent encoding.
794 .Sp
795 Normally its not a good idea to use this function, as programs might be
796 confused by changes in cursor position or scrolling. Its useful inside a
797 \&\f(CW\*(C`on_add_lines\*(C'\fR hook, though.
798 .IP "$term\->cmd_parse ($octets)" 4
799 .IX Item "$term->cmd_parse ($octets)"
800 Similar to \f(CW\*(C`scr_add_lines\*(C'\fR, but the argument must be in the
801 locale-specific encoding of the terminal and can contain command sequences
802 (escape codes) that will be interpreted.
803 .IP "$term\->tt_write ($octets)" 4
804 .IX Item "$term->tt_write ($octets)"
805 Write the octets given in \f(CW$data\fR to the tty (i.e. as program input). To
806 pass characters instead of octets, you should convert your strings first
807 to the locale-specific encoding using \f(CW\*(C`$term\->locale_encode\*(C'\fR.
808 .ie n .IP "$old_events = $term\->pty_ev_events ([$new_events])" 4
809 .el .IP "$old_events = \f(CW$term\fR\->pty_ev_events ([$new_events])" 4
810 .IX Item "$old_events = $term->pty_ev_events ([$new_events])"
811 Replaces the event mask of the pty watcher by the given event mask. Can
812 be used to suppress input and output handling to the pty/tty. See the
813 description of \f(CW\*(C`urxvt::timer\->events\*(C'\fR. Make sure to always restore
814 the previous value.
815 .ie n .IP "$windowid = $term\->parent" 4
816 .el .IP "$windowid = \f(CW$term\fR\->parent" 4
817 .IX Item "$windowid = $term->parent"
818 Return the window id of the toplevel window.
819 .ie n .IP "$windowid = $term\->vt" 4
820 .el .IP "$windowid = \f(CW$term\fR\->vt" 4
821 .IX Item "$windowid = $term->vt"
822 Return the window id of the terminal window.
823 .ie n .IP "$window_width = $term\->width" 4
824 .el .IP "$window_width = \f(CW$term\fR\->width" 4
825 .IX Item "$window_width = $term->width"
826 .PD 0
827 .ie n .IP "$window_height = $term\->height" 4
828 .el .IP "$window_height = \f(CW$term\fR\->height" 4
829 .IX Item "$window_height = $term->height"
830 .ie n .IP "$font_width = $term\->fwidth" 4
831 .el .IP "$font_width = \f(CW$term\fR\->fwidth" 4
832 .IX Item "$font_width = $term->fwidth"
833 .ie n .IP "$font_height = $term\->fheight" 4
834 .el .IP "$font_height = \f(CW$term\fR\->fheight" 4
835 .IX Item "$font_height = $term->fheight"
836 .ie n .IP "$font_ascent = $term\->fbase" 4
837 .el .IP "$font_ascent = \f(CW$term\fR\->fbase" 4
838 .IX Item "$font_ascent = $term->fbase"
839 .ie n .IP "$terminal_rows = $term\->nrow" 4
840 .el .IP "$terminal_rows = \f(CW$term\fR\->nrow" 4
841 .IX Item "$terminal_rows = $term->nrow"
842 .ie n .IP "$terminal_columns = $term\->ncol" 4
843 .el .IP "$terminal_columns = \f(CW$term\fR\->ncol" 4
844 .IX Item "$terminal_columns = $term->ncol"
845 .ie n .IP "$has_focus = $term\->focus" 4
846 .el .IP "$has_focus = \f(CW$term\fR\->focus" 4
847 .IX Item "$has_focus = $term->focus"
848 .ie n .IP "$is_mapped = $term\->mapped" 4
849 .el .IP "$is_mapped = \f(CW$term\fR\->mapped" 4
850 .IX Item "$is_mapped = $term->mapped"
851 .ie n .IP "$max_scrollback = $term\->saveLines" 4
852 .el .IP "$max_scrollback = \f(CW$term\fR\->saveLines" 4
853 .IX Item "$max_scrollback = $term->saveLines"
854 .ie n .IP "$nrow_plus_saveLines = $term\->total_rows" 4
855 .el .IP "$nrow_plus_saveLines = \f(CW$term\fR\->total_rows" 4
856 .IX Item "$nrow_plus_saveLines = $term->total_rows"
857 .ie n .IP "$lines_in_scrollback = $term\->nsaved" 4
858 .el .IP "$lines_in_scrollback = \f(CW$term\fR\->nsaved" 4
859 .IX Item "$lines_in_scrollback = $term->nsaved"
860 .PD
861 Return various integers describing terminal characteristics.
862 .ie n .IP "$x_display = $term\->display_id" 4
863 .el .IP "$x_display = \f(CW$term\fR\->display_id" 4
864 .IX Item "$x_display = $term->display_id"
865 Return the \s-1DISPLAY\s0 used by rxvt\-unicode.
866 .ie n .IP "$lc_ctype = $term\->locale" 4
867 .el .IP "$lc_ctype = \f(CW$term\fR\->locale" 4
868 .IX Item "$lc_ctype = $term->locale"
869 Returns the \s-1LC_CTYPE\s0 category string used by this rxvt\-unicode.
870 .ie n .IP "$env = $term\->env" 4
871 .el .IP "$env = \f(CW$term\fR\->env" 4
872 .IX Item "$env = $term->env"
873 Returns a copy of the environment in effect for the terminal as a hashref
874 similar to \f(CW\*(C`\e%ENV\*(C'\fR.
875 .ie n .IP "$modifiermask = $term\->ModLevel3Mask" 4
876 .el .IP "$modifiermask = \f(CW$term\fR\->ModLevel3Mask" 4
877 .IX Item "$modifiermask = $term->ModLevel3Mask"
878 .PD 0
879 .ie n .IP "$modifiermask = $term\->ModMetaMask" 4
880 .el .IP "$modifiermask = \f(CW$term\fR\->ModMetaMask" 4
881 .IX Item "$modifiermask = $term->ModMetaMask"
882 .ie n .IP "$modifiermask = $term\->ModNumLockMask" 4
883 .el .IP "$modifiermask = \f(CW$term\fR\->ModNumLockMask" 4
884 .IX Item "$modifiermask = $term->ModNumLockMask"
885 .PD
886 Return the modifier masks corresponding to the \*(L"\s-1ISO\s0 Level 3 Shift\*(R" (often
887 AltGr), the meta key (often Alt) and the num lock key, if applicable.
888 .ie n .IP "$view_start = $term\->view_start ([$newvalue])" 4
889 .el .IP "$view_start = \f(CW$term\fR\->view_start ([$newvalue])" 4
890 .IX Item "$view_start = $term->view_start ([$newvalue])"
891 Returns the negative row number of the topmost line. Minimum value is
892 \&\f(CW0\fR, which displays the normal terminal contents. Larger values scroll
893 this many lines into the scrollback buffer.
894 .IP "$term\->want_refresh" 4
895 .IX Item "$term->want_refresh"
896 Requests a screen refresh. At the next opportunity, rxvt-unicode will
897 compare the on-screen display with its stored representation. If they
898 differ, it redraws the differences.
899 .Sp
900 Used after changing terminal contents to display them.
901 .ie n .IP "$text = $term\fR\->ROW_t ($row_number[, \f(CW$new_text\fR[, \f(CW$start_col]])" 4
902 .el .IP "$text = \f(CW$term\fR\->ROW_t ($row_number[, \f(CW$new_text\fR[, \f(CW$start_col\fR]])" 4
903 .IX Item "$text = $term->ROW_t ($row_number[, $new_text[, $start_col]])"
904 Returns the text of the entire row with number \f(CW$row_number\fR. Row \f(CW0\fR
905 is the topmost terminal line, row \f(CW\*(C`$term\->$ncol\-1\*(C'\fR is the bottommost
906 terminal line. The scrollback buffer starts at line \f(CW\*(C`\-1\*(C'\fR and extends to
907 line \f(CW\*(C`\-$term\->nsaved\*(C'\fR. Nothing will be returned if a nonexistent line
908 is requested.
909 .Sp
910 If \f(CW$new_text\fR is specified, it will replace characters in the current
911 line, starting at column \f(CW$start_col\fR (default \f(CW0\fR), which is useful
912 to replace only parts of a line. The font index in the rendition will
913 automatically be updated.
914 .Sp
915 \&\f(CW$text\fR is in a special encoding: tabs and wide characters that use more
916 than one cell when displayed are padded with urxvt::NOCHAR characters
917 (\f(CW\*(C`chr 65535\*(C'\fR). Characters with combining characters and other characters
918 that do not fit into the normal tetx encoding will be replaced with
919 characters in the private use area.
920 .Sp
921 You have to obey this encoding when changing text. The advantage is
922 that \f(CW\*(C`substr\*(C'\fR and similar functions work on screen cells and not on
923 characters.
924 .Sp
925 The methods \f(CW\*(C`$term\->special_encode\*(C'\fR and \f(CW\*(C`$term\->special_decode\*(C'\fR
926 can be used to convert normal strings into this encoding and vice versa.
927 .ie n .IP "$rend = $term\fR\->ROW_r ($row_number[, \f(CW$new_rend\fR[, \f(CW$start_col]])" 4
928 .el .IP "$rend = \f(CW$term\fR\->ROW_r ($row_number[, \f(CW$new_rend\fR[, \f(CW$start_col\fR]])" 4
929 .IX Item "$rend = $term->ROW_r ($row_number[, $new_rend[, $start_col]])"
930 Like \f(CW\*(C`$term\->ROW_t\*(C'\fR, but returns an arrayref with rendition
931 bitsets. Rendition bitsets contain information about colour, font, font
932 styles and similar information. See also \f(CW\*(C`$term\->ROW_t\*(C'\fR.
933 .Sp
934 When setting rendition, the font mask will be ignored.
935 .Sp
936 See the section on \s-1RENDITION\s0, above.
937 .ie n .IP "$length = $term\fR\->ROW_l ($row_number[, \f(CW$new_length])" 4
938 .el .IP "$length = \f(CW$term\fR\->ROW_l ($row_number[, \f(CW$new_length\fR])" 4
939 .IX Item "$length = $term->ROW_l ($row_number[, $new_length])"
940 Returns the number of screen cells that are in use (\*(L"the line
941 length\*(R"). Unlike the urxvt core, this returns \f(CW\*(C`$term\->ncol\*(C'\fR if the
942 line is joined with the following one.
943 .ie n .IP "$bool = $term\->is_longer ($row_number)" 4
944 .el .IP "$bool = \f(CW$term\fR\->is_longer ($row_number)" 4
945 .IX Item "$bool = $term->is_longer ($row_number)"
946 Returns true if the row is part of a multiple-row logical \*(L"line\*(R" (i.e.
947 joined with the following row), which means all characters are in use
948 and it is continued on the next row (and possibly a continuation of the
949 previous row(s)).
950 .ie n .IP "$line = $term\->line ($row_number)" 4
951 .el .IP "$line = \f(CW$term\fR\->line ($row_number)" 4
952 .IX Item "$line = $term->line ($row_number)"
953 Create and return a new \f(CW\*(C`urxvt::line\*(C'\fR object that stores information
954 about the logical line that row \f(CW$row_number\fR is part of. It supports the
955 following methods:
956 .RS 4
957 .ie n .IP "$text = $line\->t ([$new_text])" 4
958 .el .IP "$text = \f(CW$line\fR\->t ([$new_text])" 4
959 .IX Item "$text = $line->t ([$new_text])"
960 Returns or replaces the full text of the line, similar to \f(CW\*(C`ROW_t\*(C'\fR
961 .ie n .IP "$rend = $line\->r ([$new_rend])" 4
962 .el .IP "$rend = \f(CW$line\fR\->r ([$new_rend])" 4
963 .IX Item "$rend = $line->r ([$new_rend])"
964 Returns or replaces the full rendition array of the line, similar to \f(CW\*(C`ROW_r\*(C'\fR
965 .ie n .IP "$length = $line\->l" 4
966 .el .IP "$length = \f(CW$line\fR\->l" 4
967 .IX Item "$length = $line->l"
968 Returns the length of the line in cells, similar to \f(CW\*(C`ROW_l\*(C'\fR.
969 .ie n .IP "$rownum = $line\->beg" 4
970 .el .IP "$rownum = \f(CW$line\fR\->beg" 4
971 .IX Item "$rownum = $line->beg"
972 .PD 0
973 .ie n .IP "$rownum = $line\->end" 4
974 .el .IP "$rownum = \f(CW$line\fR\->end" 4
975 .IX Item "$rownum = $line->end"
976 .PD
977 Return the row number of the first/last row of the line, respectively.
978 .ie n .IP "$offset = $line\fR\->offset_of ($row, \f(CW$col)" 4
979 .el .IP "$offset = \f(CW$line\fR\->offset_of ($row, \f(CW$col\fR)" 4
980 .IX Item "$offset = $line->offset_of ($row, $col)"
981 Returns the character offset of the given row|col pair within the logical
982 line. Works for rows outside the line, too, and returns corresponding
983 offsets outside the string.
984 .ie n .IP "($row, $col\fR) = \f(CW$line\->coord_of ($offset)" 4
985 .el .IP "($row, \f(CW$col\fR) = \f(CW$line\fR\->coord_of ($offset)" 4
986 .IX Item "($row, $col) = $line->coord_of ($offset)"
987 Translates a string offset into terminal coordinates again.
988 .RE
989 .RS 4
990 .RE
991 .ie n .IP "$text = $term\fR\->special_encode \f(CW$string" 4
992 .el .IP "$text = \f(CW$term\fR\->special_encode \f(CW$string\fR" 4
993 .IX Item "$text = $term->special_encode $string"
994 Converts a perl string into the special encoding used by rxvt\-unicode,
995 where one character corresponds to one screen cell. See
996 \&\f(CW\*(C`$term\->ROW_t\*(C'\fR for details.
997 .ie n .IP "$string = $term\fR\->special_decode \f(CW$text" 4
998 .el .IP "$string = \f(CW$term\fR\->special_decode \f(CW$text\fR" 4
999 .IX Item "$string = $term->special_decode $text"
1000 Converts rxvt-unicodes text reprsentation into a perl string. See
1001 \&\f(CW\*(C`$term\->ROW_t\*(C'\fR for details.
1002 .ie n .IP "$success = $term\fR\->grab_button ($button, \f(CW$modifiermask)" 4
1003 .el .IP "$success = \f(CW$term\fR\->grab_button ($button, \f(CW$modifiermask\fR)" 4
1004 .IX Item "$success = $term->grab_button ($button, $modifiermask)"
1005 Registers a synchronous button grab. See the XGrabButton manpage.
1006 .ie n .IP "$success = $term\fR\->grab ($eventtime[, \f(CW$sync])" 4
1007 .el .IP "$success = \f(CW$term\fR\->grab ($eventtime[, \f(CW$sync\fR])" 4
1008 .IX Item "$success = $term->grab ($eventtime[, $sync])"
1009 Calls XGrabPointer and XGrabKeyboard in asynchronous (default) or
1010 synchronous (\f(CW$sync\fR is true). Also remembers the grab timestampe.
1011 .IP "$term\->allow_events_async" 4
1012 .IX Item "$term->allow_events_async"
1013 Calls XAllowEvents with AsyncBoth for the most recent grab.
1014 .IP "$term\->allow_events_sync" 4
1015 .IX Item "$term->allow_events_sync"
1016 Calls XAllowEvents with SyncBoth for the most recent grab.
1017 .IP "$term\->allow_events_replay" 4
1018 .IX Item "$term->allow_events_replay"
1019 Calls XAllowEvents with both ReplayPointer and ReplayKeyboard for the most
1020 recent grab.
1021 .IP "$term\->ungrab" 4
1022 .IX Item "$term->ungrab"
1023 Calls XUngrab for the most recent grab. Is called automatically on
1024 evaluation errors, as it is better to lose the grab in the error case as
1025 the session.
1026 .ie n .Sh "The ""urxvt::popup"" Class"
1027 .el .Sh "The \f(CWurxvt::popup\fP Class"
1028 .IX Subsection "The urxvt::popup Class"
1029 .IP "$popup\->add_title ($title)" 4
1030 .IX Item "$popup->add_title ($title)"
1031 Adds a non-clickable title to the popup.
1032 .IP "$popup\->add_separator ([$sepchr])" 4
1033 .IX Item "$popup->add_separator ([$sepchr])"
1034 Creates a separator, optionally using the character given as \f(CW$sepchr\fR.
1035 .ie n .IP "$popup\->add_button ($text, $cb)" 4
1036 .el .IP "$popup\->add_button ($text, \f(CW$cb\fR)" 4
1037 .IX Item "$popup->add_button ($text, $cb)"
1038 Adds a clickable button to the popup. \f(CW$cb\fR is called whenever it is
1039 selected.
1040 .ie n .IP "$popup\->add_toggle ($text, $cb\fR, \f(CW$initial_value)" 4
1041 .el .IP "$popup\->add_toggle ($text, \f(CW$cb\fR, \f(CW$initial_value\fR)" 4
1042 .IX Item "$popup->add_toggle ($text, $cb, $initial_value)"
1043 Adds a toggle/checkbox item to the popup. Teh callback gets called
1044 whenever it gets toggled, with a boolean indicating its value as its first
1045 argument.
1046 .IP "$popup\->show" 4
1047 .IX Item "$popup->show"
1048 Displays the popup (which is initially hidden).
1049 .ie n .Sh "The ""urxvt::timer"" Class"
1050 .el .Sh "The \f(CWurxvt::timer\fP Class"
1051 .IX Subsection "The urxvt::timer Class"
1052 This class implements timer watchers/events. Time is represented as a
1053 fractional number of seconds since the epoch. Example:
1054 .PP
1055 .Vb 8
1056 \& $term->{overlay} = $term->overlay (-1, 0, 8, 1, urxvt::OVERLAY_RSTYLE, 0);
1057 \& $term->{timer} = urxvt::timer
1058 \& ->new
1059 \& ->interval (1)
1060 \& ->cb (sub {
1061 \& $term->{overlay}->set (0, 0,
1062 \& sprintf "%2d:%02d:%02d", (localtime urxvt::NOW)[2,1,0]);
1063 \& });
1064 .Ve
1065 .IP "$timer = new urxvt::timer" 4
1066 .IX Item "$timer = new urxvt::timer"
1067 Create a new timer object in started state. It is scheduled to fire
1068 immediately.
1069 .ie n .IP "$timer = $timer\fR\->cb (sub { my ($timer) = \f(CW@_; ... })" 4
1070 .el .IP "$timer = \f(CW$timer\fR\->cb (sub { my ($timer) = \f(CW@_\fR; ... })" 4
1071 .IX Item "$timer = $timer->cb (sub { my ($timer) = @_; ... })"
1072 Set the callback to be called when the timer triggers.
1073 .ie n .IP "$tstamp = $timer\->at" 4
1074 .el .IP "$tstamp = \f(CW$timer\fR\->at" 4
1075 .IX Item "$tstamp = $timer->at"
1076 Return the time this watcher will fire next.
1077 .ie n .IP "$timer = $timer\->set ($tstamp)" 4
1078 .el .IP "$timer = \f(CW$timer\fR\->set ($tstamp)" 4
1079 .IX Item "$timer = $timer->set ($tstamp)"
1080 Set the time the event is generated to \f(CW$tstamp\fR.
1081 .ie n .IP "$timer = $timer\->interval ($interval)" 4
1082 .el .IP "$timer = \f(CW$timer\fR\->interval ($interval)" 4
1083 .IX Item "$timer = $timer->interval ($interval)"
1084 Normally (and when \f(CW$interval\fR is \f(CW0\fR), the timer will automatically
1085 stop after it has fired once. If \f(CW$interval\fR is non\-zero, then the timer
1086 is automatically rescheduled at the given intervals.
1087 .ie n .IP "$timer = $timer\->start" 4
1088 .el .IP "$timer = \f(CW$timer\fR\->start" 4
1089 .IX Item "$timer = $timer->start"
1090 Start the timer.
1091 .ie n .IP "$timer = $timer\->start ($tstamp)" 4
1092 .el .IP "$timer = \f(CW$timer\fR\->start ($tstamp)" 4
1093 .IX Item "$timer = $timer->start ($tstamp)"
1094 Set the event trigger time to \f(CW$tstamp\fR and start the timer.
1095 .ie n .IP "$timer = $timer\->stop" 4
1096 .el .IP "$timer = \f(CW$timer\fR\->stop" 4
1097 .IX Item "$timer = $timer->stop"
1098 Stop the timer.
1099 .ie n .Sh "The ""urxvt::iow"" Class"
1100 .el .Sh "The \f(CWurxvt::iow\fP Class"
1101 .IX Subsection "The urxvt::iow Class"
1102 This class implements io watchers/events. Example:
1103 .PP
1104 .Vb 12
1105 \& $term->{socket} = ...
1106 \& $term->{iow} = urxvt::iow
1107 \& ->new
1108 \& ->fd (fileno $term->{socket})
1109 \& ->events (urxvt::EVENT_READ)
1110 \& ->start
1111 \& ->cb (sub {
1112 \& my ($iow, $revents) = @_;
1113 \& # $revents must be 1 here, no need to check
1114 \& sysread $term->{socket}, my $buf, 8192
1115 \& or end-of-file;
1116 \& });
1117 .Ve
1118 .IP "$iow = new urxvt::iow" 4
1119 .IX Item "$iow = new urxvt::iow"
1120 Create a new io watcher object in stopped state.
1121 .ie n .IP "$iow = $iow\fR\->cb (sub { my ($iow, \f(CW$reventmask\fR) = \f(CW@_; ... })" 4
1122 .el .IP "$iow = \f(CW$iow\fR\->cb (sub { my ($iow, \f(CW$reventmask\fR) = \f(CW@_\fR; ... })" 4
1123 .IX Item "$iow = $iow->cb (sub { my ($iow, $reventmask) = @_; ... })"
1124 Set the callback to be called when io events are triggered. \f(CW$reventmask\fR
1125 is a bitset as described in the \f(CW\*(C`events\*(C'\fR method.
1126 .ie n .IP "$iow = $iow\->fd ($fd)" 4
1127 .el .IP "$iow = \f(CW$iow\fR\->fd ($fd)" 4
1128 .IX Item "$iow = $iow->fd ($fd)"
1129 Set the filedescriptor (not handle) to watch.
1130 .ie n .IP "$iow = $iow\->events ($eventmask)" 4
1131 .el .IP "$iow = \f(CW$iow\fR\->events ($eventmask)" 4
1132 .IX Item "$iow = $iow->events ($eventmask)"
1133 Set the event mask to watch. The only allowed values are
1134 \&\f(CW\*(C`urxvt::EVENT_READ\*(C'\fR and \f(CW\*(C`urxvt::EVENT_WRITE\*(C'\fR, which might be ORed
1135 together, or \f(CW\*(C`urxvt::EVENT_NONE\*(C'\fR.
1136 .ie n .IP "$iow = $iow\->start" 4
1137 .el .IP "$iow = \f(CW$iow\fR\->start" 4
1138 .IX Item "$iow = $iow->start"
1139 Start watching for requested events on the given handle.
1140 .ie n .IP "$iow = $iow\->stop" 4
1141 .el .IP "$iow = \f(CW$iow\fR\->stop" 4
1142 .IX Item "$iow = $iow->stop"
1143 Stop watching for events on the given filehandle.
1144 .SH "ENVIRONMENT"
1145 .IX Header "ENVIRONMENT"
1146 .Sh "\s-1URXVT_PERL_VERBOSITY\s0"
1147 .IX Subsection "URXVT_PERL_VERBOSITY"
1148 This variable controls the verbosity level of the perl extension. Higher
1149 numbers indicate more verbose output.
1150 .IP "== 0 \- fatal messages" 4
1151 .IX Item "== 0 - fatal messages"
1152 .PD 0
1153 .IP ">= 3 \- script loading and management" 4
1154 .IX Item ">= 3 - script loading and management"
1155 .IP ">=10 \- all called hooks" 4
1156 .IX Item ">=10 - all called hooks"
1157 .IP ">=11 \- hook reutrn values" 4
1158 .IX Item ">=11 - hook reutrn values"
1159 .PD
1160 .SH "AUTHOR"
1161 .IX Header "AUTHOR"
1162 .Vb 2
1163 \& Marc Lehmann <pcg@goof.com>
1164 \& http://software.schmorp.de/pkg/rxvt-unicode
1165 .Ve