タッチパッドの右クリックが機能しない-タッチパッドのボタンを有効にして2本の指でクリックし続ける方法
タッチパッドの右ボタンは左クリックのみを行います。タッチパッドの右下隅を押すと、左クリックが実行されます。
タッチパッドをWindowsのように動作させるにはどうすればよいですか。左側の物理ボタンを押して左クリックし、右のハードウェアボタンを押して右クリックします。
また、2本指タップを使用して右クリックし、ボタンを押すためにタッチパッドの中央のボタン領域を無効にしたいので、左クリックと右クリックの領域しかありません。
Ubuntu 18.04搭載のJetson Nanoで、Logitech TouchPadを接続する同様の問題に遭遇しました-これが私のために動作させるために実行したことです...
ターミナルウィンドウでxinput cliを使用します-最初にタッチパッドのIDを見つけます:
xinput list
私の場合、タッチパッドはID 10で表示されます。タッチパッドの設定を取得します。
xinput list 10
私の場合、次のように表示されます。libinput tapping enabled(360):は、コマンドIDが360であり、タップが有効になっていないことを意味します。有効にしましょう。
xinput set-prop 10 360 1
この後、1本の指(深押しではなく)で少しクリックして左クリックし、2本の指で右クリックし、3本の指で中クリックします。
他の設定も試すことができます。たとえば、慣れているナチュラルスクロール(コンテンツのスクロールバーではなく、スワイプでコンテンツが移動する)も設定します。
xinput set-prop 10 286 1
私のために働いた-それもあなたのために働くことを願って!
このソリューションは、X11モード(Waylandではない)のFedora 31 Workstationでテストされており、Ubuntu 18.04+および同じソフトウェア(X11、GNOME、libinput)を使用する他のディストリビューションと互換性があるはずです。
1.クリックエミュレーションを有効にする
_Settings -> Devices -> Mouse and Touchpad
_に移動して_Tap to click
_を有効にします
2. SoftButton Areasを介した右クリックエミュレーションを有効にし、中央ボタンエミュレーションを有効にします。
注:中ボタンのエミュレーションが有効になり、ソフトボタンの中ボタン領域を無効にするになります。左+右クリックをミドルクリックにマッピングします。
次のコードを_/etc/X11/xorg.conf.d/10-clickpad.conf
_に入れます(ルートとして)
_Section "InputClass"
Identifier "libinput touchpad catchall"
Driver "libinput"
Option "MiddleEmulation" "true"
Option "ClickMethod" "buttonareas"
EndSection
_
3. GNOMEのデフォルトの動作をソフトボタン領域に設定します
注:オプションの場合がありますか?
端末でこれを実行します(通常のユーザーとして):
_gsettings set org.gnome.desktop.peripherals.touchpad click-method 'areas'
_
4.再起動
再起動して、すべてが期待どおりに機能することをテストします。
- どこでもタップ:左クリック
- 2本指でどこでもタップ:右クリック
- 左下を押す:左クリック
- 右下を押す:右クリック
- 下中央を押す:中央クリックなし
- 左下+右を押す:中クリック
トラブルシューティング:
ここでの根本的な問題は、ほとんどのタッチパッドにハードウェアボタンが1つしかないため、入力を処理するソフトウェアは、ボタンを押したときの指の位置に基づいて、そのボタンプレスを左クリックまたは右クリックにマッピングする必要があることです。
ボタンのマッピングを確認する
ボタンを押すと何にマップされるかを確認するには:
- _
xinput list
_を実行して、入力デバイスの名前を取得します - _
xinput test 'device_name_or_id'
_を実行して、デバイスイベントをテストします。
デバイス名のスペースやその他の特殊文字は、エスケープするか、一重引用符で囲む必要があることに注意してください。 _CTRL+C
_を押してコマンドをキャンセルします。
出力は、右クリックの場合は_button press 3
_、左クリックの場合は_button press 1
_になります。
中央ボタンのクリックは、中央を押すことで引き続きエミュレートされます
真ん中のボタンのエミュレーションがenabledであることを確認し、実行によってソフトウェアボタン領域が無効になるようにします。
_xinput list-props '<device_name_or_id>' | grep 326
_
出力はlibinput Middle Emulation Enabled (326): 1
になるはずです。そうでない場合、タッチパッドはlibinputと互換性がないか、デフォルトで別のドライバーを使用しています。