LinuxコンソールでCaps Lock LEDが機能しない

LinuxコンソールでCaps Lock LEDが機能しない

TTYに切り替えてCaps Lockをオンにすると、キーボードのCaps Lock LEDは点灯しません。 Xではうまくいきます。 Caps Lockを有効にしてTTYに切り替えてから、TTYでCaps Lockを押すとLEDが点灯します(TTYが独自のCaps Lockトレースを維持しても)。したがって、TTYはLEDにまったく気にしないようです。

何とかTTYのLEDを有効にできますか? Caps Lockが有効になっているかどうかわからず、何かを強制的に入力する必要があるのは非常に迷惑です。

私はDebian jessie(頻繁に更新されています)を使用しています。

答え1

これは長い歴史を持つDebianです。抜け穴。基本カーネルと関連があるようです。抜け穴この問題は解決されてから古くなっています。問題はCaps_LockASCII以外の文字では機能しないようですので、回避策はShift_LockまたはCtrlL_LockCaps Lockキーにマッピングすることです。

Debian側では、この問題はXKBキーボードの説明に基づくコンソールキーマップを使用して発生しましたckbcompconsole-setupバグレポートに記載されている元のコードShift_LockCtrlL_Lock。興味があれば、broken_capsPerlスクリプトでこの変数の使用を検索できますckbcomp

何らかの理由でこのコードがまだ必要かどうかわかりません。おそらくバグレポートを提出する価値があるでしょう。しかし、回避策は次の行を追加することです。/etc/kbd/remapこれにより、再起動後の問題が解決されます。

s/CtrlL_Lock/Caps_Lock/

または、次の再起動前に一時修正を実行するには、セッションで次のコマンドを実行しますtty

dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | sudo loadkeys

修正する

実際には使用できない場合にのみ使用されるようです/etc/kbd/remapsetupconより良い解決策は、次の行を置くことです/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

キーコードと58の間には2つのスペースがあります。/dev/null面倒なコンソール出力を抑制するようにリダイレクトします。

関連情報