--- rxvt-unicode/doc/rxvt.7.html 2005/02/20 19:45:30 1.17 +++ rxvt-unicode/doc/rxvt.7.html 2006/01/11 19:55:34 1.39 @@ -75,23 +75,133 @@
--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*.
+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 :)
+Gtk2::URxvt
perl
+module, which features a tabbed urxvt (murxvt) terminal as an example
+embedding application.
+ESC [ 8 n
sets the window title to the version number.
+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.
reportbug
to report the bug).
+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 (http://software.schmorp.de#rxvt-unicode)
+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 @@ -100,6 +210,53 @@ might encounter the same issue.
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).
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). It is planned to mvoe this into +a forked handler process, but this is not yet done.
+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.
+tic
outputs some error when compiling the terminfo entry.enacs=
. Just replace it by
+enacs=\E[0@
and try again.
+bash
's readline does not work correctly under rxvt.+ #define wcwidth(x) wcwidth(x) > 1 ? 1 : wcwidth(x)+
However, __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 wchar_t makes it impossible to
-convert between 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 wchar_t into anything
-except the current locale encoding.
However, that means rxvt-unicode only works in POSIX
, ISO-8859-1
and
+UTF-8
locales under FreeBSD (which all use Unicode as wchar_t.
__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 wchar_t makes it impossible to convert between
+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 wchar_t into anything except the current
+locale encoding.
Some applications (such as the formidable mlterm) work around this @@ -461,6 +641,29 @@ complete replacements for them :)
wcwidth
and a compile problem.
+-multiwindow
or
+-rootless
mode instead, which will result in similar look&feel as the
+old libW11 emulation.
+At the time of this writing, cygwin didn't seem to support any multi-byte
+encodings (you might try LC_CTYPE=C-UTF-8
), so you are likely limited
+to 8-bit encodings.
Also, many people (me included) like large windows and even larger
-scrollback buffers: Without --enable-unicode3
, rxvt-unicode will use
+scrollback buffers: Without --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 --enable-unicode3
it gets worse, as
+use 10 Megabytes of memory. With --enable-unicode3
it gets worse, as
rxvt-unicode then uses 8 bytes per screen cell.
:antialiasing=false
), which saves lots of
+antialiasing (by appending :antialias=false
), which saves lots of
memory and also speeds up rendering considerably.
To ensure rxvtd is listening on it's socket, you can use the -following method to wait for the startup message before continuing:
-- { rxvtd & } | read+Try
rxvtd -f -o
, which tells rxvtd to open the
+display, create the listening socket and then fork.
h | Scroll to bottom when a key is pressed |
l | Don't scroll to bottom when a key is pressed |
Ps = 1021
> (rxvt)h | Bold/italic implies high intensity (see option -is) |
l | Font styles have no effect on intensity (Compile styles) |
Ps = 1047
>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 rxvt compile-time option |
Ps = 39 | Change default foreground colour to Pt. |
Ps = 46 | Change Log File to Pt unimplemented |
Ps = 49 | Change default background colour to Pt rxvt compile-time option |
Ps = 49 | Change default background colour to Pt. |
Ps = 50 | Set fontset to Pt, with the following special values of Pt (rxvt) #+n change up n #-n change down n if n is missing of 0, a value of 1 is used empty change to font0 n change to font n |
Ps = 55 | Log all scrollback buffer and all of screen to Pt |
Ps = 701 | Change current locale to Pt, or, if Pt is ?, return the current locale (rxvt extension) |
Ps = 703 | Menubar command Pt rxvt compile-time option (rxvt-unicode extension) |
Ps = 701 | Change current locale to Pt, or, if Pt is ?, return the current locale (Compile frills). |
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 |
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. |
Ps = 712 | Set italic fontset to Pt. Similar to Ps = 50. |
Ps = 713 | Set bold-italic fontset to Pt. Similar to 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). |
@@ -2496,22 +2700,28 @@
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>.
+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>.
+All
You can specify this and then disable options you do not like by
+following this with the appropriate --disable-...
arguments,
+or you can start with a minimal configuration by specifying
+--disable-everything
and than adding just the --enable-...
arguments
+you want.
eu
, vn
+are always compiled in, which includes most 8-bit character sets). These
+codeset tables are used for driving X11 core fonts, they are not required
+for Xft fonts, although having them compiled in lets rxvt-unicode choose
+replacement fonts more intelligently. Compiling them in will make your
+binary bigger (all of together cost about 700kB), but it doesn't increase
+memory usage unless you use a font requiring one of these encodings.
all | all available codeset groups |
jp_ext | rarely used but big japanese encodings |
kr | korean encodings |
--enable-transparency
).
--enable-transparency
).
memset()
function and other
@@ -2756,10 +2966,10 @@
A non-exhaustive list of features enabled by --enable-frills
(possibly
+
A non-exhaustive list of features enabled by --enable-frills
(possibly
in combination with other switches) is:
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 locale change escape sequences - tripleclickwords - settable insecure mode + window op and some xterm/OSC escape sequences + tripleclickwords (-tcw) + settable insecure mode (-insecure) keysym remapping support - -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
--enable-frills
, while support for 5.2, 5.3 and 5.4 is enabled with
+--enable-frills
, while support for 5.2, 5.3 and 5.4 is enabled with
this switch.
PERL
environment
+variable when running configure.
urxvt
, resulting
+Set the basename for the installed binaries, resulting
in urxvt
, urxvtd
etc.). Specify --with-name=rxvt
to replace with
rxvt
.
rxvt-unicode
)
+Change the environmental variable for the terminal to NAME.