SPLITVT(1) (NONESSENTIAL UTILITIES) SPLITVT(1) NAME splitvt - run two shells in a split window SYNOPSIS splitvt [options] [shell] OPTIONS -k kill_char Sets kill_char to the character that will instantly quit splitvt. -q quote_char Sets quote_char to the character that will pass the next typed character through splitvt to the running shells. -s switch_char Sets 'switch_char' to the character that switches between windows. -l numlines Sets 'numlines' to the number of lines in the top window. This number will be modified if the screen isn't big enough to handle the full size. DESCRIPTION This program splits the screen into two windows, one above the other, and runs a shell in each one. The default shell is taken from the SHELL environment variable, or /bin/csh if SHELL isn't in the environment, but another shell can be specified on the command line. The top window is the default current window, but you can change to the other by pressing ^W. Pressing ^V will quote the next character to the current shell. To exit splitvt, press ^X. The special characters (kill window, switch window, and quote next character) can be modified via the command line options. Under Sun/OS, splitvt will automatically switch windows when the shell in one has exited, and will automatically quit when both shells have exited. This program is useful if you can't run windows, but need to do two things on the same screen. If programs like vi are doing strange things to the window while in splitvt, you probably need to set the LINES environment variable to a correct value, or set the terminal's window sizing correctly. This should be done automatically, but may need to be corrected. Under certain conditions, resizing the window (assuming you are running splitvt in a window managed by a window manager) will cause splitvt to resize its own split windows. This will happen under Sun/OS, HP-UX, ULTRIX, and through rlogin, but not on Apollo DOMAIN_OS or through telnet or a modem. If the -l option is used, the upper window will be bound to the user defined number of lines even if the screen is resized. Otherwise, the screen will be split into two equal parts based on the new size of the screen. splitvt will attempt to erase the current utmp entry, and replace it with entries for the two windows. This allows you to use programs such as 'talk' within the splitvt windows. If you do not have write permission to the /etc/utmp file, you will not be able to modify the utmp entries. splitvt can be made set-uid root. splitvt will reset its user id to that of the person running it, just before it exec()'s the shell under the window. The splitvt process remains with root permissions, and will change ownership of the pseudo terminals to that of the person running splitvt, and then reset it to root when the window is closed.. SPLITVT IS NOT GUARANTEED TO BE A SAFE SET-UID PROGRAM I have done all I know to keep splitvt a safely usable set-uid program, but I do not know everything, and am not responsible for any security weaknesses splitvt might posses. BUGS splitvt has been tested on Sun/OS 4.x, HP-UX, AIX, IRIX, Solaris 2.1, and ULTRIX, and is still in the beta testing stage. splitvt takes care to keep the cursor in the current window at all times. To do this, it uses fast terminal control sequences. With fast input coming in, splitvt can confuse the terminal, resulting in text being placed at the wrong position on the window, and strange character sequences being printed. These strange characters are not really in the window; they are just garbage on the screen. When used with a certain public domain version of ksh, you have to manually kill -9 on the shell processes after you quit splitvt. This has to do with a bug in that version of ksh (Version 06/03/86a and possibly others). The vt100 handling could benefit from improvement. CAVEATS The screen cannot be refreshed if it is messed up. There may be conflicts between splitvt's characters and other programs (such as emacs). You can either change splitvt's default characters with command line options, or you can type Ctrl-V (the quote character) within splitvt, and the next character typed will be sent to the current window, no matter what it is. splitvt can only be used by terminals using vt100 emulation, due to the use of specific vt100 escape codes. (vt300, xterm, etc, emulation also works) AUTHOR Sam Lantinga slouken@toadflax.cs.ucdavis.edu