| Introduction | My Current System | My Old 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.
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.
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
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
A TEMS should also provide the user with the ability to arrange the virtual terminal emulator windows in a variety of Window Layout configurations.
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.