위험 부저를 시뮬레이트하는 애플리케이션을 작성하고 싶습니다. 호스트 컴퓨터는 N개의 마우스에 연결되어 각 플레이어의 부저 역할을 합니다.
그것은 무엇입니까?가장 단순한이 애플리케이션을 Python으로 작성하는 방법은 무엇입니까? 이상적인 솔루션은 새로운 물리적 하드웨어를 변조하거나 생성하는 것을 방지하는 것입니다.
내가 고려하고 있는 옵션:
- USB 장치는 운영 체제에서 일반 텍스트 스트림으로 읽힌다고 들었습니다. 하지만 어디?
- 각 버튼을 다른 키에 바인딩한 다음 키보드 이벤트를 수신할 수도 있습니다. 마우스-0의 마우스 오른쪽 버튼 클릭을 키-0에 바인딩하고 마우스-1의 마우스 오른쪽 버튼 클릭을 키-1에 바인딩할 수 있습니까? 아니면 모든 오른쪽 클릭이 동일한 키에 바인딩되어 있습니까?
다양한 옵션이 있는데 가장 쉬운 것이 무엇인지 궁금합니다. 또한 내가 읽는 대부분의 내용은 X11( xinput this
또는 xev that
)에 대한 것입니다. Wayland에서도 같은 일을 어떻게 해야 합니까?
답변1
여러 개의 USB 마우스를 연결하면 각각 과 같은 이름을 가진 새 장치로 나타납니다 /dev/input/event9
. 유틸리티는 evtest
이러한 모든 장치를 대화형으로 나열하고 표시되는 장치 유형을 추가합니다. 예:
/dev/input/event9: Logitech USB Optical Mouse
그런 다음 실행하면
evtest --grab /dev/input/event9
마우스를 움직이거나 버튼을 클릭할 때마다 데이터가 인쇄되는 것을 볼 수 있습니다. 또한 --grab
이러한 이벤트가 Wayland(또는 X11) 서버로 더 이상 전송되는 것을 방지합니다.
이에 대한 스크립트를 작성하여 게임을 구현할 수도 있고, 이 패키지를 사용하여 Python3에서 프로그래밍 방식으로 동일한 작업을 수행할 수도 있습니다. evdev.