저는 XInput 마우스 휠 에뮬레이션을 좋아합니다! Evdev 휠 에뮬레이션은 다음 명령을 실행하여 모든 마우스 버튼에서 활성화할 수 있습니다(9는 Evdev 휠 에뮬레이션을 트리거하는 마우스 버튼입니다).
xinput set-prop $DEVICE_ID "Evdev Wheel Emulation Button" 9
나는 거의 5년 동안 이 기능을 사용해 왔으며 이 훌륭한 기능을 구현해 준 xorg 사람들에게 큰 감사를 드립니다. 이제 트리거를 마우스 버튼에서 키보드 키로 변경하고 싶습니다. "H" 키를 누르고 있을 때 트리거 시뮬레이션을 활성화하고, 마법 "H"가 해제될 때 트리거 시뮬레이션을 비활성화하고 싶다고 가정해 보겠습니다. 어떻게 해야 하나요?
작동하지 않는 테스트된 솔루션
키보드 키를 마우스 버튼 9에 매핑하려고 했지만 버튼 9를 눌러도 작동하지 않습니다. Evdev가 마우스 버튼을 합성해서 자극을 주는 것 같지는 않습니다. 저는 마법의 "H" 키를 눌렀을 때 실행 xdotool mousedpown 9
되고 xdotool mouseup 9
키를 놓았을 때 실행되는 스크립트를 만들었습니다. 버튼을 9에서 1로 변경(왼쪽 클릭이라고도 함)하여 스크립트가 수행해야 하는 작업을 수행하는지 확인할 수 있으며 키보드에서 "H"를 누르고 있으면 왼쪽 클릭이 유지되지만 Evdev 에뮬레이션이 절망적이지는 않음을 확인할 수 있습니다.
답변1
가장 쉬운 방법은 uinput 모듈과 Python을 사용하여 더미 포인터를 만드는 것입니다. 그런 다음 키보드에서 키를 누를 때 가상 포인터에 마우스 버튼을 내보내는 스크립트를 만듭니다.
나는 완전한 설명을 썼다.블로그. 자세한 내용이 필요하면 확인할 수 있습니다.