Each terminal type can have a Lisp library to be loaded into Emacs when
it is run on that type of terminal. For a terminal type named
termtype, the library is called term/termtype.
(If there is an entry of the form
(termtype . alias)
in the term-file-aliases association list, Emacs uses
alias in place of termtype.) The library is
found by searching the directories load-path as usual and trying the
suffixes ‘.elc’ and ‘.el’. Normally it appears in the
subdirectory term of the directory where most Emacs libraries are
The usual purpose of the terminal-specific library is to map the escape sequences used by the terminal’s function keys onto more meaningful names, using input-decode-map (or function-key-map before it). See the file term/lk201.el for an example of how this is done. Many function keys are mapped automatically according to the information in the Termcap data base; the terminal-specific library needs to map only the function keys that Termcap does not specify.
When the terminal type contains a hyphen, only the part of the name
before the first hyphen is significant in choosing the library name.
Thus, terminal types ‘aaa-48’ and ‘aaa-30-rv’ both use
the library term/aaa. The code in the library can use
(getenv 'TERM') to find the full terminal type name.
The library’s name is constructed by concatenating the value of the
variable term-file-prefix and the terminal type. Your .emacs
file can prevent the loading of the terminal-specific library by setting
Emacs runs the hook tty-setup-hook at the end of initialization, after both your .emacs file and any terminal-specific library have been read in. Add hook functions to this hook if you wish to override part of any of the terminal-specific libraries and to define initializations for terminals that do not have a library. See Hooks.