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
kept.
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
. 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
term-file-prefix
to nil
.
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.