Menonaktifkan tombol tengah mouse

17

Jadi saya mencoba melihat melalui berbagai pertanyaan lain tetapi sebagian besar fokus pada penonaktifan tempel tengah mouse.

Pada dasarnya tombol tengah mouse pada Logitech G500 saya rusak, dan itu terus "mengklik" secara acak sehingga mengacaukan setiap peluang untuk melakukan pekerjaan.

Apakah ada cara untuk menonaktifkannya? Atau tidak memetakannya?

Terima kasih dan maaf jika ini duplikat.

xinput list keluaran:

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜   ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜   ↳ Turtle Beach Turtle Beach PX3 (XBOX) id=8 [slave pointer (2)]
⎜   ↳ Logitech G500s Laser Gaming Mouse id=9 [slave pointer (2)]
⎜   ↳ Logitech G500s Laser Gaming Mouse id=10 [slave pointer (2)]
⎜   ↳ Razer Razer DeathStalker id=12 [slave pointer (2)]
⎜   ↳ Razer Razer DeathStalker id=13 [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)]
    ↳ Power Button id=7 [slave keyboard (3)]
    ↳ Razer Razer DeathStalker id=11 [slave keyboard (3)]
Tom Hamilton Stubber
sumber
Jalankan perintah ini xinput list | grep 'id='dan posting output.
Helio
Untuk mouse ini, ada dua ID perangkat untuk mouse ini. Setelah menjalankan uji xinput 9, id tombol tengah mouse saya adalah 2
Tom Hamilton Stubber

Jawaban:

24

Jalankan perintah itu:

xinput set-button-map 9 1 0 3
xinput set-button-map 10 1 0 3

Penjelasan (silakan disumbangkan oleh @Yehosef ):

Angka pertama adalah id dari pointer (Anda akan sering hanya memiliki satu, dalam hal ini ada dua, 9 dan 10).

Angka-angka berikutnya adalah apa yang Anda lakukan dengan tombol mouse pertama, kedua, dan ketiga (yaitu, kiri, tengah, kanan). "1 0 3" memberitahukan bahwa tombol kiri harus melakukan klik kiri (tindakan 1), tombol tengah tidak melakukan apa-apa, dan tombol kanan harus melakukan klik kanan (tindakan 3). Jika Anda ingin membuat tombol tengah juga melakukan klik kiri Anda bisa menggunakan "1 1 3". Jika Anda ingin beralih tindakan kanan dan kiri Anda bisa menggunakan "3 0 1". Lihat https://wiki.ubuntu.com/X/Config/Input untuk info lebih lanjut.

Helio
sumber
Terima kasih banyak, mencoba mencari ini semakin membuat frustrasi.
Tom Hamilton Stubber
1
Terima kasih! Bagi mereka yang bertanya-tanya - 9/10 adalah id input mouse dan 1 0 3 adalah pemetaan untuk tombol mouse pertama, kedua, dan ketiga. Jika Anda ingin semua tombol melakukan hal yang sama, Anda dapat menggunakan 1 1 1 atau jika Anda ingin mengganti tombol kanan dan kiri Anda dapat menggunakan 3 0 1.
Yehosef
@Yehosef: Terima kasih! Saya tidak menjelaskan apa yang terjadi ketika OP menjalankan perintah. Harap buat jawaban terperinci yang baru, ping saya dan saya akan angkat suara. Ini penjelasan yang menarik.
Helio
@Helio Saya tidak punya jawaban yang berbeda - hanya lebih banyak penjelasan untuk mereka yang tertarik. Mungkin Anda ingin mengedit jawaban Anda untuk memasukkan info yang Anda bisa. Saya sedang berpikir untuk mengedit jawaban Anda - tetapi saya biasanya tidak suka ketika orang menambahkan rincian tambahan untuk jawaban saya - jadi saya menahan diri :)
Yehosef
2
Jadi bagaimana cara menentukan angka pertama. Saya menjalankan xinput list | grep 'id='dan mencari hal-hal yang paling mirip dengan mouse / touchpad saya? Adakah cara pasti untuk mengatakan apakah itu yang benar?
Kvothe
2

Instruksi berikut didasarkan pada info di Wiki Ubuntu (Gulir ke bawah ke judul "Contoh: Menonaktifkan tempel tombol mouse tengah pada mouse scrollwheel").

Pertama, tentukan id dari pointer dengan mendaftarkan perangkat input:

xinput list | grep 'id='

Dan cari baris yang berisi nama pointer Anda, juga harus ada id perangkat, tepat setelah "id =". Misalnya, id perangkat ini adalah 10:

Lenovo ThinkPad Compact USB Keyboard with TrackPoint    id=10   [slave  pointer  (2)]

Selanjutnya, dapatkan peta tombol saat ini dari perangkat itu (saya akan menggunakan id perangkat saya, yaitu 10):

xinput get-button-map 10

Keluaran:

1 2 3 4 5 6 7 8 9

Ini adalah pemetaan tombol penunjuk ke tindakan, di mana angka merupakan kode tindakan, dan tombol posisi.

Kami tertarik pada peta kedua - nomor 2 terkait dengan aksi "Klik Tombol Tengah" dan posisinya - ke tombol tengah yang sebenarnya.

Untuk menonaktifkan tombol tengah yang memicu tindakan apa pun, saya akan menggunakan perintah xinput set-button-mapdengan id perangkat dan peta yang diperbarui (kode tindakan baru adalah 0 - tidak ada tindakan). Tidak perlu meletakkan seluruh peta - peta sampai cukup tombol yang tertarik (sisanya tidak akan diperbarui):

 xinput set-button-map 10 1 0

Itu dia.

ego
sumber
Ini berfungsi untuk touchpad saya pada Lenovo Thinkpad T580 dengan Ubuntu 18.04
Russell England
0

set-button-mapmenonaktifkan fungsionalitas klik tengah. Untuk meniru klik tengah menggunakan klik kiri + kanan (sehingga Anda dapat menempelkan dan membuka-di-tab dll menggunakan mouse) tetapi menonaktifkan klik roda mouse, Anda dapat menambal libinput:

--- a/src/evdev.c   2019-09-22 17:15:13.498880044 +0300
+++ a/src/evdev.c   2019-09-22 17:15:18.062860221 +0300
@@ -1861,6 +1861,8 @@
    /* Logitech Marble Mouse claims to have a middle button */
    if (device->model_flags & EVDEV_MODEL_LOGITECH_MARBLE_MOUSE)
        libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
+
+   libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
 }

 static void
  • mkdir deb; cd deb; apt source libinput; sudo apt build-dep libinput
  • simpan tambalan di atas sebagai libinput-1.XX.Y/debian/patches/middle.diff
  • tambahkan middle.diffkedebian/patches/series
  • dpkg-buildpackage -us -uc -b
  • sudo dpkg -i ../libinput10_*.deb
  • restart Xorg atau nyalakan ulang mesin

Dan gunakan xinput listdan xinput set-prop 11 "libinput Middle Emulation Enabled" 1untuk mengaktifkan emulasi kiri + kanan. 11adalah nomor perangkat dari xinput listdan Anda dapat menambahkan perintah set-prop ke ~/.xstartup.

Atau, untuk menghindari pembangunan kembali, gunakan file libinput .quirks (belum diuji):

[My Mouse]
MatchUdevType=mouse
AttrEventCodeDisable=BTN_MIDDLE;
patraulea
sumber