마우스를 왼손잡이 및 터치 패드를 오른 손잡이로 만들기 구성 할 수 있습니다. 어느 정도

마우스와 터치 패드를 모두 하나의 패널 (Ubuntu 13.10, 기본값, 그놈)에서 구성 할 수 있습니다. 어느 정도 연장됩니다. 즉, 터치 패드를 마우스와 다르게 구성하고 싶습니다 …

(USB) 마우스를 연결하면 일반적으로 왼손잡이를 사용합니다. 따라서 버튼을 왼손잡이로 전환합니다. 그러나 터치 패드를 사용할 때 그런 종류의 구성으로 인해 약간의 손실을 느낍니다. 따라서 나는 오른 손잡이를 원합니다.

다음과 같은 방법이 있습니까? 마우스를 플러그인하면 (각각 감지 될 때) 자동으로 왼손잡이로 전환하고 플러그를 뽑으면 자동으로 오른 손잡이로 전환됩니까?



답변

좌절감을 이해하지만 xinput도구를 사용하면이 문제를 매우 간단하게 해결할 수 있습니다 .

먼저 USB 마우스를 연결 한 후 다음 명령을 실행하십시오.

xinput list

id마우스 를 볼 수 있습니다. 위 명령의 출력은 다음과 유사 할 수 있습니다.

xinput | 고양이
⎡ 가상 코어 포인터 id = 2 [마스터 포인터 (3)]
core ↳ 가상 코어 XTEST 포인터 id = 4 [슬레이브 포인터 (2)]
PS ↳ SynPS / 2 Synaptics TouchPad id = 14 [슬레이브 포인터 (2)]
Mouse ↳ USB 마우스 id = 11 [슬레이브 포인터 (2)]
⎣ 가상 코어 키보드 id = 3 [마스터 키보드 (2)]
    ...

위의 예에서 USB 마우스에는가 있습니다 id=11. id다음 명령에서 이것을 사용 하여 버튼을 USB 마우스 (왼손잡이가 아닌) 전용으로 왼손으로 바꿉니다.

xinput set-button-map 11 3 2 1

일반적으로 :

xinput 설정 버튼 맵 ID 3 2 1

변경 사항을 되돌리려면 다음을 사용하십시오.

xinput 설정 버튼 맵 ID 1 2 3

영구적으로 변경하려면 시작 애플리케이션 에서 다음 명령을 추가하십시오 ( Dash for Startup Applications 검색 ).

sh -c "xinput 설정 버튼 맵 ID 3 2 1"

최신 정보:

때문에 ID가 재부팅하지만 USBmouse의 이름 뒤에 있지 변경 될 수 있습니다, 당신은 또한 마우스의 이름을 grep을하고 그것을 적용 할 수 있습니다. 세부 사항을 건너 뛰려면 reg. 최종 솔루션 이름을 선택하면 다음과 같습니다.

`/ usr / bin / xinput리스트의 id / bin / grep ' USB 마우스 '| / bin / grep -o [0-9] [0-9]`; xinput 설정 버튼 맵 수행 $ id 3 2 1; 끝난;

위에서 언급 한 시작 응용 프로그램에 포장하십시오 .

sh -c "/ usr / bin / xinput 목록의 id | / bin / grep ' USB 마우스 '| / bin / grep -o [0-9] [0-9]`; xinput set-button-map 수행 $ id 3 2 1; 완료; "

답변

Radu Rădeanu의 답변 보다 훨씬 간단한 방법이 있습니다. xinput숫자 ID 대신 입력 장치 이름을 사용합니다. USB 마우스는 일반적으로 취급 될 가능성이 높기 때문에 이름이 가장 큽니다 USB Mouse. 따라서 실행할 필요조차 없습니다 xinput list.

따라서 xinput set-button-map숫자 ID 대신이 이름을 가진.는 다음과 같습니다.

xinput set-button-map "USB Mouse" 3 2 1

이것은 숫자 ID 방식 을 사용할 때와 마찬가지로 왼손잡이 마우스 로 만들어서 동일한 일을 대신 하고 달성해야합니다 . (그리고 교체 로 계속 작동하는 것은 오른 손잡이 마우스 조작으로 전환합니다.)xinput set-button-map id 3 2 13 2 13 2 11 2 3

이는 초기에 작동하는 경우 길고 복잡한 명령을 사용하여 장치의 ID 번호를 얻을 필요없이 재부팅 후에도 계속 작동한다는 이점이 있습니다.


답변

다른 답변의 시작 명령이 ID가 두 자리 숫자 인 경우에만 작동한다는 것을 알았습니다. 다음은 한 자리 숫자와 두 자리 숫자 모두에서 작동하는 수정 사항입니다.

에서 시작 응용 프로그램

bash -c "for id in `/usr/bin/xinput list | /bin/grep 'USB Mouse' | /bin/grep -o id=[0-9][0-9]*`; do xinput set-button-map ${id:3} 3 2 1; done;"

답변

device_id=$(/usr/bin/xinput list \
            | /bin/grep 'slave  pointer' \
            | /bin/grep 'Wireless Keyboard&Mouse' \
            | tr " " "\n" \
            | /bin/grep "id=" \
            | /bin/grep -o [0-9][0-9]* \
        )
/usr/bin/xinput set-button-map $device_id 3 2 1

다음은 두 가지 문제를 해결하는 더 자세한 솔루션입니다.

  • 자릿수에 관계없이 장치 ID에 사용할 수 있습니다 (@robbie 솔루션과 동일하지만 약간 다르게 작성 됨)
  • 장치 이름이 중복 될 수 있다고 간주합니다. 제 경우에는 무선 마우스 + 키보드가 있으므로 xinput list하나는 “[슬레이브 포인터 (2)]”, 다른 하나는 “[슬레이브 키보드 (3) )] “입니다. @reedstrm 솔루션을 사용하면 ” ‘2.4G Wireless Keyboard & Mouse’라는 여러 장치가 있습니다.”라는 오류가 발생하지만 @Radu Rădeanu 솔루션 for을 사용하면 마우스와 키보드 각각에 대해 2 개의 ID를 반복했습니다. 두 번째로 “장치에 버튼이 없습니다”오류 메시지가 나타납니다.