Tôi không thích có nút chuột giữa, vì tôi thường kết thúc bằng mã không thể biên dịch được trong Eclipse. Làm thế nào tôi có thể tắt cái này (trong tất cả các chương trình)? Tôi đang điều hành Fedora.
Tôi không thích có nút chuột giữa, vì tôi thường kết thúc bằng mã không thể biên dịch được trong Eclipse. Làm thế nào tôi có thể tắt cái này (trong tất cả các chương trình)? Tôi đang điều hành Fedora.
Câu trả lời:
Giải pháp này sẽ hoạt động trên toàn cầu và bảo toàn chức năng chuột giữa.
Tải về xbindkeys xsel xdotool
Đặt cái này vào ~/.xbindkeysrc
"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release
Tải lại xbindkeys -p
Chạy xbindkeys
khi khởi động, pkill xbindkeys
để dừng lại.
Trong Fedora 24, bạn có thể cài đặt gnome-tweak-tool
bằng lệnh sau:
$ sudo dnf install gnome-tweak-tool
Mở gnome-tweak-tool
và chuyển đến tab "Bàn phím và Chuột" và tắt "Dán giữa nhấp chuột".
Có nút dán ở giữa là một tiêu chuẩn giao diện người dùng unix, như chọn hoặc kích hoạt nút bên trái, và nút bên phải làm một việc khác (chẳng hạn như mở rộng, bật, bật menu, chế độ). Bạn sẽ thấy nó bị ràng buộc để dán trong hầu hết các ứng dụng unix.
Nếu vấn đề của bạn là chuột của bạn quá nhạy cảm khi bạn đặt ngón tay lên bánh xe, tôi khuyên bạn nên lấy một con chuột tốt hơn. Có rất nhiều chuột tốt giá rẻ.
Bạn có thể gán lại nút chuột 2 cho một số khác. Các ứng dụng xác định các nút chuột trái, giữa và phải lần lượt là các nút 1, 2 và 3. Đặt mã này vào tập lệnh được thực thi khi phiên X của bạn bắt đầu (cách thực hiện tùy thuộc vào môi trường máy tính để bàn của bạn).
echo 'pointer = 1 6 3 4 5' | xmodmap -
Chuột cuộn hỗ trợ một sự kiện nhấp vào nút giữa khi nhấn con lăn. Đây là một tính năng tuyệt vời, nhưng bạn có thể thấy nó khó chịu. May mắn là nó có thể bị vô hiệu hóa.
Trước tiên, bạn cần biết id của chuột, như thế này:
$ xinput list | grep 'id='
in cái gì đó như
⎡ 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)]
Chuột Dell Dell của tôi đã được in ở đây với id = 12
vì vậy, tôi có thể xem ánh xạ nút chuột của mình như sau:
$ xinput get-button-map 12
mà in
1 2 3 4 5 6 7 8 9 10 11 12
ở đây chỉ có ba số đầu tiên có ý nghĩa đối với tôi. Chúng đại diện cho các nút chuột trái, giữa và phải.
Tôi có thể tắt nút chuột giữa bằng cách đặt thành 0:
$ xinput set-button-map 12 1 0 3
Hoặc tôi có thể biến nút chuột giữa thành nút chuột trái bằng cách đặt nó thành 1:
$ xinput set-button-map 12 1 1 3
tham chiếu liên kết https://wiki.ubfox.com/X/Config/Input
nó hoạt động với tôi (kubfox 18.04 LTS)
xinput set-button-map 12 1 0 3
bạn đặt tất cả các nút (1 - 12 cho trong exampe này xinput set-button-map 12 1 0 3 4 5 6 7 8 9 10 11 12
)
Đây là những gì bạn có thể làm nếu bạn muốn giữ chức năng nhấp chuột giữa (để nhấp để mở các liên kết trong các tab mới chẳng hạn) mà không cần dán nó.
Đầu tiên cài đặt sxhkd và xsel .
Sau đó định cấu hình ./.config/.sxhkd/sxhkdrc như vậy
~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
Và đó là cơ bản nó.
Bây giờ bắt đầu sxhkd (hoặc cấu hình nó để khởi động khi khởi động). Bây giờ, chuột giữa sẽ không còn dán bất cứ thứ gì nhưng sẽ hoạt động như bình thường.
~/.config/sxhkd/sxhkdrc
Đó là một quy ước chung mà nhiều chương trình tuân thủ. Không có cách toàn cầu để tắt nó, bạn phải thực hiện nó trên một chương trình theo chương trình.
EDIT: (viết tắt là Gilles nói, vô hiệu hóa nút chuột 2. Nhưng một số chương trình có cách sử dụng khác cho nút chuột 2, vì vậy tôi không khuyến nghị điều này.)
EDIT: Tôi vừa tìm thấy một vấn đề với giải pháp tôi đã đăng: trong một số chương trình ( gitk
ít nhất, không chắc mức độ phổ biến của nó) điều này sẽ ngăn việc lựa chọn văn bản hoạt động. Vì vậy, hãy thử nó, nhưng nếu bạn gặp vấn đề với việc chọn văn bản trong một chương trình bạn sử dụng thường xuyên, thì giải pháp là ngừng sử dụng điều này.
Cài đặt xsel
, rồi chạy tập lệnh shell sau:
#!/bin/sh
while true; do
xsel -fin </dev/null
done
Miễn là tập lệnh này đang chạy (bạn có thể đặt nó để chạy khi đăng nhập), nút chuột giữa sẽ không dán vào bất kỳ ứng dụng nào. Vì vậy, về mặt kỹ thuật nó vẫn sẽ dán, nhưng sẽ luôn không có gì để dán.
Cách thức hoạt động của nó là nó chạy xsel
và sao chép ( -i
) nội dung của /dev/null
, mà không chuyển sang nền ( -n
) và thực sự giữ chuỗi trống đó trong bộ đệm thay vì chỉ xóa nó và thoát ( -f
). Mỗi lần thoát ra, nó sẽ gọi xsel
lại với cùng các tùy chọn. Vì xsel
sẽ tiếp tục chạy cho đến khi một chương trình khác "giải phóng nhiệm vụ" bằng cách sao chép một thứ khác, nó sẽ không liên tục tạo ra các quy trình mới, thay vào đó giữ một quy trình duy nhất chạy chính xác cho đến khi cần lại. (Trừ khi bạn có nhiều phiên bản tập lệnh đang chạy, nhưng không cần phải làm điều đó.)
Ngoài ra, điều này sẽ không can thiệp vào việc sao chép / dán thông thường, bởi vì dán giữa nhấp chuột sử dụng một bảng tạm riêng biệt.
Đây là kịch bản của tôi. Bạn có thể cần điều chỉnh
#!/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 ---------------------------------------------------------------------------------