일반적인 USB 키보드와 동일하게 작동하지만 숫자 패드 키와 LED 만있는 USB 숫자 패드를 구입했습니다. 그것은 리눅스에서 정상적으로 작동하고 실제 키보드와 숫자를 입력 할 수 있습니다. 창을 가질 필요없이 키 입력 및 LED 제어에 직접 반응 할 수있는 응용 프로그램을 작성하고 다른 응용 프로그램이 해당 응용 프로그램에 응답하지 못하게하려고합니다. 어떻게해야합니까?리눅스 : USB 키보드로 직접 연결
답변
글쎄, 이그나시오의 의견은 올바른 방향으로 나를 가리키는 데 약간 도움이되었다. gdk_display_get_default()에서 디스플레이를 가져온 다음 gdk_display_get_device_manager()를 사용하고 gdk_device_manager_list_devices()를 사용하여 장치를 찾은 다음 마지막으로 gdk_device_grab()를 사용하여 장치를 가져와야합니다. (또는 정말로 원한다면 X API를 직접 사용할 수도 있습니다 ...) 그러면 포커스에 관계없이 키보드의 이벤트를 내 윈도우로 보낼 수 있습니다.
내가 겪었던 한 가지 문제점은 창을 숨김, 최소화 또는 다른 작업 공간에서 수신하지 못하도록 "표시"해야한다는 것입니다. 내가 숨길 수있는 최선의 방법은 1x1 픽셀의 장식을하지 않고 어딘가에 화면에 붙이는 것입니다 (일부 WM에서는 실제로 화면이 보이지 않으므로 작은 크기이기도 함).
이벤트 장치 인터페이스 /dev/input
을 확인하십시오.
좋은 파이썬 인터페이스입니다 http://pythonhosted.org/evdev/
상세 정보 :
가 입력 서브 시스템을 사용하여, 파트 II
리눅스 저널, 이슈 # 107 2003 년 월 나는 비슷한 작업입니다
http://www.linuxjournal.com/article/6429
아마도 키보드 이벤트를 캡처하기 위해 evdev를 사용할 것이지만 Xlib 레이어에서 XTest를 사용하여 가상 키보드 이벤트를 생성 할 것입니다.
/dev/input
이 X보다 작으므로 창 포커스/표시가 필요하지 않습니다.
UPDATE (헤세이 17, 2014) : 여기
명령 행 통해 전혀 다른 방식이다.
1) xinput --list
으로 사용 가능한 입력 장치 (및 해당 ID)를 나열하십시오.
2) "Float"대상 입력 장치는 xinput --float <device_id>
입니다. 장치를 플로팅 한 후에는 실행중인 응용 프로그램에서 생성 한 입력 이벤트가 더 이상 들리지 않습니다. 따라서 테스트/개발 중에는 두 개의 키보드 (및/또는 마우스)를 꽂고, 다른 하나는 플로팅하고, 다른 하나는 연결해야합니다. (xinput --reattach <device_id> <master_id>
으로 플로팅 된 장치를 다시 부착 할 수 있습니다.)
3) 장치가 플로팅 된 후 xinput --test <device_id>
을 실행하여 생성 한 이벤트를 "볼"수 있습니다.
당신이 ... 말하지 않는 C.
http://anonscm.debian.org/gitweb/?p=pkg-xorg/app/xinput.git;a=tree
- 1. 리눅스 USB 매핑 질문
- 2. USB 디스플레이로 리눅스 데스크탑
- 3. USB 연결 문제
- 4. 리눅스, sysfs, usb 스틱 및 usb 하드 드라이브
- 5. linux usb 연결/연결 끊기 이벤트
- 6. USB 키보드로 Ableton Live/M-Audio 고속 트랙 충돌이 발생했습니다.
- 7. 리눅스 USB : libusb 대 sysfs
- 8. USB 스틱에서 리눅스 파티션 복사
- 9. 리눅스 USB 드라이버 : 인터럽트 URB
- 10. USB 디스크에 바이트를 직접 작성하십시오
- 11. 안드로이드에서 전화로 USB 연결
- 12. 안드로이드에서 USB 연결
- 13. 프로그래밍 Usb Android와 연결
- 14. 안드로이드, 아이폰 USB 연결
- 15. Android USB 연결 상태;
- 16. 원격 USB 연결 C
- 17. USB 장치를 Android에 연결
- 18. Android-USB 연결
- 19. 스위프트의 USB 연결 대리인
- 20. 킨들 USB 연결
- 21. udev 또는 libusb없이 리눅스에서 usb 연결 이벤트
- 22. arduino에서 데이터 통신용 안드로이드로 직접 연결
- 23. 리눅스 기반 USB 카메라 리버스 엔진 개발
- 24. Windows에 ping 5 연결 USB 연결
- 25. USB 장치 자동 감지 연결/연결 해제
- 26. 리눅스 ARSystem 데이터 연결
- 27. Bluez BLE 연결 리눅스
- 28. 블루투스 RFCOMM 연결 리눅스
- 29. 리눅스 셸에서 별칭을 연결
- 30. 리눅스 공유 라이브러리에 연결
http://www.x.org/wiki/XI2 –
을에서 수행하는 방법을 볼 수 XInput에 대한 소스 코드를 볼 수 있습니다 나에게 많은 걸. XGrabDevice를 사용해야할까요? 하지만이 디스플레이는 어디서 구할 수 있습니까? – Rena