Pengguliran klik tengah dengan ThinkPad / hindari menempel

11

Saya memiliki keyboard USB ThinkPad, dan saya ingin dapat menggunakan klik tengah untuk menempel dan menggulir.

Ini berfungsi di laptop ThinkPad saya. Di laptop, jika tombol klik tengah dipegang untuk waktu yang cukup singkat, maka ketika dilepaskan ia ditafsirkan sebagai " tempel ." Ketika ditahan lebih lama, itu ditafsirkan sebagai " gulir ."

Masalahnya adalah, menggunakan keyboard USB, keputusan untuk menempel terjadi ketika tombol tengah ditekan , bukan ketika dilepaskan , jadi jika saya mencoba menggulir dengan klik tengah, itu akan menempel terlebih dahulu, lalu gulir ketika saya terus memegangnya bawah (walaupun menariknya, pasta ini tidak terjadi jika saya sudah memindahkan kursor, yang merupakan solusi saya saat ini).

Apakah ada cara untuk memberitahu X11 untuk menempel pada rilis tombol tengah daripada menekan (dengan keputusan untuk menggulir daripada menempel yang dibuat berdasarkan pada berapa lama itu ditahan)?

Alex
sumber
2
Sungguh mengejutkan mendengar bahwa perilaku X11 akan berbeda tergantung pada mouse yang digunakan. Saya sarankan menggunakan xevuntuk menonton ButtonPressdan ButtonReleaseacara untuk melihat apakah tombol laptop Anda benar-benar mengirim acara yang Anda pikir pada saat Anda pikir itu. Mungkin saja ia melakukan beberapa keajaibannya sendiri dan "berbohong" kepada X11 tentang kapan tombol ditekan dan dilepaskan. Ngomong-ngomong, tampaknya normal bahwa pasta terjadi segera setelah menekan tombol 2, bukan melepaskan .
Celada
1
Saya juga ingin tahu bagaimana melakukan ini karena saya menggunakan Keyboard Bluetooth Trackpoint Lenovo.
Justin N
Keyboard USB itu, model persisnya apa? Apakah memiliki touchpad "nyata" atau yang disebut clickpad (tanpa tombol fisik)? Juga, distro dan lingkungan desktop apa yang Anda gunakan? Apakah ada konfigurasi xorg khusus di tempatnya (/etc/X11/xorg.conf dan di /etc/X11/xorg.conf.d/)? Anda dapat menemukan beberapa petunjuk di sini: askubuntu.com/questions/2557/thinkpad-middle-button-scrolling dan untuk clickpad di sini: askubuntu.com/questions/380825/…
doktor5000
1
Adakah pembaruan tentang ini? Saya mengalami masalah yang sama dengan keyboard Lenovo eksternal.
languitar 3-15
FWIW, saya punya dua model keyboard trackpoint bluetooth, dan satu memiliki masalah ini. xevmenunjukkan bahwa ButtonPressuntuk tombol 2 segera setelah saya klik, maka ButtonReleaseketika saya mulai gulir. Apa yang harus terjadi adalah bahwa tidak satu pun dari peristiwa ini yang dihasilkan sampai tindakan disatukan dengan memindahkan trackpoint (dalam hal ini baik tekan atau relase dihasilkan) atau tombol 2 dilepaskan (dalam hal ini, kedua peristiwa dikirim pada rilis).
stewSquared

Jawaban:

1

Ini bekerja dengan baik untuk saya di /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

Bagian penting adalah MatchProductentri, yang juga termasuk keyboard USB. Anda dapat menemukan string produk keyboard /var/log/Xorg.0.logdengan mengambilnya (II) evdev:.

corecode
sumber
1

Coba aktifkan emulasi gulir dengan perintah berikut, yang bekerja dengan baik pada beberapa model keyboard trackpoint:

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

Jika Anda tidak suka itu, Anda dapat membatalkannya dengan

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

Anda mungkin perlu menyesuaikan dev berdasarkan model keyboard Anda. Lari

xinput --list | grep TrackPoint

untuk melihat apa yang disebut perangkat penunjuk Anda.

pengguna3188445
sumber