--- rxvt-unicode/README.FAQ 2005/12/17 20:55:45 1.19 +++ rxvt-unicode/README.FAQ 2006/01/31 00:25:16 1.35 @@ -1,23 +1,265 @@ FREQUENTLY ASKED QUESTIONS + The new selection selects pieces that are too big, how can I select + single words? + Yes. For example, if you want to select alphanumeric words, you can + use the following resource: + + 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 *LeftClick Shift-LeftClik* combination + also selects words like the old code. + + 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 + 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 PREPACKAGED EXTENSIONS in the rxvtperl(3) manpage. For + example, to disable the selection-popup and option-popup, specify + this 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 M-s. You can move it to any + other combination either by setting the searchable-scrollback + resource: + + URxvt.searchable-scrollback: CM-s + + 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 $HOME/.Xdefaults when no resources are attached to + the display. + + If you have or use an $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 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 wether and why it + works. If unsure, use the form above. + + 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. Do read the manpage and + option descriptions for the programs mentioned and rxvt-unicode. + Really, do it! + + 1. Use inheritPixmap: + + Esetroot wallpaper.jpg + rxvt -ip -tint red -sh 40 + + That works. If you think it doesn't, you lack transparency and + tinting support, or you are unable to read. + + 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: + + convert wallpaper.jpg -blur 20x20 -modulate 30 background.xpm + rxvt -pixmap background.xpm -pe automove-background + + That works. If you think it doesn't, you lack XPM and Perl support, + or you are unable to read. + + 3. Use an ARGB visual: + + rxvt -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 neccessary 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 + 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. + + Isn't rxvt 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 "--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 "--enable-everything" (which _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 unreasnobaly 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*. + + 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, an 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 :) + + 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: + + rxvt -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 + doc/rxvt-tabbed or the upcoming "Gtk2::URxvt" perl module, which + features a tabbed urxvt (murxvt) terminal as an example embedding + application. + How do I know which rxvt-unicode version I'm using? The version number is displayed with the usage (-h). Also the escape sequence "ESC [ 8 n" sets the window title to the version number. + When using the rxvtc client, the version displayed is that of the + daemon. I am using Debian GNU/Linux and have a problem... The Debian GNU/Linux package of rxvt-unicode in sarge contains large - patches that considerably change the behaviour of rxvt-unicode. - Before reporting a bug to the original rxvt-unicode author please - download and install the genuine version - () and try to reproduce the - problem. If you cannot, chances are that the problems are specific - to Debian GNU/Linux, in which case it should be reported via the - Debian Bug Tracking System (use "reportbug" to report the bug). + patches that considerably change the behaviour of rxvt-unicode (but + unfortunately this notice has been removed). Before reporting a bug + to the original rxvt-unicode author please download and install the + genuine version () and try + to reproduce the problem. If you cannot, chances are that the + problems are specific to Debian GNU/Linux, in which case it should + be reported via the Debian Bug Tracking System (use "reportbug" to + report the bug). For other problems that also affect the Debian package, you can and probably should use the Debian BTS, too, because, after all, it's also a bug in the Debian version and it serves as a reminder for other users that might encounter the same issue. + I am maintaining rxvt-unicode for distribution/OS XXX, any + recommendation? + You should build one binary with the default options. configure now + enables most useful options, and the trend goes to making them + runtime-switchable, too, so there is usually no drawback to enbaling + them, except higher disk and possibly memory usage. The perl + interpreter should be enabled, as important functionality (menus, + selection, likely more in the future) depends on it. + + You should not overwrite the "perl-ext-common" snd "perl-ext" + resources system-wide (except maybe with "defaults"). This will + result in useful behaviour. If your distribution aims at low memory, + add an empty "perl-ext-common" resource to the app-defaults file. + This will keep the perl interpreter disabled until the user enables + it. + + If you can/want build more binaries, I recommend building a minimal + one with "--disable-everything" (very useful) and a maximal one with + "--enable-everything" (less useful, it will be very big due to a lot + of encodings built-in that increase download times and are rarely + used). + + I need to make it setuid/setgid to support utmp/ptys on my OS, is this + safe? + It should be, starting with release 7.1. You are encouraged to + properly install urxvt with privileges necessary for your OS now. + + When rxvt-unicode detects that it runs setuid or setgid, it will + fork into a helper process for privileged operations (pty handling + on some systems, utmp/wtmp/lastlog handling on others) and drop + privileges immediately. This is much safer than most other terminals + that keep privileges while running (but is more relevant to urxvt, + as it contains things as perl interpreters, which might be "helpful" + to attackers). + + This forking is done as the very first within main(), which is very + early and reduces possible bugs to initialisation code run before + main(), or things like the dynamic loader of your system, which + should result in very little risk. + 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 @@ -414,7 +656,7 @@ You can specify separate locales for the input method and the rest of the terminal, using the resource "imlocale": - URxvt*imlocale: ja_JP.EUC-JP + URxvt.imlocale: ja_JP.EUC-JP Now you can start your terminal with "LC_CTYPE=ja_JP.UTF-8" and still use your input method. Please note, however, that you will not @@ -467,7 +709,7 @@ 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(7) + or Shift keys are depressed. What's with this bold/blink stuff? If no bold colour is set via "colorBD:", bold will invert text using @@ -563,7 +805,7 @@ $ stty erase ^? $ rxvt - Toggle with "ESC [ 36 h" / "ESC [ 36 l" as documented in rxvt(7). + Toggle with "ESC [ 36 h" / "ESC [ 36 l". For an existing rxvt-unicode: