README file for xvt 2.1 ----------------------- Xvt is an X terminal-emulator that is designed to be more or less compatible with xterm while using much less swap space. It is mainly intended for use at sites which use large numbers of X terminals but may also be useful on single workstations that are short of memory. On a SPARCstation running SunOS4, an initially invoked xvt uses about 1/3 megabyte of swap while xterm uses about 1.3 megabytes (obtained by running pstat rather than ps which seems to give unreliable size figures on SPARCs). The main way that xvt achieves its small size is by avoiding the use of the X toolkit. Supported architectures ----------------------- One of the major changes between xvt-1.0 and 2.0 is that xvt-2.0 is much more portable. The released version should build and run on all the architectures I have access to, namely: SunOS4, SunOS5, HP-UX 8.0, HP-UX 9.0, DEC OSF/1 V1.2 and ULTRIX 3.?. In addition, the teletype initialisation code has been completely restructured to make it more portable. Almost all the system dependent code is in the single source file, ttyinit.c. Xterm features not supported ---------------------------- - Tektronix 4014 emulation - Session logging - Pop-up menus. The only one of xterm's popup menu commands that is provided in xvt is displaying and hiding of the scrollbar and this is done simply by pressing any mouse key in the window with the CONTROL key held down. - Toolkit style configurability. In particular, xvt does not allow the user to remap the mouse or keyboard keys. Major xterm features that are supported --------------------------------------- - VT100 emulation. Most of the main escape sequences are supported - certainly all those used by the standard screen based UNIX applications. - Lines that scroll off the top of the window are saved can be scrolled back with a scrollbar. - Text selection and insertion including double and triple click for words and lines. Differences between xvt2.1 and xvt2.0 ------------------------------------- - Fix to make xvt terminate correctly when the shell is exit under Solaris 2.3. - LINES and COLUMNS environment variables added under HP/UX. - Minor changes to the Makefile. - Text selection now works with the Caps Lock key down. - Fixed a bug that caused the occasional loss of typed characters. - Fixed a bug which caused xvt to occasionally start up with its tty width set one or two columns too wide. - The standard vt100 screen clear escape sequences now save the cleared lines to the list of saved scrolled lines. - Minor changes to support Linux. Differences between xvt2.0 and xvt1.0 ------------------------------------- - xvt2.0 is eight bit clean and will generate and display eight bit characters. The META key can be used to generate characters with the eighth bit set (in eight bit mode) or prefixed by escape (in seven bit mode). - The teletype setup code has been rewritten to make it much more portable. See the comments at the head of ttyinit.c. - Exposure handling has been made much more efficient so that xvt should now be useable with window managers that provide opaque window movement. - VT100 graphics characters are supported for fonts that include them. - There is now a -ls option to enable the use of a login shell. - Colored text cursors are now supported. - There is support for the -C (console window) option but only on SunOS 4. - Bold characters are generated by overstriking if no bold font is specified. - Function keys generate escape sequences as in xterm. - A number of bugs have been fixed: - Setting the title without a terminating ^G no longer locks up. - Paste followed by a keystroke will always insert in the correct order. - Pasting an uninitialised string will not cause a crash. Other differences between xvt and xterm --------------------------------------- - Xvt has a couple of additional enquiry escape sequences: ESC[7n - causes xvt to respond with the name of its X display in a form that can be used to initialise the DISPLAY environment variable. If this is done in a user's .cshrc file it provides a way to automatically update DISPLAY after an rlogin. Something like the following should work if the initial ^[ in the echo command is an ESC character: if(!($?DISPLAY)) then if($?term) then if($term =~ xterm*) then stty -echo >/dev/tty echo -n '^[[7n' >/dev/tty setenv DISPLAY `line </dev/tty` stty echo >/dev/tty endif endif endif ESC[8n - causes xvt to respond with a hex encoded copy of the server's magic cookie which can be used to update a user's .Xauthority file. We have a program to do this which could be made available if anyone is interested. Known Bugs ---------- - xvt does not know about transferring selections in installments and so making large selections or trying to insert large selections will fail. The maximum selection size supported is server dependent but seems to be a little under 64k on all our servers. - xvt does not look in all the approved places for its X resources. It does, however, work correctly with resources that have been loaded into the server using xrdb Building and installing xvt --------------------------- Xvt does not use imake but does come with a simple Makefile configuration scheme that provides some help with getting the Makefile right. If you want to build xvt on one of the supported architectures then you should uncomment the appropriate definition at the start of the Makefile and then run `make config', which will modify other Makefile comments to bring them into line with the chosen architecture. To install xvt, you should edit the MANDIR and BIN pathnames in the Makefile and then type 'make install' as root. When installed for general use, xvt needs to belong to root and have the setuid flag set so that it can make entries in the /etc/utmp file. Thanks to all the people who have mailed bug reports, patches and local improvements. Some requested additions have gone into V2.0, others perhaps should have, but were left out due to lack of time. Please send bug reports and WIBNIs to: John Bovey Computing Laboratory University of Kent at Canterbury Canterbury Kent UK email: jdb@ukc.ac.uk