在windows上是可以直接通过注册表进行键位映射的,巧妙的利用 Scancode Map
就可将普通键盘改造成随心随意的个性化键盘
接下来以要将Caps Lock键映射为Fn键为例
警告:修改注册表可能会对系统造成意外的影响。在进行修改之前,强烈建议你备份注册表或创建系统还原点以防万一。
- 打开”运行”对话框。你可以按下Win + R键同时打开它。
- 输入
regedit
并按下Enter键,这将打开注册表编辑器。 - 导航到以下路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
- 在”键盘布局”键下创建一个新的二进制值。右键单击”键盘布局”键,选择”新建” -> “二进制值”。
- 将新创建的二进制值命名为
Scancode Map
(大小写敏感)。 - 右键单击
Scancode Map
,选择”修改”。 - 在”数值数据”字段中,输入以下数值:
00 00 00 00 00 00 00 00 02 00 00 00 E0 00 3A 00 00 00 00 00
这个数值将会将Caps Lock键映射为Fn键。 - 点击”确定”保存修改。
- 关闭注册表编辑器。
- 重新启动计算机使更改生效。
完成以上步骤后,Caps Lock键应该已被成功映射为Fn键。请注意,这个修改是系统级的,会影响所有用户的键盘布局。如果想要还原为原始设置,可以在注册表编辑器中删除Scancode Map
键,或将其数值数据字段清空,并重新启动计算机。
- 数值字段的规则含义:
- 第一部份:8 个 00 ,这是版本信息号。照例写就是了
- 第二部份:4 个字节。表示映射键的总数。按照二进制数的读写规则,低位在左,高位在右,也就是”大端存储”。
02 00 00 00
这个数实际就是:00 00 00 02
。 从 02 开始,一个映射键是 02 ,两个是03 ,依次递加,十个是 0B - 第三部份:每 4 个是一组,前两个是映射后键位的扫描码,后两个是键位原扫描码
- 第五部份:以 4 个 00 结束
注意:在注册表中输入时,需要将扫描码的高低字节交换一下。例如左Ctrl为
1D
,那么就应该写成1D 00
实际上,Fn键并没有一个特定的扫描码(scan code)。Fn键通常是作为一个特殊功能键(special function key)存在,它不会被单独的扫描码所表示。
Ubuntu上就比较简单了
打开 /usr/share/X11/xkb/keycodes/evdev
文件,找到 <CAPS> = 66
; 和 <LCTL>=37
; 这两行进行修改就可以了。
-------------本文结束感谢您的阅读-------------
本文作者:
Corner
本文链接: http://corner430.github.io/2023/06/07/%E9%94%AE%E4%BD%8D%E6%98%A0%E5%B0%84/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: http://corner430.github.io/2023/06/07/%E9%94%AE%E4%BD%8D%E6%98%A0%E5%B0%84/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
