마우스 버튼을 키에 바인딩하는 방법?


19

세로 / 가로 스크롤을위한 5 개의 버튼 + 4 가있는 Logitech MX400 레이저 마우스 가 있습니다. 스크롤 휠에서 오른쪽을 누르면 가로 스크롤 대신 Ctrl+ Tab를 보내고 왼쪽은 Ctrl+ Shift+ 를 보내 Tab브라우저에서 탭을 순환 할 수 있도록 설정하고 싶습니다.

또한 중간 버튼을 측면에서 하나의 버튼으로 다시 매핑 할 수 있다면 좋을 것입니다.

또 다른 보너스는 현재 활성화 된 창에 따라 어떤 버튼이 어떤 기능을 수행하는지 정의 할 수있는 스크립트를 작성할 수 있다는 것입니다.

사용을 시도 xmodmap했지만 버튼을 다시 정렬하는 방법 만 볼 수 있었으며 키 신호를 보내지 않았습니다.

미리 감사드립니다.


버튼 맵 (사용 xev) :

Left        1
Middle      2
Right       3
ScrollUp    4
ScrollDown  5
ScrollLeft  6
ScrollRight 7
Backward    8
Forward     9

답변:


18

xbindkeysxte는 당신을 도울 수 있습니다.

예를 들어 내 .xbindkeysrc 파일은 다음과 같습니다.

# close the window under the mouse cursor
"xte 'mouseclick 1' && xte 'keydown Alt_L' 'key F4' 'keyup Alt_L'"
  b:8+Release

# double click
"xte 'mouseclick 1' 'mouseclick 1'"
  b:9

이것은 환상적이고 확장 가능합니다. 많은 감사
Callum Rogers

1
Ubuntu 16.x에서 xte 를 얻으려면 apt 에서 xautomation 을 설치해야합니다 .
1111161171159459134

버튼을 누르고 있으면 동일하게 작동하지 않기 때문에 원하는대로 작동하지 않습니다. 내 오래된 마우스에는 스크롤 휠을 자유롭게 회전시킬 수있는 버튼이 있었는데, 실제로 스크롤을 빠르게 시작하고 멀리 스크롤하려는 경우에 좋습니다. 그러나 내 새로운 것은 그것을 가지고 있지 않으므로 측면에 두 개의 버튼 (웹 브라우징을 위해 뒤로 / 앞으로 버튼으로 디자인 된 것으로 생각합니다)을 PgUp / PgDn 키에 바인딩했습니다. 그러나 스크롤을 계속하려면 반복해서 눌러야합니다. 나는 그들을 붙잡을 수 없다. 버튼을 누르고있는 동안 키를 잡으려면 어떻게해야합니까?
flarn2006

5

솔루션에 대한 모든 사람에게 감사합니다. 다음은 더 완전하고 결합 된 가이드입니다 (Xubuntu 18.04에서 완료).

  1. xterm / terminal / terminator와 같은 터미널을 sudo su -열거 나 루트 ( )가되거나 명령 앞에 sudo를 사용하십시오.

    apt install xbindkeys xautomation
  2. 로 버튼 매핑을 확인하십시오. xev루트 권한이 필요하지 않으므로 루트 세션을 종료 exit하거나 (로 ) 다른 터미널을 사용자로여십시오.

    xev | grep button
  3. 작은 창이 나타납니다. 마우스를 해당 창으로 이동하고 다시 매핑하려는 버튼을 눌러야합니다. 터미널의 출력 예는 다음과 같습니다.

    state 0x0, button 8, same_screen YES

    이것은 PAGE_DOWN으로 사용하려는 마우스의 두 번째 측면 버튼입니다.

    state 0x0, button 9, same_screen YES

    이것은 PAGE_UP으로 사용하려는 첫 번째 (예, 순서가 반대입니다) 사이드 버튼입니다.

  4. 다시 매핑하려는 모든 버튼이 있으면 작은 xev 창을 닫을 수 있습니다. 자주 사용하는 편집기 (예 : gedit / vi / nano)를 열고 구성 파일을 편집하십시오.

    vi .xbindkeysrc
  5. 파일에 이미 일부 내용이있는 경우 바인딩이 이미 있는지 (기본적으로는 아님) 확인하고 끝에 추가하십시오.

    #Pagedown press
    "xte 'keydown Next'"
    b:8
    
    #Pagedown release
    "xte 'keyup Next'"
    b:8 + Release
    
    #Pagedup press
    "xte 'keydown Prior'"
    b:9
    
    #Pageup release
    "xte 'keyup Prior'"
    b:9 + Release

    참고 : 두 개의 항목이 필요합니다. 하나는 버튼 누름과 하나는 해제입니다.

  6. 버튼 8 + 9는 "Next"(PAGE_DOWN) 및 "Prior"(PAGE_UP) 키에 매핑됩니다. 다른 키를 매핑하려면 xev를 사용하여 keysymbol을 찾을 수 있습니다.

    xev | grep keysym
  7. 이전과 마찬가지로 터미널에서 시작하여 마우스를 작은 창으로 이동하고 원하는 키를 누릅니다.

    state 0x0, keycode 117 (keysym 0xff56, Next), same_screen YES,
  8. xbindings를 저장하고 종료하십시오.

    killall xbindkeys ; xbindkeys

이제 마우스의 추가 측면 버튼을 사용할 수 있습니다. 다음 재부팅 / 로그인시 설정이 자동으로로드됩니다. killall [...]설정을 변경 한 경우 위 의 명령 만 필요합니다 .

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