如何在 Windows 中获得与此 linux 功能等效的功能:
setxkbmap -option numpad:mac
从文档:
numpad:mac 数字键盘键始终输入数字(如在 Mac OS 中)
这意味着无论是否按下 NumLock 键和 NumLock LED 状态如何,键盘始终输入数字,而不是光标移动。
我为 Windows 找到的最接近的东西是关闭 NumLock 键(使用应用程序或直接使用注册表项键盘布局/“扫描码映射”),但这只是给出了我从未按下 NumLock 键的状态。数字键盘模式仍然可以通过软件更改,在启动时从 BIOS 继承等。
作为“奖励”,我还想关闭 LED。
所以:LED 熄灭,按键输入数字,总是
我想要类似的行为,并用于
HKLM\...\Keyboard Layout\ScanCodeMap
将顶行数字键的扫描码映射到数字键盘键,因为顶行键不受NumLock
. 该重映射包含在此.reg
文件中:使用这个重新映射,状态
NumLock
没有区别,也没有区别,CapsLock
但是如果您按住Shift
键,您将获得与顶行键关联的符号。如果您关闭
NumLock
viaInitialKeyboardIndicators
,您可以包括将扫描码映射Null
到NumLock
密钥:这应该可以
NumLock
防止按下按键时指示灯亮起 。(这里没有指示灯,所以无法测试)。它可能仍然可以通过软件打开,但这应该涵盖“正常”情况。合并上述任一
.reg
文件后,注销/登录或重新启动以使更改生效在旁边:
这些
ScanCodeMap
值是由这个PowerShell脚本创建的。它允许(相对)轻松地编辑扫描码数组,以根据需要添加和删除重新映射。因为它正在编辑HKLM
配置单元,所以您必须拥有Admin
权限并从Admin PowerShell控制台运行 scfipt。认识一下 NumLock Enforcer,它是由一位名为“lanux128”的捐赠编码员编写的。
这是一个AutoHotkey脚本,它将强制您的 NumLock 始终处于打开状态,无论某些程序是否已将其设置为关闭。它通过每 500 毫秒检查一次状态来完成此操作。
这是脚本(注意分号开始注释):
安装 AutoHotKey 后,将上面的文字放在一个名为的文件中
NumLock Enforcer.ahk
,然后双击它进行测试。您可以通过右键单击托盘栏中的绿色 H 图标并选择退出来停止脚本。要让它在登录时运行,请将其放在位于 的 Startup 组中C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
。