web-dev-qa-db-ja.com

UbuntuでのCtrl + CapslockとAlt + Capslockの再マッピング

Capslockを無効にして、次の再マップを作成しようとしています。

Ctrl+Capslock => Capslock
Alt+Capslock => Escape (since my Escape key is broken)

現在、Xmodmapを使用しようとしています。

私は次のものしか持っていません:

keycode 66 = NoSymbol Caps_Lock

これにより、Capslockが無効になり、Shift + CapslockがCapslockにマップされますが、必要なのはShift + CapslockではなくCtrl + Capslockです。

Alt + CapslockをEscapeキーにマップする方法がわかりません。

Xmodmapを使用するのに答えは必要ないことを明確にしたいと思います。どの方法でも問題ありません。

6
qtwtetrt

Xmodmapはあなたが求めていることを行うことはできませんが、あなたを近づけることができます。

キーの動作を変更するための基本的な構文は次のとおりです。

xmodmap -e "keycode  KEYCODE = KEYSYMBOL1 KEYSYMBOL1 KEYSYMBOL3 KEYSYMBOL4"
xmodmap -e "keysym KEYSYMBOL = KEYSYMBOL1 KEYSYMBOL1 KEYSYMBOL3 KEYSYMBOL4"

どこ

  • KEYSYMBOL2を押しながらキーを押すと、トリガーされます Shift
  • KEYSYMBOL3を押しながらキーを押すと、トリガーされます ModeSwitch
  • KEYSYMBOL4を押しながらキーを押すと、トリガーされます ShiftModeSwitch
  • KEYSYMBOL1は、上記のいずれでもないキーを押すとトリガーされます。
  • ModeSwitch です AltGr デフォルト(一部のキーボードレイアウトでのみ機能します)。

設定できません Ctrl または Alt になるために ModeSwitch キーは2つの異なる修飾子として機能できないためです。

しかし、私たちはcanターン CapsLock に ModeSwitch キー:

xmodmap -e "keysym Caps_Lock = Mode_switch Mode_switch"

再マップするには CapsLockCtrl に CapsLock キーを押して、次のコマンドを実行します。

xmodmap -e "keysym Control_L = Control_L Control_L Caps_Lock"
xmodmap -e "keysym Control_R = Control_R Control_R Caps_Lock"

注意してください CapsLock ここでは修飾キーなので、最初にこのキーを押す必要があります。

私たちできません再マップ CapsLockAlt または CapsLockSuper に Escape 同じように、 Alt そして Super 単独で押すとモディファイアキーとして使用すると、さまざまな機能を果たします。

他のすべてのキーは正常に機能します。例:

  • ために CapsLock` (標準の米国レイアウト)、使用

    xmodmap -e "keysym Grave = Grave asciitilde Escape"
    
  • ために CapsLockSpace、 使用する

    xmodmap -e "keysym space = KP_Space KP_Space Escape"
    

チップ:

  • 再マッピングを永続的にするには、ファイルを作成/編集します.gnomercをホームフォルダに保存し、対応するコマンドをそのフォルダに保存します。

  • すべての再マッピングを元に戻すには、単に実行します

    setxkbmap
    
2
Dennis