annotate lisp/term/linux.el @ 1959:b10161763edf

[xemacs-hg @ 2004-03-20 12:51:25 by adrian] xemacs-21.5: Typo and copycat fix for etc/sample.init.el -------------------- ChangeLog entries follow: -------------------- etc/ChangeLog addition: 2004-03-20 Adrian Aichner <adrian@xemacs.org> * sample.init.el: Typo and copycat fix.
author adrian
date Sat, 20 Mar 2004 12:51:25 +0000
parents 8d7c4af1d6af
children 308d34e9f07d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 ;;; linux.el --- define function key sequences for the Linux console
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 ;; Author: Ben Wing
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 ;; Keywords: terminals
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 ;; Copyright (C) 1996 Ben Wing.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 ;; This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 ;; XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 ;; under the terms of the GNU General Public License as published by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 ;; the Free Software Foundation; either version 2, or (at your option)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 ;; any later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 ;; XEmacs is distributed in the hope that it will be useful, but
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 ;; General Public License for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 ;; You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 ;; along with XEmacs; see the file COPYING. If not, write to the Free
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 ;; 02111-1307, USA.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
622
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
24 ;;; Synched up with: FSF 21.0.103.
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
25 ;;; (All the define-keys are our own.)
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
26
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
27 ;;; Commentary:
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
28
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
29 ;;; Code:
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
30
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
31 ;; The Linux console handles Latin-1 by default.
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
32
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
33 (if-fboundp 'set-terminal-coding-system
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
34 (unless (declare-fboundp (terminal-coding-system))
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
35 (set-terminal-coding-system 'iso-8859-1)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36
622
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
37 ;; Make Latin-1 input characters work, too.
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
38 ;; Meta will continue to work, because the kernel
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
39 ;; turns that into Escape.
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
40
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
41 (let ((value (current-input-mode)))
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
42 ;; The third arg only matters in that it is not t or nil.
1904
8d7c4af1d6af [xemacs-hg @ 2004-02-09 15:33:32 by james]
james
parents: 622
diff changeset
43 (set-input-mode (nth 0 value) (nth 1 value) 'iso-8859-1 (nth 3 value)))
622
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
44
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
45 ;; The defines below seem to get automatically set in recent Termcaps.
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
46 ;; It was probably the case that in 1996, there was no good Linux termcap,
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
47 ;; which is why such a file was needed.
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
48
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
49 ; ;; Termcap or terminfo should set these next four?
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
50 ; (define-key function-key-map "\e[A" [up])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
51 ; (define-key function-key-map "\e[B" [down])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
52 ; (define-key function-key-map "\e[C" [right])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
53 ; (define-key function-key-map "\e[D" [left])
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54
622
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
55 ; (define-key function-key-map "\e[[A" [f1])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
56 ; (define-key function-key-map "\e[[B" [f2])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
57 ; (define-key function-key-map "\e[[C" [f3])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
58 ; (define-key function-key-map "\e[[D" [f4])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
59 ; (define-key function-key-map "\e[[E" [f5])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
60 ; (define-key function-key-map "\e[17~" [f6])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
61 ; (define-key function-key-map "\e[18~" [f7])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
62 ; (define-key function-key-map "\e[19~" [f8])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
63 ; (define-key function-key-map "\e[20~" [f9])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
64 ; (define-key function-key-map "\e[21~" [f10])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
65 ; (define-key function-key-map "\e[23~" [f11])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
66 ; (define-key function-key-map "\e[24~" [f12])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
67 ; (define-key function-key-map "\e[25~" [f13])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
68 ; (define-key function-key-map "\e[26~" [f14])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
69 ; (define-key function-key-map "\e[28~" [f15])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
70 ; (define-key function-key-map "\e[29~" [f16])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
71 ; (define-key function-key-map "\e[31~" [f17])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
72 ; (define-key function-key-map "\e[32~" [f18])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
73 ; (define-key function-key-map "\e[33~" [f19])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
74 ; (define-key function-key-map "\e[34~" [f20])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
75
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
76 ;; But they come out f13-f20 (see above), which are not what we
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
77 ;; normally call the shifted function keys. F11 = Shift-F1, F2 =
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
78 ;; Shift-F2. What a mess, see below.
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
79 (define-key function-key-map "\e[25~" [(shift f3)])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
80 (define-key function-key-map "\e[26~" [(shift f4)])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
81 (define-key function-key-map "\e[28~" [(shift f5)])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
82 (define-key function-key-map "\e[29~" [(shift f6)])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
83 (define-key function-key-map "\e[31~" [(shift f7)])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
84 (define-key function-key-map "\e[32~" [(shift f8)])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
85 (define-key function-key-map "\e[33~" [(shift f9)])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
86 (define-key function-key-map "\e[34~" [(shift f10)])
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87
622
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
88 ;; I potentially considered these. They would make people's Shift-F1 and
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
89 ;; Shift-F2 bindings work -- but of course they would fail to work if the
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
90 ;; person also put F11 and F12 bindings. It might also be confusing because
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
91 ;; the person with no bindings who hits f11 gets "error shift-f1 unbound".
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
92 ;; #### If only there were a proper way around this.
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
93 ;(define-key global-map 'f11 [(shift f1)])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
94 ;(define-key global-map 'f12 [(shift f2)])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
95
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
96 ; (define-key function-key-map "\e[1~" [home])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
97 ;; seems to not get handled correctly automatically
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
98 (define-key function-key-map "\e[2~" [insert])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
99 ; (define-key function-key-map "\e[3~" [delete])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
100 ; (define-key function-key-map "\e[4~" [end])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
101 ; (define-key function-key-map "\e[5~" [prior])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
102 ; (define-key function-key-map "\e[6~" [next])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
103 ; (define-key function-key-map "\e[G" [kp-5])
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104
622
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
105 ; (define-key function-key-map "\eOp" [kp-0])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
106 ; (define-key function-key-map "\eOq" [kp-1])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
107 ; (define-key function-key-map "\eOr" [kp-2])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
108 ; (define-key function-key-map "\eOs" [kp-3])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
109 ; (define-key function-key-map "\eOt" [kp-4])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
110 ; (define-key function-key-map "\eOu" [kp-5])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
111 ; (define-key function-key-map "\eOv" [kp-6])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
112 ; (define-key function-key-map "\eOw" [kp-7])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
113 ; (define-key function-key-map "\eOx" [kp-8])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
114 ; (define-key function-key-map "\eOy" [kp-9])
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
115
622
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
116 ; (define-key function-key-map "\eOl" [kp-add])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
117 ; (define-key function-key-map "\eOS" [kp-subtract])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
118 ; (define-key function-key-map "\eOM" [kp-enter])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
119 ; (define-key function-key-map "\eOR" [kp-multiply])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
120 ; (define-key function-key-map "\eOQ" [kp-divide])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
121 ; (define-key function-key-map "\eOn" [kp-decimal])
11502791fc1c [xemacs-hg @ 2001-06-22 01:49:57 by ben]
ben
parents: 428
diff changeset
122 ; (define-key function-key-map "\eOP" [kp-numlock])
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 ;;; linux.el ends here
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125