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.257 by root, Thu Jul 13 10:31:27 2017 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
512ConfigureRequest, GravityNotify, ResizeRequest, CirculateNotify, 511ConfigureRequest, GravityNotify, ResizeRequest, CirculateNotify,
513CirculateRequest, PropertyNotify, SelectionClear, SelectionRequest, 512CirculateRequest, PropertyNotify, SelectionClear, SelectionRequest,
514SelectionNotify, ColormapNotify, ClientMessage, MappingNotify 513SelectionNotify, ColormapNotify, ClientMessage, MappingNotify
515 514
516Various constants for use in X calls and event processing. 515Various constants for use in X calls and event processing.
516
517=item urxvt::PrivMode_132, PrivMode_132OK, PrivMode_rVideo, PrivMode_relOrigin,
518PrivMode_Screen, PrivMode_Autowrap, PrivMode_aplCUR, PrivMode_aplKP,
519PrivMode_HaveBackSpace, PrivMode_BackSpace, PrivMode_ShiftKeys,
520PrivMode_VisibleCursor, PrivMode_MouseX10, PrivMode_MouseX11,
521PrivMode_scrollBar, PrivMode_TtyOutputInh, PrivMode_Keypress,
522PrivMode_smoothScroll, PrivMode_vt52, PrivMode_LFNL, PrivMode_MouseBtnEvent,
523PrivMode_MouseAnyEvent, PrivMode_BracketPaste, PrivMode_ExtModeMouse,
524PrivMode_ExtMouseRight, PrivMode_BlinkingCursor, PrivMode_mouse_report,
525PrivMode_Default
526
527Constants for checking DEC private modes.
517 528
518=back 529=back
519 530
520=head2 RENDITION 531=head2 RENDITION
521 532
604 } 615 }
605 if ($pattern eq $prefix) { 616 if ($pattern eq $prefix) {
606 $name = "$urxvt::RESCLASS.$k$suffix"; 617 $name = "$urxvt::RESCLASS.$k$suffix";
607 618
608 push @{ $term->{perl_ext_3} }, $v->[0]; 619 push @{ $term->{perl_ext_3} }, $v->[0];
620
621 return 1 unless $isarg;
609 622
610 if ($v->[1] eq "boolean") { 623 if ($v->[1] eq "boolean") {
611 $term->put_option_db ($name, $flag ? "true" : "false"); 624 $term->put_option_db ($name, $flag ? "true" : "false");
612 return 1; 625 return 1;
613 } else { 626 } else {
1135 my ($self) = @_; 1148 my ($self) = @_;
1136 1149
1137 return if exists $self->{meta}; 1150 return if exists $self->{meta};
1138 1151
1139 my @urxvtdirs = perl_libdirs $self; 1152 my @urxvtdirs = perl_libdirs $self;
1140 my @cpandirs = grep -d, map "$_/URxvt/Ext", @INC; 1153# my @cpandirs = grep -d, map "$_/URxvt/Ext", @INC;
1141 1154
1142 $self->{meta} = \my %meta; 1155 $self->{meta} = \my %meta;
1143 1156
1144 # first gather extensions 1157 # first gather extensions
1145 1158
1182 1195
1183 $meta{ext}{$ext} = \%ext; 1196 $meta{ext}{$ext} = \%ext;
1184 } 1197 }
1185 }; 1198 };
1186 1199
1187 $gather->($_, 0) for @cpandirs; 1200# $gather->($_, 0) for @cpandirs;
1188 $gather->($_, 1) for @urxvtdirs; 1201 $gather->($_, 1) for @urxvtdirs;
1189 1202
1190 # and now merge resources 1203 # and now merge resources
1204
1205 $meta{resource} = \my %resource;
1206
1191 while (my ($k, $v) = each %{ $meta{ext} }) { 1207 while (my ($k, $v) = each %{ $meta{ext} }) {
1192 #TODO: should check for extensions overriding each other 1208 #TODO: should check for extensions overriding each other
1193 %{ $meta{resource} } = (%{ $meta{resource} }, %{ $v->{resource} }); 1209 %resource = (%resource, %{ $v->{resource} });
1194 } 1210 }
1195} 1211}
1196 1212
1197=item $term = new urxvt::term $envhashref, $rxvtname, [arg...] 1213=item $term = new urxvt::term $envhashref, $rxvtname, [arg...]
1198 1214
1344 my $res = &x_resource; 1360 my $res = &x_resource;
1345 1361
1346 $res =~ /^\s*(?:true|yes|on|1)\s*$/i ? 1 : defined $res && 0 1362 $res =~ /^\s*(?:true|yes|on|1)\s*$/i ? 1 : defined $res && 0
1347} 1363}
1348 1364
1365=item $action = $term->lookup_keysym ($keysym, $state)
1366
1367Returns the action bound to key combination C<($keysym, $state)>,
1368if a binding for it exists, and C<undef> otherwise.
1369
1349=item $success = $term->bind_action ($key, $action) 1370=item $success = $term->bind_action ($key, $action)
1350 1371
1351Adds a key binding exactly as specified via a C<keysym> resource. See the 1372Adds a key binding exactly as specified via a C<keysym> resource. See the
1352C<keysym> resource in the urxvt(1) manpage. 1373C<keysym> resource in the urxvt(1) manpage.
1353 1374
1354To add default bindings for an extension, the extension should call C<< 1375To 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 1376->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 1377in the C<init> hook allows users to override or remove the binding
1357again. 1378again.
1358 1379
1359Example: the C<searchable-scrollback> by default binds itself 1380Example: the C<searchable-scrollback> by default binds itself
1360on C<Meta-s>, using C<< $self->bind_action >>, which calls C<< 1381on C<Meta-s>, using C<< $self->bind_action >>, which calls C<<
1361$term->bind_action >>. 1382$term->bind_action >>.
1610 1631
1611=item $term->key_release ($state, $keycode[, $time]) 1632=item $term->key_release ($state, $keycode[, $time])
1612 1633
1613Deliver various fake events to to terminal. 1634Deliver various fake events to to terminal.
1614 1635
1615=item $window_width = $term->width 1636=item $window_width = $term->width ([$new_value])
1616 1637
1617=item $window_height = $term->height 1638=item $window_height = $term->height ([$new_value])
1618 1639
1619=item $font_width = $term->fwidth 1640=item $font_width = $term->fwidth ([$new_value])
1620 1641
1621=item $font_height = $term->fheight 1642=item $font_height = $term->fheight ([$new_value])
1622 1643
1623=item $font_ascent = $term->fbase 1644=item $font_ascent = $term->fbase ([$new_value])
1624 1645
1625=item $terminal_rows = $term->nrow 1646=item $terminal_rows = $term->nrow ([$new_value])
1626 1647
1627=item $terminal_columns = $term->ncol 1648=item $terminal_columns = $term->ncol ([$new_value])
1628 1649
1629=item $has_focus = $term->focus 1650=item $has_focus = $term->focus ([$new_value])
1630 1651
1631=item $is_mapped = $term->mapped 1652=item $is_mapped = $term->mapped ([$new_value])
1632 1653
1633=item $max_scrollback = $term->saveLines 1654=item $max_scrollback = $term->saveLines ([$new_value])
1634 1655
1635=item $nrow_plus_saveLines = $term->total_rows 1656=item $nrow_plus_saveLines = $term->total_rows ([$new_value])
1636 1657
1637=item $topmost_scrollback_row = $term->top_row 1658=item $topmost_scrollback_row = $term->top_row ([$new_value])
1638 1659
1639Return various integers describing terminal characteristics. 1660Return various integers describing terminal characteristics. If an
1661argument is given, changes the value and returns the previous one.
1640 1662
1641=item $x_display = $term->display_id 1663=item $x_display = $term->display_id
1642 1664
1643Return the DISPLAY used by rxvt-unicode. 1665Return the DISPLAY used by rxvt-unicode.
1644 1666
1680Returns the currently displayed screen (0 primary, 1 secondary). 1702Returns the currently displayed screen (0 primary, 1 secondary).
1681 1703
1682=item $cursor_is_hidden = $term->hidden_cursor 1704=item $cursor_is_hidden = $term->hidden_cursor
1683 1705
1684Returns whether the cursor is currently hidden or not. 1706Returns whether the cursor is currently hidden or not.
1707
1708=item $priv_modes = $term->priv_modes
1709
1710Returns a bitset with the state of DEC private modes.
1711
1712Example:
1713
1714 if ($term->priv_modes & urxvt::PrivMode_mouse_report) {
1715 # mouse reporting is turned on
1716 }
1685 1717
1686=item $view_start = $term->view_start ([$newvalue]) 1718=item $view_start = $term->view_start ([$newvalue])
1687 1719
1688Returns the row number of the topmost displayed line. Maximum value is 1720Returns the row number of the topmost displayed line. Maximum value is
1689C<0>, which displays the normal terminal contents. Lower values scroll 1721C<0>, which displays the normal terminal contents. Lower values scroll
1694Requests a screen refresh. At the next opportunity, rxvt-unicode will 1726Requests a screen refresh. At the next opportunity, rxvt-unicode will
1695compare the on-screen display with its stored representation. If they 1727compare the on-screen display with its stored representation. If they
1696differ, it redraws the differences. 1728differ, it redraws the differences.
1697 1729
1698Used after changing terminal contents to display them. 1730Used after changing terminal contents to display them.
1731
1732=item $term->refresh_check
1733
1734Checks if a refresh has been requested and, if so, schedules one.
1699 1735
1700=item $text = $term->ROW_t ($row_number[, $new_text[, $start_col]]) 1736=item $text = $term->ROW_t ($row_number[, $new_text[, $start_col]])
1701 1737
1702Returns the text of the entire row with number C<$row_number>. Row C<< $term->top_row >> 1738Returns 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 1739is the topmost terminal line, row C<< $term->nrow-1 >> is the bottommost

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines