ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/doc/rxvt.1.pod
(Generate patch)

Comparing rxvt-unicode/doc/rxvt.1.pod (file contents):
Revision 1.227 by sf-exg, Sat Apr 26 14:07:36 2014 UTC vs.
Revision 1.228 by root, Sun Apr 27 19:43:46 2014 UTC

1041Sets the working directory for the shell (or the command specified via 1041Sets the working directory for the shell (or the command specified via
1042B<-e>). The I<path> must be an absolute path and it must exist for 1042B<-e>). The I<path> must be an absolute path and it must exist for
1043@@RXVT_NAME@@ to start. If it isn't specified then the current working 1043@@RXVT_NAME@@ to start. If it isn't specified then the current working
1044directory will be used; option B<-cd>. 1044directory will be used; option B<-cd>.
1045 1045
1046=item B<keysym.>I<sym>: I<string> 1046=item B<keysym.>I<sym>: I<action>
1047 1047
1048Compile I<frills>: Associate I<string> with keysym I<sym>. The 1048Compile I<frills>: Associate I<action> with keysym I<sym>. The intervening
1049intervening resource name B<keysym.> cannot be omitted. 1049resource name B<keysym.> cannot be omitted.
1050 1050
1051The format of I<sym> is "I<(modifiers-)key>", where I<modifiers> can be 1051Using this resource, you can map key combinations such as
1052any combination of B<ISOLevel3>, B<AppKeypad>, B<Control>, B<NumLock>, 1052C<Ctrl-Shift-BackSpace> to various actions, such as outputting a different
1053B<Shift>, B<Meta>, B<Lock>, B<Mod1>, B<Mod2>, B<Mod3>, B<Mod4>, B<Mod5>, 1053string than would normally result from that combination, making the
1054and the abbreviated B<I>, B<K>, B<C>, B<N>, B<S>, B<M>, B<A>, B<L>, B<1>, 1054terminal scroll up or down the way you want it, or any other thing an
1055B<2>, B<3>, B<4>, B<5>. 1055extension might provide.
1056
1057The key combination that triggers the action, I<sym>, has the following format:
1058
1059 (modifiers-)key
1060
1061Where I<modifiers> can be any combination of B<ISOLevel3>, B<AppKeypad>,
1062B<Control>, B<NumLock>, B<Shift>, B<Meta>, B<Lock>, B<Mod1>, B<Mod2>,
1063B<Mod3>, B<Mod4>, B<Mod5>, and the abbreviated B<I>, B<K>, B<C>, B<N>,
1064B<S>, B<M>, B<A>, B<L>, B<1>, B<2>, B<3>, B<4>, B<5>.
1056 1065
1057The B<NumLock>, B<Meta> and B<ISOLevel3> modifiers are usually aliased to 1066The B<NumLock>, B<Meta> and B<ISOLevel3> modifiers are usually aliased to
1058whatever modifier the NumLock key, Meta/Alt keys or ISO Level3 Shift/AltGr 1067whatever modifier the NumLock key, Meta/Alt keys or ISO Level3 Shift/AltGr
1059keys are being mapped. B<AppKeypad> is a synthetic modifier mapped to the 1068keys are being mapped. B<AppKeypad> is a synthetic modifier mapped to the
1060current application keymap mode state. 1069current application keymap mode state.
1061 1070
1062The spellings of I<key> can be obtained by using B<xev>(1) command or 1071Due the the large number of modifier combinations, a key mapping will
1063searching keysym macros from B</usr/X11R6/include/X11/keysymdef.h> and 1072match if I<at least> the specified identifiers are being set, and no other
1073key mappings with those and more bits are being defined. That means that
1074defining a mapping for C<a> will automatically provide definitions for
1075C<Meta-a>, C<Shift-a> and so on, unless some of those are defined mappings
1076themselves. See the C<builtin:> action, below, for a way to work around
1077this when this is a problem.
1078
1079The spelling of I<key> depends on your implementation of X. An easy way to
1080find a key name is to use the B<xev>(1) command. You can find a list by
1081looking for the C<XK_> macros in the B<X11/keysymdef.h> include file (omit
1064omitting the prefix B<XK_>. Alternatively you can specify I<key> by its hex 1082the C<XK_> prefix). Alternatively you can specify I<key> by its hex keysym
1065keysym value (B<0x0000 - 0xFFFF>). Note that the lookup of I<sym>s is not 1083value (B<0x0000 - 0xFFFF>).
1066performed in an exact manner; however, the closest match is assured.
1067 1084
1068I<string> may contain escape values (C<\n>: newline, C<\000>: octal 1085As with any resource value, the I<action> string may contain backslash
1086escape sequences (C<\n>: newline, C<\\>: backslash, C<\000>: octal
1069number), see RESOURCES in C<man 7 X> for further details. 1087number), see RESOURCES in C<man 7 X> for further details.
1070 1088
1089An action starts with an action prefix that selects a certain type
1090of action, followed by a colon. An action strings without colons is
1091interpreted as a literal string to pass to the tty (as if they were
1092prefixed with C<string:>).
1093
1094The following action prefixes are known - extensions can provide
1095additional prefixes:
1096
1097=over 4
1098
1099=item string:STRING
1100
1101If the I<action> starts with C<string:> (or otherwise contains no colons),
1102then the remaining C<STRING> will be passed to the program running in the
1103terminal. For example, you could replace whatever Shift-Tab outputs by the
1104string C<echo rm -rf /> followed by a newline:
1105
1106 URxvt.keysym.Shift-Tab: string:echo rm -rf /\n
1107
1108This could in theory be used to completely redefine your keymap.
1109
1110=item command:STRING
1111
1112If I<action> takes the form of C<command:STRING>, the specified B<STRING>
1113is interpreted and executed as @@RXVT_NAME@@'s control sequence (basically
1114the opposite of C<string:> - instead of sending it to the program running
1115in the terminal, it will be treated as if it were program output). This is
1116most useful to feed command sequences into @@RXVT_NAME@@.
1117
1118For example the following means "change the current locale to C<zh_CN.GBK>
1119when Control-Meta-c is being pressed":
1120
1121 URxvt.keysym.M-C-c: command:\033]701;zh_CN.GBK\007
1122
1123The following example will map Control-Meta-1 and Control-Meta-2 to
1124the fonts C<suxuseuro> and C<9x15bold>, so you can have some limited
1125font-switching at runtime:
1126
1127 URxvt.keysym.M-C-1: command:\033]50;suxuseuro\007
1128 URxvt.keysym.M-C-2: command:\033]50;9x15bold\007
1129
1130Other things are possible, e.g. resizing (see @@RXVT_NAME@@(7) for more
1131info):
1132
1133 URxvt.keysym.M-C-3: command:\033[8;25;80t
1134 URxvt.keysym.M-C-4: command:\033[8;48;110t
1135
1136=item builtin:
1137
1138The builtin action is the action that @@RXVT_NAME@@ would execute if no
1139key binding existed for the key combination. The obvious use is to undo
1140the effect of existing bindings. The not so obvious use is to reinstate
1141bindings when another binding overrides too many modifiers.
1142
1143For example if you overwrite the C<Insert> key you will disable
1144@@RXVT_NAME@@'s C<Shift-Insert> mapping. To re-enable that, you can poke
1145"holes" into the user-defined keymap using the C<builtin:> replacement:
1146
1147 URxvt.keysym.Insert: <my insert key sequence>
1148 URxvt.keysym.S-Insert: builtin:
1149
1150The first line defines a mapping for C<Insert> and I<any> combination
1151of modifiers. The second line re-establishes the default mapping for
1152C<Shift-Insert>.
1153
1154=item EXTENSION:STRING
1155
1156An action of this form passes the B<STRING> to the @@RXVT_NAME@@perl(3)
1157extension of the same name. The extension will be loaded automatically if
1158neccessary.
1159
1160Not all extensions define key actions, but popular extensions that do
1161include the I<selection> and I<matcher> extensions (documented in their
1162own manpages, @@RXVT_NAME@@-selection(1) and @@RXVT_NAME@@-matcher(1),
1163respectively).
1164
1165From the silly examples department, this will rot13-"encrypt"
1166@@RXVT_NAME@@'s selection when Alt-Control-c is pressed on typical PC
1167keyboards:
1168
1169 URxvt.keysym.M-C-c: selection:rot13
1170
1171=item perl:STRING
1172
1173This is a deprecated way of passing key mappings to perl extensions. It is
1174still supported, but should not be used anymore.
1175
1176=back
1177
1071You can define a range of keysyms in one shot by 1178In addition, you can define a range of keysyms in one shot by loading
1072loading the C<keysym-list> perl extension and providing a I<string> 1179the C<keysym-list> perl extension and providing a I<string> with pattern
1073with pattern B<list/PREFIX/MIDDLE/SUFFIX>, where the delimiter `/' 1180B<list/PREFIX/MIDDLE/SUFFIX>, where the delimiter `/' should be a
1074should be a character not used by the strings. 1181character not used by the strings.
1075 1182
1076Its usage can be demonstrated by an example: 1183Its usage can be demonstrated by an example:
1077 1184
1078 URxvt.keysym.M-C-0x61: list|\033<|abc|> 1185 URxvt.keysym.M-C-0x61: list|\033<|abc|>
1079 1186
1080The above line is equivalent to the following three lines: 1187The above line is equivalent to the following three lines:
1081 1188
1082 URxvt.keysym.Meta-Control-0x61: \033<a> 1189 URxvt.keysym.Meta-Control-0x61: \033<a>
1083 URxvt.keysym.Meta-Control-0x62: \033<b> 1190 URxvt.keysym.Meta-Control-0x62: \033<b>
1084 URxvt.keysym.Meta-Control-0x63: \033<c> 1191 URxvt.keysym.Meta-Control-0x63: \033<c>
1085
1086If I<string> takes the form of C<command:STRING>, the specified B<STRING>
1087is interpreted and executed as @@RXVT_NAME@@'s control sequence. For
1088example the following means "change the current locale to C<zh_CN.GBK>
1089when Control-Meta-c is being pressed":
1090
1091 URxvt.keysym.M-C-c: command:\033]701;zh_CN.GBK\007
1092
1093If I<string> takes the form C<perl:STRING>, then the specified B<STRING>
1094is passed to the C<on_user_command> perl handler. See the @@RXVT_NAME@@perl(3)
1095manpage. For example, the F<selection> extension (activated via
1096C<@@RXVT_NAME@@ -pe selection>) listens for C<selection:rot13> events:
1097
1098 URxvt.keysym.M-C-c: perl:selection:rot13
1099
1100Due the the large number of modifier combinations, a defined key mapping
1101will match if I<at least> the specified identifiers are being set, and
1102no other key mappings with those and more bits are being defined. That
1103means that defining a key map for C<a> will automatically provide
1104definitions for C<Meta-a>, C<Shift-a> and so on, unless some of those are defined
1105mappings themselves.
1106
1107Unfortunately, this will override built-in key mappings. For example
1108if you overwrite the C<Insert> key you will disable @@RXVT_NAME@@'s
1109C<Shift-Insert> mapping. To re-enable that, you can poke "holes" into the
1110user-defined keymap using the C<builtin:> replacement:
1111
1112 URxvt.keysym.Insert: <my insert key sequence>
1113 URxvt.keysym.S-Insert: builtin:
1114
1115The first line defines a mapping for C<Insert> and I<any> combination
1116of modifiers. The second line re-establishes the default mapping for
1117C<Shift-Insert>.
1118
1119The following example will map Control-Meta-1 and Control-Meta-2 to
1120the fonts C<suxuseuro> and C<9x15bold>, so you can have some limited
1121font-switching at runtime:
1122
1123 URxvt.keysym.M-C-1: command:\033]50;suxuseuro\007
1124 URxvt.keysym.M-C-2: command:\033]50;9x15bold\007
1125
1126Other things are possible, e.g. resizing (see @@RXVT_NAME@@(7) for more
1127info):
1128
1129 URxvt.keysym.M-C-3: command:\033[8;25;80t
1130 URxvt.keysym.M-C-4: command:\033[8;48;110t
1131 1192
1132=item B<perl-ext-common>: I<string> 1193=item B<perl-ext-common>: I<string>
1133 1194
1134=item B<perl-ext>: I<string> 1195=item B<perl-ext>: I<string>
1135 1196

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines