web-dev-qa-db-ja.com

複数のスキャンコードを生成するキーの再マッピング

ThinkPad W540を持っています。キーボードのテンキーの上に4つのマルチメディアキーがあります。これらのキーのうち2つは、キーの組み合わせに対応するキーコード(および、明らかにスキャンコード)を生成します。 Win_LL そして Win_LE。つまり、生成するキーについて Win_LL
showkey --scancodesはこれを返します:

0xe0 0x5b 0x26 0xa6 0xe0 0xdb

setkeycodesコマンドは、スキャンコードを示すために、エスケープされていない1バイトまたは2バイトのエスケープされたシーケンスのいずれかを必要とし、showkeyはそれ以上の方法を提供するため、そのキーを完全に再マッピングすることはできません私のシステムの無料のキーコードの1つで、単純なsetkeycodes <scancode> <keycode>

キーボードの既存のキーの組み合わせの1つを単純に複製するのではなく、そのキーを他の何かに再マップする方法についてのヒントがあれば、本当にありがたいです。

34
moonwalker

これは、次の2つの手順で実行できます。

  1. キーの組み合わせをキャッチする
  2. さまざまなキーの入力をシミュレートします。

xchainkeys1。に使用でき、[xdotool][2]2に使用できます。

xdotoolを使用してシミュレートされた新しいキーを作成するには、keyのオプション--clearmodifiersが、元のシミュレートされた修飾キーを無効にするために重要になる場合があります。

xdotool key --clearmodifiers Shift+a

これは、テストとして大文字のAを入力する必要があります。

~/.config/xchainkeys/xchainkeys.confxchainkeysの構成では、コマンドをキーの組み合わせにバインドできます。

W-l :exec xdotool key --clearmodifiers Shift+a

これで、Winlのキーの組み合わせ(Winは左でも右でも同じ)、およびWin_L + Lを生成するキーによって、大文字のAが作成されます。

(両方の部分で利用できる他の多くのプログラムがあります。最初に、デスクトップ環境のホットキー構成を使用することができますが、私はそれをDEから独立しておくことを好みます。)

2
Volker Siegel