--- rxvt-unicode/doc/rxvt.7.man.in 2005/10/25 20:04:59 1.25 +++ rxvt-unicode/doc/rxvt.7.man.in 2006/01/11 05:29:40 1.39 @@ -129,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "rxvt 7" -.TH rxvt 7 "2005-10-25" "5.8" "RXVT-UNICODE" +.TH rxvt 7 "2006-01-11" "6.3" "RXVT-UNICODE" .SH "NAME" RXVT REFERENCE \- FAQ, command sequences and other background information .SH "SYNOPSIS" @@ -158,10 +158,102 @@ . .SH "FREQUENTLY ASKED QUESTIONS" .IX Header "FREQUENTLY ASKED QUESTIONS" +.IP "Isn't rxvt supposed to be small? Don't all those features bloat?" 4 +.IX Item "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 (\s-1RSS\s0) after startup. Even +with \f(CW\*(C`\-\-disable\-everything\*(C'\fR, this comparison is a bit unfair, as many +features unique to urxvt (locale, encoding conversion, iso14755 etc.) are +already in use in this mode. +.Sp +.Vb 3 +\& text data bss drs rss filename +\& 98398 1664 24 15695 1824 rxvt --disable-everything +\& 188985 9048 66616 18222 1788 urxvt --disable-everything +.Ve +.Sp +When you \f(CW\*(C`\-\-enable\-everything\*(C'\fR (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. +.Sp +.Vb 3 +\& text data bss drs rss filename +\& 163431 2152 24 20123 2060 rxvt --enable-everything +\& 1035683 49680 66648 29096 3680 urxvt --enable-everything +.Ve +.Sp +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 \s-1BSS\s0 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 \s-1RSS\s0. Xft indeed is responsible for a lot of \s-1RSS\s0 even when +not used. +.Sp +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. +.Sp +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*. +.IP "Why \*(C+, isn't that unportable/bloated/uncool?" 4 +.IX Item "Why , 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+. +.Sp +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. +.Sp +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 \s-1GCC\s0. Here is what rxvt links against on my +system with a minimal config: +.Sp +.Vb 4 +\& 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) +.Ve +.Sp +And here is rxvt\-unicode: +.Sp +.Vb 5 +\& 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) +.Ve +.Sp +No large bloated libraries (of course, none were linked in statically), +except maybe libX11 :) +.IP "Does it support tabs, can I have a tabbed rxvt\-unicode?" 4 +.IX Item "Does it support tabs, can I have a tabbed rxvt-unicode?" +rxvt-unicode does not directly support tabs. It will 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 \fIdoc/rxvt\-tabbed\fR or the upcoming \f(CW\*(C`Gtk2::URxvt\*(C'\fR perl +module, which features a tabbed urxvt (murxvt) terminal as an example +embedding application. .IP "How do I know which rxvt-unicode version I'm using?" 4 .IX 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 \f(CW\*(C`ESC [ 8 n\*(C'\fR sets the window title to the version number. +sequence \f(CW\*(C`ESC [ 8 n\*(C'\fR sets the window title to the version number. When +using the @@RXVT_NAME@@c client, the version displayed is that of the +daemon. .IP "I am using Debian GNU/Linux and have a problem..." 4 .IX Item "I am using Debian GNU/Linux and have a problem..." The Debian GNU/Linux package of rxvt-unicode in sarge contains large @@ -177,6 +269,43 @@ probably should use the Debian \s-1BTS\s0, 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. +.IP "I am maintaining rxvt-unicode for distribution/OS \s-1XXX\s0, any recommendation?" 4 +.IX Item "I am maintaining rxvt-unicode for distribution/OS XXX, any recommendation?" +You should build one binary with the default options. \fIconfigure\fR +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. +.Sp +You should not overwrite the \f(CW\*(C`perl\-ext\-common\*(C'\fR snd \f(CW\*(C`perl\-ext\*(C'\fR resources +system-wide (except maybe with \f(CW\*(C`defaults\*(C'\fR). This will result in useful +behaviour. If your distribution aims at low memory, add an empty +\&\f(CW\*(C`perl\-ext\-common\*(C'\fR resource to the app-defaults file. This will keep the +perl interpreter disabled until the user enables it. +.Sp +If you can/want build more binaries, I recommend building a minimal +one with \f(CW\*(C`\-\-disable\-everything\*(C'\fR (very useful) and a maximal one with +\&\f(CW\*(C`\-\-enable\-everything\*(C'\fR (less useful, it will be very big due to a lot of +encodings built-in that increase download times and are rarely used). +.IP "I need to make it setuid/setgid to support utmp/ptys on my \s-1OS\s0, is this safe?" 4 +.IX Item "I need to make it setuid/setgid to support utmp/ptys on my OS, is this safe?" +Likely not. While I honestly try to make it secure, and am probably +not bad at it, I think it is simply unreasonable to expect all of +freetype + fontconfig + xft + xlib + ... + rxvt-unicode itself to all be +secure. Also, rxvt-unicode disables some options when it detects that it +runs setuid or setgid, which is not nice. +.Sp +Elevated privileges are only required for utmp and pty operations on some +systems (for example, GNU/Linux doesn't need any extra privileges for +ptys, but some need it for utmp support). If rxvt-unicode doesn't support +the library/setuid helper that your \s-1OS\s0 needs I'll be happy to assist you +in implementing support for it. +.Sp +So, while setuid/setgid operation is supported and not a problem on your +typical single-user-no-other-logins unix desktop, always remember that +its an awful lot of code, most of which isn't checked for security issues +regularly. .IP "When I log-in to another system it tells me about missing terminfo data?" 4 .IX 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 @@ -1584,6 +1713,15 @@ l Don't scroll to bottom when a key is pressed .TE +.ie n .IP "\fB\fB""Ps = 1021""\fB\fR (\fBrxvt\fR)" 4 +.el .IP "\fB\f(CBPs = 1021\fB\fR (\fBrxvt\fR)" 4 +.IX Item "Ps = 1021 (rxvt)" +.TS +l l . +h Bold/italic implies high intensity (see option -is) +l Font styles have no effect on intensity (Compile styles) +.TE + .ie n .IP "\fB\fB""Ps = 1047""\fB\fR" 4 .el .IP "\fB\f(CBPs = 1047\fB\fR" 4 .IX Item "Ps = 1047" @@ -1638,8 +1776,8 @@ Ps = 12 Change colour of text cursor foreground to Pt Ps = 13 Change colour of mouse foreground to Pt Ps = 17 Change colour of highlight characters to Pt -Ps = 18 Change colour of bold characters to Pt -Ps = 19 Change colour of underlined characters to Pt +Ps = 18 Change colour of bold characters to Pt [deprecated, see 706] +Ps = 19 Change colour of underlined characters to Pt [deprecated, see 707] Ps = 20 Change default background to Pt Ps = 39 Change default foreground colour to Pt. Ps = 46 Change Log File to Pt unimplemented @@ -1650,12 +1788,15 @@ Ps = 703 Menubar command Pt (Compile menubar). Ps = 704 Change colour of italic characters to Pt Ps = 705 Change background pixmap tint colour to Pt (Compile transparency). +Ps = 706 Change colour of bold characters to Pt +Ps = 707 Change colour of underlined characters to Pt Ps = 710 Set normal fontset to Pt. Same as Ps = 50. Ps = 711 Set bold fontset to Pt. Similar to Ps = 50 (Compile styles). Ps = 712 Set italic fontset to Pt. Similar to Ps = 50 (Compile styles). Ps = 713 Set bold-italic fontset to Pt. Similar to Ps = 50 (Compile styles). Ps = 720 Move viewing window up by Pt lines, or clear scrollback buffer if Pt = 0 (Compile frills). Ps = 721 Move viewing window down by Pt lines, or clear scrollback buffer if Pt = 0 (Compile frills). +Ps = 777 Call the perl extension with the given string, which should be of the form extension:parameters (Compile perl). .TE .PP @@ -2300,11 +2441,11 @@ Write user and tty to lastlog file (used by programs like \&\fIlastlogin\fR) at start of rxvt execution. This option requires \&\-\-enable\-utmp to also be specified. -.IP "\-\-enable\-xpm\-background (default: off)" 4 -.IX Item "--enable-xpm-background (default: off)" +.IP "\-\-enable\-xpm\-background (default: on)" 4 +.IX Item "--enable-xpm-background (default: on)" Add support for \s-1XPM\s0 background pixmaps. -.IP "\-\-enable\-transparency (default: off)" 4 -.IX Item "--enable-transparency (default: off)" +.IP "\-\-enable\-transparency (default: on)" 4 +.IX Item "--enable-transparency (default: on)" Add support for inheriting parent backgrounds thus giving a fake transparency to the term. .IP "\-\-enable\-fading (default: on)" 4 @@ -2313,10 +2454,11 @@ .IP "\-\-enable\-tinting (default: on)" 4 .IX Item "--enable-tinting (default: on)" Add support for tinting of transparent backgrounds (requires \f(CW\*(C`\-\-enable\-transparency\*(C'\fR). -.IP "\-\-enable\-menubar (default: off)" 4 -.IX Item "--enable-menubar (default: off)" -Add support for our menu bar system (this interacts badly with -dynamic locale switching currently). +.IP "\-\-enable\-menubar (default: off) [\s-1DEPRECATED\s0]" 4 +.IX Item "--enable-menubar (default: off) [DEPRECATED]" +Add support for our menu bar system (this interacts badly with dynamic +locale switching currently). This option is \s-1DEPRECATED\s0 and will be removed +in the future. .IP "\-\-enable\-rxvt\-scroll (default: on)" 4 .IX Item "--enable-rxvt-scroll (default: on)" Add support for the original rxvt scrollbar. @@ -2377,20 +2519,24 @@ A non-exhaustive list of features enabled by \f(CW\*(C`\-\-enable\-frills\*(C'\fR (possibly in combination with other switches) is: .Sp -.Vb 13 +.Vb 17 \& MWM-hints \& EWMH-hints (pid, utf8 names) and protocols (ping) -\& seperate underline colour -\& settable border widths and borderless switch -\& settable extra linespacing +\& seperate underline colour (-underlineColor) +\& settable border widths and borderless switch (-w, -b, -bl) +\& settable extra linespacing /-lsp) \& iso-14755-2 and -3, and visual feedback \& backindex and forwardindex escape sequence \& window op and some xterm/OSC escape sequences -\& tripleclickwords -\& settable insecure mode +\& tripleclickwords (-tcw) +\& settable insecure mode (-insecure) \& keysym remapping support -\& cursor blinking and underline cursor -\& -embed and -pty-fd options +\& cursor blinking and underline cursor (-cb, -uc) +\& XEmbed support (-embed) +\& user-pty (-pty-fd) +\& hold on exit (-hold) +\& skip builtin block graphics (-sbg) +\& sgr modes 90..97 and 100..107 .Ve .IP "\-\-enable\-iso14755 (default: on)" 4 .IX Item "--enable-iso14755 (default: on)" @@ -2428,12 +2574,19 @@ See for details. .IP "\-\-enable\-smart\-resize (default: on)" 4 .IX Item "--enable-smart-resize (default: on)" -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. +Add smart growth/shrink behaviour when changing font size via hot +keys. This should keep the window corner which is closest to a corner of +the screen in a fixed position. .IP "\-\-enable\-pointer\-blank (default: on)" 4 .IX Item "--enable-pointer-blank (default: on)" Add support to have the pointer disappear when typing or inactive. +.IP "\-\-enable\-perl (default: off)" 4 +.IX Item "--enable-perl (default: off)" +Enable an embedded perl interpreter. See the \fB@@RXVT_NAME@@\f(BIperl\fB\|(3)\fR +manpage (\fIdoc/rxvtperl.txt\fR) for more info on this feature, or the files +in \fIsrc/perl\-ext/\fR for the extensions that are installed by default. The +perl interpreter that is used can be specified via the \f(CW\*(C`PERL\*(C'\fR environment +variable when running configure. .IP "\-\-with\-name=NAME (default: urxvt)" 4 .IX Item "--with-name=NAME (default: urxvt)" Set the basename for the installed binaries, resulting