クリックパッド/タッチパッド下部の中央クリックを無効にする

クリックパッド/タッチパッド下部の中央クリックを無効にする

Thinkpad T480sには「タッチパッド」があります。つまり、物理専用ボタンではなくタッチパッド(部品)自体を押すことができます。

X.org 7.7を実行すると、タッチパッドの下部にマウスボタン1、2、3(左、中央、右など)として機能する水平ストライプがあります。

+-----------------+
|                 |
|                 |
|                 |
|                 |
|11111 22222 33333|
|11111 22222 33333|
+-----------------+

ボタン2を無効にしてボタン1と3の間の領域を再分配するにはどうすればよいですか?つまり、次のようなレイアウトが必要です。

+-----------------+
|                 |
|                 |
|                 |
|                 |
|11111111 33333333|
|11111111 33333333|
+-----------------+

ノートこの質問は次のように異なります。mtrack:垂直ボタン領域を取得するには?なぜなら、私はmtrackではなくXInputの文脈でこれをやろうとしているからです。また、ハードウェアはSynapticsではありません。

問題のハードウェアは、XInputによって次のように識別されます。

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=11   [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech TrackPoint                id=12   [slave  pointer  (2)]

答え1

次のように入力すると:

$ xinput get-button-map 'DLL07BF:01 06CB:7A13 Touchpad'

私は次のようになります:1 2 3 4 5 6 7

私は以下を使用しようとしています:

$ xinput set-button-map 13 1 2 0 4 5 6 7

中央クリックと右クリックを無効にします。

答え2

どの番号がどのボタンに対応するかを把握したら、中央クリックではなく左クリックを使用できます。

私の場合、2番目の数字は中央クリックにマップされます。

1 2 3 4 5 6 7
  ^

したがって、これは左クリックで置き換えられます。

xinput set-button-map x 1 1 3 4 5 6 7

xxinputから取得したIDはどこにありますか?

答え3

次のように中央の「ボタン」を使って簡単に登録を中止できます。

xinput set-button-map 11 1 2 0 4 5 6 7 8 9 10 11 12

ここで、最初のパラメータはデバイスID(この場合は上記の出力に基づいて11 xinput)を指定し、残りのパラメータはボタンを機能にマッピングします。最初の2つは左右のボタン(1と2は通常のクリックとコンテキストメニュー)、3番目は中央ボタン(通常は設定しますが、3xinput0に何でもマッピングするように指示します)、残りは他のものよりも優先されます。 (スクロールなど)。

パッドの床全体を覆うように他の2つのボタンを調整することは少し面倒で、実際には不可能です。このようなトラックパッドは、トラックパッドの下にクリックを引き起こすスイッチがある次のトラックパッドで指の位置を観察し、どのボタンで登録されるかを決定する方法で機能します。この問題は3つの方法で対処できます。

  1. パッド自体のファームウェアには設定オプションはありません。
  2. パッド自体のファームウェアには設定オプションがあります。
  3. ドライバのユーザースペース部分にあります。

2番目の方法は、デバイスが以前のPS / 2スタイルのシリアル接続を介して接続されていない場合にのみ機能します(ほとんどのThinkpadがこのように接続されている可能性があります)。 Synapticsはこれを達成するために方法3を使用し、ほとんどすべてに多くの設定オプションを提供します。 Elantechがどのように処理するかはわかりませんが、USBまたはI2C接続デバイスでない限り、おそらく最初のケースであると思います。この場合、技術的には3番目のケースです。 X用の特殊入力ドライバ。

答え4

1. ID を探す

タッチパッドの場合xinput list

$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=11   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=12   [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)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Integrated Camera: Integrated C           id=9    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=10   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=13   [slave  keyboard (3)]

明らかに「…TouchPad」というのがid=11

2. 下の画像をインポートする

IDカードを使用する場合:

xinput get-button-map 11
1 2 3 4 5 6 7 

3. 新しいボタンマッピングを設定してみてください

これで、試行錯誤を通じてボタン画像が何を意味するのかを把握する必要があります。通常、1 が左クリックの動作であると仮定できます。最初に試してみるのは、2番目の位置が下部中央ボタンであると推測することです。これを左クリックアクション(1)に置き換えます。

$ xinput set-button-map 11 1 1 3 4 5 6 7
                             ^

4. 動作していることを確認してください

ありがとうアダムの答え(これからインスピレーションを得ました。)あなたが望む結果を得るために一度だけ試してください。

+-----------------+
|                 |
|                 |
|                 |
|                 |
|11111 11111 33333|
|11111 11111 33333|
+-----------------+

つまり、下部ストリップの左2/3が左ボタンとして機能し、右3分の1が右ボタンとして機能します。

5. うまくいかないとどうなりますか?

ボタンダイアグラムの他の部分を手順3のようなキーに置き換えてください。1タッチパッドがどのように反応するかを確認してください。目的の結果が得られない場合は、ボタンマッピングを手順1で取得した値にリセットして元の動作を復元してください。

ノート

ThinkPad T570で動作しましたが、ほとんどのタッチパッドで動作します。

関連情報