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.
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.
Jawaban:
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 xbindkeys
saat startup, pkill xbindkeys
untuk berhenti.
Di Fedora 24 Anda dapat menginstal gnome-tweak-tool
menggunakan perintah berikut:
$ sudo dnf install gnome-tweak-tool
Buka gnome-tweak-tool
dan buka tab "Keyboard dan Mouse" dan nonaktifkan "Middle-click-Paste".
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 -
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)
xinput set-button-map 12 1 0 3
Anda mengatur semua tombol (1 - 12 untuk dalam xinput set-button-map 12 1 0 3 4 5 6 7 8 9 10 11 12
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.
~/.config/sxhkd/sxhkdrc
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.)
EDIT: Saya baru saja menemukan masalah dengan solusi yang saya posting: di beberapa program ( gitk
setidaknya, 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 xsel
dan 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 xsel
lagi dengan opsi yang sama. Karena xsel
akan 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.
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 ---------------------------------------------------------------------------------