web-dev-qa-db-ja.com

セカンダリデバイスのリマップボタン

私はこの問題に似た多くの議論を見てきましたが、まだこれを機能させることができていません。

私は最近、左の小指をひどく骨折しました。 Fragpedal Quad を取得し、ペダルをcontrolやalt、tabなどに再マッピングしようとしています。

デバイスはマウスのように動作します-デフォルトでは、ペダルは上にスクロール、下にスクロール、右クリック、左クリックにマップされます。 xinputを実行すると、次の結果が得られます。

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Good Work Systems, Inc. GWS IDI Device    id=9    [slave  pointer  (2)]
⎜   ↳ PixArt USB Optical Mouse                  id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Good Work Systems, Inc. GWS IDI Device    id=10   [slave  keyboard (3)]
    ↳ Lenovo Lenovo Black Silk USB Keyboard     id=12   [slave  keyboard (3)]
    ↳ Lenovo Lenovo Black Silk USB Keyboard     id=13   [slave  keyboard (3)]

ペダルは「Good Work Systems」デバイスです。

私がこれを私が望むように振る舞わせるのに一番近かったのは、.xbindkeys構成を次のように作成および編集することでした:

# Copy
"xte 'keydown Control_L' 'key C' 'keyup Control_L'"
  b:5

# Cut
"xte 'keydown Control_L' 'key X' 'keyup Control_L"
  b:4

# Paste
"xte 'keydown Control_L' 'key V' 'keyup Control_L'"
  b:3

# Select All
"xte 'keydown Control_L' 'key A' 'keyup Control_L'"
  b:1

しかし、これは私の通常のマウスボタンにも影響します。デバイスごとのキーマッピングを指定するにはどうすればよいですか?

4
sixtimes

デバイスのマウスボタンを未使用のマウスボタンにマップし、xbindkeysを使用してそれらを参照します。

  1. 使用する xinput listを使用して、デバイスのIDを見つけます。
  2. 使用する xinput set-button-mapボタンを他のマウスボタンに再マップします。たとえば、xinput listは、デバイスのIDが15であり、デバイスに4つのボタンがあることを示します。xinput set-button-map 15 10 11 12 13。デバイス15のマウスクリックをb:10、b:11、b:12、b:13に設定しました。
  3. .xbindkeysrcを更新して、これらのボタンを目的のショートカットに再マッピングします。
3
old_warbaker

これは現時点で2年前であり、すでに回答済みですが、今後の参考のために、xteへの呼び出しでデバイスIDを指定できます。

# Copy
"xte -i 9 'keydown Control_L' 'key C' 'keyup Control_L'"
  b:5

# Cut
"xte -i 9 'keydown Control_L' 'key X' 'keyup Control_L"
  b:4

# Paste
"xte -i 9 'keydown Control_L' 'key V' 'keyup Control_L'"
  b:3

# Select All
"xte -i 9 'keydown Control_L' 'key A' 'keyup Control_L'"
  b:1

このshouldは、-iとして指定されたIDで識別される単一のデバイスへの変更を制限します。これらのIDはスタートアップごとに異なる方法でマッピングできるため、変更をスクリプト化して、手動で実行できるようにすることができます。

こちらもご覧くださいhttps://askubuntu.com/a/492745

0
zerobandwidth