SPLITVT(1)	      NONESSENTIAL UTILITIES	       SPLITVT(1)

NAME
       splitvt - run two shells in a split window

SYNOPSIS
       splitvt [options] [shell]


OPTIONS
       -upper command
	      Runs 'command' in the upper window

       -lower command
	      Runs 'command' in the lower window

       -s 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.

       -t title
	      Sets an xterm title bar to 'title'

       -login Runs  the programs under each window as though they
	      were login shells.  This	is  useful  to	have  csh
	      source it's .login file, bash source .profile, etc.

       -nologin
	      Ovverrides any "set  login  on"  statement  in  the
	      startup file.

       -rcfile file
	      Loads   'file'  as  the  startup	file  instead  of
	      ~/.splitvtrc.  If %s is present in the filename, it
	      will  be	replaced  by  your home directory.  (E.g.
	      %s/.splitvtrc is equivalent to the default  startup
	      file)

       -norc  Suppresses loading your ~/.splitvtrc

       -f     Allow  setting  the height of either the top or the
	      bottom window to less than 3 lines.

       -v     Print out the version number of splitvt


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.	 Pressing
       ^O will put splitvt into command mode.

       These special characters (command mode, switch window, and
       quote next character) can  be  modified	from  within  the
       .splitvtrc file.

       When  in	 command  mode, splitvt will read one non-numeric
       character, perform the requested command, and then  revert
       to  normal operations.  Numeric characters are interpreted
       as a parameter for the specified command.   The	currently
       supported commands are:


       'h'    Print a help window for the escape commands


       '-'    Shrink the current window


       '+'    Expand the current window


       'c'    Select a block of text in the current window


       'p'    Paste the selected text to the current window


       'k'    Kill the current window (hangup signal)


       'x'    Lock the screen, after prompting for password


       'r'    Repaint the screen (clearing screen garbage)


       'q'    Quickly quit splitvt, killing the running shells

       More functions may be added in the future.

       If  the	-s  command line 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.

       The  environment	 variable  SPLITVT  is	set in the shells
       forked by splitvt.  In the shell running in the upper win-
       dow,  this variable is set to the value "upper", while the
       shell running in the lower window has this variable set to
       the  value  "lower".   This  is useful in shell scripts to
       provide different behavior depending on which  window  the
       script  is running in.  An example of this is shown in the
       file "menu" in the examples directory in the splitvt  dis-
       tribution.

       When  splitvt  starts  up, it looks in your home directory
       for a file named .splitvtrc You can set a number of param-
       eters  from within this file, including all of the special
       characters, the default number of lines in the upper  win-
       dow,  whether  or not to run the commands as login shells,
       and even default commands to run in each window.

       Here is an example of a .splitvtrc file:

	    # This is an example .splitvtrc file.
	    set command_char	    ^O
	    set quote_char	    ^V
	    set switch_char	    ^W
	    set upper_lines	    12
	    run -upper		    /bin/sh
	    run -lower		    top
	    set login		    on
	    # This next line would override the above run statements
	    #run /bin/tcsh

       If programs like vi are doing strange things to the window
       while in splitvt, you probably need to set the LINES envi-
       ronment variable to a correct value, or set the terminal's
       window  sizing  correctly.   This should be done automati-
       cally, but may need to be corrected.

       If you are running under an xterm window,  the  title  bar
       will  probably  be  updated to show the version of splitvt
       that you are running.  Under a true xterm window, you  can
       also  switch  which half of the window you are typing into
       by clicking the mouse in the half of the window	in  which
       you  want to type.  You can also drag and drop the separa-
       tor bar by pressing down on the mouse button over the sep-
       arator bar, holding it down, moving the mouse to where you
       want the bar to end up, and then releasing the button.

       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 win-
       dows.   If  you	do  not	 have  write  permission  to  the
       /var/run/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
       posess.

BUGS
       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).

       If  splitvt is compiled with xterm support, when run under
       an xterm, the cut and paste feature is semi-disabled.  The
       title  bar  may	also be reset to the string "xterm" after
       splitvt quits.  See the comments at the top  of	splitvt.c
       for how to disable xterm support.

       Ansi colors are not repainted on screen refresh.

CAVEATS
       There  may  be  conflicts between splitvt's characters and
       other programs.	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  emula-
       tion,  due  to  the  use	 of  specific vt100 escape codes.
       (vt300, xterm, Linux console, etc, emulation also works)

       When running in an xterm, if you press the escape key, you
       will  have  to  type  another  character	 in order for the
       escape to be seen by the running program.


AUTHOR
       Sam Lantinga   slouken@cs.ucdavis.edu

SPLITVT			      1/5/95				4


