在Linux中默认启用num-lock


Answers:


9

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窗口系统具有自己的键盘处理方式,因此您需要单独处理。我要做的是将Caps Lock永久关闭(我的布局中没有Caps Lock键),将Num Lock永久性打开(我的布局中没有Num Lock键,键盘按键发送KP_1和依此类推)。如果要保留修改器但将Num Lock 设为默认值,则可以编写一个小程序来调用XKbLockModifiers以在X内设置修改器并XChangeKeyboardControl设置物理LED。

¹ 过去是因为我有一段时间没有使用文本控制台了。


您提到控制台-旧的Linux内核中是否没有用于numlock的内核选项?0.x或1.y?无论如何-numlock是否没有Xconfig选项?
尼尔斯,

@Nils Mmmmm,也许我不记得了。我不认为X有什么用,但是我在XKB出现之前就了解了X中的键盘,因此我可能会错过20世纪后期的一些新奇事物。
吉尔(Gilles)“所以,别再邪恶了”,

1
我将添加一个说明,在Debian上,启动后的numlock设置由kbd创建kbd初始化脚本的软件包完成。
carandraug 2014年

1
@Rodrigo操作系统可以知道密钥的状态。据我所知,它是LED的状态-它只能记住它上一次打开或关闭LED的状态,但是在操作系统更改(例如BIOS→引导加载程序)中不起作用→Linux)。
吉尔斯(Gilles)'所以

1
@Rodrigo该问题涉及从操作系统获取信息的应用程序。您要讨论的部分是操作系统如何获取信息。
吉尔(Gilles)'所以
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.