Windows << 采用修改注册表法。关键步骤:OK,已解决。见下面。
Linux 已解决。需要管理员权限,适配性强。
屏幕键盘法:已解决。
外接 USB 键盘:已解决,非移动场景下的好办法。
input-remapper : Very good,但 debian 12 / unbuntu 22.04 以上版本,OS 官方仓库中才有。其他方法安装,可能无法使用?
---------------------------------------------------------
在双系统下,lenovo笔记本,“PgDn 和 右箭头”同时失效,需要修改。但还没有实际行动,这里先收集修改的办法。
“PgDn 和 右箭头”在键盘的右下角,于是,有时就使用脚趾来翻页,不知道是不是使用习惯不好,从而加速了这两个按键的失效?一个良好的设计,不管是用手指?还是用脚趾?都不应该失效才对吧?
“右箭头” 失效,太影响使用了,在使用命令行输入时,只能向左,不能向右。
电脑有寿命,人也有寿命。
只要花 10 多块钱就能搞定的事情,就没必要麻烦了;分不清主次。糊涂了。
---------------------------------------------------------
节省时间的过渡解决方案:
1. 使用屏幕键盘
Linux / Windows 屏幕键盘,按键坏了,临时解决方案 https://blog.csdn.net/ken2232/article/details/139576770
2. 直接找出一一个 N年前的外之超薄 usb 键盘
接上就可以用来,没有必要在去搞得那么麻烦了。
---------------------------------------------------------
linux
<主要参考,需要管理员权限> **** Linux通用键位修改(中)-实际操作 https://www.bilibili.com/read/cv5156572/
**** Linux通用键位修改(中)-实际操作 (***)OK https://blog.csdn.net/ken2232/article/details/139613286
linux 修改键盘键值 https://blog.csdn.net/laughing_sir/article/details/8718282
linux 按键修改简单示例 https://blog.csdn.net/qq_32509281/article/details/111469484
** linux按键映射 https://blog.csdn.net/whsbk/article/details/79827680
linux键盘输入无反应如何解决 https://www.yisu.com/ask/33742404.html
** 使用 xmodmap工具(推荐) / linux 键盘按键坏了怎么改键? https://www.cnblogs.com/odesey/p/17977920
** Linux更改键位映射 https://blog.csdn.net/inxunxun/article/details/128213524
** xmodmap使用指南 https://blog.csdn.net/robertsong2004/article/details/36439597
xmodmap 中文man页面 https://www.51cto.com/article/283442.html
Linux中的键盘错位问题 https://blog.csdn.net/young_White/article/details/130715599
Windows
OK,已解决。见下面。<< 关键步骤:
注:修改键盘,涉及到安全问题,还是采用官方工具,会妥当一些。
可能会采用注册表法。因为微软官方工具法,需要下载一个 257MB 的软件,小改动、文件太大了。
注册表法:不借助三方工具,修改Windows的CapsLock键为其他功能键 https://blog.csdn.net/adinlead/article/details/137359059
微软官方工具: microsoft / PowerToys https://github.com/microsoft/PowerToys/releases
PowerToysSetup-0.81.1-x64.exe 257 MB
在微软商店搜索PowerToys或到github下载 microsoft/PowerToys (github.com),全中文,打开后在左侧选择 - 键盘管理器 - 重新映射键 https://zhuanlan.zhihu.com/p/664859530
----------------------------------------------------------------------
关键步骤:OK,已解决
关键参考:修改键盘映射(注册表)Scancode Map https://blog.csdn.net/beixi1234/article/details/130274319
注 1:每 00 x 4个为一组,即上面:
- 第一行有 2 组:第 1 组 / 第 2 组。
- 第二行有 2 组:第 1 组 / 第 2 组。
- 第三行有 2 组:第 1 组 / 第 2 组。
说明:
数值顺序:A键的键值 (坏的) -->> B键的键值 (好的)
结果:将 A键 映射到 B键上,B键 获得了 A键的功能。
圈 1:第一行:固定格式,2组全是 00。即 00 x 8 个,第一行全是 00。
圈 2:第 3 行的第 2 组(即、最末一组)。固定格式,最后4个00 是结束标志。
圈 3:第二行的第 1 组,计数用途,固定用途,统级所有需要修改的按键组数(每 00 x 4个为一组)。
本次一共有 2 组需要修改,即圈 4 和 圈 5组。于是,2 + 1 =3 (十六进制)。
参考:(3).这4个的第一个是(你要修改的按键数目+ 1),每4个00为一个你要修改的按键 https://blog.csdn.net/beixi1234/article/details/130274319
圈 4:第二行的第 2 组。
Right Arrow : 4D E0
Down Arrow : 50 E0
解释:
将 “Right Arrow / 4D E0(失效的)” 采用 “Down Arrow / 50 E0”来替代。即按 “下箭头”的结果,实际上就会输出 “右箭头” 按键值。
圈 5:第二行的第 2 组。
Page Down : 51 E0
Up Arrow :48 E0
解释:
参考 圈 4。
按下上箭头(Up Arrow),实际上输出的是 向下翻页(Page Down) 的按键值。
========================================
杂乱无章
顺序:A键的键值 (坏的) -->> B键的键值 (好的)
将 A键 映射到 B键上,B键 获得了 A键的功能。
Right 4D E0
Down 50 E0
Page Down 51 E0
Up 48 E0
0x5200 Insert
0x4700 Home
0x4900 Page UP
0x5300 Delete
0x4f00 End
0x5100 PageDown
0x4800 上箭头
0x4b00 左箭头
0x5000 下箭头
0x4d00 右箭头
9. Keyboard-internal scancodes
https://www.scs.stanford.edu/10wi-cs140/pintos/specs/kbd/scancodes-9.html
United States-International Layout Scancodes United States-International - Scancodes - Keyboard Layout Info
Keyboard Scan Code Specification
https://christophervickery.com/babbage/courses/cs345/Manuals/ms_scancode.pdf
Windows Platform Design Notes
Designing Hardware for the Microsoft® Windows® Family of Operating Systems
89 59 Keypad 1 and End 93 √ √ √ 84/101/104
91 5B Keypad 3 and PageDn 103 √ √ √ 84/101/104
96 60 Keypad 8 and Up Arrow 96 √ √ √ 84/101/104
92 5C Keypad 4 and Left Arrow 92 √ √ √ 84/101/104
93 5D Keypad 5 97 √ √ √ 84/101/104
94 5E Keypad 6 and Righ tArrow 102 √ √ √ 84/101/104
90 5A Keypad 2 and Down Arrow 98 √ √ √ 84/101/104
95 5F Keypad 7 and Home 91 √ √ √ 84/101/104
96 60 Keypad 8 and Up Arrow 96 √ √ √ 84/101/104
97 61 Keypad 9 and PageUp 101 √ √ √ 84/101/104
98 62 Keypad 0 and Insert 99 √ √ √ 84/101/104
99 63 Keypad . and Delete 104 √ √ √ 84/101/104
100 64 Keyboard Non-US\ and |3;6 45 √ √ √ 84/101/104
Scancode Map
Page Down : 51 E0
Up :48 E0
Right : 4D E0
Down : 50 E0
Left :4B E0
将 PgDn 映射到 下箭头,也 OK。但是,将右箭头 映射到 下箭头 NG。
x1.5 完成上述修改后,需要重启电脑!
linux / Windows 双系统,按键坏了,需要修改按键重新映射 https://blog.csdn.net/ken2232/article/details/139565419
Linux / Windows 屏幕键盘,按键坏了,临时解决方案 https://blog.csdn.net/ken2232/article/details/139576770
参考资料
知乎:Windows系统CapsLock和ESC互换
键盘码表:修改键盘映射(注册表)Scancode Map
微软:键盘和鼠标类驱动程序的配置
GitHub/Uncap:Windows: Scancode Map registry value
不借助三方工具,修改Windows的CapsLock键为其他功能键 不借助三方工具,修改Windows的CapsLock键为其他功能键_将capslock 更改为其他功能-CSDN博客
x1.4 编辑二进制项Scancode Map
https://blog.csdn.net/adinlead/article/details/137359059
将值设置下面的数值并保存:
# 方案一:仅修改CapsLock键为F15
00 00 00 00 00 00 00 00
03 00 00 00 66 00 3A 00
00 00 00 00 00 00 00 00# 方案二:交换CapsLock键与右Ctrl键方案
00 00 00 00 00 00 00 00
03 00 00 00 1D E0 3A 00
3A 00 1D E0 00 00 00 00# 数值说明
0000 0000 0000 0000
0300 0000 {C1} {K1} #C1为虚拟键盘码 K1为实体键盘码
{C2} {K2} 0000 0000 #C2为虚拟键盘码 K2为实体键盘码
注意!
- 第一列可以理解为行号,不属于我们输入的内容
- 在上面的方案一中,我将CapsLock键(3A)改为了F15键(66),如果需要修改为其他按键,请自行按照参考资料中的键盘码表来修改
Caps Lock : 3A 00
F15 : 66 00