내 노트북에서는 QJoypad를 사용하여 일부 버튼을 키에 매핑하여 아케이드 버튼을 사용하여 복고풍 게임을 할 수 있습니다. Qjoypad는 다음과 같은 것을 생성합니다:
Joystick 1 {
Axis 1: +key 116, -key 111
Axis 4: +key 113, -key 114
Button 1: key 65
}
이 숫자는 X 키 코드이며 프로그램에서 찾을 수 있습니다 xev
. ~에서여기:
X 서버는 X 키 코드와 키 기호를 포함하는 두 가지 수준의 키 인코딩을 사용합니다. X 키 코드는 단일 바이트 값입니다. 키에 키 코드 할당X 서버 구현 및 물리적 키보드에 따라 다름. 따라서 X 응용 프로그램은 일반적으로 키 코드를 직접 사용할 수 없습니다. 대신 키 코드는 공백, 이스케이프, x, 2 등의 이름이 포함된 키 기호에 매핑됩니다.
그런데 여기서 헷갈립니다.
내 시스템에 키보드가 2개 있으면 어떻게 되나요?
키보드가 없으면(예: Raspberry Pi 사용) 어떻게 합니까?
이것에지도 시간, 이 사람은 Raspberry Pi와 외부 키보드가 있는 Qjoypad를 사용합니다. 키보드를 떼어도 여전히 작동하나요?그렇다면 X 키코드는 어떻게 생성되나요?
답변1
키보드 a동작 EnterX 인프라는 그러한 이벤트가 어디서 오는지 신경 쓰지 않으며, 다른 응용 프로그램에서 이를 합성하거나 QJoypad
원하는 수의 키보드를 연결하여 그러한 이벤트를 생성할 수 있습니다.
실제로 View Device Tree를 사용하면 xinput
"Virtual Core Keyboard"에 연결된 여러 장치를 볼 수 있으며 이러한 모든 장치는 키 이벤트(대부분 "전원 버튼" 키 이벤트임)를 생성할 수 있습니다.
따라서 시스템에 키보드가 0개, 2개 또는 100개 있더라도 작동합니다.
그러나 키심과 키코드가 필요합니다. 키코드에 대해 일치하는 키섬을 찾을 수 있는 루틴이 있으므로(또는 그 반대) 이를 사용하고 싶습니다 QJoypad
.