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.249 by root, Fri Dec 26 21:26:37 2014 UTC vs.
Revision 1.255 by root, Wed Jun 17 11:59:37 2015 UTC

45 45
46 URxvt.perl-ext-common: default,selection-autotransform 46 URxvt.perl-ext-common: default,selection-autotransform
47 47
48Extensions may add additional resources and C<actions>, i.e., methods 48Extensions may add additional resources and C<actions>, i.e., methods
49which can be bound to a key and invoked by the user. An extension can 49which can be bound to a key and invoked by the user. An extension can
50define the resources it support and also default bindings for one or 50define the resources it support using so called META comments,
51more actions it provides using so called META comments, described
52below. Similarly to builtin resources, extension resources can also be 51described below. Similarly to builtin resources, extension resources
53specified on the command line as long options (with C<.> replaced by 52can also be specified on the command line as long options (with C<.>
54C<->), in which case the corresponding extension is loaded 53replaced by C<->), in which case the corresponding extension is loaded
55automatically. For this to work the extension B<must> define META 54automatically. For this to work the extension B<must> define META
56comments for its resources. 55comments for its resources.
57 56
58=head1 API DOCUMENTATION 57=head1 API DOCUMENTATION
59 58
118=head2 META comments 117=head2 META comments
119 118
120Rxvt-unicode recognizes special meta comments in extensions that define 119Rxvt-unicode recognizes special meta comments in extensions that define
121different types of metadata. 120different types of metadata.
122 121
123Currently, it recxognises only one such comment: 122Currently, it recognises only one such comment:
124 123
125=over 4 124=over 4
126 125
127=item #:META:RESOURCE:name:type:desc 126=item #:META:RESOURCE:name:type:desc
128 127
1135 my ($self) = @_; 1134 my ($self) = @_;
1136 1135
1137 return if exists $self->{meta}; 1136 return if exists $self->{meta};
1138 1137
1139 my @urxvtdirs = perl_libdirs $self; 1138 my @urxvtdirs = perl_libdirs $self;
1140 my @cpandirs = grep -d, map "$_/URxvt/Ext", @INC; 1139# my @cpandirs = grep -d, map "$_/URxvt/Ext", @INC;
1141 1140
1142 $self->{meta} = \my %meta; 1141 $self->{meta} = \my %meta;
1143 1142
1144 # first gather extensions 1143 # first gather extensions
1145 1144
1182 1181
1183 $meta{ext}{$ext} = \%ext; 1182 $meta{ext}{$ext} = \%ext;
1184 } 1183 }
1185 }; 1184 };
1186 1185
1187 $gather->($_, 0) for @cpandirs; 1186# $gather->($_, 0) for @cpandirs;
1188 $gather->($_, 1) for @urxvtdirs; 1187 $gather->($_, 1) for @urxvtdirs;
1189 1188
1190 # and now merge resources 1189 # and now merge resources
1190
1191 $meta{resource} = \my %resource;
1192
1191 while (my ($k, $v) = each %{ $meta{ext} }) { 1193 while (my ($k, $v) = each %{ $meta{ext} }) {
1192 #TODO: should check for extensions overriding each other 1194 #TODO: should check for extensions overriding each other
1193 %{ $meta{resource} } = (%{ $meta{resource} }, %{ $v->{resource} }); 1195 %resource = (%resource, %{ $v->{resource} });
1194 } 1196 }
1195} 1197}
1196 1198
1197=item $term = new urxvt::term $envhashref, $rxvtname, [arg...] 1199=item $term = new urxvt::term $envhashref, $rxvtname, [arg...]
1198 1200
1344 my $res = &x_resource; 1346 my $res = &x_resource;
1345 1347
1346 $res =~ /^\s*(?:true|yes|on|1)\s*$/i ? 1 : defined $res && 0 1348 $res =~ /^\s*(?:true|yes|on|1)\s*$/i ? 1 : defined $res && 0
1347} 1349}
1348 1350
1351=item $action = $term->lookup_keysym ($keysym, $state)
1352
1353Returns the action bound to key combination C<($keysym, $state)>,
1354if a binding for it exists, and C<undef> otherwise.
1355
1349=item $success = $term->bind_action ($key, $action) 1356=item $success = $term->bind_action ($key, $action)
1350 1357
1351Adds a key binding exactly as specified via a C<keysym> resource. See the 1358Adds a key binding exactly as specified via a C<keysym> resource. See the
1352C<keysym> resource in the urxvt(1) manpage. 1359C<keysym> resource in the urxvt(1) manpage.
1353 1360
1354To add default bindings for an extension, the extension should call C<< 1361To add default bindings for actions, an extension should call C<<
1355->bind_action >> on it's C<init> hook for every such binding. Doing it 1362->bind_action >> in its C<init> hook for every such binding. Doing it
1356in the C<init> hook allows users the override or remove the the binding 1363in the C<init> hook allows users to override or remove the binding
1357again. 1364again.
1358 1365
1359Example: the C<searchable-scrollback> by default binds itself 1366Example: the C<searchable-scrollback> by default binds itself
1360on C<Meta-s>, using C<< $self->bind_action >>, which calls C<< 1367on C<Meta-s>, using C<< $self->bind_action >>, which calls C<<
1361$term->bind_action >>. 1368$term->bind_action >>.
1610 1617
1611=item $term->key_release ($state, $keycode[, $time]) 1618=item $term->key_release ($state, $keycode[, $time])
1612 1619
1613Deliver various fake events to to terminal. 1620Deliver various fake events to to terminal.
1614 1621
1615=item $window_width = $term->width 1622=item $window_width = $term->width ([$new_value])
1616 1623
1617=item $window_height = $term->height 1624=item $window_height = $term->height ([$new_value])
1618 1625
1619=item $font_width = $term->fwidth 1626=item $font_width = $term->fwidth ([$new_value])
1620 1627
1621=item $font_height = $term->fheight 1628=item $font_height = $term->fheight ([$new_value])
1622 1629
1623=item $font_ascent = $term->fbase 1630=item $font_ascent = $term->fbase ([$new_value])
1624 1631
1625=item $terminal_rows = $term->nrow 1632=item $terminal_rows = $term->nrow ([$new_value])
1626 1633
1627=item $terminal_columns = $term->ncol 1634=item $terminal_columns = $term->ncol ([$new_value])
1628 1635
1629=item $has_focus = $term->focus 1636=item $has_focus = $term->focus ([$new_value])
1630 1637
1631=item $is_mapped = $term->mapped 1638=item $is_mapped = $term->mapped ([$new_value])
1632 1639
1633=item $max_scrollback = $term->saveLines 1640=item $max_scrollback = $term->saveLines ([$new_value])
1634 1641
1635=item $nrow_plus_saveLines = $term->total_rows 1642=item $nrow_plus_saveLines = $term->total_rows ([$new_value])
1636 1643
1637=item $topmost_scrollback_row = $term->top_row 1644=item $topmost_scrollback_row = $term->top_row ([$new_value])
1638 1645
1639Return various integers describing terminal characteristics. 1646Return various integers describing terminal characteristics. If an
1647argument is given, changes the value and returns the previous one.
1640 1648
1641=item $x_display = $term->display_id 1649=item $x_display = $term->display_id
1642 1650
1643Return the DISPLAY used by rxvt-unicode. 1651Return the DISPLAY used by rxvt-unicode.
1644 1652
1694Requests a screen refresh. At the next opportunity, rxvt-unicode will 1702Requests a screen refresh. At the next opportunity, rxvt-unicode will
1695compare the on-screen display with its stored representation. If they 1703compare the on-screen display with its stored representation. If they
1696differ, it redraws the differences. 1704differ, it redraws the differences.
1697 1705
1698Used after changing terminal contents to display them. 1706Used after changing terminal contents to display them.
1707
1708=item $term->refresh_check
1709
1710Checks if a refresh has been requested and, if so, schedules one.
1699 1711
1700=item $text = $term->ROW_t ($row_number[, $new_text[, $start_col]]) 1712=item $text = $term->ROW_t ($row_number[, $new_text[, $start_col]])
1701 1713
1702Returns the text of the entire row with number C<$row_number>. Row C<< $term->top_row >> 1714Returns the text of the entire row with number C<$row_number>. Row C<< $term->top_row >>
1703is the topmost terminal line, row C<< $term->nrow-1 >> is the bottommost 1715is the topmost terminal line, row C<< $term->nrow-1 >> is the bottommost

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines