---
name: "splitvt"
section: "1"
platform: "linux"
package: "splitvt"
version: "1.6.6-17"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/splitvt"
---

# splitvt(1)

run two shells in a split window

## 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**

- *-bottom*

  **Stats with the focus in the bottom 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*

  **Overrides any "set login on" statement in the startup file.**

- *-rcfile file*

  **Loads 'file' as the startup file instead of ~/.splitvtrc.**

- *-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 window, 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 distribution.**

**When splitvt starts up, it looks in your home directory for a file named**

*.splitvtrc* **You can set a number of parameters from within this file, including** **all of the special characters, the default number of lines in the upper** **window, 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 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.**

**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 separator** **bar by pressing down on the mouse button over the separator 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 windows.  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 emulation, 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**
