曾经有过类似的问题- 但恕我直言,必须有一个更简单的解决方案。如果 BIOS 中的 num-lock 已打开 - 为什么它会在 linux 启动和/或 KDE/Gnome/其他启动过程中关闭?
答案1
Linux 会初始化大多数外围设备,以便它们处于已知状态。这包括键盘:Linux有关键盘的内部数据最好与LED相匹配,因此Linux所做的就是关闭LED(据我记得,CPU无法读取PC键盘上LED的状态)并声明所有 *Lock 均已关闭。
我喜欢默认打开 NumLock。对于 Linux 文本控制台,我过去所做的就是运行
for t in /dev/tty[0-9]*; do setleds -D +num <$t; done
来自启动脚本(/etc/rc.local
或者/etc/init.d/50_local_setleds
发行版喜欢放置这些脚本的任何地方)。
如今,至少在某些发行版(例如 Debian)上,您可以添加LEDS=+num
(/etc/console-tools/config
或/etc/kbd/config
取决于您拥有的发行版)。
X 窗口系统有自己的键盘处理,因此您需要单独处理它。我所做的是将大写锁定永久关闭(我的布局中没有大写锁定键)并永久打开数字锁定(我的布局中没有数字锁定键,键盘按键发送KP_1
和很快)。如果您想保留修饰符但将 Num Lock 设置为默认打开,您可以编写小程序调用XKbLockModifiers
以设置 X 内部的修饰符并XChangeKeyboardControl
设置物理 LED。
¹习惯了,因为我已经有一段时间没有使用文本控制台了。