… | |
… | |
24 | |
24 | |
25 | =head1 FREQUENTLY ASKED QUESTIONS |
25 | =head1 FREQUENTLY ASKED QUESTIONS |
26 | |
26 | |
27 | =over 4 |
27 | =over 4 |
28 | |
28 | |
|
|
29 | =item Isn't rxvt supposed to be small? Don't all those features bloat? |
|
|
30 | |
|
|
31 | I often get asked about this, and I think, no, they didn't cause extra |
|
|
32 | bloat. If you compare a minimal rxvt and a minimal urxvt, you can see |
|
|
33 | that the urxvt binary is larger (due to some encoding tables always being |
|
|
34 | compiled in), but it actually uses less memory (RSS) after startup. Even |
|
|
35 | with C<--disable-everything>, this comparison is a bit unfair, as many |
|
|
36 | features unique to urxvt (locale, encoding conversion, iso14755 etc.) are |
|
|
37 | already in use in this mode. |
|
|
38 | |
|
|
39 | text data bss drs rss filename |
|
|
40 | 98398 1664 24 15695 1824 rxvt --disable-everything |
|
|
41 | 188985 9048 66616 18222 1788 urxvt --disable-everything |
|
|
42 | |
|
|
43 | When you C<--enable-everything> (which _is_ unfair, as this involves xft |
|
|
44 | and full locale/XIM support which are quite bloaty inside libX11 and my |
|
|
45 | libc), the two diverge, but not unreasnobaly so. |
|
|
46 | |
|
|
47 | text data bss drs rss filename |
|
|
48 | 163431 2152 24 20123 2060 rxvt --enable-everything |
|
|
49 | 1035683 49680 66648 29096 3680 urxvt --enable-everything |
|
|
50 | |
|
|
51 | The very large size of the text section is explained by the east-asian |
|
|
52 | encoding tables, which, if unused, take up disk space but nothing else |
|
|
53 | and can be compiled out unless you rely on X11 core fonts that use those |
|
|
54 | encodings. The BSS size comes from the 64k emergency buffer that my c++ |
|
|
55 | compiler allocates (but of course doesn't use unless you are out of |
|
|
56 | memory). Also, using an xft font instead of a core font immediately adds a |
|
|
57 | few megabytes of RSS. Xft indeed is responsible for a lot of RSS even when |
|
|
58 | not used. |
|
|
59 | |
|
|
60 | Of course, due to every character using two or four bytes instead of one, |
|
|
61 | a large scrollback buffer will ultimately make rxvt-unicode use more |
|
|
62 | memory. |
|
|
63 | |
|
|
64 | Compared to e.g. Eterm (5112k), aterm (3132k) and xterm (4680k), this |
|
|
65 | still fares rather well. And compared to some monsters like gnome-terminal |
|
|
66 | (21152k + extra 4204k in separate processes) or konsole (22200k + extra |
|
|
67 | 43180k in daemons that stay around after exit, plus half a minute of |
|
|
68 | startup time, including the hundreds of warnings it spits out), it fares |
|
|
69 | extremely well *g*. |
|
|
70 | |
|
|
71 | =item Why C++, isn't that unportable/bloated/uncool? |
|
|
72 | |
|
|
73 | Is this a question? :) It comes up very often. The simple answer is: I had |
|
|
74 | to write it, and C++ allowed me to write and maintain it in a fraction |
|
|
75 | of the time and effort (which is a scarce resource for me). Put even |
|
|
76 | shorter: It simply wouldn't exist without C++. |
|
|
77 | |
|
|
78 | My personal stance on this is that C++ is less portable than C, but in |
|
|
79 | the case of rxvt-unicode this hardly matters, as its portability limits |
|
|
80 | are defined by things like X11, pseudo terminals, locale support and unix |
|
|
81 | domain sockets, which are all less portable than C++ itself. |
|
|
82 | |
|
|
83 | Regarding the bloat, see the above question: It's easy to write programs |
|
|
84 | in C that use gobs of memory, an certainly possible to write programs in |
|
|
85 | C++ that don't. C++ also often comes with large libraries, but this is |
|
|
86 | not necessarily the case with GCC. Here is what rxvt links against on my |
|
|
87 | system with a minimal config: |
|
|
88 | |
|
|
89 | libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00002aaaaabc3000) |
|
|
90 | libc.so.6 => /lib/libc.so.6 (0x00002aaaaadde000) |
|
|
91 | libdl.so.2 => /lib/libdl.so.2 (0x00002aaaab01d000) |
|
|
92 | /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000) |
|
|
93 | |
|
|
94 | And here is rxvt-unicode: |
|
|
95 | |
|
|
96 | libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00002aaaaabc3000) |
|
|
97 | libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002aaaaada2000) |
|
|
98 | libc.so.6 => /lib/libc.so.6 (0x00002aaaaaeb0000) |
|
|
99 | libdl.so.2 => /lib/libdl.so.2 (0x00002aaaab0ee000) |
|
|
100 | /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000) |
|
|
101 | |
|
|
102 | No large bloated libraries (of course, none were linked in statically), |
|
|
103 | except maybe libX11 :) |
|
|
104 | |
|
|
105 | =item Does it support tabs, can I have a tabbed rxvt-unicode? |
|
|
106 | |
|
|
107 | rxvt-unicode does not directly support tabs. It will work fine with |
|
|
108 | tabbing functionality of many window managers or similar tabbing programs, |
|
|
109 | and its embedding-features allow it to be embedded into other programs, |
|
|
110 | as witnessed by F<doc/rxvt-tabbed> or the upcoming C<Gtk2::URxvt> perl |
|
|
111 | module, which features a tabbed urxvt (murxvt) terminal as an example |
|
|
112 | embedding application. |
|
|
113 | |
29 | =item How do I know which rxvt-unicode version I'm using? |
114 | =item How do I know which rxvt-unicode version I'm using? |
30 | |
115 | |
31 | The version number is displayed with the usage (-h). Also the escape |
116 | The version number is displayed with the usage (-h). Also the escape |
32 | sequence C<ESC [ 8 n> sets the window title to the version number. |
117 | sequence C<ESC [ 8 n> sets the window title to the version number. When |
|
|
118 | using the @@RXVT_NAME@@c client, the version displayed is that of the |
|
|
119 | daemon. |
33 | |
120 | |
34 | =item I am using Debian GNU/Linux and have a problem... |
121 | =item I am using Debian GNU/Linux and have a problem... |
35 | |
122 | |
36 | The Debian GNU/Linux package of rxvt-unicode in sarge contains large |
123 | The Debian GNU/Linux package of rxvt-unicode in sarge contains large |
37 | patches that considerably change the behaviour of rxvt-unicode. Before |
124 | patches that considerably change the behaviour of rxvt-unicode. Before |
… | |
… | |
44 | |
131 | |
45 | For other problems that also affect the Debian package, you can and |
132 | For other problems that also affect the Debian package, you can and |
46 | probably should use the Debian BTS, too, because, after all, it's also a |
133 | probably should use the Debian BTS, too, because, after all, it's also a |
47 | bug in the Debian version and it serves as a reminder for other users that |
134 | bug in the Debian version and it serves as a reminder for other users that |
48 | might encounter the same issue. |
135 | might encounter the same issue. |
|
|
136 | |
|
|
137 | =item I am maintaining rxvt-unicode for distribution/OS XXX, any recommendation? |
|
|
138 | |
|
|
139 | You should build one binary with the default options. F<configure> |
|
|
140 | now enables most useful options, and the trend goes to making them |
|
|
141 | runtime-switchable, too, so there is usually no drawback to enbaling them, |
|
|
142 | except higher disk and possibly memory usage. The perl interpreter should |
|
|
143 | be enabled, as important functionality (menus, selection, likely more in |
|
|
144 | the future) depends on it. |
|
|
145 | |
|
|
146 | You should not overwrite the C<perl-ext-common> snd C<perl-ext> resources |
|
|
147 | system-wide (except maybe with C<defaults>). This will result in useful |
|
|
148 | behaviour. If your distribution aims at low memory, add an empty |
|
|
149 | C<perl-ext-common> resource to the app-defaults file. This will keep the |
|
|
150 | perl interpreter disabled until the user enables it. |
|
|
151 | |
|
|
152 | If you can/want build more binaries, I recommend building a minimal |
|
|
153 | one with C<--disable-everything> (very useful) and a maximal one with |
|
|
154 | C<--enable-everything> (less useful, it will be very big due to a lot of |
|
|
155 | encodings built-in that increase download times and are rarely used). |
|
|
156 | |
|
|
157 | =item I need to make it setuid/setgid to support utmp/ptys on my OS, is this safe? |
|
|
158 | |
|
|
159 | Likely not. While I honestly try to make it secure, and am probably not |
|
|
160 | bad at it, I think it is simply unreasonable to expect all of freetype |
|
|
161 | + fontconfig + xft + xlib + perl + ... + rxvt-unicode itself to all be |
|
|
162 | secure. Also, rxvt-unicode disables some options when it detects that it |
|
|
163 | runs setuid or setgid, which is not nice. Besides, with the embedded perl |
|
|
164 | interpreter the possibility for security problems easily multiplies. |
|
|
165 | |
|
|
166 | Elevated privileges are only required for utmp and pty operations on some |
|
|
167 | systems (for example, GNU/Linux doesn't need any extra privileges for |
|
|
168 | ptys, but some need it for utmp support). It is planned to mvoe this into |
|
|
169 | a forked handler process, but this is not yet done. |
|
|
170 | |
|
|
171 | So, while setuid/setgid operation is supported and not a problem on your |
|
|
172 | typical single-user-no-other-logins unix desktop, always remember that |
|
|
173 | its an awful lot of code, most of which isn't checked for security issues |
|
|
174 | regularly. |
49 | |
175 | |
50 | =item When I log-in to another system it tells me about missing terminfo data? |
176 | =item When I log-in to another system it tells me about missing terminfo data? |
51 | |
177 | |
52 | The terminal description used by rxvt-unicode is not as widely available |
178 | The terminal description used by rxvt-unicode is not as widely available |
53 | as that for xterm, or even rxvt (for which the same problem often arises). |
179 | as that for xterm, or even rxvt (for which the same problem often arises). |
… | |
… | |
1446 | B<< C<h> >> Scroll to bottom when a key is pressed |
1572 | B<< C<h> >> Scroll to bottom when a key is pressed |
1447 | B<< C<l> >> Don't scroll to bottom when a key is pressed |
1573 | B<< C<l> >> Don't scroll to bottom when a key is pressed |
1448 | |
1574 | |
1449 | =end table |
1575 | =end table |
1450 | |
1576 | |
|
|
1577 | =item B<< C<Ps = 1021> >> (B<rxvt>) |
|
|
1578 | |
|
|
1579 | =begin table |
|
|
1580 | |
|
|
1581 | B<< C<h> >> Bold/italic implies high intensity (see option B<-is>) |
|
|
1582 | B<< C<l> >> Font styles have no effect on intensity (Compile styles) |
|
|
1583 | |
|
|
1584 | =end table |
|
|
1585 | |
1451 | =item B<< C<Ps = 1047> >> |
1586 | =item B<< C<Ps = 1047> >> |
1452 | |
1587 | |
1453 | =begin table |
1588 | =begin table |
1454 | |
1589 | |
1455 | B<< C<h> >> Use Alternate Screen Buffer |
1590 | B<< C<h> >> Use Alternate Screen Buffer |
… | |
… | |
1501 | B<< C<Ps = 10> >> Change colour of text foreground to B<< C<Pt> >> B<(NB: may change in future)> |
1636 | B<< C<Ps = 10> >> Change colour of text foreground to B<< C<Pt> >> B<(NB: may change in future)> |
1502 | B<< C<Ps = 11> >> Change colour of text background to B<< C<Pt> >> B<(NB: may change in future)> |
1637 | B<< C<Ps = 11> >> Change colour of text background to B<< C<Pt> >> B<(NB: may change in future)> |
1503 | B<< C<Ps = 12> >> Change colour of text cursor foreground to B<< C<Pt> >> |
1638 | B<< C<Ps = 12> >> Change colour of text cursor foreground to B<< C<Pt> >> |
1504 | B<< C<Ps = 13> >> Change colour of mouse foreground to B<< C<Pt> >> |
1639 | B<< C<Ps = 13> >> Change colour of mouse foreground to B<< C<Pt> >> |
1505 | B<< C<Ps = 17> >> Change colour of highlight characters to B<< C<Pt> >> |
1640 | B<< C<Ps = 17> >> Change colour of highlight characters to B<< C<Pt> >> |
1506 | B<< C<Ps = 18> >> Change colour of bold characters to B<< C<Pt> >> |
1641 | B<< C<Ps = 18> >> Change colour of bold characters to B<< C<Pt> >> [deprecated, see 706] |
1507 | B<< C<Ps = 19> >> Change colour of underlined characters to B<< C<Pt> >> |
1642 | B<< C<Ps = 19> >> Change colour of underlined characters to B<< C<Pt> >> [deprecated, see 707] |
1508 | B<< C<Ps = 20> >> Change default background to B<< C<Pt> >> |
1643 | B<< C<Ps = 20> >> Change default background to B<< C<Pt> >> |
1509 | B<< C<Ps = 39> >> Change default foreground colour to B<< C<Pt> >>. |
1644 | B<< C<Ps = 39> >> Change default foreground colour to B<< C<Pt> >>. |
1510 | B<< C<Ps = 46> >> Change Log File to B<< C<Pt> >> I<unimplemented> |
1645 | B<< C<Ps = 46> >> Change Log File to B<< C<Pt> >> I<unimplemented> |
1511 | B<< C<Ps = 49> >> Change default background colour to B<< C<Pt> >>. |
1646 | B<< C<Ps = 49> >> Change default background colour to B<< C<Pt> >>. |
1512 | 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> >> |
1647 | 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> >> |
1513 | B<< C<Ps = 55> >> Log all scrollback buffer and all of screen to B<< C<Pt> >> |
1648 | B<< C<Ps = 55> >> Log all scrollback buffer and all of screen to B<< C<Pt> >> |
1514 | B<< C<Ps = 701> >> Change current locale to B<< C<Pt> >>, or, if B<< C<Pt> >> is B<< C<?> >>, return the current locale (Compile frills). |
1649 | B<< C<Ps = 701> >> Change current locale to B<< C<Pt> >>, or, if B<< C<Pt> >> is B<< C<?> >>, return the current locale (Compile frills). |
1515 | B<< C<Ps = 703> >> Menubar command B<< C<Pt> >> (Compile menubar). |
1650 | B<< C<Ps = 703> >> Menubar command B<< C<Pt> >> (Compile menubar). |
1516 | B<< C<Ps = 704> >> Change colour of italic characters to B<< C<Pt> >> |
1651 | B<< C<Ps = 704> >> Change colour of italic characters to B<< C<Pt> >> |
1517 | B<< C<Ps = 705> >> Change background pixmap tint colour to B<< C<Pt> >> (Compile transparency). |
1652 | B<< C<Ps = 705> >> Change background pixmap tint colour to B<< C<Pt> >> (Compile transparency). |
|
|
1653 | B<< C<Ps = 706> >> Change colour of bold characters to B<< C<Pt> >> |
|
|
1654 | B<< C<Ps = 707> >> Change colour of underlined characters to B<< C<Pt> >> |
1518 | B<< C<Ps = 710> >> Set normal fontset to B<< C<Pt> >>. Same as C<Ps = 50>. |
1655 | B<< C<Ps = 710> >> Set normal fontset to B<< C<Pt> >>. Same as C<Ps = 50>. |
1519 | B<< C<Ps = 711> >> Set bold fontset to B<< C<Pt> >>. Similar to C<Ps = 50> (Compile styles). |
1656 | B<< C<Ps = 711> >> Set bold fontset to B<< C<Pt> >>. Similar to C<Ps = 50> (Compile styles). |
1520 | B<< C<Ps = 712> >> Set italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50> (Compile styles). |
1657 | B<< C<Ps = 712> >> Set italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50> (Compile styles). |
1521 | B<< C<Ps = 713> >> Set bold-italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50> (Compile styles). |
1658 | B<< C<Ps = 713> >> Set bold-italic fontset to B<< C<Pt> >>. Similar to C<Ps = 50> (Compile styles). |
1522 | B<< C<Ps = 720> >> Move viewing window up by B<< C<Pt> >> lines, or clear scrollback buffer if C<Pt = 0> (Compile frills). |
1659 | B<< C<Ps = 720> >> Move viewing window up by B<< C<Pt> >> lines, or clear scrollback buffer if C<Pt = 0> (Compile frills). |
1523 | B<< C<Ps = 721> >> Move viewing window down by B<< C<Pt> >> lines, or clear scrollback buffer if C<Pt = 0> (Compile frills). |
1660 | B<< C<Ps = 721> >> Move viewing window down by B<< C<Pt> >> lines, or clear scrollback buffer if C<Pt = 0> (Compile frills). |
|
|
1661 | B<< C<Ps = 777> >> Call the perl extension with the given string, which should be of the form C<extension:parameters> (Compile perl). |
1524 | |
1662 | |
1525 | =end table |
1663 | =end table |
1526 | |
1664 | |
1527 | =back |
1665 | =back |
1528 | |
1666 | |
… | |
… | |
2309 | |
2447 | |
2310 | Write user and tty to lastlog file (used by programs like |
2448 | Write user and tty to lastlog file (used by programs like |
2311 | F<lastlogin>) at start of rxvt execution. This option requires |
2449 | F<lastlogin>) at start of rxvt execution. This option requires |
2312 | --enable-utmp to also be specified. |
2450 | --enable-utmp to also be specified. |
2313 | |
2451 | |
2314 | =item --enable-xpm-background (default: off) |
2452 | =item --enable-xpm-background (default: on) |
2315 | |
2453 | |
2316 | Add support for XPM background pixmaps. |
2454 | Add support for XPM background pixmaps. |
2317 | |
2455 | |
2318 | =item --enable-transparency (default: off) |
2456 | =item --enable-transparency (default: on) |
2319 | |
2457 | |
2320 | Add support for inheriting parent backgrounds thus giving a fake |
2458 | Add support for inheriting parent backgrounds thus giving a fake |
2321 | transparency to the term. |
2459 | transparency to the term. |
2322 | |
2460 | |
2323 | =item --enable-fading (default: on) |
2461 | =item --enable-fading (default: on) |
… | |
… | |
2326 | |
2464 | |
2327 | =item --enable-tinting (default: on) |
2465 | =item --enable-tinting (default: on) |
2328 | |
2466 | |
2329 | Add support for tinting of transparent backgrounds (requires C<--enable-transparency>). |
2467 | Add support for tinting of transparent backgrounds (requires C<--enable-transparency>). |
2330 | |
2468 | |
2331 | =item --enable-menubar (default: off) |
2469 | =item --enable-menubar (default: off) [DEPRECATED] |
2332 | |
2470 | |
2333 | Add support for our menu bar system (this interacts badly with |
2471 | Add support for our menu bar system (this interacts badly with dynamic |
2334 | dynamic locale switching currently). |
2472 | locale switching currently). This option is DEPRECATED and will be removed |
|
|
2473 | in the future. |
2335 | |
2474 | |
2336 | =item --enable-rxvt-scroll (default: on) |
2475 | =item --enable-rxvt-scroll (default: on) |
2337 | |
2476 | |
2338 | Add support for the original rxvt scrollbar. |
2477 | Add support for the original rxvt scrollbar. |
2339 | |
2478 | |
… | |
… | |
2405 | A non-exhaustive list of features enabled by C<--enable-frills> (possibly |
2544 | A non-exhaustive list of features enabled by C<--enable-frills> (possibly |
2406 | in combination with other switches) is: |
2545 | in combination with other switches) is: |
2407 | |
2546 | |
2408 | MWM-hints |
2547 | MWM-hints |
2409 | EWMH-hints (pid, utf8 names) and protocols (ping) |
2548 | EWMH-hints (pid, utf8 names) and protocols (ping) |
2410 | seperate underline colour |
2549 | seperate underline colour (-underlineColor) |
2411 | settable border widths and borderless switch |
2550 | settable border widths and borderless switch (-w, -b, -bl) |
2412 | settable extra linespacing |
2551 | settable extra linespacing /-lsp) |
2413 | iso-14755-2 and -3, and visual feedback |
2552 | iso-14755-2 and -3, and visual feedback |
2414 | backindex and forwardindex escape sequence |
2553 | backindex and forwardindex escape sequence |
2415 | window op and some xterm/OSC escape sequences |
2554 | window op and some xterm/OSC escape sequences |
2416 | tripleclickwords |
2555 | tripleclickwords (-tcw) |
2417 | settable insecure mode |
2556 | settable insecure mode (-insecure) |
2418 | keysym remapping support |
2557 | keysym remapping support |
2419 | cursor blinking and underline cursor |
2558 | cursor blinking and underline cursor (-cb, -uc) |
2420 | -embed, -pty-fd and -hold options |
2559 | XEmbed support (-embed) |
|
|
2560 | user-pty (-pty-fd) |
|
|
2561 | hold on exit (-hold) |
|
|
2562 | skip builtin block graphics (-sbg) |
|
|
2563 | sgr modes 90..97 and 100..107 |
2421 | |
2564 | |
2422 | =item --enable-iso14755 (default: on) |
2565 | =item --enable-iso14755 (default: on) |
2423 | |
2566 | |
2424 | Enable extended ISO 14755 support (see @@RXVT_NAME@@(1), or |
2567 | Enable extended ISO 14755 support (see @@RXVT_NAME@@(1), or |
2425 | F<doc/rxvt.1.txt>). Basic support (section 5.1) is enabled by |
2568 | F<doc/rxvt.1.txt>). Basic support (section 5.1) is enabled by |
… | |
… | |
2468 | |
2611 | |
2469 | =item --enable-pointer-blank (default: on) |
2612 | =item --enable-pointer-blank (default: on) |
2470 | |
2613 | |
2471 | Add support to have the pointer disappear when typing or inactive. |
2614 | Add support to have the pointer disappear when typing or inactive. |
2472 | |
2615 | |
|
|
2616 | =item --enable-perl (default: off) |
|
|
2617 | |
|
|
2618 | Enable an embedded perl interpreter. See the B<@@RXVT_NAME@@perl(3)> |
|
|
2619 | manpage (F<doc/rxvtperl.txt>) for more info on this feature, or the files |
|
|
2620 | in F<src/perl-ext/> for the extensions that are installed by default. The |
|
|
2621 | perl interpreter that is used can be specified via the C<PERL> environment |
|
|
2622 | variable when running configure. |
|
|
2623 | |
2473 | =item --with-name=NAME (default: urxvt) |
2624 | =item --with-name=NAME (default: urxvt) |
2474 | |
2625 | |
2475 | Set the basename for the installed binaries, resulting |
2626 | Set the basename for the installed binaries, resulting |
2476 | in C<urxvt>, C<urxvtd> etc.). Specify C<--with-name=rxvt> to replace with |
2627 | in C<urxvt>, C<urxvtd> etc.). Specify C<--with-name=rxvt> to replace with |
2477 | C<rxvt>. |
2628 | C<rxvt>. |