web-dev-qa-db-ja.com

キーボードでキーを別のキーにマッピングする方法は?

私のスペースバーボタンはもう機能していませんので、スペースボタンを押すことをシミュレートするためにその動作を別のキーに変更したいので、スペースボタンを正しいalt/windowsキーにマップする方法???

7
Black Block

文字の再マッピングや修飾子の変更など、キーボードに大きな変更を加えるには、xmodmapユーティリティを使用する必要があります-man xmodmapを参照してください。変更を実行するには、いくつかの方法があります。

  • コマンドラインから

    xmodmap -e "your commands"
    
  • または、コマンドを.xmodmaprcなどのファイルに書き込んでから、ログイン項目または.bashrcで実行します

    xmodmap .xmodmaprc
    

    〜/ .xmodmapファイルを使用すると、ログイン時に自動的に実行されます。

AltおよびSuper(Windowsキー)は修飾子であり、システムに対して特別に動作します。他の何かを再マップする前に、キーを修飾子からマップ解除する必要があります。スペースバーは通常のキーと見なされます。

修飾子のマッピング解除

ターミナルウィンドウを開きます(慣れていない場合は、Ctrl-Alt-T)。

コマンドxmodmap -pmを実行して、システム上の修飾キーのリストを取得します。出力の左端の列は、システムで使用可能な修飾子のリストです。他の列には、keysym (keycode)によってこれらの修飾子にバインドされたキーのペアがリストされます。たとえば、私の出力の1行は

mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)

キーコードは物理キーに対応し、キーボード間で(仮に)異なる場合があります。 keysymはキーの「名前」です。キーが印刷可能な文字の場合、名前は印刷された文字に対応します。

これで、対応する修飾子からキーをマップ解除するために必要なものが手に入りました。 Alt_Rで作業しているふりをするつもりです。

Xmodmapコマンドを実行します(上部のいずれかの方法で)。

remove mod1 = Alt_R

スペースバーを再マップする

次に、スペースバーが何であるかを知る必要があります。ターミナルウィンドウでxmodmap -pkeを実行します。これにより、キーボード上のすべてのキーがマップされているものが出力されます。その4つまたは5つの画面いっぱいのどこかがスペースバーへの参照です。キーをマップするために名前が必要です。

ネタバレ警告:スペースバーの名前はspace

Alt_Rという名前のキーはまだありますが、何もしません。その名前を使用して、スペースバーに再マップできます。このxmodmapコマンドを実行します。

keysym Alt_R = space

これらをテストしているときに、Alt_Rの名前をすでに変更している可能性があります。誤って文字「a」にリマップした可能性があります。 「a」を他の何かに再マップしたくないのは、その名前のキーの1つがまだ必要だからです。そのような状況に陥った場合でも、キーコードでAlt_Rを参照できます。私のキーボードでは、これは0x6cであることに注意してください。あなたとは違うかもしれません。このxmodmapコマンドを使用して変更できます。

keycode 0x6c = space

幸運を!

9
pconley