Bagaimana saya bisa mematikan fungsionalitas "tempel tombol tengah mouse" di semua program?

43

Saya tidak suka memiliki pasta tombol tengah mouse, karena saya sering berakhir dengan kode yang tidak dapat dikompilasi di Eclipse. Bagaimana saya bisa mematikan ini (di semua program)? Saya menjalankan Fedora.

derekhh
sumber
4
Klik tengah untuk menyisipkan pilihan pada dasarnya adalah bagian dari cara X11 bekerja; lihat http://www.jwz.org/doc/x-cut-and-paste.html .
ephemient
1
@Gilles: Di semua program. :)
derekhh
4
Saya belum melihat cara sepele untuk melakukan ini tanpa nuking tombol tengah mouse sama sekali atau peretasan X atau mengacaukan clipboard normal juga, jadi "solusi" yang disarankan saya adalah hanya belajar menggunakan tombol tengah mouse dengan benar. Sangat mudah untuk dapat menyorot URL teks di mana saja dan pergi ke sana dengan mengklik tengah di jendela browser (FF) saya.
jw013
4
@ephemient "Klik tengah untuk memasukkan pilihan pada dasarnya adalah bagian dari cara X11 bekerja" ... jauh ketika kami memiliki Sun Optical Mouse yang membutuhkan sekitar 1 pon tekanan pada tombol tengah untuk mendapatkan sinyal. Hari ini tombol tengah ada di pemicu rambut dan terlebih lagi digunakan sebagai roda, "fundamental" ini harus pergi (karena cukup banyak hal "mendasar" dalam X btw.)
David Tonhofer
3
Saya merasa kemampuan untuk menonaktifkan apa pun yang Anda inginkan adalah aspek Linux yang bahkan lebih mendasar.
Wayne Bloss

Jawaban:

24

Solusi ini akan bekerja secara global dan menjaga fungsionalitas mouse tengah.

Memasang xbindkeys xsel xdotool

Tempatkan ini ~/.xbindkeysrc

"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release

Muat ulang xbindkeys -p

Jalankan xbindkeyssaat startup, pkill xbindkeysuntuk berhenti.

Radivarig
sumber
7
Terima kasih!!! Saya tidak percaya satu-satunya solusi yang berhasil adalah 0 suara selama 2 tahun.
Retr0id
4
Akhirnya, solusi yang bekerja untuk saya di Ubuntu Mate 17.10. Terima kasih!
Dmitry Frank
5
@spiil Saya mencoba solusi ini dan mencapai efek yang Anda inginkan. Saya mengeklik tengah di bidang teks dan tidak ada yang terjadi, tetapi mengeklik tengah pada tautan dan mengklik tengah untuk menutup pekerjaan tab di Chromium, Firefox, dan Waterfox (tiga browser yang saya uji).
user7214865
4
Menggulir dengan mengklik dan menahan tombol tengah tidak lagi berfungsi dengan solusi ini: /
Marc.2377
2
Anda seorang legenda. Saya menggunakan tombol tengah pada trackball saya untuk keperluan scrolling, tetapi fungsi paste membuat hidup saya sengsara. Sekarang dalam warna-warna cerah penuh lagi, terima kasih!
redsPL
16

Di Fedora 24 Anda dapat menginstal gnome-tweak-toolmenggunakan perintah berikut:

$ sudo dnf install gnome-tweak-tool

Buka gnome-tweak-tooldan buka tab "Keyboard dan Mouse" dan nonaktifkan "Middle-click-Paste".

Pawan Kumar
sumber
4
Ini juga tersedia di Ubuntu 16.04: sudo apt-get install gnome-tweak-tool
Tyranin
1
Ini hanya mempengaruhi beberapa program seperti gedit, gnome-terminal dan beberapa lainnya. Lihat juga komentar di askubuntu.com/questions/4507/… .
Kvothe
11

Menempelkan tombol tengah adalah standar antarmuka pengguna unix, seperti memiliki tombol kiri memilih atau mengaktifkan, dan tombol kanan melakukan sesuatu yang lain (seperti memperluas, beralih, menyalakan menu, ...). Anda akan menemukannya pasti akan menempel di sebagian besar aplikasi unix.

Jika masalah Anda adalah mouse Anda terlalu sensitif ketika Anda meletakkan jari Anda pada roda, saya sarankan untuk mendapatkan mouse yang lebih baik. Ada banyak tikus murah yang layak.

Anda dapat menetapkan kembali tombol mouse 2 ke nomor yang berbeda. Aplikasi mengidentifikasi tombol kiri, tengah dan kanan masing-masing sebagai tombol 1, 2 dan 3. Masukkan kode ini dalam skrip yang dijalankan ketika sesi X Anda dimulai (bagaimana melakukannya tergantung pada lingkungan desktop Anda).

echo 'pointer = 1 6 3 4 5' | xmodmap -
Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
Tidak bekerja. pastebin.com/0DYYMDLS
balki
@ Bali Aneh. Itu pasti bekerja untuk saya. Jadi untuk mengetahui mengapa itu tidak berhasil untuk Anda, ajukan pertanyaan baru. Pastikan untuk menyebutkan versi X.org (atau server X lainnya) yang Anda miliki, Anda menjalankan distribusi ini, dan perangkat input apa yang terhubung.
Gilles 'SANGAT berhenti menjadi jahat'
2
Saya bertaruh OP tidak peduli apakah itu standar (saya tahu saya tidak). Tidak masalah. Tindakan tombol mouse harus lebih mudah disesuaikan.
Marc.2377
7

Mouse scrollwheel mendukung acara klik tombol tengah saat menekan scrollwheel. Ini adalah fitur yang hebat, tetapi Anda mungkin merasa menjengkelkan. Untungnya itu bisa dinonaktifkan.

Pertama, Anda perlu tahu id mouse, seperti ini:

$ xinput list | grep 'id='

yang mencetak sesuatu seperti

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜ PixArt Dell MS116 USB Optical Mouse       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=6    [slave  keyboard (3)]
  Video Bus                                 id=7    [slave  keyboard (3)]
  Power Button                              id=8    [slave  keyboard (3)]
  Sleep Button                              id=9    [slave  keyboard (3)]
  Dell KB216 Wired Keyboard                 id=10   [slave  keyboard (3)]
  Dell KB216 Wired Keyboard                 id=11   [slave  keyboard (3)]
  Eee PC WMI hotkeys                        id=13   [slave  keyboard (3)]

Mouse Dell Usb saya telah dicetak di sini dengan id = 12

jadi, saya bisa melihat pemetaan tombol mouse saya seperti:

$ xinput get-button-map 12

yang mencetak

1 2 3 4 5 6 7 8 9 10 11 12

di sini hanya tiga angka pertama yang memiliki arti bagi saya. Mereka mewakili tombol kiri, tengah, dan kanan.

Saya dapat mematikan tombol tengah mouse dengan mengaturnya ke 0:

$ xinput set-button-map 12 1 0 3

Atau saya dapat mengubah tombol tengah-mouse menjadi tombol kiri-mouse dengan mengaturnya menjadi 1:

$ xinput set-button-map 12 1 1 3

ref. tautan https://wiki.ubuntu.com/X/Config/Input

ini bekerja untuk saya (kubuntu 18.04 LTS)

Suraj Inamdar
sumber
Berfungsi sempurna untuk touchpad di Slackware 14.2 (KDE).
Firelord
Ini lebih baik daripada yang di atas yang dimulai dengan "unduh XX". Satu-satunya masalah yang saya miliki adalah bahwa untuk xinput set-button-map 12 1 0 3Anda mengatur semua tombol (1 - 12 untuk dalam xinput set-button-map 12 1 0 3 4 5 6 7 8 9 10 11 12
contoh
3

Inilah yang dapat Anda lakukan jika Anda ingin menjaga klik tengah berfungsi (untuk mengklik untuk membuka tautan di tab baru misalnya) tanpa menyisipkan hal-hal.

Pertama instal sxhkd dan xsel .

Kemudian konfigurasikan ./.config/.sxhkd/sxhkdrc seperti itu

~button2
    echo -n | xsel -n -i
~control + c
    echo -n | xsel -n -i
~control + shift + c
    echo -n | xsel -n -i
~control + x
    echo -n | xsel -n -i

Dan pada dasarnya itu.

Sekarang mulai sxhkd (atau konfigurasikan untuk diluncurkan saat startup). Sekarang, mouse tengah tidak akan lagi menempelkan apa pun tetapi akan berfungsi seperti biasa.

Pemeliharaan
sumber
Ini masih memungkinkan Anda menggunakan mouse tengah untuk menggulir. Solusi bagus! Bagi saya file itu di~/.config/sxhkd/sxhkdrc
Atnas
1

Ini adalah konvensi umum yang dipatuhi oleh banyak program. Tidak ada cara global untuk mematikannya, Anda harus melakukannya berdasarkan program dengan program.

Sunting: (singkatnya, seperti yang dikatakan Gilles, menonaktifkan tombol mouse 2. Tetapi beberapa program memiliki kegunaan lain untuk tombol mouse 2, jadi saya tidak akan merekomendasikan ini.)

tanya
sumber
1

EDIT: Saya baru saja menemukan masalah dengan solusi yang saya posting: di beberapa program ( gitksetidaknya, tidak yakin seberapa umum itu) ini akan mencegah pemilihan teks dari bekerja. Jadi cobalah, tetapi jika Anda memiliki masalah dengan memilih teks dalam program yang Anda gunakan secara teratur, maka solusinya adalah berhenti menggunakan ini.

Instal xsel, lalu jalankan skrip shell berikut:

#!/bin/sh
while true; do
    xsel -fin </dev/null
done

Selama skrip ini berjalan (Anda dapat mengatur agar dijalankan saat login) tombol tengah mouse tidak akan menempel di aplikasi apa pun. Jadi secara teknis masih akan menempel, tetapi akan selalu ada yang menempel.

Cara kerjanya adalah ia berjalan xseldan menyalinnya ( -i) isi /dev/null, tanpa forking ke latar belakang ( -n), dan untuk benar-benar memegang string kosong di buffer bukannya hanya membersihkan dan keluar ( -f). Setiap kali keluar, itu akan memanggil xsellagi dengan opsi yang sama. Karena xselakan terus berjalan sampai program lain "meloloskannya dari tugas" dengan menyalin sesuatu yang lain, itu tidak akan terus-menerus menciptakan proses baru, alih-alih menjaga satu proses berjalan dengan tepat sampai dibutuhkan lagi. (Kecuali jika Anda memiliki beberapa contoh skrip berjalan, tetapi tidak perlu melakukan itu.)

Juga tidak, ini tidak akan mengganggu copy / paste biasa, karena menempelkan klik tengah menggunakan clipboard terpisah.

flarn2006
sumber
Terima kasih! Saya Menggunakan KDE, dan solusi ini adalah HANYA yang bekerja untuk saya.
Aloso
@Aloso Sama-sama, ingat saja peringatan di atas. Jika Anda pernah menemukan diri Anda tidak dapat memilih teks dalam suatu program, maka itu kemungkinan besar penyebabnya.
flarn2006
Ya, saya melihat masalah ini dalam dialog "Simpan File" Firefox. Sekarang saya hanya mengaktifkan skrip ini, ketika saya sedang pemrograman.
Aloso
@Aloso Oke kalau begitu; senang itu masih berguna untuk Anda :)
flarn2006
0

Ini skrip saya. Anda mungkin perlu mengubah

#!/bin/bash 
clear
echo
echo
echo
echo -----Now fixing your scroll button --- -hold onto pants
echo
xinput --list|grep "Virtual core XTEST pointer"
echo ---------------------------------------------------------------------------------
echo


id=$(
xinput --list|grep "Virtual core XTEST pointer" |awk '{
        for(i=1; i<=NF; i++) {
                tmp=match($i, /id=[0-9]+/)
                if(tmp) {
                        print $i
                }
        }
}' $1 |  tr -d '[:alpha:]='
)

echo fixing $id:

xinput set-button-map $id  1 10 2 4 5 6 7 8 9 3

echo
echo
xinput get-button-map $id
echo ---------------------------------------------------------------------------------
Max Robbertze
sumber