linux按键映射

在使用非标准键盘布局时,如背光英文版大回车键盘,可能会遇到键位不习惯的问题,例如左shift旁边的<键常被误按。在Linux中,图形化界面和字符界面的键位映射修改方法不同。图形界面下,可以使用xmodmap和xev命令调整;字符界面则需修改/etc/console-setup/cached.kmap.gz文件,解压编辑后再压缩。例如,将<键映射为Shift,图形界面使用'xmodmap -e 'keycode 94 = Shift_L'',字符界面则查找<的keycode(如86),替换为Shift的定义。
摘要由CSDN通过智能技术生成

更换背光英文版大回车键盘后与常用的美式键盘相比用起来不习惯,最明显的是左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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值