Googleはこのトピックを検索しましたが、多くの人が提案しました。
setxkbmap -option ctrl:nocaps
この行を私に入れました.bashrc
。ただし、このキーバインディングは通常自動的に無効になります。別のことをしているとき、このようなことがランダムに発生します。 vimを使用すると、これは最も面倒なことですが、多くのキーマップが影響を受けます。前のコマンドを再実行するには、端末を開く必要があります。これにより、再び無効になるまで任意の時間動作します。
同じ経験を共有する人はいますか?このマッピングを永久に維持する方法は?
入力エンジンを変更するたびに、ibusがキーマップをリセットすることを最終的に知りました。
答え1
明確にすると、これはX11でのみ機能します。そうですか?
端末を起動するたびにキーはマッピングされません。これは、端末自体の構成の一部ではなく、X構成の一部です。
ファイルを作成し、~/.Xmodmap
次のコンテンツを追加します。
remove Lock = Caps_Lock
keysym Caps_Lock = BackSpace
これはCapsLockをバックスペースにマップします。
もちろん、必要に応じてコントロールにバインドすることもできます。
コメントから:ibusは入力を変更したときにこの設定をリセットできます。
答え2
ちなみに私はこの問題を解決しようとしており、他のスレッドで解決策を提案しました。 Linux MintのコントロールへのCaps Lockのマッピング
答え3
はい、「setxkbmap -option ctrl:nocaps」が突然動作を停止したという同じ問題がありました。
次のコマンドはキーを永久に再マップし、私のラップトップで正しく機能します。
sudo setkeycodes 3a 29
スキャンコード(3a)またはキーコード(29)が異なる場合は、次の方法を使用して正しいコードを見つけることができます。
sudo evtest
しかし、何らかの理由でUSBキーボードでは動作しません。以下はUSBキーボードに適用されます。 https://github.com/stefansaraev/keytable
git clone https://github.com/stefansaraev/keytable.git
cd keytable/
make
sudo ./keytable -k 0x70039=29 --device /dev/input/event5
前と同じ方法で正しいデバイス、スキャンコード(70039)、またはキーコード(29)を入手してください。いくつかの参考資料: