doc: /* Alist of system-specific X windows key symbols.
Each element should have the form (N . SYMBOL) where N is the
numeric keysym code (sans the \"system-specific\" bit 1<<28)
-and SYMBOL is its name. */);
+and SYMBOL is its name.
+
+`system-key-alist' has a separate binding for each display device.
- See Info node `(elisp)Multiple displays'.
-
- Note that the currently selected frame has very little to do with
- which binding of this variable is active at any given moment. If you
- need set or get the binding on a specific display, use
- `terminal-local-value' and `set-terminal-local-value'. */);
++See Info node `(elisp)Multiple displays'. */);
+
+ DEFVAR_KBOARD ("local-function-key-map", Vlocal_function_key_map,
- doc: /* Keymap mapping ASCII function key sequences onto their preferred forms.
- This allows Emacs to recognize function keys sent from ASCII
- terminals at any point in a key sequence.
++ doc: /* Keymap that translates key sequences to key sequences during input.
++This is used mainly for mapping ASCII function key sequences into
++real Emacs function key events (symbols).
+
+The `read-key-sequence' function replaces any subsequence bound by
+`local-function-key-map' with its binding. More precisely, when the
+active keymaps have no binding for the current key sequence but
+`local-function-key-map' binds a suffix of the sequence to a vector or
+string, `read-key-sequence' replaces the matching suffix with its
+binding, and continues with the new sequence.
+
+The events that come from bindings in `local-function-key-map' are not
+themselves looked up in `local-function-key-map'.
+
+For example, suppose `local-function-key-map' binds `ESC O P' to [f1].
+Typing `ESC O P' to `read-key-sequence' would return [f1]. Typing
+`C-x ESC O P' would return [?\\C-x f1]. If [f1] were a prefix key,
+typing `ESC O P x' would return [f1 x].
+
+`local-function-key-map' has a separate binding for each display
+device. See Info node `(elisp)Multiple displays'. If you need to
+define a binding on all display devices, change `function-key-map'
+instead. Initially, `local-function-key-map' is an empty keymap that
- has `function-key-map' as its parent on all display devices.
-
- Note that the currently selected frame has very little to do with
- which binding of this variable is active at any given moment. If you
- need set or get the binding on a specific display, use
- `terminal-local-value' and `set-terminal-local-value'. */);
++has `function-key-map' as its parent on all display devices. */);
+
+ DEFVAR_LISP ("function-key-map", &Vfunction_key_map,
+ doc: /* The parent keymap of all `local-function-key-map' instances.
+Function key definitions that apply to all display devices should go
+here. If a mapping is defined in both the current
+`local-function-key-map' binding and this variable, then the local
+definition will take precendence. */);
+ Vfunction_key_map = Fmake_sparse_keymap (Qnil);
+
+ DEFVAR_KBOARD ("local-key-translation-map", Vlocal_key_translation_map,
+ doc: /* Keymap of key translations that can override keymaps.
+This keymap works like `function-key-map', but comes after that,
+and its non-prefix bindings override ordinary bindings.
+
+`key-translation-map' has a separate binding for each display device.
+(See Info node `(elisp)Multiple displays'.) If you need to set a key
- translation on all devices, change `global-key-translation-map' instead.
-
- Note that the currently selected frame has very little to do with
- which binding of this variable is active at any given moment. If you
- need set or get the binding on a specific display, use
- `terminal-local-value' and `set-terminal-local-value'. */);
++translation on all devices, change `global-key-translation-map' instead. */);
+
+ DEFVAR_LISP ("key-translation-map", &Vkey_translation_map,
+ doc: /* The parent keymap of all `local-key-translation-map' instances.
+Key translations that apply to all display devices should go here. */);
+ Vkey_translation_map = Fmake_sparse_keymap (Qnil);
DEFVAR_LISP ("deferred-action-list", &Vdeferred_action_list,
doc: /* List of deferred actions to be performed at a later time.