Table of Contents
# $EPIC: output-help.txt,v 1.1 2007/05/19 21:12:56 jnelson Exp $
My output is all screwed up!
This help file discusses various problems you might have with getting output to work properly, and how to fix them.
About terminal emulators
A terminal emulator is the computer program that handles input and output between you, the user, and a login shell (on a unix system).
Unix shells are fundmentally a character-based interface. You type keys and your terminal emulator turns your keypresses into sequences of bytes which are sent to the program you are running in the shell. The program you are running in the shell sends bytes back to your terminal emulator, which displays them on your screen.
It is entirely up to your emulator how to handle these two tasks. There are conventions that most emulators obey, but there is no requirement that is universal.
Commonly used terminal emulators are
- ) Unix console (especially on linux)
- ) Xterm (the default emulator for the X window system)
- ) rxvt, Gterm, Kterm (common third party emulators for X)
- ) Windows console (especially when using cygwin, or windows telnet)
- ) Putty (A common emulator for windows)
In order for the client to correctly function with your terminal emulator, you must correctly describe your emulator to the client. Rather than proscriptively describe all the settings, this document will list the common problems you will see if it's not all set up properly, and how to fix it.
Alt-<number> doesn't switch to a window
The Problem:
When you press Alt-<number>, the emulator will send one of these three things to the client:
1) The <number> character with the high bit set ("eight bit character") 2) The escape character (ascii 27) followed by the number <number> 3) The <number> without any modification.
The Reason:
Since the client must bind sequences of characters, if your script binds #1, but your emulator sends #2 (or vice vesra), it won't work the way you want it to.
The Solution:
Most scripts assume your emulator will send #2, since that's what the linux console does. If your emulator sends #1, you can set high_bit_escape 1 to force the client to pretend the emulator sent #2.