udev更改按键映射
通过更改udev的规则实现敲击a键获得s的输出
安装evtest
首先安装evtest检测键盘的扫描码
1 |
# apt install evtest |
选择device的数字后,敲击a键可以得到一下信息:
1 |
Event: time 1521361797.053598, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1e |
结果进行了简化,第一个SYN_REPORT代表a键按下,第二个SYN_REPORT代表a键松开,其中可以得到a的扫描码为1e
修改udev
使用编辑器编辑udev规则
1 |
# sudo vim /lib/udev/hwdb.d/60-keyboard.hwdb |
在文件最后添加以下几行
1 |
evdev:input:b0011v0001p0001* |
第一行为一系列规则代表匹配的设备,其中evdev:input:代表输入设备,后面为一些ID,在evtest中输入device的数字之后会有一行输出为
1 |
Input device ID: bus 0x11 vendor 0x1 product 0x1 version 0xab41 |
其中’b0011’,’v000v’,’p0001’分别与bus,vendor,product对应,’*’代表了之后的通配符号
第二行为对设备的映射,行首需要空格否则无效,KEYBOARD_KEY_后跟扫描码,=号右为键值
更新udev
使用以下命令更新,需要将event3换为自己输入的数字
1 |
sudo udevadm hwdb --update && sudo udevadm trigger /dev/input/event3 |
udev更改按键映射的更多相关文章
- [Android] 输入系统(三):加载按键映射
映射表基本概念 由于Android调用getEvents得到的key是linux发送过来的scan code,而Android处理的是类似于KEY_UP这种统一类型的key code,因此需要有映射表 ...
- vim 中按键映射问题
按键映射关键字的组成开始让我摸不着头脑,查了资料,然后来做一个log 按键绑定命令:模式前缀(缺省为normal) + 递归前缀(缺省为空) + map 前缀表示生效范围,递归前缀表示是否递归查找命令 ...
- Linux之更改Nginx映射默认根目录
更改nginx映射默认根目录: 1.打开默认配置文件:sudo vi /etc/nginx/sites-available/default 2.修改配置:root /var/www/html/xx ...
- BigBoss按键映射
// BigBoss: SBSettings Toggle Spec 按键映射 http://thebigboss.org/guides-iphone-ipod-ipad/sbsettings-tog ...
- C++自定义修饰键,实现如<Capslock+J>等组合键的按键映射
前:所谓修饰键,就是Ctrl,Alt,Shift,Win这些按键. Update: 我使用AHK写了一个功能更丰富的脚本:https://github.com/h46incon/ModifierCus ...
- VIM进阶学习之几种模式和按键映射
Map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手. vim里最基本的map用法也就是 :map c a 这里把c映射成了a,在map生效的情况下,按下c就等同于按下了a 当然 ...
- Docker 更改容器映射端口
1.编辑容器的配置文件进行更改端口: docker run 运行启动时 -p 可以指定容器启动映射端口 ( ) 可以编辑配置文件 进行修改:(需要重启docker 服务 不止是是容器 才能生效.只能重 ...
- linux按键映射
.Xmodmap keycode = Mode_switch keysym k = k K Left keysym j = j J Down keysym l = l L Right keysym h ...
- 树莓派4B踩坑指南 - (2)安装系统及初始化
安装系统及初始化 格式化TF卡:SDFormatter 4.0.如果需要换系统,则必须先烧录进一个空img,然后再格式化! 烧录系统:Win32DiskImager-0.9.5 更改默认密码:账号pi ...
随机推荐
- linux复制指定文件
find /somedir -type f|xargs -I {} cp {} . find /somedir -name "*.txt"|xargs -I {} cp {} .
- GO、 智能合约、cannot use transactionRecordId + strconv.Itoa(id) (type string) as type byte in append
1.报错详情 2.在写fabric go智能合约发送的错误,像我这样的新手就是踩坑踩坑踩坑 3.下面是代码片段 4.研究了一下append用法.也看了下GO语言官网文章: var test_str [ ...
- SQLite-外键约束/表链接查询
外键约束: 表一的某个字段关联到表二的某个字段 例子: 国家表:t_country
- 程序员计算器HEX、EDC、OCT等等的意思
binary 二进制 对应的是 BINoctal 八进制的 ---- OCThexadecimal 十六进制的 --- HEXdecimal 十进制的 -- DEC
- log4j中%5p的含义
因为日志级别分别有error,warn,info,debug,fatal5种,有些是5个字母的,有些是4个字母的,如果直接写%p就会对不齐,%-5p的意思是日志级别输出左对齐,右边以空格填充,%5p的 ...
- Ret2shellcode
利用原理 ret2shellcode,即控制程序执行 shellcode 代码.一般来说,shellcode 需要我们自己填充.这其实是另外一种典型的利用方法,即此时我们需要自己去填充一些可执行的代码 ...
- 高可用性的mongo集群搭建
mongoDB安装 参照:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 配置yum管理包 在路径/etc/y ...
- Linux正则表达式及扩展的正则表达式
基本正则表达式: 扩展的正则表达式:
- Two Sum(Medium)
1.遍历一次nums,利用map记录已经遍历过的nums[i],并记录其index :i+1 2.每次求出b=target-nums[i],检测b是否在map中,如果在,则已经得到答案,否则,把num ...
- 点分治练习——BZOJ 2152
做的第二道点分治的题目,比较裸,算是模板题吧(感觉比之前那题还简单点. 题目:BZOJ 2152 聪聪可可 题目大意:给出一棵树,求树上两点间长度为3的倍数(0也算)的路径数. 解题思路: 基本和PO ...