Cara menonaktifkan tombol Maju / Kembali pada mouse saya


36

Mouse saya memiliki fitur yang tidak menguntungkan. Di sisi kiri, tepat di tempat ibu jari saya duduk dengan sangat lembut saat saya menggunakannya, ada dua tombol yang begitu sensitif sehingga hanya kuas yang akan membuatnya klik.

Saya berbicara tentu saja tentang tombol maju / mundur yang sial, yang jika ditekan dalam browser, dapat membuat menonton video youtube selama itu jauh lebih sulit. Apakah ada cara bagi saya untuk menonaktifkannya? Apakah ini akan ditangani oleh X?


2
Saya hampir yakin bahwa Anda dapat mematikannya menggunakan xinput, tapi saya tidak tahu detailnya ...
pbm

Pertanyaan dan jawaban ini juga berlaku untuk tombol maju / mundur pada keyboard, mis. Pada keyboard Thinkpad
Daniel S. Sterling

Jawaban:


43

Mulai program xevdi terminal. Gerakkan mouse ke dalam xevjendela; Anda akan melihat banyak hal gulir oleh. Tekan setiap tombol secara bergantian. Kemudian beralih kembali ke jendela terminal dan tekan Ctrl+ C. xevmenunjukkan deskripsi setiap peristiwa input, khususnya ButtonPressdan ButtonReleaseuntuk klik mouse (Anda juga akan melihat sejumlah MotionNotifygerakan mouse dan acara lainnya).

Kemungkinan tombol maju dan mundur Anda dipetakan ke tombol mouse, mungkin tombol 8 dan 9:

ButtonPress event, serial 29, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100159, (166,67), root:(1769,98),
    state 0x0, button 8, same_screen YES

Jika itu masalahnya, remap tombol-tombol ini ke tindakan yang berbeda di browser Anda, jika Anda bisa. Sebagai alternatif, Anda dapat memetakan ulang tombol ke berbagai nomor tombol yang tidak bereaksi atau menonaktifkan seluruh tombol di tingkat sistem. Untuk melakukan ini, letakkan baris-baris ini dalam file bernama ~/.Xmodmap:

! Remap button 8 to 10 and disable button 9.
pointer = 1 2 3 4 5 6 7 10 0

Uji dengan perintah xmodmap ~/.Xmodmap. Sebagian besar lingkungan desktop dan manajer jendela menjalankan perintah ini secara otomatis saat Anda masuk; jika tidak, atur agar X berjalan ketika X mulai.

Mungkin juga mouse Anda mengirim acara keyboard ketika Anda menekan tombol-tombol ini:

KeyPress event, serial 32, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100963, (957,357), root:(2560,388),
    state 0x0, keycode 166 (keysym 0x1008ff26, XF86Back), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

Jika demikian, masukkan baris seperti ini di ~/.Xmodmap:

keycode 166 = NoSymbol
keycode 167 = NoSymbol

2
Terima kasih atas pertanyaan dan jawabannya. Kebetulan, untuk mengurangi kegilaan dari xevoutput, hanya pipa melalui grep: xev | grep -A2 ButtonPress; ini akan meninggalkan semua acara gerakan mouse, acara fokus, dll. dan hanya menunjukkan ButtonPressacara, yang Anda butuhkan di sini.
Lambart

Terima kasih! Itu membantu dalam beberapa detik! :-)
Brian Haak

Ini juga berfungsi di Wayland!
Ray Foss

2

Anda dapat menggunakan xevuntuk menemukan tombol mana yang memetakan tombol dan menggunakan kode di bawah ini (dalam $ HOME / .xsessionrc) untuk memetakannya ke sesuatu yang tidak Anda gunakan.

xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'

Atau, Anda harus dapat melakukannya dari GUI yang Anda gunakan Gnome / KDE atau desktop modern lainnya.

Namun pilihan lain adalah meretas xorg.conf untuk menghapus definisi tombol.


1

hanya perintah cepat untuk memperbaikinya, tidak jauh berbeda dari jawaban lain:

xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 0 0 0 0" #the fix

pengujian

xmodmap -pp # check the changes
xterm -e xev # test the nullified buttons

# to restore in case you are going to play some game that uses them
xmodmap -e "pointer = 1 2 3 4 5 6 7 8 9 10 11 12 13"

Anda dapat menempatkan cmd perbaikan di aplikasi startup.

lebih baik menggunakan xdotool untuk memeriksa apakah jendela yang aktif adalah browser Anda dan panggil xmodmap jika diminta untuk menonaktifkan / mengaktifkan, tetapi itu membutuhkan beberapa skrip:>

Saya tidak melihat alasan untuk mengaktifkan tombol di atas 7, ada alasan?


0

Dapat dilakukan dengan file konfigurasi xorg

Berikut adalah contoh yang menonaktifkan gulir horizontal (Simpan file baru dan reboot)

nano /etc/X11/xorg.conf.d/40-libinput-mouse-left-right.conf

Section "InputClass"
        Identifier "Logitech catchall"
        MatchIsPointer  "on"
        Driver "libinput"
        Option "HorizontalScrolling" "false"
EndSection

Perintah lain yang bermanfaat

xinput list
xinput list-props 15

Sekarang untuk pertanyaan ini, file konfigurasi xorg dapat digunakan untuk memetakan kembali tombol di sini sebagai contoh

Section "InputClass"
    # ...
    Option "ButtonMapping" "1 9 3 4 5 6 7 8 2"
    # ...
EndSection

0

Jika Anda mencoba xmodmapperintah (pada X, tidak Weyland) dan Anda mendapatkan kesalahan BadValue (integer parameter out of range for operation)di X_SetPointerMapping, Anda mungkin perlu menggunakan xinputsebagai gantinya. Jalankan xinputtanpa parameter untuk mendapatkan ID perangkat (cari satu untuk penunjuk) lalu jalankan

xinput set-button-map [pointer-device-id] 1 2 3 4 5 0 0 0 0

Dalam kasus saya, mouse saya adalah perangkat # 4 dan saya perlu membuat tombol 6 dan 7 menjadi 8 dan 9 untuk maju dan kembali bekerja sehingga saya menggunakan

xinput set-button-map 4 1 2 3 4 5 8 9 8 9

(Saya terus tombol 8 dan 9 juga dipetakan ke 8 dan 9 kalau-kalau saya mengubah tikus.)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.