TEMS

Terminal Emulation Management Systems


| Introduction | My Current System | My Old Systems |

Introduction to Terminal Emulation Management Systems

Terminal Emulation Management Systems (TEMS) have been around at least as long as Screen was released in 1987. For the purposes of this introduction, I will use commands and notation from my current system, which is based on dvtm.

Multiple Windows

A TEMS provides the user with the ability to open and simultaneously use Multiple Windows. In order to use a TEMS, you first open a single terminal window and then launch the TEMS within that. The TEMS then opens a virtual terminal window within which you can do your work. You can open additional virtual terminal windows within the TEMS and arrange them as you like.

The MOD Key

In order to send a TEMS system a command, such as "create a new window", you must first press a MOD key, which tells the system to interpret the next keypress as a command instead of sending it to the terminal. Most TEMS systems are written using the curses or ncurses library to handle key presses and for writing characters to the screen. A typical MOD key is CTRL+G, so as an example you press CTRL+G then c to create a new virtual terminal window.

Persistence

A TEMS also provides the user with the ability to disconnect, or detach, without impacting the virtual terminals that are running within the TEMS. In general, the TEMS is providing Persistence for the virtual terminal windows and whatever is running within them. For example, if you connect with a server using a standard terminal emulator application running on a desktop computer, you can run your TEMS on the server, kick off a bunch of processes, and then disconnect from the TEMS at the end of the day and close down your desktop computer. All the virtual terminals continue to run in the background, with any running processes intact. The virtual terminals and their layout is being managed by the TEMS running on the server. At any time, you can open a new terminal connection to the server and reconnect, or attach, to the TEMS. Everything will be just as if you left it up and running the whole time. A typical implementation is to press CTRL+\ to disconnect from a TEMS.

Window Layout Management

A TEMS should also provide the user with the ability to arrange the virtual terminal emulator windows in a variety of Window Layout configurations.


Additional Features of Terminal Emulation Management Systems


My current TEMS system

My current TEMS system uses dvtm with a customized launch script. The script can be renamed to anything you like and still functions properly. It uses three small programs, all available from brain-dump.org: dvtm, abduco for persistence, and vis for copy and paste.

Here are full instructions for how to get a setup working, beginning to end, from Windows client, connecting to a *nix server, and running TEMS.


Older systems

Popular Terminal Emulation Management Systems

Terminal Emulation Management Systems I have implemented