web-dev-qa-db-ja.com

ThinkPadで中クリックスクロール/貼り付けを回避

ThinkPad USBキーボードを持っていますが、中クリックを貼り付けとスクロールの両方に使用できるようにしたいと考えています。

これは私のThinkPadラップトップで機能します。ラップトップでは、中クリックボタンを十分に短い時間押し続けると、離すと「貼り付け」と解釈されます。長く保持すると、「スクロール」と解釈されます。

問題は、USBキーボードを使用すると、中央のボタンが押されたのときに貼り付けの決定が行われるのであって、リリースされたのときではないため、中央でスクロールしようとするとクリックすると、最初に貼り付けられ、押し続けるとスクロールします(興味深いことに、現在の回避策であるカーソルを既に移動している場合、この貼り付けは行われません)。

X11に、押すのではなく中央のボタンを離して貼り付けるように指示する方法はありますか(押した時間に基づいて貼り付けるのではなくスクロールすることを決定します)?

11
Alex

これは/etc/X11/xorg.conf.d/20-thinkpad.confでうまく機能します。

Section "InputClass"
    Identifier  "Trackpoint Wheel Emulation"
    MatchProduct    "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Option      "EmulateWheel"      "true"
    Option      "EmulateWheelButton"    "2"
    Option      "Emulate3Buttons"   "false"
    Option      "XAxisMapping"      "6 7"
    Option      "YAxisMapping"      "4 5"
EndSection

重要なセクションは、USBキーボードも含むMatchProductエントリです。 /var/log/Xorg.0.logをgrepすると、(II) evdev:でキーボード製品の文字列を見つけることができます。

1
corecode

次のコマンドを使用してスクロールエミュレーションを有効にしてみてください。これは、トラックポイントキーボードのいくつかのモデルでうまく機能します。

dev="TPPS/2 IBM TrackPoint"
xinput --set-int-prop "$dev" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput --set-int-prop "$dev" "Evdev Wheel Emulation Button" 8 2
xinput --set-int-prop "$dev" "Evdev Wheel Emulation" 8 1

それが気に入らない場合は、

xinput --set-int-prop "$dev" "Evdev Wheel Emulation" 8 0

キーボードのモデルに基づいてdevを調整する必要がある場合があります。走る

xinput --list | grep TrackPoint

ポインティングデバイスの名前を確認します。

1
user3188445