DEPENDENCIES This depends on libev and libptytty found at https://github.com/yusiwen/libev and https://github.com/yusiwen/libptytty resepctively, which I've added to the tree as git submodules. If you've forgotten to clone recursively, make sure you git submodule init git submodule update Before trying to 'make'. CONFIGURE OPTIONS Ubuntu/debian hint: this links in the C perl lib at build time, so ensure you sudo apt install libperl-dev General hint: if you get compile errors, then likely your configuration hasn't been tested well. Either try with "--enable-everything" or use the default configuration (i.e. no "--enable-xxx" or "--disable-xxx" switches). Of course, you should always report when a combination doesn't work, so it can be fixed. Marc Lehmann <rxvt@schmorp.de>. All --enable-everything Add (or remove) support for all non-multichoice options listed in "./configure --help", except for "--enable-assert" and "--enable-256-color". 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. --enable-xft (default: on) Add support for Xft (anti-aliased, among others) fonts. Xft fonts are slower and require lots of memory, but as long as you don't use them, you don't pay for them. --enable-font-styles (default: on) Add support for bold, *italic* and *bold italic* font styles. The fonts can be set manually or automatically. --with-codesets=CS,... (default: all) Compile in support for additional codeset (encoding) groups ("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 zh common chinese encodings zh_ext rarely used but very big chinese encodings jp common japanese encodings jp_ext rarely used but big japanese encodings kr korean encodings --enable-xim (default: on) Add support for XIM (X Input Method) protocol. This allows using alternative input methods (e.g. kinput2) and will also correctly set up the input for people using dead keys or compose keys. --enable-unicode3 (default: off) Recommended to stay off unless you really need non-BMP characters. Enable direct support for displaying unicode codepoints above 65535 (the basic multilingual page). This increases storage requirements per character from 2 to 4 bytes. X11 fonts do not yet support these extra characters, but Xft does. Please note that rxvt-unicode can store unicode code points >65535 even without this flag, but the number of such characters is limited to a few thousand (shared with combining characters, see next switch), and right now rxvt-unicode cannot display them (input/output and cut&paste still work, though). --enable-combining (default: on) Enable automatic composition of combining characters into composite characters. This is required for proper viewing of text where accents are encoded as separate unicode characters. This is done by using precomposed characters when available or creating new pseudo-characters when no precomposed form exists. Without --enable-unicode3, the number of additional precomposed characters is somewhat limited (the 6400 private use characters will be (ab-)used). With --enable-unicode3, no practical limit exists. This option will also enable storage (but not display) of characters beyond plane 0 (>65535) when --enable-unicode3 was not specified. The combining table also contains entries for arabic presentation forms, but these are not currently used. Bug me if you want these to be used (and tell me how these are to be used...). --enable-fallback[=CLASS] (default: Rxvt) When reading resource settings, also read settings for class CLASS. To disable resource fallback use --disable-fallback. --with-res-name=NAME (default: urxvt) Use the given name as default application name when reading resources. Specify --with-res-name=rxvt to replace rxvt. --with-res-class=CLASS (default: URxvt) Use the given class as default application class when reading resources. Specify --with-res-class=Rxvt to replace rxvt. --enable-utmp (default: on) Write user and tty to utmp file (used by programs like w) at start of rxvt execution and delete information when rxvt exits. --enable-wtmp (default: on) Write user and tty to wtmp file (used by programs like last) at start of rxvt execution and write logout when rxvt exits. This option requires --enable-utmp to also be specified. --enable-lastlog (default: on) Write user and tty to lastlog file (used by programs like lastlogin) at start of rxvt execution. This option requires --enable-utmp to also be specified. --enable-pixbuf (default: on) Add support for GDK-PixBuf to be used for background images. It adds support for many file formats including JPG, PNG, TIFF, GIF, XPM, BMP, ICO and TGA. --enable-startup-notification (default: on) Add support for freedesktop startup notifications. This allows window managers to display some kind of progress indicator during startup. --enable-transparency (default: on) Add support for using the root pixmap as background to simulate transparency. Note that this feature depends on libXrender and on the availability of the RENDER extension in the X server. --enable-fading (default: on) Add support for fading the text when focus is lost. --enable-rxvt-scroll (default: on) Add support for the original rxvt scrollbar. --enable-next-scroll (default: on) Add support for a NeXT-like scrollbar. --enable-xterm-scroll (default: on) Add support for an Xterm-like scrollbar. --disable-backspace-key Removes any handling of the backspace key by us - let the X server do it. --disable-delete-key Removes any handling of the delete key by us - let the X server do it. --disable-resources Removes any support for resource checking. --disable-swapscreen Remove support for secondary/swap screen. --enable-frills (default: on) Add support for many small features that are not essential but nice to have. Normally you want this, but for very small binaries you may want to disable this. 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) urgency hint separate underline colour (-underlineColor) settable border widths and borderless switch (-w, -b, -bl) visual depth selection (-depth) settable extra linespacing (-lsp) iso-14755 5.1 (basic) support tripleclickwords (-tcw) settable insecure mode (-insecure) keysym remapping support cursor blinking and underline cursor (-bc, -uc) XEmbed support (-embed) user-pty (-pty-fd) hold on exit (-hold) compile in built-in block graphics skip builtin block graphics (-sbg) separate highlight colour (-highlightColor, -highlightTextColor) extended mouse reporting modes (1005 and 1015). visual selection via -visual and -depth. It also enables some non-essential features otherwise disabled, such as: some round-trip time optimisations nearest colour allocation on pseudocolor screens UTF8_STRING support for selection sgr modes 90..97 and 100..107 backindex and forwardindex escape sequences view change/zero scrollback escape sequences locale switching escape sequence window op and some xterm/OSC escape sequences rectangular selections trailing space removal for selections verbose X error handling --enable-iso14755 (default: on) Enable extended ISO 14755 support (see urxvt(1)). Basic support (section 5.1) is enabled by "--enable-frills", while support for 5.2, 5.3 and 5.4 is enabled with this switch. --enable-keepscrolling (default: on) Add support for continual scrolling of the display when you hold the mouse button down on a scrollbar arrow. --enable-selectionscrolling (default: on) Add support for scrolling when the selection moves to the top or bottom of the screen. --enable-mousewheel (default: on) Add support for scrolling via mouse wheel or buttons 4 & 5. --enable-slipwheeling (default: on) Add support for continual scrolling (using the mouse wheel as an accelerator) while the control key is held down. This option requires --enable-mousewheel to also be specified. --enable-smart-resize (default: off) Add smart growth/shrink behaviour when resizing. This should keep the window corner which is closest to a corner of the screen in a fixed position. --enable-text-blink (default: on) Add support for blinking text. --enable-pointer-blank (default: on) Add support to have the pointer disappear when typing or inactive. --enable-perl (default: on) Enable an embedded perl interpreter. See the urxvtperl(3) manpage for more info on this feature, or the files in src/perl/ for the extensions that are installed by default. The perl interpreter that is used can be specified via the "PERL" environment variable when running configure. Even when compiled in, perl will *not* be initialised when all extensions have been disabled "-pe "" --perl-ext-common """, so it should be safe to enable from a resource standpoint. --enable-assert (default: off) Enables the assertions in the code, normally disabled. This switch is only useful when developing rxvt-unicode. --enable-256-color (default: off) Force use of so-called 256 colour mode, to work around buggy applications that do not support termcap/terminfo, or simply improve support for applications hardcoding the xterm 256 colour table. This switch breaks termcap/terminfo compatibility to "TERM=rxvt-unicode", and consequently sets "TERM" to "rxvt-unicode-256color" by default (doc/etc/ contains termcap/terminfo definitions for both). It also results in higher memory usage and can slow down urxvt dramatically when more than six fonts are in use by a terminal instance. --with-name=NAME (default: urxvt) Set the basename for the installed binaries, resulting in "urxvt", "urxvtd" etc.). Specify "--with-name=rxvt" to replace with "rxvt". --with-term=NAME (default: rxvt-unicode) Change the environmental variable for the terminal to NAME. --with-terminfo=PATH Change the environmental variable for the path to the terminfo tree to PATH. --with-x Use the X Window System (pretty much default, eh?).