Next: Find Init, Previous: Init Examples, Up: Init File [Contents][Index]

#### 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. See Hooks.

Next: Find Init, Previous: Init Examples, Up: Init File [Contents][Index]