linux按键映射

更换背光英文版大回车键盘后与常用的美式键盘相比用起来不习惯,最明显的是左shift旁边的<总会在想按shift时误按到,影响工作效率。

图形化界面和纯字符界面修改的方法不同,而且对相同按键的keycode定义不同。

图形化界面的定义由xmodmap进行管理,通过xev命令在按下按键时会显示keycode定义如下:

KeyPress event, serial 37, synthetic NO, window 0x5a00001,
    root 0xd9, subw 0x0, time 414023, (-69,99), root:(516,406),
    state 0x0, keycode 94 (keysym 0xffe1, Shift_L), same_screen YES,
    XKeysymToKeycode returns keycode: 50
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

通过下面的命令进行重新映射,此处是将<按键映射为左shift

xmodmap -e 'keycode 94 = Shift_L'


字符界面通过/etc/console-setup/cached.kmap.gz进行管理,需要修改时要先将此文件解压,为避免出错最好备份一下:

cp cached.kmap.gz cached.kmap.gz.bak

gzip -d cached.kmap.gz

解压后vi cached.kmap,修改结束后要用gzip重新压缩gzip cached.kmap

需要注意的是字符界面下keycode的定义要通过showkey命令得到,而不是xev, 字符界面下的定义与内核中的定义一致

同样示例将<按键映射为左shift,通过showkey得知<的keycode为86,删除原有86定义,复制42即shift的定义再修改keycode=86.

另附 linux key code Table:

Linux Keycode Table

Key Key number Scan codes keycodes keymap
        normal shift/NUM-Lock ALT CTRL
ESC 1 01 81 1 1b 1b 1b 1b  
1 2 02 82 2 1 31 ! 21 1 1b 31  
2 3 03 83 3 2 32 @ 40 2 1b 32 00
3 4 04 84 4 3 33 # 23 3 1b 33 1b
4 5 05 85 5 4 34 $ 24 4 1b 34 1c
5 6 06 86 6 5 35 % 25 5 1b 35 1d
6 7 07 87 7 6 36 ^ 5e 6 1b 36 1e
7 8 08 88 8 7 37 & 26 7 1b 37 1f
8 9 09 89 9 8 38 * 2a 8 1b 38 7f
9 10 0a 8a 10 9 39 ( 28 9 1b 39  
0 11 0b 8b 11 0 30 ) 29 0 1b 30  
- 12 0c 8c 12 - 2d _ 5f - 1b 2d 1f
= 13 0d 8d 13 = 3d + 2b = 1b3d  
BS 14 0e 8e 14 7f 7f 1b 7f 08
TAB 15 0f 8f 15 09 09 1b 09  
Q 16 10 90 16 q 71 Q 51 q 1b 71 11
W 17 11 91 17 w 77 W 57 w 1b 77 17
E 18 12 92 18 e 65 E 45 e 1b 65 05
R 19 13 93 19 r 72 R 52 r 1b 72 12
T 20 14 94 20 t 74 T 54 t 1b 74 14
Y 21 15 95 21 y 79 Y 59 y 1b 79 19
U 22 16 96 22 u 75 U 55 u 1b 75 15
I 23 17 97 23 i 69 I 49 i 1b 69 09
O 24 18 98 24 o 6f O 4f o 1b 6f 0f
P 25 19 99 25 p 70 P 50 p 1b 70 10
[ 26 1a 9a 26 [ 5b { 7b [ 1b 5b 1b
] 27 1b 9b 27 ] 5d } 7d ] 1b 5d 1d
ENTER 28 1c 9c 28 0d 0d 1b 0d 0d
L CTRL 29 1d 9d 29        
A 30 1e 9e 30 a 61 A 41 a 1b 61 01
S 31 1f 9f 31 s 73 S 53 s 1b 73 13
D 32 20 a0 32 d 64 D 44 d 1b 64 04
F 33 21 a1 33 f 66 F 46 f 1b 66 06
G 34 22 a2 34 g 67 G 47 g 1b 67 07
H 35 23 a3 35 h 68 H 48 h 1b 68 08
J 36 24 a4 36 j 6a J 4a j 1b 6a 0a
K 37 25 a5 37 k 6b K 4b k 1b 6b 0b
L 38 26 a6 38 l 6c L 3c l 1b 6c 0c
; 39 27 a7 39 ; 3b : 3a ; 1b 3b  
' 40 28 a8 40 ' 27 " 22 ' 1b 27 07
` 41 29 a9 41 ` 60 ~ 7e ` 1b 60 00
L SHIFT 42 2a aa 42        
\ 43 2b ab 43 \ 5c | 7c \ 1b 5c 1c
Z 44 2c ac 44 z 79 Z 5a z 1b 79 1a
X 45 2d ad 45 x 78 X 58 x 1b 78 18
C 46 2e ae 46 c 63 C 43 c 1b 63 03
V 47 2f af 47 v 76 V 56 v 1b 76 16
B 48 30 b0 48 b 62 B 42 b 1b 62 02
N 49 31 b1 49 n 6e N 4e n 1b 6e 0e
M 50 32 b2 50 m 6d M 4d m 1b 6d 0d
, 51 33 b3 51 , 2c < 3c , 1b 2c  
. 52 34 b4 52 . 2e > 3e . 1b 2e  
/ 53 35 b5 53 / 2f ? 3f \ 1b 2f  
R SHIFT 54 36 b6 54        
* 55 37 b7 55 * 2a * 2a * 2a * 2a
L ALT 56 38 b8 56        
SPACE 57 39 b9 57 20      
CAPS LOCK 58 3a ba 58        
F1 59 3b bb 59 [[A 1b 5b 5b 41 [23~ 1b 5b 32 33 7e   [[A 1b 5b 5b 41
F2 60 3c bc 60 [[B 1b 5b 5b 42 [24~ 1b 5b 32 34 7e   [[B 1b 5b 5b 42
F3 61 3d bd 61 [[C 1b 5b 5b 43 [25~ 1b 5b 32 35 7e   [[C 1b 5b 5b 43
F4 62 3e be 62 [[D 1b 5b 5b 44 [26~ 1b 5b 32 36 7e   [[D 1b 5b 5b 44
F5 63 3f bf 63 [[E 1b 5b 5b 45 [28~ 1b 5b 32 38 7e   [[E 1b 5b 5b 45
F6 64 40 c0 64 [17~ 1b 5b 31 37 7e [29~ 1b 5b 32 39 7e   [17~ 1b 5b 31 37 7e
F7 65 41 c1 65 [18~ 1b 5b 31 38 7e [31~ 1b 5b 33 31 7e   [18~ 1b 5b 31 38 7e
F8 66 42 c2 66 [19~ 1b 5b 31 39 7e [32~ 1b 5b 33 32 7e   [19~ 1b 5b 31 39 7e
F9 67 43 c3 67 [20~ 1b 5b 32 30 7e [33~ 1b 5b 33 33 7e   [20~ 1b 5b 32 30 7e
F10 68 44 c4 68 [21~ 1b 5b 32 31 7e [34~ 1b 5b 33 34 7e   [21~ 1b 5b 32 32 7e
NUM LOCK 69 45 c5 69        
SCROLL LOCK 70 46 c6 70        
HOME 7 71 47 c7 71 [1~ 1b 5b 31 7e 7 37    
UP 8 72 48 c8 72 [A 1b 5b 41 8 38    
PGUP 9 73 49 c9 73 [5~ 1b 5b 35 7e 9 39    
- 74 4a ca 74 - 2d - 2d - 2d - 2d
LEFT 4 75 4b cb 75 [D 1b 5b 44 4 34    
5 76 4c cc 76 [G 1b 5b 47 5 35    
RT ARROW 6 77 4d cd 77 [C 1b 5b 43 6 36    
+ 78 4e ce 78 + 2b + 2b + 2b + 2b
END 1 79 4f cf 79 [4~ 1b 5b 34 7e 1 31    
DOWN 2 80 50 d0 80 [B 1b 5b 42 2 32    
PGDN 3 81 51 d1 81 [6~ 1b 5b 36 7e 3 33    
INS 82 52 d2 82 [2~ 1b 5b 32 7e 0 30    
DEL 83 53 d3 84 [B 1b 5b 42 . 2e    
  84            
  85            
  86            
F11 87 57 d7 87 [23~ 1b 5b 32 33 7e      
F12 88 58 d8 88 [23 1b 5b 32 34 7e      
  89            
  90            
  91            
  92            
  93            
  94            
  95            
R ENTER 96 e0 1c e0 9c 96        
R CTRL 97 e0 1d e0 9d 97        
/ 98 e0 35 e0 b5 98 / 2f / 2f / 2f / 2f
PRT SCR 99 e0 2a e0 37 e0 b7 e0 aa 99        
R ALT 100 e0 38 e0 b8 100        
  101            
Home 102 e0 47 e0 c7 102 [1~ 1b 5b 31 7e [1~ 1b 5b 31 7e [1~ 1b 5b 31 7e [1~ 1b 5b 31 7e
Up 103 e0 48 e0 c8 103 [A 1b 5b 41      
PgUp 104 e0 49 e0 c9 104 [5~ 1b 5b 35 7e      
Left 105 e0 4b e0 cb 105 [D 1b 5b 44      
Right 106 e0 4d e0 cd 106 [C 1b 5b 43      
End 107 e0 4f e0 cf 107 [4~ 1b 5b 34 7e      
Down 108 e0 50 e0 d0 108 [B 1b 5b 42      
PgDn 109 e0 51 e0 d1 109 [6~ 1b 5b 36 7e      
Insert 110 e0 52 e0 d2 110 [2~ 1b 5b 32 7e      
Del 111 e0 53 e0 d3 111 [B 1b 5b 42      
  112            
  113            
  114            
  115            
  116            
  117            
  118            
Pause 119 e1 1d 45 e1 9d c5 119 [P 1b 5b 50      
 

你可能感兴趣的:(按键映射,linux)