--- rxvt-unicode/doc/rxvt.1.pod 2004/08/12 21:30:14 1.2 +++ rxvt-unicode/doc/rxvt.1.pod 2007/01/19 23:45:03 1.125 @@ -8,14 +8,61 @@ =head1 DESCRIPTION -B, version B<@@RXVTVERSION@@>, is a colour vt102 terminal +B, version B<@@RXVT_VERSION@@>, is a colour vt102 terminal emulator intended as an I(1) replacement for users who do not require features such as Tektronix 4014 emulation and toolkit-style configurability. As a result, B uses much less swap space -- a significant advantage on a machine serving many X sessions. -See also @@RXVT_NAME@@(7) for technical reference documentation (escape -sequences etc.). +=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 +internally. That means it can store and display most scripts in the +world. Being a terminal emulator, however, some things are very difficult, +especially cursive scripts such as arabic, vertically written scripts +like mongolian or scripts requiring extremely complex combining rules, +like tibetan or devenagari. Don't expect pretty output when using these +scripts. Most other scripts, latin, cyrillic, kanji, thai etc. should work +fine, though. A somewhat difficult case are right-to-left 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 while editing -- break otherwise), but that might +change. + +If you are looking for a terminal that supports more exotic scripts, let +me recommend C, which is a very user friendly, 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 its 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 +its predecessor, supports things such as XFT and ISO 14755 that are handy +in i18n-environments, is faster, and has a lot bugs less than the original +rxvt. This all in addition to dozens of other small improvements. + +It is still faithfully following the original rxvt idea of being lean +and nice on resources: for example, you can still configure rxvt-unicode +without most of its features to get a lean binary. It also comes with +a client/daemon pair that lets you open any number of terminal windows +from within a single process, which makes startup time very fast and +drastically reduces memory usage. See @@RXVT_NAME@@d(1) (daemon) and +@@RXVT_NAME@@c(1) (client). + +It also makes technical information about escape sequences (which have +been extended) more accessible: see @@RXVT_NAME@@(7) for technical +reference documentation (escape sequences etc.). =head1 OPTIONS @@ -23,15 +70,15 @@ below. In keeping with the smaller-is-better philosophy, options may be eliminated or default values chosen at compile-time, so options and defaults listed may not accurately reflect the version installed on -your system. `rxvt -h' gives a list of major compile-time options on +your system. `@@RXVT_NAME@@ -h' gives a list of major compile-time options on the I line. Option descriptions may be prefixed with which compile option each is dependent upon. e.g. `Compile I:' requires -I on the I line. Note: `rxvt -help' gives a list of all +I on the I line. Note: `@@RXVT_NAME@@ -help' gives a list of all command-line options compiled into your version. Note that B<@@RXVT_NAME@@> permits the resource name to be used as a long-option (--/++ option) so the potential command-line options are -far greater than those listed. For example: `rxvt --loginShell --color1 +far greater than those listed. For example: `@@RXVT_NAME@@ --loginShell --color1 Orange'. The following options are available: @@ -48,6 +95,11 @@ respected). In the absence of this option, the display specified by the B environment variable is used. +=item B<-depth> I + +Compile I: Attempt to find a visual with the given bit depth; +resource B. + =item B<-geometry> I Window geometry (B<-g> still respected); resource B. @@ -60,27 +112,41 @@ 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. +I + =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 opaque 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>); resource I. =item B<-bg> I @@ -93,8 +159,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 @@ -111,24 +177,48 @@ =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 separated list of font names +that are checked in order when trying to find glyphs for 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 its 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 of @@RXVT_NAME@@(7). + +=item B<-fb> I + +Compile I: The bold font list to use when B characters +are to be printed. See resource B for details. -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. - -=item B<-rb>|B<+rb> - -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 I: The italic font list to use when I +characters are to be printed. See resource B for details. + +=item B<-fbi> I + +Compile I: The bold italic font list to use when B<< I >> characters are to be printed. See resource B +for details. + +=item B<-is>|B<+is> + +Compile I: Bold/Italic font styles imply high intensity +foreground/background (default). See resource B for +details. =item B<-name> I @@ -176,9 +266,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. @@ -207,13 +305,26 @@ =item B<-bl> Compile I: Set MWM hints to request a borderless window, i.e. -if honoured by the WM, the rxvt window will not have window +if honoured by the WM, the rxvt-unicode window will not have window decorations; resource B. +=item B<-override-redirect> + +Compile I: Sets override-redirect on the window; resource +B. + +=item B<-sbg> + +Compile I: Disable the usage of the built-in block graphics/line +drawing characters and just rely on what the specified fonts provide. Use +this if you have a good font and want to use its block graphic glyphs; +resource B. + =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 @@ -232,6 +343,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 @@ -259,10 +375,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> @@ -286,11 +413,77 @@ 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 its 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 whether 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 file descriptor 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. + +As an extremely special case, specifying C<-1> will completely suppress +pty/tty operations. + +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; + + # now communicate with rxvt + my $slave = $pty->slave; + while (<$slave>) { print $slave "got <$_>\n" } + +=item B<-pe> I -No effect on rxvt. Simply passes through an argument to be made -available in the instance's argument list. Appears in I in -some window managers. +Comma-separated list of perl extension scripts to use (or not to use) in +this terminal instance. See resource B for details. =back @@ -299,30 +492,35 @@ Note: `@@RXVT_NAME@@ --help' gives a list of all resources (long options) compiled into your version. -There are two different methods that @@RXVT_NAME@@ can use to get the -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. - -If compiled with internal Xresources support (i.e. B<@@RXVT_NAME@@ -h> -lists B<.Xdefaults>) then B<@@RXVT_NAME@@> accepts application defaults -set in XAPPLOADDIR/URxvt (compile-time defined: usually -B) and resources set in -B<~/.Xdefaults>, or B<~/.Xresources> if B<~/.Xdefaults> does not exist. -Note that when reading X resources, B<@@RXVT_NAME@@> recognizes two -class names: B and B. The class name B allows -resources common to both B<@@RXVT_NAME@@> and the original I to be -easily configured, while the class name B allows resources -unique to B<@@RXVT_NAME@@>, notably colours and key-handling, to be -shared between different B<@@RXVT_NAME@@> configurations. If no -resources are specified, suitable defaults will be used. Command-line -arguments can be used to override resource settings. The following -resources are allowed: +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. @@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- + +Note that when reading X resources, B<@@RXVT_NAME@@> recognizes two class +names: B and B. The class name B allows resources +common to both B<@@RXVT_NAME@@> and the original I to be easily +configured, while the class name B allows resources unique to +B<@@RXVT_NAME@@>, to be shared between different B<@@RXVT_NAME@@> +configurations. If no resources are specified, suitable defaults will +be used. Command-line arguments can be used to override resource +settings. The following resources are supported (you might want to +check the @@RXVT_NAME@@perl(3) manpage for additional settings by perl +extensions not documented here): =over 4 +=item B I + +Compile I: Attempt to find a visual with the given bit depth; +option B<-depth>. + =item B I Create the window with the specified X window geometry [default 80x24]; @@ -347,11 +545,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 @@ -360,8 +566,13 @@ =item B I -Use the specified colour as the background for reverse video -characters. +Use the specified colour as the background for reverse video characters +when OPTION_HC is disabled (--disable-frills). + +=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 @@ -392,22 +603,27 @@ artificial transparency. B: do not inherit the parent windows' pixmap. +I + =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 +=item B I -Tint the transparent background pixmap with the given colour. +Fade to this colour, when fading is used (see B). The default +colour is black; option B<-fadecolor>. -=item B I +=item B I -Darken (0 .. 100) or lighten (-1 .. -100) the transparent background -image in addition to tinting it. +Tint the transparent background pixmap with the given colour; option +B<-tint>. -=item B I +=item B I -Scale the tint colour by the given percentage. +Darken (0 .. 100) or lighten (-1 .. -100) the transparent background image +in addition to tinting it; option B<-sh>. =item B I @@ -416,7 +632,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 @@ -430,34 +651,79 @@ be magnified beyond 10 times its original size. The maximum permitted scale is 1000. [default 0x0+50+50] -=item B I +=item B I + +Specify the colon-delimited search path for finding XPM files. -Read in the specified menu file (note the `.menu' extension is -optional) and also optionally specify a starting tag to find. See the -reference documentation for details on the syntax for the menuBar. +=item B I -=item B I +Select the fonts to be used. This is a comma separated list of font names +that are checked in order when trying to find glyphs for 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; 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. + +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. + +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. -Specify the colon-delimited search path for finding files (XPM and -menus), in addition to the paths specified by the B and -B environment variables. - -=item B 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. option B<-fn>. - -=item B I - -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 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/background colours. Disabling this option (B, +option B<+is>) disables this behaviour, the high intensity colours are not +reachable. =item B I @@ -467,8 +733,8 @@ =item B I -Set scrollbar style to B<@@RXVT_NAME@@>, B, B, B or -B +Set scrollbar style to B, B, B or B. B is +the author's favourite. =item B I @@ -510,6 +776,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 +every time you hit C. + =item B I B: enable the scrollbar [default]; option B<-sb>. B: @@ -532,32 +807,22 @@ =item B I -B: scroll to bottom when tty receives output; option B<+si>. +B: scroll to bottom when tty receives output; option B<-si>. B: do not scroll to bottom when tty receives output; option -B<-si>. +B<+si>. =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 receives new lines; option B<+sw>. =item B I -B: scroll to bottom when a non-special key is pressed. Special -keys are those which are intercepted by rxvt for special handling and -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@@>] +B: scroll to bottom when a non-special key is pressed. Special keys +are those which are intercepted by rxvt-unicode for special handling and +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 @@ -577,7 +842,14 @@ =item B I Set MWM hints to request a borderless window, i.e. if honoured by the -WM, the rxvt window will not have window decorations; option B<-bl>. +WM, the rxvt-unicode window will not have window decorations; option B<-bl>. + +=item B I + +Compile I: Disable the usage of the built-in block graphics/line +drawing characters and just rely on what the specified fonts provide. Use +this if you have a good font and want to use its block graphic glyphs; +option B<-sbg>. =item B I @@ -599,6 +871,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]; @@ -620,7 +897,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 @@ -637,8 +915,16 @@ =item B I -The characters used as delimiters for double-click word selection. The -built-in default: +The characters used as delimiters for double-click word selection +(whitespace delimiting is added automatically if resource is given). + +When the selection extension is in use (the default if compiled in, see +the @@RXVT_NAME@@perl(3) manpage), a suitable regex using these characters +will be created (if the resource exists, otherwise, no regex will be +created). In this mode, characters outside ISO-8859-1 can be used. + +When the selection extension is not used, only ISO-8859-1 characters can +be used. If not specified, the built-in default is used: B<< BACKSLASH `"'&()*,;<=>?@[]{|} >> @@ -652,23 +938,39 @@ =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. =item B I @@ -678,31 +980,193 @@ =item B I -Specify the reply rxvt sends to the shell when an ENQ (control-E) +Specify the reply rxvt-unicode sends to the shell when an ENQ (control-E) character is passed through. It may contain escape values as described in the entry on B following. -=item B I +=item B I Turn on/off secondary screen (default enabled). -=item B I +=item B I Turn on/off secondary screen scroll (default enabled). If the this option is enabled, scrolls on the secondary screen will change the 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. B. + +Please note that you need to double the C<\> in resource files, as +Xlib itself does its 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 delimiter `/' +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 @@RXVT_NAME@@perl(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 + +=item B: I + +Comma-separated list(s) of perl extension scripts (default: C) to +use in this terminal instance; option B<-pe>. + +Extension names can be prefixed with a C<-> sign to prohibit using +them. This can be useful to selectively disable some extensions loaded +by default, or specified via the C resource. For +example, C will use all the default extension except +C. + +Extension names can also be followed by an argument in angle brackets +(e.g. C<< searchable-scrollback >>, which binds the hotkey for +searchable scrollback to Alt/Meta-s). Mentioning the same extension +multiple times with different arguments will pass multiple arguments to +the extension. + +Each extension is looked up in the library directories, loaded if +necessary, and bound to the current terminal instance. + +If both of these resources are the empty string, then the perl +interpreter will not be initialized. The idea behind two options is that +B will be used for extensions that should be available to +all instances, while B is used for specific instances. + +=item B: I + +Perl code to be evaluated when all extensions have been registered. See +the @@RXVT_NAME@@perl(3) manpage. Due to security reasons, this resource +will be ignored when running setuid/setgid. + +=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/>. Due to security reasons, this resource +will be ignored when running setuid/setgid. + +See the @@RXVT_NAME@@perl(3) manpage. + +=item B<< selection.pattern-I >>: I + +Additional selection patterns, see the @@RXVT_NAME@@perl(3) manpage for +details. + +=item B<< selection-autotransform.I >>: I + +Selection auto-transform patterns, see the @@RXVT_NAME@@perl(3) manpage +for details. + +=item B I + +Sets the hotkey that starts the incremental scrollback buffer search +(default: C). + +=item B: I + +Specifies the program to be started with a URL argument. Used by the +C and C perl extensions. + +=item B: I + +Compile I: Sets the WM_TRANSIENT_FOR property to the given window id. + +=item B: I + +Compile I: Sets override-redirect for the terminal window, making +it almost invisible to window managers; option B<-override-redirect>. =back @@ -726,9 +1190,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 @@ -740,55 +1204,123 @@ =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: -Pressing and releasing the Middle mouse button (or B) in -an B<@@RXVT_NAME@@> window causes the current text selection to be -inserted as if it had been typed on the keyboard. +Pressing and releasing the Middle mouse button in an B<@@RXVT_NAME@@> +window causes the value of the PRIMARY selection (or CLIPBOARD with the +Meta modifier) to be inserted as if it had been typed on the keyboard. + +Pressing B causes the value of the PRIMARY selection to be +inserted too. =back =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, e.g.: + + printf '\e]710;%s\007' "9x15bold,xft:Kochi Gothic" + +You can use keyboard shortcuts, too: + + URxvt.keysym.M-C-1: command:\033]710;suxuseuro\007\033]711;suxuseuro\007 + URxvt.keysym.M-C-2: command:\033]710;9x15bold\007\033]711;9x15bold\007 + +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 its 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 In addition to the default foreground and background colours, B<@@RXVT_NAME@@> can display up to 16 colours (8 ANSI colours plus high-intensity bold/blink versions of the same). Here is a list of the -colours with their B names. +colours with their names. =begin table @@ -818,6 +1350,15 @@ a number 0-15, as a convenient shorthand to reference the colour name of color0-color15. +In addition to the colours defined above, @@RXVT_NAME@@ offers an +additional 72 colours. The first 64 of those (with indices 16 to 79) +consist of a 4*4*4 RGB colour cube (i.e. I), followed by 8 additional shades of gray (with indices 80 to 87). + +Together, all those colours implement the 88 colour xterm colours. Only +the first 16 can be changed using resources currently, the rest can only +be changed via command sequences ("escape codes"). + Note that B<-rv> (B<"reverseVideo: True">) simulates reverse video by always swapping the foreground/background colours. This is in contrast to I(1) where the colours are only swapped if they have not otherwise @@ -825,49 +1366,121 @@ =over 4 -=item B +=item B<@@RXVT_NAME@@ -fg Black -bg White -rv> would yield White on Black, while on I(1) it would yield Black on White. =back -=head1 ENVIRONMENT +=head2 ALPHA CHANNEL SUPPORT -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. +If Xft support has been compiled in and as long as Xft/Xrender/X don't get +their act together, rxvt-unicode will support C +(recommended, but B have 4 digits/component) colour specifications, +in addition to the ones provided by X, where the additional A component +specifies opacity (alpha) values. The minimum value of C<0> is completely +transparent). You can also prefix any color with C<[percent]>, where +C is a decimal percentage (0-100) that specifies the opacity of +the color, where C<0> is completely transparent and C<100> is completelxy +opaque. + +You probably need to specify B<"-depth 32">, too, and have the luck that +your X-server uses ARGB pixel layout, as X is far from just supporting +ARGB visuals out of the box, and rxvt-unicode just fudges around. -=head1 FILES +For example, the following selects an almost completely transparent red +background, and an almost opaque pink foreground: + + @@RXVT_NAME@@ -depth 32 -bg rgba:0000/0000/0000/aaaa -fg "[80]pink" + +I + +=head1 ENVIRONMENT + +B<@@RXVT_NAME@@> sets and/or uses the following environment variables: =over 4 -=item B +=item B -System file for login records. +Normally set to C, unless overwritten at configure time, via +resources or on the command line. -=item B +=item B -Color names. +Either C, C, depending on whether @@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. + +=item B + +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. + +=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). + +=item B + +Set to the terminfo directory iff @@RXVT_NAME@@ was configured with +C<--with-terminfo=PATH>. + +=item B + +Used by @@RXVT_NAME@@ to connect to the display and set to the correct +display in its child processes. + +=item B + +The shell to be used for command execution, defaults to 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 SEEALSO +=head1 FILES -I(1), I(1), I(1), I(1), I(4), I(4), I(5) +=over 4 -See rxvtRef.html rxvtRef.txt for detailed information on recognized escape sequences and menuBar syntax, etc. +=item B -=head1 BUGS +Color names. -Check the BUGS file for an up-to-date list. +=back -Cursor change support is not yet implemented. +=head1 SEE ALSO -Click-and-drag doesn't work with X11 mouse report overriding. +@@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 @@ -875,13 +1488,9 @@ =item Project Coordinator -@@RXVTMAINT@@ L<@@RXVT_MAINTEMAIL@@> - -=item Web page maintainter +Marc A. Lehmann L<< >> -@@RXVTWEBMAINT@@ L<@@RXVT_WEBMAINTEMAIL@@> - -L<@@RXVT_WEBPAGE@@> +L =back @@ -913,16 +1522,20 @@ =item Geoff Wing L<< >> -Rewrote screen display and text selection routines. Project Coordinator -(changes.txt 2.4.6 - rxvt-unicode) +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 -compatibility and apply numerous other bugfixes and extensions. +Forked rxvt-unicode, unicode support, rewrote almost all the code, perl +extension, random hacks, numerous bugfixes and extensions. Project Coordinator (Changes 1.0 -) +=item Emanuele Giaquinta L<< >> + +Pty/tty/utmp/wtmp rewrite, lots of random hacking and bugfixing. + =back