Làm cách nào tôi có thể tắt chức năng nút chuột giữa dán vào giữa các chương trình?


43

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.


4
Nhấp chuột giữa để chèn lựa chọn về cơ bản là một phần trong cách X11 hoạt động; xem http://www.jwz.org/doc/x-cut-and-paste.html .
ephemient

1
@Gilles: Trong tất cả các chương trình. :)
derekhh

4
Tôi chưa thấy bất kỳ cách tầm thường nào để làm điều này mà không rút nút chuột giữa hoàn toàn hoặc hack X hoặc vặn với bảng tạm thông thường, vì vậy "giải pháp" được đề xuất của tôi chỉ là học cách sử dụng nút chuột giữa đúng cách. Thật tiện lợi khi có thể làm nổi bật một URL văn bản ở bất cứ đâu và đi đến nó bằng cách nhấp vào giữa trong cửa sổ trình duyệt (FF) của tôi.
jw013

4
@ephemient "Nhấp chuột giữa để chèn lựa chọn về cơ bản là một phần trong cách X11 hoạt động" ... trở lại khi chúng ta có các Nhà quang học Mặt trời cần khoảng 1 pound áp lực ở nút giữa để nhận tín hiệu. Ngày nay, nút giữa là nút kích hoạt tóc và hơn nữa được sử dụng như một bánh xe, "cơ bản" này phải đi (vì có khá nhiều thứ "cơ bản" trong X btw.)
David Tonhofer

3
Tôi cảm thấy như khả năng vô hiệu hóa bất cứ điều gì bạn muốn là một khía cạnh cơ bản hơn nữa của Linux.
Wayne Bloss

Câu trả lời:


24

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 xbindkeyskhi khởi động, pkill xbindkeysđể dừng lại.


7
Cảm ơn bạn!!! Tôi không thể tin rằng giải pháp làm việc duy nhất đã được giữ ở mức 0 phiếu trong đúng 2 năm.
Retr0id

4
Cuối cùng, một giải pháp hiệu quả với tôi trên Ubuntu Mate 17.10. Cảm ơn bạn!
Dmitry Frank

5
@spiil Tôi đã thử giải pháp này và nó đạt được hiệu quả bạn muốn. Tôi nhấp chuột giữa vào một trường văn bản và không có gì xảy ra, nhưng nhấp chuột vào liên kết và nhấp chuột giữa để đóng tab hoạt động trong Chromium, Firefox và Waterfox (ba trình duyệt tôi đã kiểm tra).
dùng7214865

4
Cuộn bằng nút giữa nhấp và giữ không còn hoạt động với giải pháp này: /
Marc.2377

2
Bạn là một huyền thoại. Tôi đã sử dụng nút giữa trên trackball của mình cho mục đích cuộn, nhưng chức năng dán khiến cuộc sống của tôi trở nên khốn khổ. Bây giờ nó lại có đầy đủ màu sắc tươi sáng, cảm ơn!
redsPL

16

Trong Fedora 24, bạn có thể cài đặt gnome-tweak-toolbằng lệnh sau:

$ sudo dnf install gnome-tweak-tool

Mở gnome-tweak-toolvà chuyển đến tab "Bàn phím và Chuột" và tắt "Dán giữa nhấp chuột".


4
Điều này cũng có sẵn trong Ubuntu 16.04: sudo apt-get install gnome-chỉnh-tool
Tyranin

1
Điều này chỉ ảnh hưởng đến một vài chương trình như gedit, gnome-terminal và một vài chương trình khác. Xem thêm bình luận tại Askubfox.com/questions/4507/ .
Kvothe

11

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 -

1
Không hoạt động. pastebin.com/0DYYMDLS
balki

@balki Lạ. Nó chắc chắn làm việc cho tôi. Vì vậy, để tìm hiểu lý do tại sao nó không làm việc cho bạn, hãy hỏi một câu hỏi mới. Hãy chắc chắn đề cập đến phiên bản X.org (hoặc máy chủ X khác) mà bạn có, bản phân phối nào bạn đang chạy này và thiết bị đầu vào nào được kết nối.
Gilles 'SO- ngừng trở nên xấu xa'

2
Tôi cá cược OP không quan tâm nếu nó là tiêu chuẩn (tôi biết tôi không). Không quan trọng. Hành động nút chuột nên dễ dàng tùy chỉnh hơn.
Marc.2377

7

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)


Hoạt động hoàn hảo cho bàn di chuột trong Slackware 14.2 (KDE).
Firelord

Điều này tốt hơn bất kỳ điều nào ở trên bắt đầu bằng "tải xuống XX". Vấn đề duy nhất tôi gặp phải là đối với xinput set-button-map 12 1 0 3bạ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)
blindguy

3

Đâ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 sxhkdxsel .

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.


Điều này vẫn cho phép bạn sử dụng chuột giữa để cuộn. Giải pháp tốt! Đối với tôi, tập tin đã được đăng vào~/.config/sxhkd/sxhkdrc
Atnas

1

Đó 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.)


1

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 xselvà 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 xsellại với cùng các tùy chọn. Vì xselsẽ 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.


Cảm ơn bạn! Tôi sử dụng KDE và giải pháp này là DUY NHẤT phù hợp với tôi.
Aloso

@Aloso Bạn được chào đón, chỉ cần ghi nhớ cảnh báo ở trên cùng. Nếu bạn thấy mình không thể chọn văn bản trong một chương trình, thì đó là thủ phạm rất có thể.
flarn2006

Có, tôi nhận thấy vấn đề này trong hộp thoại "Lưu tệp" của Firefox. Bây giờ tôi chỉ bật kịch bản này khi tôi đang lập trình.
23:30

@Aloso Được rồi; rất vui vì nó vẫn được sử dụng cho bạn :)
flarn2006

0

Đâ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 ---------------------------------------------------------------------------------
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.