ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/urxvt.pm
(Generate patch)

Comparing rxvt-unicode/src/urxvt.pm (file contents):
Revision 1.90 by root, Thu Jan 12 12:15:10 2006 UTC vs.
Revision 1.95 by elmex, Tue Jan 17 13:19:45 2006 UTC

66 URxvt.selection.pattern-0: \\|([^|]+)\\| 66 URxvt.selection.pattern-0: \\|([^|]+)\\|
67 67
68You can look at the source of the selection extension to see more 68You can look at the source of the selection extension to see more
69interesting uses, such as parsing a line from beginning to end. 69interesting uses, such as parsing a line from beginning to end.
70 70
71This extension also offers the following bindable keyboard command: 71This extension also offers following bindable keyboard commands:
72 72
73=over 4 73=over 4
74 74
75=item rot13 75=item rot13
76 76
77Rot-13 the selection when activated. Used via keyboard trigger: 77Rot-13 the selection when activated. Used via keyboard trigger:
78 78
79 URxvt.keysym.C-M-r: perl:selection:rot13 79 URxvt.keysym.C-M-r: perl:selection:rot13
80
81=item remote-pastebin
82
83Upload the selection as textfile to a remote site.
84
85 URxvt.keysym.C-M-e: perl:selection:remote-pastebin
86
87To set the command to upload the file set this resource:
88
89 URxvt.selection-pastebin-cmd: rsync -apP % ruth:/var/www/www.ta-sa.org/files/txt/.
90
91The % is the placeholder for the textfile. The name of the textfile is the hex encoded
92md5 sum of the selection.
93After an successful upload the selection will be replaced by the following url
94(the % is the placeholder for the filename):
95
96 URxvt.selection-pastebin-url: http://www.ta-sa.org/files/txt/%
80 97
81=back 98=back
82 99
83=item option-popup (enabled by default) 100=item option-popup (enabled by default)
84 101
120 137
121For example, the following will transform selections of the form 138For example, the following will transform selections of the form
122C<filename:number>, often seen in compiler messages, into C<vi +$filename 139C<filename:number>, often seen in compiler messages, into C<vi +$filename
123$word>: 140$word>:
124 141
125 URxvt.selection-autotransform.0: s/^(\\S+):(\\d+):?$/vi +$2 \\Q$1\\E\\x0d/ 142 URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/vi +$2 \\Q$1\\E\\x0d/
126 143
127And this example matches the same,but replaces it with vi-commands you can 144And this example matches the same,but replaces it with vi-commands you can
128paste directly into your (vi :) editor: 145paste directly into your (vi :) editor:
129 146
130 URxvt.selection-autotransform.0: s/^(S+):(d+):?$/\\x1b:e \\Q$1\\E\\x0d:$2\\x0d/ 147 URxvt.selection-autotransform.0: s/^([^:[:space:]]+(\\d+):?$/\\x1b:e \\Q$1\\E\\x0d:$2\\x0d/
131 148
132Of course, this can be modified to suit your needs and your editor :) 149Of course, this can be modified to suit your needs and your editor :)
150
151To expand the example above to typical perl error messages ("XXX at
152FILENAME line YYY."), you need a slightly more elaborate solution:
153
154 URxvt.selection.pattern-0: ( at .*? line \\d+\\.)
155 URxvt.selection-autotransform.0: s/^ at (.*?) line (\\d+)\\.$/\x1b:e \\Q$1\E\\x0d:$2\\x0d/
156
157The first line tells the selection code to treat the unchanging part of
158every error message as a selection pattern, and the second line transforms
159the message into vi commands to load the file.
133 160
134=item mark-urls 161=item mark-urls
135 162
136Uses per-line display filtering (C<on_line_update>) to underline urls and 163Uses per-line display filtering (C<on_line_update>) to underline urls and
137make them clickable. When middle-clicked, the program specified in the 164make them clickable. When middle-clicked, the program specified in the
361 388
362Called whenever the user presses a key combination that has a 389Called whenever the user presses a key combination that has a
363C<perl:string> action bound to it (see description of the B<keysym> 390C<perl:string> action bound to it (see description of the B<keysym>
364resource in the @@RXVT_NAME@@(1) manpage). 391resource in the @@RXVT_NAME@@(1) manpage).
365 392
393=item on_x_event $term, $event
394
395Called on every X event received on the vt window (and possibly other
396windows). Should only be used as a last resort. Most event structure
397members are not passed.
398
366=item on_focus_in $term 399=item on_focus_in $term
367 400
368Called whenever the window gets the keyboard focus, before rxvt-unicode 401Called whenever the window gets the keyboard focus, before rxvt-unicode
369does focus in processing. 402does focus in processing.
370 403
480=item urxvt::CurrentTime 513=item urxvt::CurrentTime
481 514
482=item urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, 515=item urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask,
483Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, 516Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask,
484Button4Mask, Button5Mask, AnyModifier 517Button4Mask, Button5Mask, AnyModifier
518
519=item urxvt::NoEventMask, KeyPressMask, KeyReleaseMask,
520ButtonPressMask, ButtonReleaseMask, EnterWindowMask, LeaveWindowMask,
521PointerMotionMask, PointerMotionHintMask, Button1MotionMask, Button2MotionMask,
522Button3MotionMask, Button4MotionMask, Button5MotionMask, ButtonMotionMask,
523KeymapStateMask, ExposureMask, VisibilityChangeMask, StructureNotifyMask,
524ResizeRedirectMask, SubstructureNotifyMask, SubstructureRedirectMask,
525FocusChangeMask, PropertyChangeMask, ColormapChangeMask, OwnerGrabButtonMask
526
527=item urxvt::KeyPress, KeyRelease, ButtonPress, ButtonRelease, MotionNotify,
528EnterNotify, LeaveNotify, FocusIn, FocusOut, KeymapNotify, Expose,
529GraphicsExpose, NoExpose, VisibilityNotify, CreateNotify, DestroyNotify,
530UnmapNotify, MapNotify, MapRequest, ReparentNotify, ConfigureNotify,
531ConfigureRequest, GravityNotify, ResizeRequest, CirculateNotify,
532CirculateRequest, PropertyNotify, SelectionClear, SelectionRequest,
533SelectionNotify, ColormapNotify, ClientMessage, MappingNotify
485 534
486Various constants for use in X calls and event processing. 535Various constants for use in X calls and event processing.
487 536
488=back 537=back
489 538
557 delete $ENV{CDPATH}; 606 delete $ENV{CDPATH};
558 delete $ENV{BASH_ENV}; 607 delete $ENV{BASH_ENV};
559 $ENV{PATH} = "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin:/opt/sbin"; 608 $ENV{PATH} = "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin:/opt/sbin";
560} 609}
561 610
562my @hook_count;
563my $verbosity = $ENV{URXVT_PERL_VERBOSITY}; 611my $verbosity = $ENV{URXVT_PERL_VERBOSITY};
564 612
565sub verbose { 613sub verbose {
566 my ($level, $msg) = @_; 614 my ($level, $msg) = @_;
567 warn "$msg\n" if $level <= $verbosity; 615 warn "$msg\n" if $level <= $verbosity;
655 verbose 11, "$HOOKNAME[$htype] returning <$retval>" 703 verbose 11, "$HOOKNAME[$htype] returning <$retval>"
656 if $verbosity >= 11; 704 if $verbosity >= 11;
657 } 705 }
658 706
659 if ($htype == 1) { # DESTROY 707 if ($htype == 1) { # DESTROY
660 if (my $hook = delete $TERM->{_hook}) {
661 for my $htype (0..$#$hook) {
662 $hook_count[$htype] -= scalar keys %{ $hook->[$htype] || {} }
663 or set_should_invoke $htype, 0;
664 }
665 }
666
667 # clear package objects 708 # clear package objects
668 %$_ = () for values %{ $TERM->{_pkg} }; 709 %$_ = () for values %{ $TERM->{_pkg} };
669 710
670 # clear package 711 # clear package
671 %$TERM = (); 712 %$TERM = ();
697 while (my ($name, $cb) = each %hook) { 738 while (my ($name, $cb) = each %hook) {
698 my $htype = $HOOKTYPE{uc $name}; 739 my $htype = $HOOKTYPE{uc $name};
699 defined $htype 740 defined $htype
700 or Carp::croak "unsupported hook type '$name'"; 741 or Carp::croak "unsupported hook type '$name'";
701 742
743 $self->set_should_invoke ($htype, +1)
702 unless (exists $self->{term}{_hook}[$htype]{$pkg}) { 744 unless exists $self->{term}{_hook}[$htype]{$pkg};
703 $hook_count[$htype]++
704 or urxvt::set_should_invoke $htype, 1;
705 }
706 745
707 $self->{term}{_hook}[$htype]{$pkg} = $cb; 746 $self->{term}{_hook}[$htype]{$pkg} = $cb;
708 } 747 }
709} 748}
710 749
715 for my $name (@hook) { 754 for my $name (@hook) {
716 my $htype = $HOOKTYPE{uc $name}; 755 my $htype = $HOOKTYPE{uc $name};
717 defined $htype 756 defined $htype
718 or Carp::croak "unsupported hook type '$name'"; 757 or Carp::croak "unsupported hook type '$name'";
719 758
759 $self->set_should_invoke ($htype, -1)
720 if (delete $self->{term}{_hook}[$htype]{$pkg}) { 760 if delete $self->{term}{_hook}[$htype]{$pkg};
721 --$hook_count[$htype]
722 or urxvt::set_should_invoke $htype, 0;
723 }
724 } 761 }
725} 762}
726 763
727our $AUTOLOAD; 764our $AUTOLOAD;
728 765
1133 1170
1134=item $windowid = $term->vt 1171=item $windowid = $term->vt
1135 1172
1136Return the window id of the terminal window. 1173Return the window id of the terminal window.
1137 1174
1175=item $term->vt_emask_add ($x_event_mask)
1176
1177Adds the specified events to the vt event mask. Useful e.g. when you want
1178to receive pointer events all the times:
1179
1180 $term->vt_emask_add (urxvt::PointerMotionMask);
1181
1138=item $window_width = $term->width 1182=item $window_width = $term->width
1139 1183
1140=item $window_height = $term->height 1184=item $window_height = $term->height
1141 1185
1142=item $font_width = $term->fwidth 1186=item $font_width = $term->fwidth
1155 1199
1156=item $max_scrollback = $term->saveLines 1200=item $max_scrollback = $term->saveLines
1157 1201
1158=item $nrow_plus_saveLines = $term->total_rows 1202=item $nrow_plus_saveLines = $term->total_rows
1159 1203
1160=item $lines_in_scrollback = $term->nsaved 1204=item $topmost_scrollback_row = $term->top_row
1161 1205
1162Return various integers describing terminal characteristics. 1206Return various integers describing terminal characteristics.
1163 1207
1164=item $x_display = $term->display_id 1208=item $x_display = $term->display_id
1165 1209
1193Return the modifier masks corresponding to the "ISO Level 3 Shift" (often 1237Return the modifier masks corresponding to the "ISO Level 3 Shift" (often
1194AltGr), the meta key (often Alt) and the num lock key, if applicable. 1238AltGr), the meta key (often Alt) and the num lock key, if applicable.
1195 1239
1196=item $view_start = $term->view_start ([$newvalue]) 1240=item $view_start = $term->view_start ([$newvalue])
1197 1241
1198Returns the negative row number of the topmost line. Minimum value is 1242Returns the row number of the topmost displayed line. Maximum value is
1199C<0>, which displays the normal terminal contents. Larger values scroll 1243C<0>, which displays the normal terminal contents. Lower values scroll
1200this many lines into the scrollback buffer. 1244this many lines into the scrollback buffer.
1201 1245
1202=item $term->want_refresh 1246=item $term->want_refresh
1203 1247
1204Requests a screen refresh. At the next opportunity, rxvt-unicode will 1248Requests a screen refresh. At the next opportunity, rxvt-unicode will

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines