Xなしの多機能CapsLock

Xなしの多機能CapsLock

単独で押したときと他のキーで押したときをCapsLock再マップしたいと思います。EscCtrlXを使用しないでください

これは前の質問と似ています(CapsLockをシステム全体のエスケープとコントロールに再マッピングする)しかし、私は具体的にXのないソリューションを探しています。

ベストアンサー1

Linuxコンソールキーマップ

altf1仮想端末(+ - +)altのキーマップを変更するには、f6loadkeysを使用してください。これは仮想端末ログインにのみ影響します。変わらないだろうXまたはX端末アプリケーションのキーマップ(例:XtermまたはUrxVT

loadkeysコマンドはrootとして実行する必要があります。それ以外の場合は、次のエラーが発生します。
Couldn't get a file descriptor referring to the console

交換するには、escape次のcaps_lock手順を実行する必要があります。

# echo keycode 58 = Escape | loadkeys -
# echo keycode 1 = Caps_Lock | loadkeys -

もう1つのオプションは+ Caps_Lockに再マッピングすることです。shiftScroll Lock

# echo keycode 69 = Num_Lock  Caps_Lock | loadkeys -

キーマップの形式は少し混乱する可能性があります。どの修飾子を押すかによって、重み付けシステムを使用します。 (Ctrl、Alt、Shiftなど)。キーボードマッピングのマニュアルページの例です。

keycode 30 = a    A    VoidSymbol    VoidSymbol   VoidSymbol  .....

と a を押すと、shiftShift キーの重みが 1 なので、2 番目の列で操作を実行します。control一方、Shiftの重みは4です。

これにより、修飾子をマッピングするときに問題が発生する可能性があります。たとえば、キーエンコーディングがcontrol機能する最初の唯一の列であるとします。押した後の重みは4で、キーを離すとオフになったとはcontrol表示されません。これで、5番目の列操作が実行される予定ですが、タスクがまだ定義されていないためです。したがって、controlキーは決して公開されません。

これがほとんどの修飾子に割り当てられた他の操作がない理由です。キーマップに1つのジョブしか定義されていない場合、そのジョブはすべてのジョブに適用されます。

この問題を解決しようとしましたが、一貫性のない結果のみが得られました。修飾子が解放される場合もあり、解放されない場合もあります。

言う

キャップロックを変更してエスケープまたは制御機能として使用することがこの方法に適しています。両方にマッピングすることはあまりありません。

重要

キーマップを台無しにした場合は、次の手順でリセットしてください。

# loadkeys -d

引用する

おすすめ記事