diff options
author | root <root> | 2020-08-08 23:39:25 +0000 |
---|---|---|
committer | root <root> | 2020-08-08 23:39:25 +0000 |
commit | 4ab67f2e497f94a74967ab91aaf47582ba3314bc (patch) | |
tree | af0c5e9e5d6132eb611a08c5974cc32c8d5e2351 | |
parent | 74dcd66efcfd778a0b3f70c187316367483c02e2 (diff) |
*** empty log message ***
-rw-r--r-- | doc/rxvt.7.pod | 2576 |
1 files changed, 2576 insertions, 0 deletions
diff --git a/doc/rxvt.7.pod b/doc/rxvt.7.pod new file mode 100644 index 0000000..2ae437d --- /dev/null +++ b/doc/rxvt.7.pod @@ -0,0 +1,2576 @@ +=head1 NAME + +RXVT REFERENCE - FAQ, command sequences and other background information + +=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 + +This document contains the FAQ, the RXVT TECHNICAL REFERENCE documenting +all escape sequences, and other background information. + +The newest version of this document is also available on the World Wide Web at +L<http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod>. + +The main manual page for @@RXVT_NAME@@ itself is available at +L<http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.1.pod>. + +=head1 RXVT-UNICODE/URXVT FREQUENTLY ASKED QUESTIONS + + +=head2 Meta, Features & Commandline Issues + +=head3 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 :). + +=head3 I use Gentoo, and I have a problem... + +There are two big problems with Gentoo Linux: first, most if not all +Gentoo systems are completely broken (missing or mismatched header +files, broken compiler etc. are just the tip of the iceberg); +secondly, it should be called Gentoo GNU/Linux. + +For these reasons, it is impossible to support rxvt-unicode on +Gentoo. Problems appearing on Gentoo systems will usually simply be +ignored unless they can be reproduced on non-Gentoo systems. + +=head3 Does it support tabs, can I have a tabbed rxvt-unicode? + +Beginning with version 7.3, there is a perl extension that implements a +simple tabbed terminal. It is installed by default, so any of these should +give you tabs: + + @@URXVT_NAME@@ -pe tabbed + + URxvt.perl-ext-common: default,tabbed + +It will also work fine with tabbing functionality of many window managers +or similar tabbing programs, and its embedding-features allow it to be +embedded into other programs, as witnessed by F<doc/rxvt-tabbed> or +the upcoming C<Gtk2::URxvt> perl module, which features a tabbed urxvt +(murxvt) terminal as an example embedding application. + +=head3 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 [ 8 n> sets the window title to the version number. When +using the @@URXVT_NAME@@c client, the version displayed is that of the +daemon. + +=head3 Rxvt-unicode uses gobs of memory, how can I reduce that? + +Rxvt-unicode tries to obey the rule of not charging you for something 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. + +=head3 How can I start @@URXVT_NAME@@d in a race-free way? + +Try C<@@URXVT_NAME@@d -f -o>, which tells @@URXVT_NAME@@d to open the +display, create the listening socket and then fork. + +=head3 How can I start @@URXVT_NAME@@d automatically when I run @@URXVT_NAME@@c? + +If you want to start @@URXVT_NAME@@d automatically whenever you run +@@URXVT_NAME@@c and the daemon isn't running yet, use this script: + + #!/bin/sh + @@URXVT_NAME@@c "$@" + if [ $? -eq 2 ]; then + @@URXVT_NAME@@d -q -o -f + @@URXVT_NAME@@c "$@" + fi + +This tries to create a new terminal, and if fails with exit status 2, +meaning it couldn't connect to the daemon, it will start the daemon and +re-run the command. Subsequent invocations of the script will re-use the +existing daemon. + +=head3 How do I distinguish whether I'm running rxvt-unicode or a regular +xterm? I need this to decide about setting colours etc. + +The original 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 colour. + +=head3 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 + printf "\eZ" + read term_id + stty icanon echo + if [ ""${term_id} = '^[[?1;2C' -a ${DISPLAY:-foo} = foo ]; then + printf '\e[7n' # query the rxvt we are in for the DISPLAY string + read DISPLAY # set it in our local shell + fi + fi + +=head3 How do I compile the manual pages on my own? + +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<pod2xhtml> (from +F<Pod::Xhtml>). Then go to the doc subdirectory and enter C<make alldoc>. + +=head3 Isn't rxvt-unicode supposed to be small? Don't all those features bloat? + +I often get asked about this, and I think, no, they didn't cause extra +bloat. If you compare a minimal rxvt and a minimal urxvt, you can see +that the urxvt binary is larger (due to some encoding tables always being +compiled in), but it actually uses less memory (RSS) after startup. Even +with C<--disable-everything>, this comparison is a bit unfair, as many +features unique to urxvt (locale, encoding conversion, iso14755 etc.) are +already in use in this mode. + + text data bss drs rss filename + 98398 1664 24 15695 1824 rxvt --disable-everything + 188985 9048 66616 18222 1788 urxvt --disable-everything + +When you C<--enable-everything> (which I<is> unfair, as this involves xft +and full locale/XIM support which are quite bloaty inside libX11 and my +libc), the two diverge, but not unreasonably so. + + text data bss drs rss filename + 163431 2152 24 20123 2060 rxvt --enable-everything + 1035683 49680 66648 29096 3680 urxvt --enable-everything + +The very large size of the text section is explained by the east-asian +encoding tables, which, if unused, take up disk space but nothing else +and can be compiled out unless you rely on X11 core fonts that use those +encodings. The BSS size comes from the 64k emergency buffer that my c++ +compiler allocates (but of course doesn't use unless you are out of +memory). Also, using an xft font instead of a core font immediately adds a +few megabytes of RSS. Xft indeed is responsible for a lot of RSS even when +not used. + +Of course, due to every character using two or four bytes instead of one, +a large scrollback buffer will ultimately make rxvt-unicode use more +memory. + +Compared to e.g. Eterm (5112k), aterm (3132k) and xterm (4680k), this +still fares rather well. And compared to some monsters like gnome-terminal +(21152k + extra 4204k in separate processes) or konsole (22200k + extra +43180k in daemons that stay around after exit, plus half a minute of +startup time, including the hundreds of warnings it spits out), it fares +extremely well *g*. + +=head3 Why C++, isn't that unportable/bloated/uncool? + +Is this a question? :) It comes up very often. The simple answer is: I had +to write it, and C++ allowed me to write and maintain it in a fraction +of the time and effort (which is a scarce resource for me). Put even +shorter: It simply wouldn't exist without C++. + +My personal stance on this is that C++ is less portable than C, but in +the case of rxvt-unicode this hardly matters, as its portability limits +are defined by things like X11, pseudo terminals, locale support and unix +domain sockets, which are all less portable than C++ itself. + +Regarding the bloat, see the above question: It's easy to write programs +in C that use gobs of memory, and certainly possible to write programs in +C++ that don't. C++ also often comes with large libraries, but this is +not necessarily the case with GCC. Here is what rxvt links against on my +system with a minimal config: + + libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00002aaaaabc3000) + libc.so.6 => /lib/libc.so.6 (0x00002aaaaadde000) + libdl.so.2 => /lib/libdl.so.2 (0x00002aaaab01d000) + /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000) + +And here is rxvt-unicode: + + libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00002aaaaabc3000) + libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002aaaaada2000) + libc.so.6 => /lib/libc.so.6 (0x00002aaaaaeb0000) + libdl.so.2 => /lib/libdl.so.2 (0x00002aaaab0ee000) + /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000) + +No large bloated libraries (of course, none were linked in statically), +except maybe libX11 :) + + +=head2 Rendering, Font & Look and Feel Issues + +=head3 I can't get transparency working, what am I doing wrong? + +First of all, transparency isn't officially supported in rxvt-unicode, so +you are mostly on your own. Do not bug the author about it (but you may +bug everybody else). Also, if you can't get it working consider it a rite +of passage: ... and you failed. + +Here are four ways to get transparency. B<Do> read the manpage and option +descriptions for the programs mentioned and rxvt-unicode. Really, do it! + +1. Use transparent mode: + + Esetroot wallpaper.jpg + @@URXVT_NAME@@ -tr -tint red -sh 40 + +That works. If you think it doesn't, you lack transparency and tinting +support, or you are unable to read. +This method requires that the background-setting program sets the +_XROOTPMAP_ID or ESETROOT_PMAP_ID property. Compatible programs +are Esetroot, hsetroot and feh. + +2. Use a simple pixmap and emulate pseudo-transparency. This enables you +to use effects other than tinting and shading: Just shade/tint/whatever +your picture with gimp or any other tool: + + convert wallpaper.jpg -blur 20x20 -modulate 30 background.jpg + @@URXVT_NAME@@ -pixmap "background.jpg;:root" + +That works. If you think it doesn't, you lack GDK-PixBuf support, or you +are unable to read. + +3. Use an ARGB visual: + + @@URXVT_NAME@@ -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc + +This requires XFT support, and the support of your X-server. If that +doesn't work for you, blame Xorg and Keith Packard. ARGB visuals aren't +there yet, no matter what they claim. Rxvt-Unicode contains the necessary +bugfixes and workarounds for Xft and Xlib to make it work, but that +doesn't mean that your WM has the required kludges in place. + +4. Use xcompmgr and let it do the job: + + xprop -frame -f _NET_WM_WINDOW_OPACITY 32c \ + -set _NET_WM_WINDOW_OPACITY 0xc0000000 + +Then click on a window you want to make transparent. Replace C<0xc0000000> +by other values to change the degree of opacity. If it doesn't work and +your server crashes, you got to keep the pieces. + +=head3 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), whether 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. + +=head3 How can I keep rxvt-unicode from using reverse video so much? + +First of all, make sure you are running with the right terminal settings +(C<TERM=rxvt-unicode>), 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 + +=head3 Some programs assume totally weird colours (red instead of blue), how can I fix that? + +For some unexplainable reason, some rare programs 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<rxvt-unicode> 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. + +=head3 Can I switch the fonts at runtime? + +Yes, using an escape sequence. Try something like this, which has the same +effect as using the C<-fn> switch, and takes effect immediately: + + printf '\33]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. + +=head3 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 its italic face. A workaround might be 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 + +=head3 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<:antialias=false>), which saves lots of +memory and also speeds up rendering considerably. + +=head3 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 its 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. + +=head3 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-text-blink>. Without +C<--enable-text-blink>, the blink attribute will be ignored. + +On ANSI colours, bold/blink attributes are used to set high-intensity +foreground/background colours. + +color0-7 are the low-intensity colours. + +color8-15 are the corresponding high-intensity colours. + +=head3 I don't like the screen colours. How do I change them? + +You can change the screen colours 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 colours. + + 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 + +They have been described (not by me) as "pretty girly". + +=head3 Why do some characters look so much different than others? + +See next entry. + +=head3 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/ugly/wrong. Some 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 claims to contain indeed look correct. + +In that case, select a font of your taste and add it to the font list, +e.g.: + + @@URXVT_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 none of the fonts may be larger than the base +font, as the base font defines the terminal character cell size, which +must be the same due to the way terminals work. + +=head3 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/chinese character, it might choose a japanese font for +display. Subsequent japanese characters will use 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 +chinese characters that are also in the japanese font. + +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 language 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). + +Until then, you might get away with switching fonts at runtime (see L<Can +I switch the fonts at runtime?> later in this document). + +=head3 How can I make mplayer display video correctly? + +We are working on it, in the meantime, as a workaround, use something like: + + @@URXVT_NAME@@ -b 600 -geometry 20x1 -e sh -c 'mplayer -wid $WINDOWID file...' + +=head3 Why is the cursor now blinking in emacs/vi/...? + +This is likely caused by your editor/program's use of the C<cvvis> +terminfo capability. Emacs uses it by default, as well as some versions of +vi and possibly other programs. + +In emacs, you can switch that off by adding this to your C<.emacs> file: + + (setq visible-cursor nil) + +For other programs, if they do not have an option, your have to remove the +C<cvvis> capability from the terminfo description. + +When @@URXVT_NAME@@ first added the blinking cursor option, it didn't +add a C<cvvis> capability, which served no purpose before. Version 9.21 +introduced C<cvvis> (and the ability to control blinking independent of +cursor shape) for compatibility with other terminals, which traditionally +use a blinking cursor for C<cvvis>. This also reflects the intent of +programs such as emacs, who expect C<cvvis> to enable a blinking cursor. + +=head2 Keyboard, Mouse & User Interaction + +=head3 The new selection selects pieces that are too big, how can I select single words? + +If you want to select e.g. alphanumeric words, you can use the following +setting: + + URxvt.selection.pattern-0: ([[:word:]]+) + +If you click more than twice, the selection will be extended +more and more. + +To get a selection that is very similar to the old code, try this pattern: + + URxvt.selection.pattern-0: ([^"&'()*,;<=>?@[\\\\]^`{|})]+) + +Please also note that the I<LeftClick Shift-LeftClick> combination also +selects words like the old code. + +=head3 I don't like the new selection/popups/hotkeys/perl, how do I change/disable it? + +You can disable the perl extension completely by setting the +B<perl-ext-common> resource to the empty string, which also keeps +rxvt-unicode from initialising perl, saving memory. + +If you only want to disable specific features, you first have to +identify which perl extension is responsible. For this, read the section +B<PREPACKAGED EXTENSIONS> in the @@URXVT_NAME@@perl(3) manpage. For +example, to disable the B<selection-popup> and B<option-popup>, specify +this B<perl-ext-common> resource: + + URxvt.perl-ext-common: default,-selection-popup,-option-popup + +This will keep the default extensions, but disable the two popup +extensions. Some extensions can also be configured, for example, +scrollback search mode is triggered by B<M-s>. You can move it to any +other combination by adding a B<keysym> resource that binds the desired +combination to the C<start> action of C<searchable-scrollback> and another +one that binds B<M-s> to the C<builtin:> action: + + URxvt.keysym.CM-s: searchable-scrollback:start + URxvt.keysym.M-s: builtin: + +=head3 The cursor moves when selecting text in the current input line, how do I switch this off? + +See next entry. + +=head3 During rlogin/ssh/telnet/etc. sessions, clicking near the cursor outputs strange escape sequences, how do I fix this? + +These are caused by the C<readline> perl extension. Under normal +circumstances, it will move your cursor around when you click into the +line that contains it. It tries hard not to do this at the wrong moment, +but when running a program that doesn't parse cursor movements or in some +cases during rlogin sessions, it fails to detect this properly. + +You can permanently switch this feature off by disabling the C<readline> +extension: + + URxvt.perl-ext-common: default,-readline + +=head3 My numeric keypad acts weird and generates differing output? + +Some Debian GNU/Linux users seem to have this problem, although no +specific details were reported so far. It is possible that this is caused +by the wrong C<TERM> setting, although the details of whether and how +this can happen are unknown, as C<TERM=rxvt> should offer a compatible +keymap. See the answer to the previous question, and please report if that +helped. + +=head3 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<preeditType> 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<preeditType> or specify more than +one pre-edit style, such as B<OverTheSpot,Root,None>. + +If it still doesn't work, then maybe your input method doesn't support +compose sequences - to fall back to the built-in one, make sure you don't +specify an input method via C<-im> or C<XMODIFIERS>. + +=head3 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. + +=head3 Mouse cut/paste suddenly no longer works. + +Make sure that mouse reporting is actually turned off since killing +some editors prematurely may leave it active. I've +heard that tcsh may use mouse reporting unless it is otherwise specified. A +quick check is to see if cut/paste works when the Alt or Shift keys are +pressed. + +=head3 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 and only correct +choice :). + +It is possible to toggle between C<^H> and C<^?> with the DECBKM +private mode: + + # use Backspace = ^H + $ stty erase ^H + $ printf "\e[?67h" + + # use Backspace = ^? + $ stty erase ^? + $ printf "\e[?67l" + +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 +(C<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. + +=head3 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 C<@@URXVT_NAME@@ -name URxvt> + + URxvt.keysym.Prior: \033[5~ + URxvt.keysym.Next: \033[6~ + URxvt.keysym.Home: \033[7~ + URxvt.keysym.End: \033[8~ + URxvt.keysym.Up: \033[A + URxvt.keysym.Down: \033[B + URxvt.keysym.Right: \033[C + URxvt.keysym.Left: \033[D + +See some more examples in the documentation for the B<keysym> resource. + +=head3 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 map + + 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. + + +=head2 Terminal Configuration + +=head3 Can I see a typical configuration? + +The default configuration tries to be xterm-like, which I don't like that +much, but it's least surprise to regular users. + +As a rxvt or rxvt-unicode user, you are practically supposed to invest +time into customising your terminal. To get you started, here is the +author's .Xdefaults entries, with comments on what they do. It's certainly +not I<typical>, but what's typical... + + URxvt.cutchars: "()*,<>[]{}|' + URxvt.print-pipe: cat >/some/path + +These are just for testing stuff. + + URxvt.imLocale: ja_JP.UTF-8 + URxvt.preeditType: OnTheSpot,None + +This tells rxvt-unicode to use a special locale when communicating with +the X Input Method, and also tells it to only use the OnTheSpot pre-edit +type, which requires the C<xim-onthespot> perl extension but rewards me +with correct-looking fonts. + + URxvt.perl-lib: /root/lib/urxvt + URxvt.perl-ext-common: default,selection-autotransform,selection-pastebin,xim-onthespot,remote-clipboard + URxvt.selection.pattern-0: ( at .*? line \\d+) + URxvt.selection.pattern-1: ^(/[^:]+):\ + URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/:e \\Q$1\\E\\x0d:$2\\x0d/ + URxvt.selection-autotransform.1: s/^ at (.*?) line (\\d+)$/:e \\Q$1\\E\\x0d:$2\\x0d/ + +This is my perl configuration. The first two set the perl library +directory and also tells urxvt to use a large number of extensions. I +develop for myself mostly, so I actually use most of the extensions I +write. + +The selection stuff mainly makes the selection perl-error-message aware +and tells it to convert perl error messages into vi-commands to load the +relevant file and go to the error line number. + + URxvt.scrollstyle: plain + URxvt.secondaryScroll: true + +As the documentation says: plain is the preferred scrollbar for the +author. The C<secondaryScroll> configures urxvt to scroll in full-screen +apps, like screen, so lines scrolled out of screen end up in urxvt's +scrollback buffer. + + URxvt.background: #000000 + URxvt.foreground: gray90 + URxvt.color7: gray90 + URxvt.colorBD: #ffffff + URxvt.cursorColor: #e0e080 + URxvt.throughColor: #8080f0 + URxvt.highlightColor: #f0f0f0 + +Some colours. Not sure which ones are being used or even non-defaults, but +these are in my .Xdefaults. Most notably, they set foreground/background +to light gray/black, and also make sure that the colour 7 matches the +default foreground colour. + + URxvt.underlineColor: yellow + +Another colour, makes underline lines look different. Sometimes hurts, but +is mostly a nice effect. + + URxvt.geometry: 154x36 + URxvt.loginShell: false + URxvt.meta: ignore + URxvt.utmpInhibit: true + +Uh, well, should be mostly self-explanatory. By specifying some defaults +manually, I can quickly switch them for testing. + + URxvt.saveLines: 8192 + +A large scrollback buffer is essential. Really. + + URxvt.mapAlert: true + +The only case I use it is for my IRC window, which I like to keep +iconified till people msg me (which beeps). + + URxvt.visualBell: true + +The audible bell is often annoying, especially when in a crowd. + + URxvt.insecure: true + +Please don't hack my mutt! Ooops... + + URxvt.pastableTabs: false + +I once thought this is a great idea. + + 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, \ + xft:Bitstream Vera Sans Mono:autohint=true, \ + xft:Code2000:antialias=false + urxvt.boldFont: -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-15 + urxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true + urxvt.boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true + +I wrote rxvt-unicode to be able to specify fonts exactly. So don't be +overwhelmed. A special note: the C<9x15bold> mentioned above is actually +the version from XFree-3.3, as XFree-4 replaced it by a totally different +font (different glyphs for C<;> and many other harmless characters), +while the second font is actually the C<9x15bold> from XFree4/XOrg. The +bold version has less chars than the medium version, so I use it for rare +characters, too. When editing sources with vim, I use italic for comments +and other stuff, which looks quite good with Bitstream Vera anti-aliased. + +Terminus is a quite bad font (many very wrong glyphs), but for most of my +purposes, it works, and gives a different look, as my normal (Non-bold) +font is already bold, and I want to see a difference between bold and +normal fonts. + +Please note that I used the C<urxvt> instance name and not the C<URxvt> +class name. That is because I use different configs for different purposes, +for example, my IRC window is started with C<-name IRC>, and uses these +defaults: + + IRC*title: IRC + IRC*geometry: 87x12+535+542 + IRC*saveLines: 0 + IRC*mapAlert: true + IRC*font: suxuseuro + IRC*boldFont: suxuseuro + IRC*colorBD: white + IRC*keysym.M-C-1: command:\033]710;suxuseuro\007\033]711;suxuseuro\007 + IRC*keysym.M-C-2: command:\033]710;9x15bold\007\033]711;9x15bold\007 + +C<Alt-Ctrl-1> and C<Alt-Ctrl-2> switch between two different font +sizes. C<suxuseuro> allows me to keep an eye (and actually read) +stuff while keeping a very small window. If somebody pastes something +complicated (e.g. japanese), I temporarily switch to a larger font. + +The above is all in my C<.Xdefaults> (I don't use C<.Xresources> nor +C<xrdb>). I also have some resources in a separate C<.Xdefaults-hostname> +file for different hosts, for example, on my main desktop, I use: + + URxvt.keysym.C-M-q: command:\033[3;5;5t + URxvt.keysym.C-M-y: command:\033[3;5;606t + URxvt.keysym.C-M-e: command:\033[3;1605;5t + URxvt.keysym.C-M-c: command:\033[3;1605;606t + URxvt.keysym.C-M-p: perl:test + +The first for keysym definitions allow me to quickly bring some windows +in the layout I like most. Ion users might start laughing but will stop +immediately when I tell them that I use my own Fvwm2 module for much the +same effect as Ion provides, and I only very rarely use the above key +combinations :-> + +=head3 Why doesn't rxvt-unicode read my resources? + +Well, why, indeed? It does, in a way very similar to other X +applications. Most importantly, this means that if you or your OS loads +resources into the X display (the right way to do it), rxvt-unicode will +ignore any resource files in your home directory. It will only read +F<$HOME/.Xdefaults> when no resources are attached to the display. + +If you have or use an F<$HOME/.Xresources> file, chances are that +resources are loaded into your X-server. In this case, you have to +re-login after every change (or run F<xrdb -merge $HOME/.Xresources>). + +Also consider the form resources have to use: + + URxvt.resource: value + +If you want to use another form (there are lots of different ways of +specifying resources), make sure you understand whether and why it +works. If unsure, use the form above. + +=head3 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 by simply installing rxvt-unicode on the remote system as well +(in case you have a nice package manager ready), or you can install the +terminfo database manually like this (with ncurses infocmp. works as +user and root): + + REMOTE=remotesystem.domain + infocmp rxvt-unicode | ssh $REMOTE "mkdir -p .terminfo && cat >/tmp/ti && tic /tmp/ti" + +One some systems you might need to set C<$TERMINFO> to the full path of +F<$HOME/.terminfo> for this to work. + +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 (and are fine with the consequences) 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 and use C<TERM=rxvt>. + +=head3 nano fails with "Error opening terminal: rxvt-unicode" + +This exceptionally confusing and useless error message is printed by nano +when it can't find the terminfo database. Nothing is wrong with your +terminal, read the previous answer for a solution. + +=head3 C<tic> outputs some error when compiling the terminfo entry. + +Most likely it's the empty definition for C<enacs=>. Just replace it by +C<enacs=\E[0@> and try again. + +=head3 C<bash>'s readline does not work correctly under @@URXVT_NAME@@. + +See next entry. + +=head3 I need a termcap file entry. + +One reason you might want this is that some distributions or operating +systems still compile some programs using the long-obsoleted termcap +library (Fedora's bash is one example) and rely on a termcap entry +for C<rxvt-unicode>. + +You could use rxvt's termcap entry with reasonable results in many cases. +You can also create a termcap entry by using terminfo's infocmp program +like |