Linux下使用setkeycodes映射键盘按键

Linux下使用setkeycodes映射键盘按键

0x01 工具介绍

setkeycodes 是一个将 scancodes-to-keycodes 映射表加载到Linux内核中的工具。它的用法是:

setkeycodes scancode keycode ...

扫描码(Scancodes)以十六进制给出, 键位码(keycode)以十进制给出。
扫描码可以通过showkey -s得到,键位码可以通过showkey得到,对应的值在/usr/include/linux/input.h中。

0x02 例子

以我的笔记本为例,小问题不断的机械革命,这次遇到的问题就是不能设置触摸板快捷键来切换触摸板开关(Fn+F5)。步骤如下:

  1. 找到扫描码(Scancodes)
$ sudo showkey -s
0xe0 0x5b 0x1d 0x76 0xf6 0x9d 0xe0 0xdb # 按下触摸板开关键(Fn+F5) ,得到的是多个键的组合
0x1d 0x9d # 是组合键中的左Ctrl键
0xe0 0x5b 0xe0 0xdb # 是组合键中的Meta键(Win键或Super键)

以上按键是带有按下和释放事件,我只取了按下的扫描码。
2. 找到键位码(keycode)

$ sudo showkey
keycode  63 press # 按下F5,也可以指定其他按键
  1. 应用新的映射
$ sudo setkeycodes 76 63

0x03 测试

通过把切换触摸板快捷键设置成Ctrl+Meta+F5,或者直接Fn+F5,可以实现正常切换,并且双击触摸板左上角的小点也触发相同的事件,所以同样正常工作,但那个小点的指示灯还不能正常亮起。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值