
當我切換到 TTY 並打開大寫鎖定時,鍵盤上的大寫鎖定 LED 沒有打開。在X上它工作得很好。當我啟動大寫鎖定,然後切換到 TTY,然後按大寫鎖定(在 TTY 上)時,LED 保持亮起(即使 TTY 保留自己的大寫鎖定追蹤)。所以看來 TTY 根本不關心 LED。
我可以以某種方式啟用 TTY 上的 LED 嗎?被迫輸入某些內容而不知道大寫鎖定是否已啟動是非常煩人的。
我正在使用 Debian jessie(經常更新) arch:amd64
答案1
這是一個歷史悠久的 Debian漏洞。它似乎與底層內核有關漏洞這早已被修復了。問題似乎是Caps_Lock
不適用於非 ASCII 字符,因此解決方法是將Shift_Lock
或映射CtrlL_Lock
到大寫鎖定鍵。
在 Debian 方面,該問題是由ckbcomp
用於console-setup
根據 XKB 鍵盤描述建立控制台鍵盤映射而建立的。請注意,錯誤報告中引用的原始代碼Shift_Lock
似乎已被替換為不同的代碼,而是切換為CtrlL_Lock
。如果您有興趣,可以broken_caps
在 Perl 腳本中搜尋該變數的用法ckbcomp
。
我不知道該程式碼是否出於任何原因仍然是必要的,也許值得提交錯誤報告。但是,解決方法是添加以下行/etc/kbd/remap
,重新啟動後應該可以修復該問題:
s/CtrlL_Lock/Caps_Lock/
或者,要在下次重新啟動之前進行臨時修復,請在會話中執行以下命令tty
:
dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | sudo loadkeys
更新
似乎只有在不可用/etc/kbd/remap
時才實際使用。setupcon
更好的解決方法是將以下行放入/etc/rc.local
:
dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | loadkeys
答案2
我找到了 Debian 6 和 Debian 7 的解決方案。
Debian 6
將以下內容放在文件末尾/etc/console-setup/remap.inc
:
keycode 58 = Caps_Lock
然後運行setupcon
Debian 7
將以下內容放在腳本末尾/etc/default/keyboard
:
dumpkeys | sed -e "s/keycode 58 = CtrlL_Lock/keycode 58 = Caps_Lock/" | \
loadkeys 2>&1 >/dev/null
然後運行setupcon
請注意,keycode 和 58 之間有兩個空格/dev/null
。