--- rxvt-unicode/doc/rxvt.1.pod 2004/08/14 03:00:32 1.5 +++ rxvt-unicode/doc/rxvt.1.pod 2006/01/02 21:26:05 1.80 @@ -14,6 +14,13 @@ configurability. As a result, B uses much less swap space -- a significant advantage on a machine serving many X sessions. +=head1 FREQUENTLY ASKED QUESTIONS + +See @@RXVT_NAME@@(7) (try C) for a list of +frequently asked questions and answer to them and some common +problems. That document is also accessible on the World-Wide-Web at +L. + =head1 RXVT-UNICODE VS. RXVT Unlike the original rxvt, B stores all text in Unicode @@ -26,12 +33,19 @@ fine, though. A somewhat difficult case are left-to-right scripts, such as hebrew: B adopts the view that bidirectional algorithms belong into the application, not the terminal emulator (too many things -- -such as cursor-movement -- break othwerwise). +such as cursor-movement while editing -- break otherwise), but that might +change. -Another design rationale was the use of multiple fonts to display -characters: The idea of a single unicode font which many other programs -force onto it's users never made sense to me: You should be able to choose -any font for any script. +If you are looking for a terminal that supports more exotic scripts, let +me recommend C, which is a very userfriendly, lean and clean +terminal emulator. In fact, the reason rxvt-unicode was born was solely +because the author couldn't get C to use one font for latin1 and +another for japanese. + +Therefore another design rationale was the use of multiple fonts to +display characters: The idea of a single unicode font which many other +programs force onto it's users never made sense to me: You should be able +to choose any font for any script freely. Apart from that, rxvt-unicode is also much better internationalised than it's predecessor, supports things such as XFT and ISO 14755 that are handy @@ -48,8 +62,7 @@ It also makes technical information about escape sequences (which have been extended) easier accessible: see @@RXVT_NAME@@(7) for technical -reference documentation (escape sequences etc.) and the FAQ section at the -end of this document. +reference documentation (escape sequences etc.). =head1 OPTIONS @@ -94,27 +107,37 @@ Turn on/off jump scrolling; resource B. -=item B<-ip>|B<+ip> +=item B<-ip>|B<+ip> | B<-tr>|B<+tr> Turn on/off inheriting parent window's pixmap. Alternative form is B<-tr>; resource B. =item B<-fade> I -Fade the text by the given percentage when focus is lost. +Fade the text by the given percentage when focus is lost. Small values +fade a little only, 100 completely replaces all colours by the fade +colour; resource B. + +=item B<-fadecolor> I + +Fade to this colour when fading is used (see B<-fade>). The default colour +is black. resource B. =item B<-tint> I Tint the transparent background pixmap with the given colour when -transparency is enabled with B<-tr> or B<-ip>. See also the B<-sh> -option that can be used to brighten or darken the image in addition to -tinting it. +transparency is enabled with B<-tr> or B<-ip>. This only works for +non-tiled backgrounds, currently. See also the B<-sh> option that can be +used to brighten or darken the image in addition to tinting it; resource +I. Example: + + @@RXVT_NAME@@ -tr -tint blue -sh 40 =item B<-sh> I Darken (0 .. 100) or lighten (-1 .. -100) the transparent background image in addition to tinting it (i.e. B<-tint> must be -specified, too). +specified, too, e.g. C<-tint white>). =item B<-bg> I @@ -127,8 +150,8 @@ =item B<-pixmap> I Compile I: Specify XPM file for the background and also optionally -specify its scaling with a geometry string. Note you may need to add -quotes to avoid special shell interpretation of the `;' in the +specify its scaling with a geometry string. Note you may need to +add quotes to avoid special shell interpretation of the C<;> in the command-line; resource B. =item B<-cr> I @@ -145,27 +168,47 @@ =item B<-bd> I -The colour of the border between the xterm scrollbar and the text; +The colour of the border around the text area and between the scrollbar and the text; resource B. -=item B<-fn> I +=item B<-fn> I -Select the fonts to be used. This is a comma seperated list of font -names that are used in turn when trying to display Unicode characters. -The first font defines the cell size for characters; other fonts might -be smaller, but not larger. A reasonable default font list is always -appended to it. resource B. +Select the fonts to be used. This is a comma separated list of font names +that are used in turn when trying to display Unicode characters. The +first font defines the cell size for characters; other fonts might be +smaller, but not (in general) larger. A (hopefully) reasonable default +font list is always appended to it. See resource B for more details. + +In short, to specify an X11 core font, just specify it's name or prefix it +with C. To specify an XFT-font, you need to prefix it with C, +e.g.: + + @@RXVT_NAME@@ -fn "xft:Bitstream Vera Sans Mono:pixelsize=15" + @@RXVT_NAME@@ -fn "9x15bold,xft:Bitstream Vera Sans Mono" See also the question "How does rxvt-unicode choose fonts?" in the FAQ -section. +section of @@RXVT_NAME@@(7). + +=item B<-fb> I -=item B<-rb>|B<+rb> +Compile font-styles: The bold font list to use when bold characters are to +be printed. See resource B for details. -Enable "real bold" support. When this option is on, bold text will be -displayed using the first available bold font in the font list. Bold -fonts should thus be specified in the font list after their -corresponding regular fonts. If no bold font can be found, a regular -font will be used. resource B. +=item B<-fi> I + +Compile font-styles: The italic font list to use when bold characters are to +be printed. See resource B for details. + +=item B<-fbi> I + +Compile font-styles: The bold italic font list to use when bold characters are to +be printed. See resource B for details. + +=item B<-is>|B<+is> + +Compile font-styles: Bold/Italic font styles imply high intensity +foreground/background (default). See resource B for +details. =item B<-name> I @@ -213,9 +256,17 @@ =item B<-st>|B<+st> -Display normal (non XTerm/NeXT) scrollbar without/with a trough; +Display rxvt (non XTerm/NeXT) scrollbar without/with a trough; resource B. +=item B<-ptab>|B<+ptab> + +If enabled (default), "Horizontal Tab" characters are being stored as +actual wide characters in the screen buffer, which makes it possible to +select and paste them. Since a horizontal tab is a cursor movement and +not an actual glyph, this can sometimes be visually annoying as the cursor +on a tab character is displayed as a wide cursor; resource B. + =item B<-bc>|B<+bc> Blink the cursor; resource B. @@ -249,8 +300,9 @@ =item B<-lsp> I -Compile I: Lines (pixel height) to insert between each row -of the display; resource B. +Compile I: Lines (pixel height) to insert between each row of +the display. Useful to work around font rendering problems; resource +B. =item B<-tn> I @@ -269,6 +321,11 @@ run the program specified by the B environment variable or, failing that, I. +Please note that you must specify a program with arguments. If you want to +run shell commands, you have to specify the shell, like this: + + @@RXVT_NAME@@ -e sh -c "shell commands" + =item B<-title> I Window title (B<-T> still respected); the default title is the basename @@ -296,10 +353,21 @@ =item B<-imlocale> I -The locale to use for opening the IM. You can use an LC_CTYPE of e.g. -de_DE.UTF-8 for normal text processing but ja_JP.EUC-JP for the input -extension to be able to input japanese characters while staying in -another locale. +The locale to use for opening the IM. You can use an C of e.g. +C for normal text processing but C for the +input extension to be able to input japanese characters while staying in +another locale. resource B. + +=item B<-imfont> I + +Set the font set to use for the X Input Method, see resource B +for more info. + +=item B<-tcw> + +Change the meaning of triple-click selection with the left mouse +button. Instead of selecting a full line it will extend the selection the +end of the logical line only. resource B. =item B<-insecure> @@ -323,11 +391,73 @@ Turn on/off secondary screen scroll (default enabled); resource B. -=item B<-xrm> I +=item B<-hold>|B<+hold> + +Turn on/off hold window after exit support. If enabled, @@RXVT_NAME@@ +will not immediately destroy its window when the program executed within +it exits. Instead, it will wait till it is being killed or closed by the +user; resource B. + +=item B<-keysym.>I I + +Remap a key symbol. See resource B. + +=item B<-embed> I + +Tells @@RXVT_NAME@@ to embed it's windows into an already-existing window, +which enables applications to easily embed a terminal. + +Right now, @@RXVT_NAME@@ will first unmap/map the specified window, so it +shouldn't be a top-level window. @@RXVT_NAME@@ will also reconfigure it +quite a bit, so don't expect it to keep some specific state. It's best to +create an extra subwindow for @@RXVT_NAME@@ and leave it alone. + +The window will not be destroyed when @@RXVT_NAME@@ exits. + +It might be useful to know that @@RXVT_NAME@@ will not close file +descriptors passed to it (except for stdin/out/err, of course), so you +can use file descriptors to communicate with the programs within the +terminal. This works regardless of wether the C<-embed> option was used or +not. + +Here is a short Gtk2-perl snippet that illustrates how this option can be +used (a longer example is in F): + + my $rxvt = new Gtk2::Socket; + $rxvt->signal_connect_after (realize => sub { + my $xid = $_[0]->window->get_xid; + system "@@RXVT_NAME@@ -embed $xid &"; + }); + +=item B<-pty-fd> I + +Tells @@RXVT_NAME@@ NOT to execute any commands or create a new pty/tty +pair but instead use the given filehandle as the tty master. This is +useful if you want to drive @@RXVT_NAME@@ as a generic terminal emulator +without having to run a program within it. + +If this switch is given, @@RXVT_NAME@@ will not create any utmp/wtmp +entries and will not tinker with pty/tty permissions - you have to do that +yourself if you want that. + +Here is a example in perl that illustrates how this option can be used (a +longer example is in F): + + use IO::Pty; + use Fcntl; + + my $pty = new IO::Pty; + fcntl $pty, F_SETFD, 0; # clear close-on-exec + system "@@RXVT_NAME@@ -pty-fd " . (fileno $pty) . "&"; + close $pty; -No effect on rxvt-unicode. Simply passes through an argument to be made -available in the instance's argument list. Appears in I in -some window managers. + # now communicate with rxvt + my $slave = $pty->slave; + while (<$slave>) { print $slave "got <$_>\n" } + +=item B<-pe> I + +Colon-separated list of perl extension scripts to use in this terminal instance. See resource B. =back @@ -340,8 +470,16 @@ Xresource data: using the X libraries (Xrm*-functions) or internal Xresources reader (B<~/.Xdefaults>). For the first method (ie. B<@@RXVT_NAME@@ -h> lists B), you can set and change the -resources using X11 tools like B. Many distribution do also load -settings from the B<~/.Xresources> file when X starts. +resources using X11 tools like B. Many distribution do also load +settings from the B<~/.Xresources> file when X starts. @@RXVT_NAME@@ +will consult the following files/resources in order, with later settings +overwriting earlier ones: + + 1. system-wide app-defaults file, either locale-dependent OR global + 2. app-defaults file in $XAPPLRESDIR + 3. RESOURCE_MANAGER property on root-window OR $HOME/.Xdefaults + 4. SCREEN_RESOURCES for the current screen + 5. $XENVIRONMENT file OR $HOME/.Xdefaults- If compiled with internal Xresources support (i.e. B<@@RXVT_NAME@@ -h> lists B<.Xdefaults>) then B<@@RXVT_NAME@@> accepts application defaults @@ -384,11 +522,19 @@ 3=yellow, 4=blue, 5=magenta, 6=cyan, 7=white, but the actual colour names used are listed in the B section. +Colours higher than 15 cannot be set using resources (yet), but can be +changed using an escape command (see @@RXVT_NAME@@(7)). + +Colours 16-79 form a standard 4x4x4 colour cube (the same as xterm with +88 colour support). Colours 80-87 are evenly spaces grey steps. + =item B I -Use the specified colour to display bold characters when the foreground -colour is the default. This option will be ignored if B is -enabled. +=item B I + +Use the specified colour to display bold or italic characters when the +foreground colour is the default. If font styles are not available +(Compile I) and this option is unset, reverse video is used instead. =item B I @@ -400,6 +546,11 @@ Use the specified colour as the background for reverse video characters. +=item B I + +If set, use the specified colour as the colour for the underline +itself. If unset, use the foreground colour. + =item B I Use the specified colour for the cursor. The default is to use the @@ -431,21 +582,23 @@ =item B I -Fade the text by the given percentage when focus is lost. +Fade the text by the given percentage when focus is lost; option B<-fade>. + +=item B I + +Fade to this colour, when fading is used (see B). The default +colour is black; option B<-fadecolor>. =item B I -Tint the transparent background pixmap with the given colour. +Tint the transparent background pixmap with the given colour; option +B<-tint>. =item B I Darken (0 .. 100) or lighten (-1 .. -100) the transparent background image in addition to tinting it. -=item B I - -Scale the tint colour by the given percentage. - =item B I Use the specified colour for the scrollbar [default #B2B2B2]. @@ -453,7 +606,12 @@ =item B I Use the specified colour for the scrollbar's trough area [default -#969696]. Only relevant for normal (non XTerm/NeXT) scrollbar. +#969696]. Only relevant for rxvt (non XTerm/NeXT) scrollbar. + +=item B I + +The colour of the border around the text area and between the scrollbar +and the text. =item B I @@ -479,22 +637,75 @@ menus), in addition to the paths specified by the B and B environment variables. -=item B I +=item B I -Select the fonts to be used. This is a comma seperated list of font +Select the fonts to be used. This is a comma separated list of font names that are used in turn when trying to display Unicode characters. The first font defines the cell size for characters; other fonts might be smaller, but not larger. A reasonable default font list is always -appended to it. option B<-fn>. +appended to it; option B<-fn>. + +Each font can either be a standard X11 core font (XLFD) name, with +optional prefix C or a Xft font (Compile I), prefixed with C. + +In addition, each font can be prefixed with additional hints and +specifications enclosed in square brackets (C<[]>). The only available +hint currently is C, and this is only used for Xft +fonts. + +For example, this font resource + + URxvt*font: 9x15bold,\ + -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso10646-1,\ + -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1, \ + [codeset=JISX0208]xft:Kochi Gothic:antialias=false, \ + xft:Code2000:antialias=false + +specifies five fonts to be used. The first one is C<9x15bold> (actually +the iso8859-1 version of the second font), which is the base font (because +it is named first) and thus defines the character cell grid to be 9 pixels +wide and 15 pixels high. -=item B I +The second font is just used to add additional unicode characters not in +the base font, likewise the third, which is unfortunately non-bold, but +the bold version of the font does contain less characters, so this is a +useful supplement. -B: Enable "real bold" support. When this option is on, bold text -will be displayed using the first available bold font in the font list. -Bold fonts should thus be specified in the font list after their -corresponding regular fonts. If no bold font can be found, a regular -font will be used. option B<-rb>. B: Display bold text in a -regular font, using the color specified with B; option B<+rb>. +The third font is an Xft font with aliasing turned off, and the characters +are limited to the B codeset (i.e. japanese kanji). The font +contains other characters, but we are not interested in them. + +The last font is a useful catch-all font that supplies most of the +remaining unicode characters. + +=item B I + +=item B I + +=item B I + +The font list to use for displaying B, I or B<< I >> characters, respectively. + +If specified and non-empty, then the syntax is the same as for the +B-resource, and the given font list will be used as is, which makes +it possible to substitute completely different font styles for bold and +italic. + +If unset (the default), a suitable font list will be synthesized by +"morphing" the normal text font list into the desired shape. If that is +not possible, replacement fonts of the desired shape will be tried. + +If set, but empty, then this specific style is disabled and the normal +text font will being used for the given style. + +=item B I + +When font styles are not enabled, or this option is enabled (B, +option B<-is>, the default), bold and italic font styles imply high +intensity foreground/backround colours. Disabling this option (B, +option B<+is>) disables this behaviour, the high intensity colours are not +reachable. =item B I @@ -505,7 +716,7 @@ =item B I Set scrollbar style to B, B, B or B. B is -the author's favourite.. +the author's favourite. =item B I @@ -547,6 +758,15 @@ B to initiate a screen dump to the printer and B or B to include the scrollback as well. +The string will be interpreted as if typed into the shell as-is. + +Example: + + URxvt*print-pipe: cat > $(TMPDIR=$HOME mktemp urxvt.XXXXXX) + +This creates a new file in your home directory with the screen contents +everytime you hit C. + =item B I B: enable the scrollbar [default]; option B<-sb>. B: @@ -575,9 +795,9 @@ =item B I -B: scroll with scrollback buffer when tty recieves new lines (and -B is False); option B<+sw>. B: do not scroll -with scrollback buffer when tty recieves new lines; option B<-sw>. +B: scroll with scrollback buffer when tty receives new lines (and +B is False); option B<-sw>. B: do not scroll +with scrollback buffer when tty recieves new lines; option B<+sw>. =item B I @@ -586,16 +806,6 @@ are not passed onto the shell; option B<-sk>. B: do not scroll to bottom when a non-special key is pressed; option B<+sk>. -=item B I - -If enabled, use B<@@HOTKEY@@->I to toggle to a smaller font -[default B<@@HOTKEY@@-@@SMALLFONT@@>] - -=item B I - -If enabled, use B<@@HOTKEY@@->I to toggle to a bigger font -[default B<@@HOTKEY@@-@@BIGFONT@@>] - =item B I Save I lines in the scrollback buffer [default 64]. This @@ -636,6 +846,11 @@ B: the mouse wheel scrolls a page full. B: the mouse wheel scrolls five lines [default]. +=item B I + +B: store tabs as wide characters. B: interpret tabs as cursor +movement only; option C<-ptab>. + =item B I B: blink the cursor. B: do not blink the cursor [default]; @@ -657,7 +872,8 @@ =item B I -Specifies number of seconds before blanking the pointer [default 2]. +Specifies number of seconds before blanking the pointer [default 2]. Use a +large number (e.g. C<987654321>) to effectively disable the timeout. =item B I @@ -689,23 +905,40 @@ =item B I -The locale to use for opening the IM. You can use an LC_CTYPE of e.g. -de_DE.UTF-8 for normal text processing but ja_JP.EUC-JP for the input -extension to be able to input japanese characters while staying in -another locale. option B<-imlocale>. +The locale to use for opening the IM. You can use an C of e.g. +C for normal text processing but C for the +input extension to be able to input japanese characters while staying in +another locale; option B<-imlocale>. + +=item B I + +Specify the font-set used for XIM styles C or +C. It must be a standard X font set (XLFD patterns separated +by commas), i.e. it's not in the same format as the other font lists used +in @@RXVT_NAME@@. The default will be set-up to chose *any* suitable found +found, preferably one or two pixels differing in size to the base font. +option B<-imfont>. + +=item B I + +Change the meaning of triple-click selection with the left mouse +button. Instead of selecting a full line it will extend the selection to +the end of the logical line only; option B<-tcw>. -=item B +=item B I Enables "insecure" mode. Rxvt-unicode offers some escape sequences that echo arbitrary strings like the icon name or the locale. This could be -abused if somebody gets 8-bit-clean access to your display, wether -throuh a mail client displaying mail bodies unfiltered or though -write(1). Therefore, these sequences are disabled by default. (Note -that other terminals, including xterm, have these sequences -enabled by default). You can enable them by setting this boolean -resource or specifying B<-insecure> as an option. At the moment, this -enabled display-answer, locale, findfont, icon label and window title -requests as well as dynamic menubar dispatch. +abused if somebody gets 8-bit-clean access to your display, whether +through a mail client displaying mail bodies unfiltered or through +write(1) or any other means. Therefore, these sequences are disabled by +default. (Note that many other terminals, including xterm, have these +sequences enabled by default, which doesn't make it safer, though). + +You can enable them by setting this boolean resource or specifying +B<-insecure> as an option. At the moment, this enables display-answer, +locale, findfont, icon label and window title requests as well as dynamic +menubar dispatch. =item B I @@ -730,16 +963,125 @@ scrollback buffer and switching to/from the secondary screen will instead scroll the screen up. +=item B: I + +Turn on/off hold window after exit support. If enabled, @@RXVT_NAME@@ +will not immediately destroy its window when the program executed within +it exits. Instead, it will wait till it is being killed or closed by the +user. + =item BI: I -Associate I with keysym I (B<0xFF00 - 0xFFFF>). It may -contain escape values (\a: bell, \b: backspace, \e, \E: escape, \n: -newline, \r: return, \t: -tab, \000: octal number) or control characters (^?: delete, ^@: null, -^A ...) and may enclosed with double quotes so that it can start or end -with whitespace. The intervening resource name B cannot be -omitted. This resource is only available when compiled with -KEYSYM_RESOURCE. +Compile I: Associate I with keysym I. The +intervening resource name B cannot be omitted. + +The format of I is "I<(modifiers-)key>", where I can be +any combination of B, B, B, B, +B, B, B, B, B, B, B, B, +and the abbreviated B, B, B, B, B, B, B, B, B<1>, +B<2>, B<3>, B<4>, B<5>. + +The B, B and B modifiers are usually aliased to +whatever modifier the NumLock key, Meta/Alt keys or ISO Level3 Shift/AltGr +keys are being mapped. B is a synthetic modifier mapped to the +current application keymap mode state. + +The spellings of I can be obtained by using B(1) command or +searching keysym macros from B and +omitting the prefix B. Alternatively you can specify I by its hex +keysym value (B<0x0000 - 0xFFFF>). Note that the lookup of Is is not +performed in an exact manner; however, the closest match is assured. + +I may contain escape values (C<\a>: bell, C<\b>: backspace, +C<\e>, C<\E>: escape, C<\n>: newline, C<\r>: carriage return, C<\t>: tab, +C<\000>: octal number) or verbatim control characters (C<^?>: delete, +C<^@>: null, C<^A> ...) and may be enclosed with double quotes so that it +can start or end with whitespace. + +Please note that you need to double the C<\> when using +C<--enable-xgetdefault>, as X itself does it's own de-escaping (you can +use C<\033> instead of C<\e> (and so on), which will work with both Xt and +@@RXVT_NAME@@'s own processing). + +You can define a range of keysyms in one shot by providing a I +with pattern B, where the delimeter `/' +should be a character not used by the strings. + +Its usage can be demonstrated by an example: + + URxvt.keysym.M-C-0x61: list|\033 + +The above line is equivalent to the following three lines: + + URxvt.keysym.Meta-Control-0x61: \033 + URxvt.keysym.Meta-Control-0x62: \033 + URxvt.keysym.Meta-Control-0x63: \033 + +If I takes the form of C, the specified B +is interpreted and executed as @@RXVT_NAME@@'s control sequence. For +example the following means "change the current locale to C +when Control-Meta-c is being pressed": + + URxvt.keysym.M-C-c: command:\033]701;zh_CN.GBK\007 + +If I takes the form C, then the specified B +is passed to the C perl handler. See the rxvtperl(3) +manpage. For example, the F extension (activated via +C<@@RXVT_NAME@@ -pe selection>) listens for C events: + + URxvt.keysym.M-C-c: perl:selection:rot13 + +Due the the large number of modifier combinations, a defined key mapping +will match if at I the specified identifiers are being set, and +no other key mappings with those and more bits are being defined. That +means that defining a key map for C will automatically provide +definitions for C, C and so on, unless some of those are defined +mappings themselves. + +Unfortunately, this will override built-in key mappings. For example +if you overwrite the C key you will disable @@RXVT_NAME@@'s +C mapping. To re-enable that, you can poke "holes" into the +user-defined keymap using the C replacement: + + URxvt.keysym.Insert: + URxvt.keysym.S-Insert: builtin: + +The first line defines a mapping for C and I combination +of modifiers. The second line re-establishes the default mapping for +C. + +The following example will map Control-Meta-1 and Control-Meta-2 to +the fonts C and C<9x15bold>, so you can have some limited +font-switching at runtime: + + URxvt.keysym.M-C-1: command:\033]50;suxuseuro\007 + URxvt.keysym.M-C-2: command:\033]50;9x15bold\007 + +Other things are possible, e.g. resizing (see @@RXVT_NAME@@(7) for more +info): + + URxvt.keysym.M-C-3: command:\033[8;25;80t + URxvt.keysym.M-C-4: command:\033[8;48;110t + +=item B: I + +Colon-separated list of perl extension scripts to use in this terminal +instance. Each extension is looked up in the library directories, loaded +if necessary, and bound to the current terminal instance; option B<-pe>. + +=item B: I + +Perl code to be evaluated when all extensions have been registered. See the +rxvtperl(3) manpage. + +=item B: I + +Colon-separated list of additional directories that hold extension +scripts. When looking for extensions specified by the C resource, +@@RXVT_NAME@@ will first look in these directories and then in +F<@@RXVT_LIBDIR@@/urxvt/perl/>. + +See the rxvtperl(3) manpage. =back @@ -763,9 +1105,9 @@ If mouse reporting mode is active, the normal scrollbar actions are disabled -- on the assumption that we are using a fullscreen -application. Instead, pressing Button1 and Button3 sends B -(Next) and B (Prior), respectively. Similarly, clicking on the -up and down arrows sends B (Up) and B (Down), +application. Instead, pressing Button1 and Button3 sends B +(Next) and B (Prior), respectively. Similarly, clicking on the +up and down arrows sends B (Up) and B (Down), respectively. =head1 TEXT SELECTION AND INSERTION @@ -777,10 +1119,17 @@ =item B: -Left click at the beginning of the region, drag to the end of the -region and release; Right click to extend the marked region; Left -double-click to select a word; Left triple-click to select the entire -line. +Left click at the beginning of the region, drag to the end of the region +and release; Right click to extend the marked region; Left double-click +to select a word; Left triple-click to select the entire logical line +(which can span multiple screen lines), unless modified by resource +B. + +Starting a selection while pressing the B key (or B keys) +(Compile: I) will create a rectangular selection instead of a +normal one. In this mode, every selected row becomes its own line in the +selection, and trailing whitespace is visually underlined and removed from +the selection. =item B: @@ -792,33 +1141,87 @@ =head1 CHANGING FONTS -You can change fonts on-the-fly, which is to say cycle through the -default font and others of various sizes, by using B and -B. Or, alternatively (if enabled) with -B<@@HOTKEY@@-@@BIGFONT@@> and B<@@HOTKEY@@-@@SMALLFONT@@>, where the -actual key can be selected using resources -B/B. +Changing fonts (or font sizes, respectively) via the keypad is not yet +supported in rxvt-unicode. Bug me if you need this. + +You can, however, switch fonts at runtime using escape sequences (and +therefore using the menubar), e.g.: + + printf '\e]710;%s\007' "9x15bold,xft:Kochi Gothic" + +rxvt-unicode will automatically re-apply these fonts to the output so far. =head1 ISO 14755 SUPPORT -Partial ISO 14755-support is implemented. that means that pressing +ISO 14755 is a standard for entering and viewing unicode characters +and character codes using the keyboard. It consists of 4 parts. The +first part is available rxvt-unicode has been compiled with +C<--enable-frills>, the rest is available when rxvt-unicode was compiled +with C<--enable-iso14755>. + +=over 4 + +=item * 5.1: Basic method -Section 5.1: Control and Shift together enters unicode input -mode. Entering hex digits composes a Unicode character, pressing space or -releasing the modifiers commits the keycode and every other key cancels -the current input character. - -Section 5.2: Pressing and immediately releasing Control and Shift together -enters keycap entry mode for the next key: pressing a function key (tab, -return etc..) will enter the unicode character corresponding to the given -key. +This allows you to enter unicode characters using their hexcode. + +Start by pressing and holding both C and C, then enter +hex-digits (between one and six). Releasing C and C will +commit the character as if it were typed directly. While holding down +C and C you can also enter multiple characters by pressing +C, which will commit the current character and lets you start a new +one. + +As an example of use, imagine a business card with a japanese e-mail +address, which you cannot type. Fortunately, the card has the e-mail +address printed as hexcodes, e.g. C<671d 65e5>. You can enter this easily +by pressing C and C, followed by C<6-7-1-D-SPACE-6-5-E-5>, +followed by releasing the modifier keys. + +=item * 5.2: Keyboard symbols entry method + +This mode lets you input characters representing the keycap symbols of +your keyboard, if representable in the current locale encoding. + +Start by pressing C and C together, then releasing +them. The next special key (cursor keys, home etc.) you enter will not +invoke it's usual function but instead will insert the corresponding +keycap symbol. The symbol will only be entered when the key has been +released, otherwise pressing e.g. C would enter the symbol for +C, although your intention might have been to enter a +reverse tab (Shift-Tab). + +=item * 5.3: Screen-selection entry method + +While this is implemented already (it's basically the selection +mechanism), it could be extended by displaying a unicode character map. + +=item * 5.4: Feedback method for identifying displayed characters for later input + +This method lets you display the unicode character code associated with +characters already displayed. + +You enter this mode by holding down C and C together, then +pressing and holding the left mouse button and moving around. The unicode +hex code(s) (it might be a combining character) of the character under the +pointer is displayed until you release C and C. + +In addition to the hex codes it will display the font used to draw this +character - due to implementation reasons, characters combined with +combining characters, line drawing characters and unknown characters will +always be drawn using the built-in support font. + +=back + +With respect to conformance, rxvt-unicode is supposed to be compliant to +both scenario A and B of ISO 14755, including part 5.2. =head1 LOGIN STAMP -B<@@RXVT_NAME@@> tries to write an entry into the I(5) file so -that it can be seen via the I command, and can accept messages. -To allow this feature, B<@@RXVT_NAME@@> must be installed setuid root on -some systems. +B<@@RXVT_NAME@@> tries to write an entry into the I(5) file so that +it can be seen via the I command, and can accept messages. To +allow this feature, B<@@RXVT_NAME@@> may need to be installed setuid root +on some systems or setgid to root or to some other group on others. =head1 COLORS AND GRAPHICS @@ -869,307 +1272,99 @@ =back -=head1 FREQUENTLY ASKED QUESTIONS (FAQ) +=head1 ENVIRONMENT + +B<@@RXVT_NAME@@> sets and/or uses the following environment variables: =over 4 -=item How do I know which rxvt-unicode version I'm using? +=item B -The version number is displayed with the usage (-h). For rxvt-unicode -version 2.14 and later, the escape sequence C sets the window -title to the version number. - -=item Why do the characters look ugly? - -=item How does rxvt-unicode choose fonts? - -Most fonts do not contain the full range of Unicode, which is -fine. Chances are that the font you (or the admin/package maintainer of -your system/os) have specified does not cover all the characters you want -to display. - -B makes a best-effort try at finding a replacement -font. Often the result is fine, but sometimes the chosen font looks -bad. In that case, select a font of your taste and add it to the font -list, e.g.: - - @@RXVT_NAME@@ -fn basefont,font2,font3... - -When rxvt-unicode sees a character, it will first look at the base -font. If the base font does not contain the character, it will go to the -next font, and so on. - -The only limitation is that all the fonts must not be larger than the base -font, as the base font defines the principial cell size, which must be the -same due to the way terminals work. - -=item Why do some chinese characters look so different than others? - -This is because there is a difference between script and language -- -rxvt-unicode does not know which language the text that is output -is, as it only knows the unicode character codes. If rxvt-unicode -first sees a japanese character, it might choose a japanese font for -it. Subseqzuent japanese characters will take that font. Now, many chinese -characters aren't represented in japanese fonts, so when the first -non-japanese character comes up, rxvt-unicode will look for a chinese font --- unfortunately at this point, it will still use the japanese font for -japanese characters that are also chinese. - -The workaround is easy: just tag a chinese font at the end of your font -list (see the previous question). The key is to view the font list as -a preference list: If you expect more japanese, list a japanese font -first. If you expect more chinese, put a chinese font first. - -In the future it might be possible to switch preferences at runtime (the -internal data structure has no problem with using different fonts for -the same character at the same time, but no interface for this has been -designed yet). - -=item Mouse cut/paste suddenly no longer works. - -Make sure that mouse reporting is actually turned off since killing -some editors prematurely may leave the mouse in mouse report mode. I've -heard that tcsh may use mouse reporting unless it otherwise specified. A -quick check is to see if cut/paste works when the Alt or Shift keys are -depressed. See @@RXVT_NAME@@(7) - -=item What's with this bold/blink stuff? - -If no bold colour is set via C, bold will invert text using the -standard foreground colour. - -For the standard background colour, blinking will actually make the -text blink when compiled with C<--enable-blinking>. with standard -colours. Without C<--enable-blinking>, the blink attribute will be -ignored. - -On ANSI colours, bold/blink attributes are used to set high-intensity -foreground/background colors. - -color0-7 are the low-intensity colors. - -color8-15 are the corresponding high-intensity colors. - -=item I don't like the screen colors. How do I change them? - -You can change the screen colors at run-time using F<~/.Xdefaults> -resources (or as long-options). - -Here are values that are supposed to resemble a VGA screen, -including the murky brown that passes for low-intensity yellow: - - Rxvt*color0: #000000 - Rxvt*color1: #A80000 - Rxvt*color2: #00A800 - Rxvt*color3: #A8A800 - Rxvt*color4: #0000A8 - Rxvt*color5: #A800A8 - Rxvt*color6: #00A8A8 - Rxvt*color7: #A8A8A8 - - Rxvt*color8: #000054 - Rxvt*color9: #FF0054 - Rxvt*color10: #00FF54 - Rxvt*color11: #FFFF54 - Rxvt*color12: #0000FF - Rxvt*color13: #FF00FF - Rxvt*color14: #00FFFF - Rxvt*color15: #FFFFFF - -=item What's with the strange Backspace/Delete key behaviour? - -Assuming that the physical Backspace key corresponds to the -BackSpace keysym (not likely for Linux ... see the following -question) there are two standard values that can be used for -Backspace: C<^H> and C<^?>. - -Historically, either value is correct, but rxvt-unicode adopts the debian -policy of using C<^?> when unsure, because it's the one only only correct -choice :). - -Rxvt-unicode tries to inherit the current stty settings and uses the value -of `erase' to guess the value for backspace. If rxvt-unicode wasn't -started from a terminal (say, from a menu or by remote shell), then the -system value of `erase', which corresponds to CERASE in , will -be used (which may not be the same as your stty setting). - -For starting a new rxvt-unicode: - - # use Backspace = ^H - $ stty erase ^H - $ @@RXVT_NAME@@ - - # use Backspace = ^? - $ stty erase ^? - $ @@RXVT_NAME@@ - -Toggle with "ESC[36h" / "ESC[36l" as documented in @@RXVT_NAME@@(7). - -For an existing rxvt-unicode: - - # use Backspace = ^H - $ stty erase ^H - $ echo -n "^[[36h" - - # use Backspace = ^? - $ stty erase ^? - $ echo -n "^[[36l" - -This helps satisfy some of the Backspace discrepancies that occur, but -if you use Backspace = C<^H>, make sure that the termcap/terminfo value -properly reflects that. - -The Delete key is a another casualty of the ill-defined Backspace problem. -To avoid confusion between the Backspace and Delete keys, the Delete -key has been assigned an escape sequence to match the vt100 for Execute -(ESC[3~) and is in the supplied termcap/terminfo. - -Some other Backspace problems: - -some editors use termcap/terminfo, -some editors (vim I'm told) expect Backspace = ^H, -GNU Emacs (and Emacs-like editors) use ^H for help. - -Perhaps someday this will all be resolved in a consistent manner. - -=item I don't like the key-bindings. How do I change them? - -There are some compile-time selections available via configure. Unless -you have run "configure" with the C<--disable-resources> option you can -use the `keysym' resource to alter the keystrings associated with keysym -0xFF00 - 0xFFFF (function, cursor keys, etc). - -Here's an example for a tn3270 session started using `@@RXVT_NAME@@ -name tn3270' - - !# ----- special uses ------: - ! tn3270 login, remap function and arrow keys. - tn3270*font: *clean-bold-*-*--15-* - - ! keysym - used by rxvt only - ! Delete - ^D - tn3270*keysym.0xFFFF: \004 - - ! Home - ^A - tn3270*keysym.0xFF50: \001 - ! Left - ^B - tn3270*keysym.0xFF51: \002 - ! Up - ^P - tn3270*keysym.0xFF52: \020 - ! Right - ^F - tn3270*keysym.0xFF53: \006 - ! Down - ^N - tn3270*keysym.0xFF54: \016 - ! End - ^E - tn3270*keysym.0xFF57: \005 - - ! F1 - F12 - tn3270*keysym.0xFFBE: \e1 - tn3270*keysym.0xFFBF: \e2 - tn3270*keysym.0xFFC0: \e3 - tn3270*keysym.0xFFC1: \e4 - tn3270*keysym.0xFFC2: \e5 - tn3270*keysym.0xFFC3: \e6 - tn3270*keysym.0xFFC4: \e7 - tn3270*keysym.0xFFC5: \e8 - tn3270*keysym.0xFFC6: \e9 - tn3270*keysym.0xFFC7: \e0 - tn3270*keysym.0xFFC8: \e- - tn3270*keysym.0xFFC9: \e= - - ! map Prior/Next to F7/F8 - tn3270*keysym.0xFF55: \e7 - tn3270*keysym.0xFF56: \e8 - -=item I'm using keyboard model XXX that has extra Prior/Next/Insert keys. -How do I make use of them? For example, the Sun Keyboard type 4 -has the following mappings that rxvt-unicode doesn't recognize. - - KP_Insert == Insert - F22 == Print - F27 == Home - F29 == Prior - F33 == End - F35 == Next - -Rather than have rxvt-unicode try to accomodate all the various possible keyboard -mappings, it is better to use `xmodmap' to remap the keys as required for -your particular machine. - -=item How do I distinguish if I'm running rxvt-unicode or a regular xterm? -I need this to decide about setting colors etc. - -rxvt and rxvt-unicode always export the variable "COLORTERM", so you can -check and see if that is set. Note that several programs, JED, slrn, -Midnight Commander automatically check this variable to decide whether or -not to use color. - -=item How do I set the correct, full IP address for the DISPLAY variable? - -If you've compiled rxvt-unicode with DISPLAY_IS_IP and ahve enabled -insecure mode then it is possible to use the following shell script -snippets to correctly set the display. If your version of rxvt-unicode -wasn't also compiled with ESCZ_ANSWER (as assumed in these snippets) then -the COLORTERM variable can be used to distinguish rxvt-unicode from a -regular xterm. - -Courtesy of Chuck Blake with the following shell script -snippets: - - # Bourne/Korn/POSIX family of shells: - [ ${TERM:-foo} = foo ] && TERM=xterm # assume an xterm if we don't know - if [ ${TERM:-foo} = xterm ]; then - stty -icanon -echo min 0 time 15 # see if enhanced rxvt or not - echo -n '^[Z' - read term_id - stty icanon echo - if [ ""${term_id} = '^[[?1;2C' -a ${DISPLAY:-foo} = foo ]; then - echo -n '^[[7n' # query the rxvt we are in for the DISPLAY string - read DISPLAY # set it in our local shell - fi - fi - -=item How do I compile the manual pages for myself? - -You need to have a recent version of perl installed as F, -one that comes with F, F and F. Then go to -the doc subdirectory and enter C. +Normally set to C, unless overwritten at configure time, via +resources or on the commandline. -=back +=item B -=head1 ENVIRONMENT +Either C, C, depending on wether @@RXVT_NAME@@ was +compiled with XPM support, and optionally with the added extension +C<-mono> to indicate that rxvt-unicode runs on a monochrome screen. -B<@@RXVT_NAME@@> sets the environment variables B, B -and B. The environment variable B is set to the X -window id number of the B<@@RXVT_NAME@@> window and it also uses and -sets the environment variable B to specify which display -terminal to use. B<@@RXVT_NAME@@> uses the environment variables -B and B to find XPM files. +=item B -=head1 FILES +Set to a string of the form C or C, where C is +the colour code used as default foreground/text colour (or the string +C to indicate that the default-colour escape sequence is to be +used), C is the colour code used as default background colour (or the +string C), and C is the string C if @@RXVT_NAME@@ +was compiled with XPM support. Libraries like C and C can +(and do) use this information to optimize screen output. -=over 4 +=item B -=item B +Set to the (decimal) X Window ID of the @@RXVT_NAME@@ window (the toplevel +window, which usually has subwindows for the scrollbar, the terminal +window and so on). -System file for login records. +=item B -=item B +Set to the terminfo directory iff @@RXVT_NAME@@ was configured with +C<--with-terminfo=PATH>. -Color names. +=item B + +Used by @@RXVT_NAME@@ to connect to the display and set to the correct +display in it's child processes. + +=item B + +The shell to be used for command execution, defaults to C. + +=item B + +The path where @@RXVT_NAME@@ looks for support files such as menu and xpm +files. + +=item B + +Used in the same way as C. + +=item B + +The unix domain socket path used by @@RXVT_NAME@@c(1) and +@@RXVT_NAME@@d(1). + +Default F<<< $HOME/.rxvt-unicode-I<< > >>>. + +=item B + +Used to locate the default directory for the unix domain socket for +daemon communications and to locate various resource files (such as +C<.Xdefaults>) + +=item B + +Directory where various X resource files are being located. + +=item B + +If set and accessible, gives the name of a X resource file to be loaded by +@@RXVT_NAME@@. =back -=head1 SEE ALSO +=head1 FILES -@@RXVT_NAME@@(7), xterm(1), sh(1), resize(1), X(1), pty(4), tty(4), utmp(5) +=over 4 -=head1 BUGS +=item B -Check the BUGS file for an up-to-date list. +Color names. -Cursor change support is not yet implemented. +=back -Click-and-drag doesn't work with X11 mouse report overriding. +=head1 SEE ALSO + +@@RXVT_NAME@@(7), @@RXVT_NAME@@c(1), @@RXVT_NAME@@d(1), xterm(1), sh(1), resize(1), X(1), pty(4), tty(4), utmp(5) =head1 CURRENT PROJECT COORDINATOR @@ -1177,13 +1372,9 @@ =item Project Coordinator -@@RXVTMAINT@@ L<@@RXVT_MAINTEMAIL@@> - -=item Web page maintainter - -@@RXVTWEBMAINT@@ L<@@RXVT_WEBMAINTEMAIL@@> +Marc A. Lehmann L<< >> -L<@@RXVT_WEBPAGE@@> +L =back @@ -1218,7 +1409,7 @@ Rewrote screen display and text selection routines. Project Coordinator (changes.txt 2.4.6 - rxvt-unicode) -=item Marc Alexander Lehmann L<< >> +=item Marc Alexander Lehmann L<< >> Forked rxvt-unicode, rewrote most of the display code and internal character handling to store text in unicode, improve xterm