Buat gerakan mouse menggulir ketika tombol tengah ditekan ke bawah

29

Di Windows, saya terbiasa mengklik tombol tengah dan menawarkan opsi "gulir cepat" ke atas atau ke bawah. Bagaimana saya bisa mendapatkan perilaku ini di Linux? Saat ini sepertinya menggunakan tombol kembali pada klik tengah sebagai gantinya.

Saya menggunakan Gnome di bawah CentOS.

seseorang1
sumber
Apa, khususnya, yang tidak berfungsi? Tikus Unix memiliki tiga tombol sejak hari pertama, jadi tombol tengah mouse biasanya berfungsi di luar kotak.
Gilles 'SANGAT berhenti menjadi jahat'
Saya terbiasa mengklik tombol tengah dan menawarkan opsi "gulir cepat" ke atas atau ke bawah. Saat ini sepertinya menggunakan tombol kembali pada klik tengah sebagai gantinya.
some1
2
Ah, jadi Anda ingin perilaku Windows tombol tengah (atau lebih tepatnya menekan roda), bukan perilaku Unix (di mana tombol tengah biasanya menempel konten clipboard). Anda benar-benar perlu mengatakan ini dalam pertanyaan Anda, kami tidak dapat membaca pikiran Anda! Ini membutuhkan dukungan dari aplikasi; aplikasi mana yang Anda gunakan? Lingkungan desktop mana (mis. Gnome, KDE, XFCE, ...)?
Gilles 'SANGAT berhenti menjadi jahat'
Yah, saya pikir akan ada panel konfigurasi di suatu tempat di mana saya bisa mengatur itu, tapi saya bahkan tidak bisa sejauh itu. Desktopnya adalah Gnome, saya berasumsi, apakah itu default? Dan masalahnya ada di firefox.
some1
1
Untuk Firefox, ada solusi dalam pertanyaan duplikat dekat .
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

26

Fitur Windows ini tidak pernah benar-benar masuk ke dunia Unix. Di dunia Unix, tujuan utama tombol mouse tengah adalah untuk menempelkan konten clipboard (atau lebih tepatnya, teks yang dipilih dengan mouse, yang disalin secara otomatis). Beberapa aplikasi lintas platform seperti Firefox dan Chrome yang mendukung tombol tengah mouse bergaya Linux di Windows dan sebaliknya, tetapi selain itu sebagian besar aplikasi tidak mendukung jenis pengguliran yang halus.

Meskipun demikian, Anda dapat mendekati level sistem. Dimungkinkan untuk mengatur tombol mouse sedemikian rupa sehingga ketika ditekan, gerakan mouse diubah menjadi peristiwa roda. Ini adalah fitur yang sama dengan yang biasa Anda gunakan, tetapi Anda cenderung menemukan gerakan berombak, karena aplikasi menerima peristiwa roda, yang biasanya ditafsirkan sebagai menggulir oleh satu baris atau kolom penuh.

Untuk bermain dengan konfigurasi ini, gunakan program xinput (saya tidak tahu apakah ada antarmuka GUI untuk itu). Pertama, jalankan perintah berikut untuk melihat nama perangkat pengarah Anda:

$ xinput --list       
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Generic USB Mouse                         id=8    [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳   USB Keyboard                            id=9    [slave  keyboard (3)]

Misalnya, dalam output di atas, perangkat penunjuk adalah Generic USB mouse. Anda dapat menjalankan perintah berikut untuk mendaftar properti yang bisa disetel:

xinput --list-props 'Generic USB Mouse'

Set properti yang Anda cari adalah yang "Evdev Wheel Emulation". Dengan pengaturan berikut, ketika tombol tengah mouse (tombol 2) ditekan, menggerakkan mouse mengirimkan peristiwa roda (4 = naik, 5 = turun, 6 = kiri, 7 = kanan).

xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation' 1
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Button' 2
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Axes' 6 7 4 5

Anda mungkin ingin mengubah parameter lain (inersia, batas waktu).

Anda dapat menempatkan perintah ini dalam skrip. Tambahkan #!/bin/shsebagai baris pertama, dan buat file skrip dapat dieksekusi (mis chmod +x ~/bin/activate-wheel-emulation.sh.). Kemudian tambahkan skrip itu ke daftar perintah untuk dijalankan saat sesi Anda dimulai ( gnome-session-propertiesmemungkinkan Anda mengonfigurasi itu).

Jika Anda memiliki akses root dan Anda ingin membuat perubahan untuk semua pengguna (dapat diterima pada mesin rumah), lebih mudah untuk melakukannya melalui file konfigurasi server X.org . Sebagai root, buat file yang disebut /etc/X11/xorg.conf.d/wheel-emulation.confberisi pengaturan untuk driver mouse . Pengaturannya sama tetapi pengaturannya sedikit berbeda.

Section "InputClass"
    Identifier "Wheel Emulation"
    MatchProduct "Generic USB Mouse"
    Option "EmulateWheel" "on"
    Option "EmulateWheelButton" "2"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
EndSection
Gilles 'SANGAT berhenti menjadi jahat'
sumber
Anda harus berhati-hati ketika mengubah parameter lainnya. Jika Anda mengurangi Evdev Wheel Emulation Timeoutparameter terlalu banyak, Anda mungkin kehilangan fungsi tombol tengah mouse (klik) sama sekali. Misalnya, jika Anda mengurangi Evdev Wheel Emulation Timeouthingga di bawah nilai Evdev Middle Button Timeoutmaka Anda tidak akan lagi menghasilkan acara Klik Tombol Tengah. Dari pengalaman pribadi, berikut ini tampaknya bekerja dengan cukup baik:
agnussmcferguss
xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Emulation' 1. xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Timeout' 50. xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Timeout' 100. Itu memberikan fungsionalitas klik dan gulir yang cukup tajam, meskipun jika Anda menemukan pemicunya terlalu cepat, maka coba Evdev Wheel Emulation Timeout
tambah
Gilles, saya pikir ada sesuatu yang salah dalam file konfigurasi xorg.conf.d yang disarankan. Ketika saya menggunakannya, X.Org saya boot ke layar hitam. Saya membuat versi yang berfungsi dengan menambahkan Device "evdev"dan menempatkan tanda kutip ganda di sekitar "EmulateWheelButton"nilai "2". (Maaf, saya tidak punya waktu untuk menyelidiki apakah satu atau kedua perubahan ini memperbaiki masalah.)
Arkanon
@Arkanon Kutipan ganda yang hilang jelas merupakan kesalahan sintaksis. Saya pikir tidak Device "evdev"masuk akal, maksud Anda Driver "evdev"? Saya pikir ini akan menjadi alternatif untuk MatchProductarahan yang menetapkan opsi untuk semua perangkat input daripada hanya mouse USB generik.
Gilles 'SANGAT berhenti menjadi jahat'
1
@ Wallalloloo Saya tidak tahu apakah Anda bisa mendapatkan efek yang tepat ini, tetapi Anda dapat meminta tombol numerik menggerakkan mouse dengan mengetik Pointer_EnableKeys(cari di google atau ajukan pertanyaan baru di sini), dan Anda dapat mengatur perilaku yang lebih menarik dengan XKB (search keybord : mousekeys, atau ajukan pertanyaan baru di sini yang menjelaskan dengan tepat apa yang Anda inginkan dan apa yang akan Anda setujui jika Anda tidak dapat melakukannya dengan tepat).
Gilles 'SANGAT berhenti menjadi jahat'
25

Ternyata ini bisa dilakukan melalui preferensi Firefox.

  1. Dari menu pull down: Edit -> Preferences
  2. Kemudian pilih tab: Lanjutan -> umum
  3. Kemudian centang "Gunakan autoscrolling"

Tangkapan layar

   ss

seseorang1
sumber
0

untuk chromeAnda dapat menggunakan ekstensi ini untuk autoscrolling

AutoScroll

jangan lupa untuk me-restart chrome setelah menginstal ekstensi

codegames
sumber