大写锁定导致在 Linux 控制台上不起作用

Kri*_*itz 7 linux console capslock

当我切换到 TTY 并打开大写锁定时,键盘上的大写锁定 LED 没有打开。在 X 上它工作正常。当我激活大写锁定,然后切换到 TTY,然后按下大写锁定(在 TTY 上)时,LED 保持亮起(即使 TTY 保持自己对大写锁定的跟踪)。因此,TTY 似乎根本不在乎 LED。

我可以以某种方式启用 TTY 上的 LED 吗?在不知道大写锁定是否被激活的情况下被迫输入一些东西是非常烦人的。

我正在使用 Debian jessie(经常更新) arch:amd64

Gra*_*eme 10

这是一个长期存在的 Debian错误。它似乎与一个早已修复的底层内核错误有关。问题似乎Caps_Lock对非 ASCII 字符不起作用,因此解决方法是映射Shift_Lock或CtrlL_Lock大写锁定键。

在 Debian 方面,问题是由ckbcompwhich创建的,用于console-setup从 XKB 键盘描述创建控制台键盘映射。请注意,错误报告中引用的原始代码Shift_Lock似乎已被替换为不同的代码所CtrlL_Lock替代。如果您有兴趣,可以broken_caps在ckbcompPerl 脚本中搜索该变量的用法。

我不知道出于任何原因是否仍然需要代码,也许值得提交错误报告。但是,解决方法是输入以下行,/etc/kbd/remap并在重新启动后修复它:

s/CtrlL_Lock/Caps_Lock/
Run Code Online (Sandbox Code Playgroud)

或者在下次重新启动之前进行临时修复,请在tty会话中运行以下命令:

dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | sudo loadkeys
Run Code Online (Sandbox Code Playgroud)

更新

似乎/etc/kbd/remap只有setupcon在不可用时才实际使用。更好的解决方法是将以下行放入/etc/rc.local:

dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | loadkeys
Run Code Online (Sandbox Code Playgroud)