xbindkeys 키보드를 마우스 버튼으로 고정하고 누른 상태에서 키 누르기를 반복하는 방법은 무엇입니까?

xbindkeys 키보드를 마우스 버튼으로 고정하고 누른 상태에서 키 누르기를 반복하는 방법은 무엇입니까?

XF86Search 키보드 키가 있는 Logitech MX Revolution 마우스가 있습니다. xdotool을 사용하여 xbindkeys 파일 내에서 마우스 가운데 버튼으로 매핑했습니다.

이 마우스 클릭은 더 이상 단일 버튼 누르기처럼 작동하지 않지만 대신 누르고 있으면 켜짐 상태와 꺼짐 상태 사이에서 깜박입니다. 이러한 바람직하지 않은 동작으로 인해 작업할 수 없게 됩니다. 예를 들어, 그래픽 프로그램에서 캔버스를 패닝할 수 없거나 블렌더의 뷰포트에서 패닝할 수 없습니다.

xev to를 사용하여 버튼 매핑을 읽으면 키보드 누르기 반복 키와 유사하게 깜박이는 교대 상태가 표시됩니다.

문제가 무엇인지 아는 사람이 있습니까? Mint 18.2를 새로 설치할 때 이 문제가 발생한 적이 있지만 재부팅하고 배터리를 재충전하면 문제가 사라졌습니다. Mint 18.2를 업데이트할 때와 Ubuntu를 새로 설치할 때 다시 발생했기 때문에 이번에는 이 솔루션이 답이 아닙니다.

키보드 단축키에서 검색 키를 바인딩 해제했습니다.

답변1

키 누르기가 반복되는 것을 방지하는 솔루션은 xbindkeys 파일에 xset -r keycode 명령을 추가하는 것입니다. 설정/키보드에서 키 반복을 비활성화하는 것과 동일한 방식으로 작동합니다.

해당 코드는 다음과 같습니다.

"xset -r 225; xdotool mousedown 2"
    m:0x0 + c:225
    XF86Search

"xdotool mouseup 2"
    m:0x0 + c:225 + release
    XF86Search

이 문제는 해결되었지만 제가 겪고 있던 실제 문제는 해결되지 않았습니다. 검색 버튼이 Blender와 같은 프로그램에서 마우스 가운데 버튼으로 완벽하게 작동하도록 하는 문제였습니다. 위의 솔루션은 이해할 수 없는 이유로 Shift 수정자와 잘 작동하지 않습니다.

이 문제에 대한 가장 좋은 해결책은 xbindkeys를 완전히 사용하지 않고 대신 다음 코드를 추가하여 가운데 클릭 에뮬레이션을 활성화하는 것입니다 /etc/sysctl.conf.

# Enable mouse button emulation
dev.mac_hid.mouse_button_emulation = 1
# Set 2nd button to 217 - the middle button of MX Revolution mouse.
dev.mac_hid.mouse_button2_keycode = 217

/etc/udev/rules.d/그런 다음 동글이 연결되어 있는 것을 볼 때마다 스크립트를 호출하는 udev 파일을 만들어야 했습니다 . 이 스크립트에는 sysctl --system마우스 2 에뮬레이션을 활성화하는 데 필요한 명령이 포함되어 있습니다. 어떤 이유로 기본적으로 활성화되어 있지 않은데, 이는 나중에 살펴보고 싶습니다.

이것은 내 Logitech 동글과 관련된 udev 파일입니다.

SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="046d", RUN+="/bin/sh  /home/user/mouse-initialize-settings.sh"

관련 정보