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

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

TTY に切り替えて Caps Lock をオンにすると、キーボードの Caps Lock LED が点灯しません。X では正常に動作します。Caps Lock をアクティブにしてから TTY に切り替え、Caps Lock (TTY 上) を押すと、LED は点灯したままになります (TTY が Caps Lock を独自に追跡しているにもかかわらず)。つまり、TTY は LED をまったく気にしていないようです。

TTY の LED を何らかの方法で有効にできますか? Caps Lock が有効になっているかどうかわからないまま、何かを入力しなければならないのは非常に面倒です。

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

答え1

これは長年のDebianですバグ基礎となるカーネルに関連しているようですバグこれはずっと前に修正されました。問題は、Caps_Lock非 ASCII 文字では機能しなかったため、回避策として、代わりに Caps Lock キーにShift_Lockまたは をマップすることでした。CtrlL_Lock

Debian 側では、XKB キーボード記述からコンソール キーマップを作成するためにckbcompが使用する によって問題が生じます。バグ レポートで参照されている を使用した元のコードは、 の代わりに を切り替える別のコードに置き換えられているようです。興味がある場合は、Perl スクリプトで変数の使用法を検索できます。console-setupShift_LockCtrlL_Lockbroken_capsckbcomp

何らかの理由でこのコードがまだ必要かどうかはわかりませんが、バグレポートを再度報告する価値はあるかもしれません。ただし、回避策として次の行を追加する/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 の解決策を見つけました。

デビアン6

ファイルの最後に次の内容を追加します/etc/console-setup/remap.inc

keycode 58 = Caps_Lock

そして実行するsetupcon

デビアン7

スクリプトの最後に次のコードを追加します/etc/default/keyboard

dumpkeys | sed -e "s/keycode  58 = CtrlL_Lock/keycode  58 = Caps_Lock/" | \
   loadkeys 2>&1 >/dev/null

そして実行するsetupcon

keycode と 58 の間には 2 つのスペースがあることに注意してください。リダイレクトは、/dev/null煩わしいコンソール出力を抑制するだけです。

関連情報