모든 프로그램에서 "중간 마우스 버튼 붙여 넣기"기능을 해제하려면 어떻게해야합니까?


43

Eclipse에서 컴파일 할 수없는 코드로 끝나기 때문에 마우스 가운데 버튼 붙여 넣기를 좋아하지 않습니다. 모든 프로그램에서이 기능을 끄려면 어떻게해야합니까? Fedora를 실행 중입니다.


4
선택을 삽입하는 가운데 클릭은 기본적으로 X11 작동 방식의 일부입니다. http://www.jwz.org/doc/x-cut-and-paste.html을 참조 하십시오 .
ephemient

1
@Gilles : 모든 프로그램에서. :)
derekhh

4
중간 마우스 버튼을 완전히 누르거나 X를 해킹하거나 일반 클립 보드를 조이지 않고이 작업을 수행하는 사소한 방법을 보지 못했기 때문에 제안 된 "솔루션"은 마우스 가운데 버튼을 올바르게 사용하는 방법을 배우는 것입니다. 어디에서나 텍스트 URL을 강조 표시하고 내 (FF) 브라우저 창에서 마우스 가운데 버튼을 클릭하여 이동할 수있는 것이 매우 편리합니다.
jw013

4
@ephemient "선택을 삽입하기위한 가운데 클릭은 기본적으로 X11 작동 방식의 일부입니다"... 신호를 얻기 위해 중간 버튼에 약 1 파운드의 압력이 필요한 Sun Optical Mouse가 있었을 때의 방식. 오늘날 가운데 버튼은 헤어 트리거에 있으며 휠로도 사용됩니다.이 "기본"은 가야합니다. (X btw에서 상당히 많은 "기본"항목)
David Tonhofer

3
나는 당신이 원하는 것을 비활성화하는 능력이 리눅스의 훨씬 더 근본적인 측면이라고 생각합니다.
Wayne Bloss

답변:


24

이 솔루션은 전체적으로 작동하며 마우스 가운데 기능을 유지합니다.

설치 xbindkeys xsel xdotool

이것을 넣어 ~/.xbindkeysrc

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

새로 고침 xbindkeys -p

xbindkeys시작시 실행 pkill xbindkeys을 중지하십시오.


7
감사합니다!!! 유일하게 작동하는 솔루션이 정확히 2 년 동안 0 표에 있다고 믿을 수 없습니다.
Retr0id

4
마지막으로 Ubuntu Mate 17.10에서 나를 위해 일한 솔루션. 감사합니다!
Dmitry Frank

5
@spiil 나는이 솔루션을 시도하고 원하는 효과를 얻습니다. 텍스트 필드를 마우스 가운데 버튼으로 클릭해도 아무런 변화가 없지만 링크를 마우스 가운데 버튼으로 클릭하고 마우스 가운데 버튼을 클릭하면 Chromium, Firefox 및 Waterfox (테스트 한 세 가지 브라우저)에서 탭 작업을 닫습니다.
user7214865

4
클릭 앤 홀드 중간 버튼으로 스크롤하는 것이 더 이상이 솔루션에서 작동하지 않습니다 : /
Marc.2377

2
당신은 전설입니다. 스크롤을 위해 트랙볼의 중간 버튼을 사용했지만 붙여 넣기 기능으로 인해 인생이 비참했습니다. 이제 다시 한 번 밝게 빛납니다. 감사합니다!
redsPL

16

Fedora 24에서는 gnome-tweak-tool다음 명령을 사용하여 설치할 수 있습니다 .

$ sudo dnf install gnome-tweak-tool

gnome-tweak-tool"키보드 및 마우스"탭을 열고 "중간 클릭 붙여 넣기"를 비활성화하십시오.


4
이것은 우분투 16.04에서도 가능합니다 : sudo apt-get install gnome-tweak-tool
Tyranin

1
이것은 gedit, gnome-terminal과 같은 몇몇 프로그램에만 영향을 미칩니다. askubuntu.com/questions/4507/…의 의견도 참조하십시오 .
Kvothe

11

가운데 버튼 붙여 넣기는 왼쪽 버튼을 선택하거나 활성화하는 것과 같은 유닉스 사용자 인터페이스 표준이며 오른쪽 버튼은 다른 것을 수행합니다 (예 : 확장, 토글, 메뉴 실행 등). 대부분의 유닉스 응용 프로그램에서 붙여 넣기에 바인딩 된 것을 알 수 있습니다.

바퀴에 손가락을 대고있을 때 마우스가 지나치게 민감하다는 문제가 있다면 더 나은 마우스를 얻는 것이 좋습니다. 값싼 괜찮은 생쥐가 많이 있습니다.

마우스 버튼 2를 다른 번호로 재 할당 할 수 있습니다. 응용 프로그램은 왼쪽, 가운데 및 오른쪽 마우스 버튼을 각각 버튼 1, 2 및 3으로 식별합니다. X 세션이 시작될 때 실행되는 스크립트에이 코드를 넣으십시오 (이 작업을 수행하는 방법은 데스크탑 환경에 따라 다름).

echo 'pointer = 1 6 3 4 5' | xmodmap -

1
작동하지 않습니다. pastebin.com/0DYYMDLS
balki

@balki Weird. 그것은 확실히 나를 위해 작동합니다. 왜 이것이 효과가 없는지 알아 보려면 새로운 질문을하십시오. 사용중인 X.org (또는 다른 X 서버) 버전,이 버전을 실행중인 배포판 및 연결된 입력 장치를 언급하십시오.
Gilles 'SO- 악한 중지'

2
OP가 표준인지 여부는 신경 쓰지 않습니다. (그렇지 않다는 것을 알고 있습니다). 중요하지 않습니다. 마우스 버튼 동작은보다 쉽게 ​​사용자 정의 할 수 있어야합니다.
Marc.2377

7

스크롤 휠 마우스는 스크롤 휠을 누를 때 중간 버튼 클릭 이벤트를 지원합니다. 이것은 훌륭한 기능이지만 자극적 일 수 있습니다. 다행히도 비활성화 할 수 있습니다.

먼저 다음과 같이 마우스의 ID를 알아야합니다.

$ xinput list | grep 'id='

어떤 것을 인쇄합니다

⎡ 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)]

id = 12 인 Dell USB 마우스가 여기에 인쇄되었습니다.

마우스 버튼 매핑을 다음과 같이 볼 수 있습니다.

$ xinput get-button-map 12

인쇄

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

여기서 처음 세 숫자 만 의미가 있습니다. 왼쪽, 가운데 및 오른쪽 마우스 버튼을 나타냅니다.

마우스 버튼을 0으로 설정하여 마우스 가운데 버튼을 끌 수 있습니다.

$ xinput set-button-map 12 1 0 3

또는 마우스 가운데 버튼을 1로 설정하여 마우스 왼쪽 버튼으로 전환 할 수 있습니다.

$ xinput set-button-map 12 1 1 3

심판. 링크 https://wiki.ubuntu.com/X/Config/Input

그것은 나를 위해 일한다 (kubuntu 18.04 LTS)


Slackware 14.2 (KDE)의 터치 패드에 완벽하게 작동합니다.
소방관

이것은 "download XX"로 시작하는 위의 것보다 낫습니다. 내가 가진 유일한 문제는 xinput set-button-map 12 1 0 3모든 버튼을 설정 한다는 것입니다 (이 시험에서 1-12 xinput set-button-map 12 1 0 3 4 5 6 7 8 9 10 11 12)
blindguy

3

붙여 넣지 않고 가운데 클릭 기능을 유지하려면 (예 : 새 탭에서 링크를 열 때 클릭하는 경우) 수행 할 수있는 작업은 다음과 같습니다.

먼저 sxhkdxsel을 설치 하십시오 .

그런 다음 ./.config/.sxhkd/sxhkdrc를 다음 과 같이 구성 하십시오.

~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

그리고 그것은 기본적으로입니다.

이제 sxhkd를 시작하십시오 (또는 시작시 시작하도록 구성하십시오). 이제 가운데 마우스는 더 이상 아무 것도 붙여 넣지 않고 정상적으로 작동합니다.


그래도 가운데 마우스를 사용하여 스크롤 할 수 있습니다. 좋은 해결책! 저에게 파일은 다음과 같습니다~/.config/sxhkd/sxhkdrc
Atnas

1

많은 프로그램이 준수하는 일반적인 규칙입니다. 전역으로 끌 수있는 방법이 없으므로 프로그램별로 프로그램을 실행해야합니다.

편집 : (길레스가 말했듯이 마우스 버튼 2를 비활성화합니다. 그러나 일부 프로그램은 마우스 버튼 2를 다른 용도로 사용하므로 권장하지 않습니다.)


1

편집 : 방금 게시 한 솔루션에 문제가 있음을 발견했습니다. 일부 프로그램 gitk에서 (최소한 얼마나 일반적인지 확실하지 않음) 텍스트 선택이 작동하지 않습니다. 따라서 시도해보십시오. 그러나 정기적으로 사용하는 프로그램에서 텍스트를 선택하는 데 문제가 있으면 해결책을 사용하지 않는 것입니다.

설치 xsel한 후 다음 쉘 스크립트를 실행하십시오.

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

이 스크립트가 실행되는 동안 (로그인시 실행되도록 설정할 수 있음) 마우스 가운데 버튼은 응용 프로그램에 붙여 넣지 않습니다. 따라서 기술적으로는 여전히 붙여 넣을 것이지만 항상 붙여 넣을 것은 없습니다.

그것이 작동하는 방식은 실행 xsel하고 배경 ( )으로 분기하지 않고 -i내용을 복사 ( )하고 실제로 빈 문자열을 지우고 종료하는 대신 버퍼에 유지하는 것입니다 . 종료 할 때마다 동일한 옵션으로 다시 호출 됩니다. 다른 프로그램을 복사하여 다른 프로그램이 "관심을 덜어 줄"때까지 계속 실행 되므로 새 프로세스를 지속적으로 생성하지 않고 단일 프로세스를 다시 필요할 때까지 정확하게 실행합니다. (여러 개의 스크립트 인스턴스가 실행되고 있지 않는 한 그렇게 할 필요는 없습니다.)/dev/null-n-fxselxsel

또한 가운데 클릭 붙여 넣기에는 별도의 클립 보드가 사용되므로 일반 복사 / 붙여 넣기를 방해하지 않습니다.


감사합니다! 나는 KDE를 사용 하며이 솔루션은 나에게만 맞는 솔루션입니다.
21:53에 Aloso

@Aloso 천만에요. 상단의 경고를 명심하십시오. 프로그램에서 텍스트를 선택할 수 없다는 것을 알게되면 아마도 범인 일 것입니다.
flarn2006

예, Firefox의 "파일 저장"대화 상자에서이 문제를 발견했습니다. 이제 프로그래밍 할 때만이 스크립트를 켭니다.
Aloso

@Aloso 그래 그럼; 그것이 여전히 당신에게
유용

0

이것은 내 스크립트입니다. 조정이 필요할 수 있습니다

#!/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 ---------------------------------------------------------------------------------
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.