+=head1 NAME
+
+RXVT REFERENCE - FAQ, command sequences and other background information
+
+=head1 FREQUENTLY ASKED QUESTIONS
+
+=over 4
+
+=item How do I know which rxvt-unicode version I'm using?
+
+The version number is displayed with the usage (-h). Also the escape
+sequence C<ESC[8n> sets the window title to the version number.
+
+=item When I log-in to another system it tells me about missing terminfo data?
+
+The terminal description used by rxvt-unicode is not as widely available
+as that for xterm, or even rxvt (for which the same problem often arises).
+
+The correct solution for this problem is to install the terminfo, this can
+be done like this (with ncurses' infocmp):
+
+ REMOTE=remotesystem.domain
+ infocmp rxvt-unicode | ssh $REMOTE "cat >/tmp/ti && tic /tmp/ti"
+
+... or by installing rxvt-unicode normally on the remote system,
+
+If you cannot or do not want to do this, then you can simply set
+C<TERM=rxvt> or even C<TERM=xterm>, and live with the small number of
+problems arising, which includes wrong keymapping, less and different
+colours and some refresh errors in fullscreen applications. It's a nice
+quick-and-dirty workaround for rare cases, though.
+
+If you always want to do this you can either recompile rxvt-unicode with
+the desired TERM value or use a resource to set it:
+
+ URxvt.termName: rxvt
+
+If you don't plan to use B<rxvt> (quite common...) you could also replace
+the rxvt terminfo file with the rxvt-unicode one.
+
+=item I need a termcap file entry.
+
+You could use rxvt's termcap entry with resonable results in many cases.
+You can also create a termcap entry by using terminfo's infocmp program
+like this:
+
+ infocmp -C rxvt-unicode
+
+OR you could this termcap entry:
+
+ rxvt-unicode|rxvt-unicode terminal (X Window System):\
+ :am:bw:eo:km:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:al=\E[L:\
+ :as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\
+ :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
+ :ec=\E[%dX:ei=\E[4l:ho=\E[H:i1=\E[?47l\E=\E[?1l:ic=\E[@:\
+ :im=\E[4h:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
+ :k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\
+ :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
+ :kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:\
+ :ke=\E[?1l\E>:kh=\E[7~:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
+ :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\
+ :nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:\
+ :st=\EH:ta=^I:te=\E[r\E[?1049l:ti=\E[?1049h:ue=\E[24m:\
+ :up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:\
+ :vs=\E[?25h:
+
+=item Why does C<ls> no longer have coloured output?
+
+The C<ls> in the GNU coreutils unfortunately doesn't use terminfo to
+decide wether a terminal has colour, but uses it's own configuration
+file. Needless to say, C<rxvt-unicode> is not in it's default file (among
+with most other terminals supporting colour). Either add:
+
+ TERM rxvt-unicode
+
+to C</etc/DIR_COLORS> or simply add:
+
+ alias ls='ls --color=auto'
+
+to your C<.profile> or C<.bashrc>.
+
+=item Why doesn't vim/emacs etc. use the 88 colour mode?
+
+=item Why doesn't vim/emacs etc. make use of italic?
+
+=item Why are the secondary screen-related options not working properly?
+
+Make sure you are using C<TERM=rxvt-unicode>. Some pre-packaged
+distributions (most notably Debian GNU/Linux) break rxvt-unicode
+by setting C<TERM> to C<rxvt>, which doesn't have these extra
+features. Unfortunately, some of these (most notably, again, Debian
+GNU/Linux) furthermore fail to even install the C<rxvt-unicode> terminfo
+file, so you will need to install it on your own (See the question B<When
+I log-in to another system it tells me about missing terminfo data?> on
+how to do this).
+
+=item Rxvt-unicode does not seem to understand the selected encoding?
+
+=item Unicode does not seem to work?
+
+If you encounter strange problems like typing an accented character but
+getting two unrelated other characters or similar, or if program output is
+subtly garbled, then you should check your locale settings.
+
+Rxvt-unicode must be started with the same C<LC_CTYPE> setting as the
+programs. Often rxvt-unicode is started in the C<C> locale, while the
+login script running within the rxvt-unicode window changes the locale to
+sth. else, e.h. C<en_GB.UTF-8>. Needless to say, this is not going to work.
+
+The best thing is to fix your startup environment, as you will likely run
+into other problems. If nothing works you can try this in your .profile.
+
+ printf '\e]701;%s\007' "$LC_CTYPE"
+
+If this doesn't work, then maybe you use a C<LC_CTYPE> specification not
+supported on your systems. Some systems have a C<locale> command which
+displays this. If it displays sth. like:
+
+ locale: Cannot set LC_CTYPE to default locale: ...
+
+Then the locale you specified is not supported on your system.
+
+If nothing works and you are sure that everything is set correctly then
+you will need to remember a little known fact: Some programs just don't
+support locales :(
+
+=item Why do some characters look so much different than others?
+
+=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<rxvt-unicode> makes a best-effort try at finding a replacement
+font. Often the result is fine, but sometimes the chosen font looks
+bad. Many fonts have totally strange characters that don't resemble the
+correct glyph at all, and rxvt-unicode lacks the artificial intelligence
+to detect that a specific glyph is wrong: it has to believe the font that
+the characters it contains indeed look correct.
+
+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. Specifying your own fonts will also speed up this
+search and use less resources within rxvt-unicode and the X-server.
+
+The only limitation is that all the fonts must not be larger than the base
+font, as the base font defines the principal 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. Subsequent 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 Why does rxvt-unicode sometimes leave pixel droppings?
+
+Most fonts were not designed for terminal use, which means that character
+size varies a lot. A font that is otherwise fine for terminal use might
+contain some characters that are simply too wide. Rxvt-unicode will avoid
+these characters. For characters that are just "a bit" too wide a special
+"careful" rendering mode is used that redraws adjacent characters.
+
+All of this requires that fonts do not lie about character sizes,
+however: Xft fonts often draw glyphs larger than their acclaimed bounding
+box, and rxvt-unicode has no way of detecting this (the correct way is to
+ask for the character bounding box, which unfortunately is wrong in these
+cases).
+
+It's not clear (to me at least), wether this is a bug in Xft, freetype,
+or the respective font. If you encounter this problem you might try using
+the C<-lsp> option to give the font more height. If that doesn't work, you
+might be forced to use a different font.
+
+All of this is not a problem when using X11 core fonts, as their bounding
+box data is correct.
+
+=item My Compose (Multi_key) key is no longer working.
+
+The most common causes for this are that either your locale is not set
+correctly, or you specified a B<preeditStyle> that is not supported by
+your input method. For example, if you specified B<OverTheSpot> and
+your input method (e.g. the default input method handling Compose keys)
+does not support this (for instance because it is not visual), then
+rxvt-unicode will continue without an input method.
+
+In this case either do not specify a B<preeditStyle> or specify more than
+one pre-edit style, such as B<OverTheSpot,Root,None>.
+
+=item I cannot type C<Ctrl-Shift-2> to get an ASCII NUL character due to ISO 14755
+
+Either try C<Ctrl-2> alone (it often is mapped to ASCII NUL even on
+international keyboards) or simply use ISO 14755 support to your
+advantage, typing <Ctrl-Shift-0> to get a ASCII NUL. This works for other
+codes, too, such as C<Ctrl-Shift-1-d> to type the default telnet escape
+character and so on.
+
+=item How can I keep rxvt-unicode from using reverse video so much?
+
+First of all, make sure you are running with the right terminfo
+(C<urxvt>), which will get rid of most of these effects. Then make sure
+you have specified colours for italic and bold, as otherwise rxvt-unicode
+might use reverse video to simulate the effect:
+
+ URxvt*colorBD: white
+ URxvt*colorIT: green
+
+=item Some programs assume totally weird colours (red instead of blue), how can I fix that?
+
+For some unexplainable reason, some programs (i.e. irssi) assume a very
+weird colour palette when confronted with a terminal with more than the
+standard 8 colours (rxvt-unicode supports 88). The right fix is, of
+course, to fix these programs not to assume non-ISO colours without very
+good reasons.
+
+In the meantime, you can either edit your C<urxvt> terminfo definition to
+only claim 8 colour support or use C<TERM=rxvt>, which will fix colours
+but keep you from using other rxvt-unicode features.
+
+=item I am on FreeBSD and rxvt-unicode does not seem to work at all.
+
+Rxvt-unicode requires the symbol C<__STDC_ISO_10646__> to be defined
+in your compile environment, or an implementation that implements it,
+wether it defines the symbol or not. C<__STDC_ISO_10646__> requires that
+B<wchar_t> is represented as unicode.
+
+As you might have guessed, FreeBSD does neither define this symobl nor
+does it support it. Instead, it uses it's own internal representation of
+B<wchar_t>. This is, of course, completely legal.
+
+However, C<__STDC_ISO_10646__> is the only sane way to support
+multi-language apps in an OS, as using a locale-dependent (and
+non-standardized) representation of B<wchar_t> makes it impossible to
+convert between B<wchar_t> (as used by X11 and your applications) and any
+other encoding without implementing OS-specific-wrappers for each and
+every locale. There simply are no APIs to convert B<wchar_t> into anything
+except the current locale encoding.
+
+Some applications (such as the formidable B<mlterm>) work around this
+by carrying their own replacement functions for character set handling
+with them, and either implementing OS-dependent hacks or doing multiple
+conversions (which is slow and unreliable in case the OS implements
+encodings slightly different than the terminal emulator).
+
+The rxvt-unicode author insists that the right way to fix this is in the
+system libraries once and for all, instead of forcing every app to carry
+complete replacements.
+
+=item How does rxvt-unicode determine the encoding to use?
+
+=item Is there an option to switch encodings?
+
+Unlike some other terminals, rxvt-unicode has no encoding switch, and no
+specific "utf-8" mode, such as xterm. In fact, it doesn't even know about
+UTF-8 or any other encodings with respect to terminal I/O.
+
+The reasons is that there exists a perfectly fine mechanism for selecting
+the encoding, doing I/O and (most important) communicating this to all
+applications so everybody agrees on character properties such as width and
+code number. This mechanism is the I<locale>.
+
+Rxvt-unicode uses the C<LC_CTYPE> locale category to select encoding. All
+programs doing the same (that is, most) will automatically agree in the
+interpretation of characters.
+
+Unfortunately, there is no system-independent way to select locales, nor
+is there a standard on how locale specifiers will look like.
+
+On most systems, the content of the C<LC_CTYPE> environment variable
+contains an arbitrary string which corresponds to an already-installed
+locale. Common names for locales are C<en_US.UTF-8>, C<de_DE.ISO-8859-15>,
+C<ja_JP.EUC-JP>, i.e. C<language_country.encoding>, but other forms
+(i.e. C<de> or C<german>) are also common.
+
+Rxvt-unicode ignores all other locale categories, and except for
+the encoding, ignores country or language-specific settings,
+i.e. C<de_DE.UTF-8> and C<ja_JP.UTF-8> are the same for rxvt-unicode.
+
+If you want to use a specific encoding you have to make sure you start
+rxvt-unicode with the correct C<LC_CTYPE> category.
+
+=item Can I switch locales at runtime?
+
+Yes, using an escape sequence. Try sth. like this, which sets
+rxvt-unicode's idea of C<LC_CTYPE>.
+
+ printf '\e]701;%s\007' ja_JP.SJIS
+
+See also the previous question.
+
+Sometimes this capability is rather handy when you want to work in one
+locale (e.g. C<de_DE.UTF-8>) but some programs don't support UTF-8. For
+example, I use this script to start C<xjdic>, which first switches to a
+locale supported by xjdic and back later:
+
+ printf '\e]701;%s\007' ja_JP.SJIS
+ xjdic -js
+ printf '\e]701;%s\007' de_DE.UTF-8
+
+=item Can I switch the fonts at runtime?
+
+Yes, using an escape sequence. Try sth. like this, which has the same
+effect as using the C<-fn> switch, and takes effect immediately:
+
+ printf '\e]50;%s\007' "9x15bold,xft:Kochi Gothic"
+
+This is useful if you e.g. work primarily with japanese (and prefer a
+japanese font), but you have to switch to chinese temporarily, where
+japanese fonts would only be in your way.
+
+You can think of this as a kind of manual ISO-2022 switching.
+
+=item Why do italic characters look as if clipped?
+
+Many fonts have difficulties with italic characters and hinting. For
+example, the otherwise very nicely hinted font C<xft:Bitstream Vera Sans
+Mono> completely fails in it's italic face. A workaround is to enable
+freetype autohinting, i.e. like this:
+
+ URxvt*italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true
+ URxvt*boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true
+
+=item My input method wants <some encoding> but I want UTF-8, what can I do?
+
+You can specify separate locales for the input method and the rest of the
+terminal, using the resource C<imlocale>:
+
+ URxvt*imlocale: ja_JP.EUC-JP
+
+Now you can start your terminal with C<LC_CTYPE=ja_JP.UTF-8> and still
+use your input method. Please note, however, that you will not be able to
+input characters outside C<EUC-JP> in a normal way then, as your input
+method limits you.
+
+=item Rxvt-unicode uses gobs of memory, how can I reduce that?
+
+Rxvt-unicode tries to obey the rule of not charging you for sth. you
+don't use. One thing you should try is to configure out all settings that
+you don't need, for example, Xft support is a resource hog by design,
+when used. Compiling it out ensures that no Xft font will be loaded
+accidentally when rxvt-unicode tries to find a font for your characters.
+
+Also, many people (me included) like large windows and even larger
+scrollback buffers: Without C<--enable-unicode3>, rxvt-unicode will use
+6 bytes per screen cell. For a 160x?? window this amounts to almost a
+kilobyte per line. A scrollback buffer of 10000 lines will then (if full)
+use 10 Megabytes of memory. With C<--enable-unicode3> it gets worse, as
+rxvt-unicode then uses 8 bytes per screen cell.
+
+=item Can I speed up Xft rendering somehow?
+
+Yes, the most obvious way to speed it up is to avoid Xft entirely, as
+it is simply slow. If you still want Xft fonts you might try to disable
+antialiasing (by appending C<:antialiasing=false>), which saves lots of
+memory and also speeds up rendering considerably.
+
+=item Rxvt-unicode doesn't seem to anti-alias its fonts, what is wrong?
+
+Rxvt-unicode will use whatever you specify as a font. If it needs to
+fall back to it's default font search list it will prefer X11 core
+fonts, because they are small and fast, and then use Xft fonts. It has
+antialiasing disabled for most of them, because the author thinks they
+look best that way.
+
+If you want antialiasing, you have to specify the fonts manually.
+
+=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<colorBD:>, 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:
+
+ URxvt*color0: #000000
+ URxvt*color1: #A80000
+ URxvt*color2: #00A800
+ URxvt*color3: #A8A800
+ URxvt*color4: #0000A8
+ URxvt*color5: #A800A8
+ URxvt*color6: #00A8A8
+ URxvt*color7: #A8A8A8
+
+ URxvt*color8: #000054
+ URxvt*color9: #FF0054
+ URxvt*color10: #00FF54
+ URxvt*color11: #FFFF54
+ URxvt*color12: #0000FF
+ URxvt*color13: #FF00FF
+ URxvt*color14: #00FFFF
+ URxvt*color15: #FFFFFF
+
+And here is a more complete set of non-standard colors described as
+"pretty girly":
+
+ URxvt.cursorColor: #dc74d1
+ URxvt.pointerColor: #dc74d1
+ URxvt.background: #0e0e0e
+ URxvt.foreground: #4ad5e1
+ URxvt.color0: #000000
+ URxvt.color8: #8b8f93
+ URxvt.color1: #dc74d1
+ URxvt.color9: #dc74d1
+ URxvt.color2: #0eb8c7
+ URxvt.color10: #0eb8c7
+ URxvt.color3: #dfe37e
+ URxvt.color11: #dfe37e
+ URxvt.color5: #9e88f0
+ URxvt.color13: #9e88f0
+ URxvt.color6: #73f7ff
+ URxvt.color14: #73f7ff
+ URxvt.color7: #e1dddd
+ URxvt.color15: #e1dddd
+
+=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 <termios.h>, 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 keysyms.
+
+Here's an example for a URxvt session started using `@@RXVT_NAME@@ -name URxvt'
+
+ URxvt*keysym.Home: \e[1~
+ URxvt*keysym.End: \e[4~
+ URxvt*keysym.C-apostrophe: \e<C-'>
+ URxvt*keysym.C-slash: \e<C-/>
+ URxvt*keysym.C-semicolon: \e<C-;>
+ URxvt*keysym.C-grave: \e<C-`>
+ URxvt*keysym.C-comma: \e<C-,>
+ URxvt*keysym.C-period: \e<C-.>
+ URxvt*keysym.C-0x60: \e<C-`>
+ URxvt*keysym.C-Tab: \e<C-Tab>
+ URxvt*keysym.C-Return: \e<C-Return>
+ URxvt*keysym.S-Return: \e<S-Return>
+ URxvt*keysym.S-space: \e<S-Space>
+ URxvt*keysym.M-Up: \e<M-Up>
+ URxvt*keysym.M-Down: \e<M-Down>
+ URxvt*keysym.M-Left: \e<M-Left>
+ URxvt*keysym.M-Right: \e<M-Right>
+ URxvt*keysym.M-C-0: list.0123456789.\e<M-C-.>
+ URxvt*keysym.M-C-a: list.abcdefghijklmnopqrstuvwxyz.\033<M-C-.>
+ URxvt*keysym.F12: proto:\033]701;zh_CN.GBK\007
+
+=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 accommodate 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 have 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 <cblake@BBN.COM> 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</usr/bin/perl>,
+one that comes with F<pod2man>, F<pod2text> and F<pod2html>. Then go to
+the doc subdirectory and enter C<make alldoc>.
+
+=item My question isn't answered here, can I ask a human?
+
+Before sending me mail, you could go to IRC: C<irc.freenode.net>,
+channel C<#rxvt-unicode> has some rxvt-unicode enthusiasts that might be
+interested in learning about new and exciting problems (but not FAQs :).
+
+=back
+
+=head1 SYNOPSIS
+
+ # set a new font set
+ printf '\33]50;%s\007' 9x15,xft:Kochi" Mincho"
+
+ # change the locale and tell rxvt-unicode about it
+ export LC_CTYPE=ja_JP.EUC-JP; printf "\33]701;$LC_CTYPE\007"
+
+ # set window title
+ printf '\33]2;%s\007' "new window title"
+
+=head1 DESCRIPTION
+
+The rest of this document describes various technical aspects of
+B<rxvt-unicode>. First the description of supported command sequences,
+followed by menu and pixmap support and last by a description of all
+features selectable at C<configure> time.
+
=head1 RXVT TECHNICAL REFERENCE
=head1 Definitions
Invoke the G3 Character Set (LS3)
-=item B<< C<ESC>(C<C> >>
+=item B<< C<ESC> ( C> >>
Designate G0 Character Set (ISO 2022), see below for values of C<C>.
-=item B<< C<ESC>)C<C> >>
+=item B<< C<ESC> ) C> >>
Designate G1 Character Set (ISO 2022), see below for values of C<C>.
X<CSI>
-=head1 CSI (Code Sequence Introducer) Sequences
+=head1 CSI (Command Sequence Introducer) Sequences
=over 4
=end table
+=item B<< C<ESC [ Pm h> >>
+
+Set Mode (SM). See B<< C<ESC [ Pm l> >> sequence for description of C<Pm>.
+
=item B<< C<ESC [ Ps i> >>
-Printing
+Printing. See also the C<print-pipe> resource.
=begin table
+ B<< C<Ps = 0> >> print screen (MC0)
B<< C<Ps = 4> >> disable transparent print mode (MC4)
- B<< C<Ps = 5> >> enable transparent print mode (MC5) I<unimplemented>
+ B<< C<Ps = 5> >> enable transparent print mode (MC5)
=end table
-=item B<< C<ESC [ Pm h> >>
-
-Set Mode (SM). See next sequence for description of C<Pm>.
-
=item B<< C<ESC [ Pm l> >>
Reset Mode (RM)
=end table
-=item B<< C<Ps = 20> >> I<unimplemented>
+=item B<< C<Ps = 20> >> (partially implemented)
=begin table
B<< C<h> >> Automatic Newline (LNM)
- B<< C<h> >> Normal Linefeed (LNM)
+ B<< C<l> >> Normal Linefeed (LNM)
=end table
=begin table
B<< C<Ps = 0> >> Normal (default)
- B<< C<Ps = 1 / 22> >> On / Off Bold (bright fg)
+ B<< C<Ps = 1 / 21> >> On / Off Bold (bright fg)
+ B<< C<Ps = 3 / 23> >> On / Off Italic
B<< C<Ps = 4 / 24> >> On / Off Underline
- B<< C<Ps = 5 / 25> >> On / Off Blink (bright bg)
+ B<< C<Ps = 5 / 25> >> On / Off Slow Blink (bright bg)
+ B<< C<Ps = 6 / 26> >> On / Off Rapid Blink (bright bg)
B<< C<Ps = 7 / 27> >> On / Off Inverse
+ B<< C<Ps = 8 / 27> >> On / Off Invisible (NYI)
B<< C<Ps = 30 / 40> >> fg/bg Black
B<< C<Ps = 31 / 41> >> fg/bg Red
B<< C<Ps = 32 / 42> >> fg/bg Green
B<< C<Ps = 34 / 44> >> fg/bg Blue
B<< C<Ps = 35 / 45> >> fg/bg Magenta
B<< C<Ps = 36 / 46> >> fg/bg Cyan
+ B<< C<Ps = 38;5 / 48;5> >> set fg/bg to color #m (ISO 8613-6)
B<< C<Ps = 37 / 47> >> fg/bg White
B<< C<Ps = 39 / 49> >> fg/bg Default
+ B<< C<Ps = 90 / 100> >> fg/bg Bright Black
+ B<< C<Ps = 91 / 101> >> fg/bg Bright Red
+ B<< C<Ps = 92 / 102> >> fg/bg Bright Green
+ B<< C<Ps = 93 / 103> >> fg/bg Bright Yellow
+ B<< C<Ps = 94 / 104> >> fg/bg Bright Blue
+ B<< C<Ps = 95 / 105> >> fg/bg Bright Magenta
+ B<< C<Ps = 96 / 106> >> fg/bg Bright Cyan
+ B<< C<Ps = 97 / 107> >> fg/bg Bright White
+ B<< C<Ps = 99 / 109> >> fg/bg Bright Default
=end table
=end table
-X<Priv10>
-
=item B<< C<Ps = 10> >> (B<rxvt>)
=begin table
- B<< C<h> >> visible
- B<< C<l> >> invisible
+ B<< C<h> >> menuBar visible
+ B<< C<l> >> menuBar invisible
=end table
=end table
-=item B<< C<Ps = 1010> >>
+=item B<< C<Ps = 1010> >> (B<rxvt>)
=begin table
=end table
-=item B<< C<Ps = 1011> >>
+=item B<< C<Ps = 1011> >> (B<rxvt>)
=begin table
=end table
+=item B<< C<Ps = 1049> >>
+
+=begin table
+
+ B<< C<h> >> Use Alternate Screen Buffer - clear Alternate Screen Buffer if switching to it
+ B<< C<l> >> Use Normal Screen Buffer
+
+=end table
+
=back
=back
B<< C<Ps = 50> >> Set fontset to B<< C<Pt> >>, with the following special values of B<< C<Pt> >> (B<rxvt>) B<< C<#+n> >> change up B<< C<n> >> B<< C<#-n> >> change down B<< C<n> >> if B<< C<n> >> is missing of 0, a value of 1 is used I<empty> change to font0 B<< C<n> >> change to font B<< C<n> >>
B<< C<Ps = 55> >> Log all scrollback buffer and all of screen to B<< C<Pt> >>
B<< C<Ps = 701> >> Change current locale to B<< C<Pt> >>, or, if B<< C<Pt> >> is B<< C<?> >>, return the current locale (@@RXVT_NAME@@ extension)
- B<< C<Ps = 702> >> find font for character, used for debugging (@@RXVT_NAME@@ extension)
- B<< C<Ps = 703> >> command B<< C<Pt> >> I<rxvt compile-time option> (@@RXVT_NAME@@ extension)
+ B<< C<Ps = 703> >> Menubar command B<< C<Pt> >> I<rxvt compile-time option> (rxvt-unicode extension)
+ B<< C<Ps = 704> >> Change colour of italic characters to B<< C<Pt> >>
+ B<< C<Ps = 705> >> Change background pixmap tint colour to B<< C<Pt> >>
+ B<< C<Ps = 710> >> Set normal fontset to B<< C<Pt> >>. Same as C<Ps = 50>.
+ B<< C<Ps = 711> >> Set bold fontset to B<< C<Pt> >>. Similar to C<Ps = 50>.
+ B<< C<Ps = 712> >> Set italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50>.
+ B<< C<Ps = 713> >> Set bold-italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50>.
=end table
=end table
+=head1 CONFIGURE OPTIONS
+
+General hint: if you get compile errors, then likely your configuration
+hasn't been tested well. Either try with --enable-everything or use the
+./reconf script as a base for experiments. ./reconf is used by myself,
+so it should generally be a working config. Of course, you should always
+report when a combination doesn't work, so it can be fixed. Marc Lehmann
+<rxvt@schmorp.de>.
+
+=over 4
+
+=item --enable-everything
+
+Add support for all non-multichoice options listed in "./configure
+--help". Note that unlike other enable options this is order dependant.
+You can specify this and then disable options which this enables by
+I<following> this with the appropriate commands.
+
+=item --enable-xft
+
+Add support for Xft (anti-aliases, among others) fonts. Xft fonts are
+slower and require lots of memory, but as long as you don't use them, you
+don't pay for them.
+
+=item --enable-font-styles
+
+Add support for B<bold>, I<italic> and B<< I<bold italic> >> font
+styles. The fonts can be set manually or automatically.
+
+=item --with-codesets=NAME,...
+
+Compile in support for additional codeset (encoding) groups (eu, vn are
+always compiled in, which includes most 8-bit character sets). These
+codeset tables are currently only used for driving X11 core fonts, they
+are not required for Xft fonts. Compiling them in will make your binary
+bigger (together about 700kB), but it doesn't increase memory usage unless
+you use an X11 font requiring one of these encodings.
+
+=begin table
+
+ all all available codeset groups
+ zh common chinese encodings
+ zh_ext rarely used but very big chinese encodigs
+ jp common japanese encodings
+ jp_ext rarely used but big japanese encodings
+ kr korean encodings
+
+=end table
+
+=item --enable-xim
+
+Add support for XIM (X Input Method) protocol. This allows using
+alternative input methods (e.g. kinput2) and will also correctly
+set up the input for people using dead keys or compose keys.
+
+=item --enable-unicode3
+
+Enable direct support for displaying unicode codepoints above
+65535 (the basic multilingual page). This increases storage
+requirements per character from 2 to 4 bytes. X11 fonts do not yet
+support these extra characters, but Xft does.
+
+Please note that rxvt-unicode can store unicode code points >65535
+even without this flag, but the number of such characters is
+limited to a view thousand (shared with combining characters,
+see next switch), and right now rxvt-unicode cannot display them
+(input/output and cut&paste still work, though).
+
+=item --enable-combining
+
+Enable automatic composition of combining characters into
+composite characters. This is required for proper viewing of text
+where accents are encoded as seperate unicode characters. This is
+done by using precomposited characters when available or creating
+new pseudo-characters when no precomposed form exists.
+
+Without --enable-unicode3, the number of additional precomposed
+characters is rather limited (2048, if this is full, rxvt will use the
+private use area, extending the number of combinations to 8448). With
+--enable-unicode3, no practical limit exists. This will also enable
+storage of characters >65535.
+
+The combining table also contains entries for arabic presentation forms,
+but these are not currently used. Bug me if you want these to be used.
+
+=item --enable-fallback(=CLASS)
+
+When reading resource settings, also read settings for class CLASS
+(default: Rxvt). To disable resource fallback use --disable-fallback.
+
+=item --with-res-name=NAME
+
+Use the given name (default: urxvt) as default application name when
+reading resources. Specify --with-res-name=rxvt to replace rxvt.
+
+=item --with-res-class=CLASS
+
+Use the given class (default: URxvt) as default application class
+when reading resources. Specify --with-res-class=Rxvt to replace
+rxvt.
+
+=item --enable-utmp
+
+Write user and tty to utmp file (used by programs like F<w>) at
+start of rxvt execution and delete information when rxvt exits.
+
+=item --enable-wtmp
+
+Write user and tty to wtmp file (used by programs like F<last>) at
+start of rxvt execution and write logout when rxvt exits. This
+option requires --enable-utmp to also be specified.
+
+=item --enable-lastlog
+
+Write user and tty to lastlog file (used by programs like
+F<lastlogin>) at start of rxvt execution. This option requires
+--enable-utmp to also be specified.
+
+=item --enable-xpm-background
+
+Add support for XPM background pixmaps.
+
+=item --enable-transparency
+
+Add support for inheriting parent backgrounds thus giving a fake
+transparency to the term.
+
+=item --enable-fading
+
+Add support for fading the text when focus is lost.
+
+=item --enable-tinting
+
+Add support for tinting of transparent backgrounds.
+
+=item --enable-menubar
+
+Add support for our menu bar system (this interacts badly with
+dynamic locale switching currently).
+
+=item --enable-rxvt-scroll
+
+Add support for the original rxvt scrollbar.
+
+=item --enable-next-scroll
+
+Add support for a NeXT-like scrollbar.
+
+=item --enable-xterm-scroll
+
+Add support for an Xterm-like scrollbar.
+
+=item --enable-plain-scroll
+
+Add support for a very unobtrusive, plain-looking scrollbar that
+is the favourite of the rxvt-unicode author, having used it for
+many years.
+
+=item --enable-half-shadow
+
+Make shadows on the scrollbar only half the normal width & height.
+only applicable to rxvt scrollbars.
+
+=item --enable-ttygid
+
+Change tty device setting to group "tty" - only use this if
+your system uses this type of security.
+
+=item --disable-backspace-key
+
+Disable any handling of the backspace key by us - let the X server
+do it.
+
+=item --disable-delete-key
+
+Disable any handling of the delete key by us - let the X server
+do it.
+
+=item --disable-resources
+
+Remove all resources checking.
+
+=item --enable-xgetdefault
+
+Make resources checking via XGetDefault() instead of our small
+version which only checks ~/.Xdefaults, or if that doesn't exist
+then ~/.Xresources.
+
+=item --enable-strings
+
+Add support for our possibly faster memset() function and other
+various routines, overriding your system's versions which may
+have been hand-crafted in assembly or may require extra libraries
+to link in. (this breaks ANSI-C rules and has problems on many
+GNU/Linux systems).
+
+=item --disable-swapscreen
+
+Remove support for swap screen.
+
+=item --enable-frills
+
+Add support for many small features that are not essential but nice to
+have. Normally you want this, but for very small binaries you may want to
+disable this.
+
+A non-exhaustive list of features enabled by C<--enable-frills> (possibly
+in combination with other switches) is:
+
+ MWM-hints
+ seperate underline colour
+ settable border widths and borderless switch
+ settable extra linespacing
+ extra window properties (e.g. UTF-8 window names and PID)
+ iso-14755-2 and -3, and visual feedback
+ backindex and forwardindex escape sequence
+ window op and locale change escape sequences
+ tripleclickwords
+ settable insecure mode
+
+=item --enable-iso14755
+
+Enable extended ISO 14755 support (see @@RXVT_NAME@@(1), or
+F<doc/rxvt.1.txt>). Basic support (section 5.1) is enabled by
+C<--enable-frills>, while support for 5.2, 5.3 and 5.4 is enabled with
+this switch.
+
+=item --enable-keepscrolling
+
+Add support for continual scrolling of the display when you hold
+the mouse button down on a scrollbar arrow.
+
+=item --enable-mousewheel
+
+Add support for scrolling via mouse wheel or buttons 4 & 5.
+
+=item --enable-slipwheeling
+
+Add support for continual scrolling (using the mouse wheel as an
+accelerator) while the control key is held down. This option
+requires --enable-mousewheel to also be specified.
+
+=item --disable-new-selection
+
+Remove support for mouse selection style like that of xterm.
+
+=item --enable-dmalloc
+
+Use Gray Watson's malloc - which is good for debugging See
+http://www.letters.com/dmalloc/ for details If you use either this or the
+next option, you may need to edit src/Makefile after compiling to point
+DINCLUDE and DLIB to the right places.
+
+You can only use either this option and the following (should
+you use either) .
+
+=item --enable-dlmalloc
+
+Use Doug Lea's malloc - which is good for a production version
+See L<http://g.oswego.edu/dl/html/malloc.html> for details.
+
+=item --enable-smart-resize
+
+Add smart growth/shrink behaviour when changing font size via from hot
+keys. This should keep in a fixed position the rxvt corner which is
+closest to a corner of the screen.
+
+=item --enable-cursor-blink
+
+Add support for a blinking cursor.
+
+=item --enable-pointer-blank
+
+Add support to have the pointer disappear when typing or inactive.
+
+=item --with-name=NAME
+
+Set the basename for the installed binaries (default: C<urxvt>, resulting
+in C<urxvt>, C<urxvtd> etc.). Specify C<--with-name=rxvt> to replace with
+C<rxvt>.
+
+=item --with-term=NAME
+
+Change the environmental variable for the terminal to NAME (default
+C<rxvt-unicode>)
+
+=item --with-terminfo=PATH
+
+Change the environmental variable for the path to the terminfo tree to
+PATH.
+
+=item --with-x
+
+Use the X Window System (pretty much default, eh?).
+
+=item --with-xpm-includes=DIR
+
+Look for the XPM includes in DIR.
+
+=item --with-xpm-library=DIR
+
+Look for the XPM library in DIR.
+
+=item --with-xpm
+
+Not needed - define via --enable-xpm-background.
+
+=back
+
=head1 AUTHORS
-Marc Lehmann <rxvt@schmorp.de>, converted this document to pod and
+Marc Lehmann <rxvt@schmorp.de> converted this document to pod and
reworked it from the original Rxvt documentation, which was done by Geoff
Wing <gcw@pobox.com>, who in turn used the XTerm documentation and other
sources.