


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

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




SPLITVT			1/5/95				1





SPLITVT(1)	    NONESSENTIAL UTILITIES	   SPLITVT(1)


       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.



SPLITVT			1/5/95				2





SPLITVT(1)	    NONESSENTIAL UTILITIES	   SPLITVT(1)


       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
       /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



SPLITVT			1/5/95				3





SPLITVT(1)	    NONESSENTIAL UTILITIES	   SPLITVT(1)


       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


