emacs: Terminal Init
51.4.3 Terminal-specific Initialization
---------------------------------------
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’ (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
‘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.
Hooks.