키보드 키를 강제로 다시 매핑하는 방법을 찾으려고합니다.
xmodmap과 setxkbmap을 사용해 보았지만 특정 응용 프로그램에서는 작동하지 않습니다. 이러한 명령은 Xtho의 다른 일반 창 / 응용 프로그램에서 작동합니다.
응용 프로그램이 키보드 원시 데이터를 읽고 X 입력을 무시하고 있다고 생각합니까?
그렇다면 xmodmap과 setxkbmap을 사용하지 않고 키를 다시 매핑하는 방법은 무엇입니까? 일부 소프트웨어를 사용하여 수행 할 수있는 경우
또한 xkeycaps, xkbcomp를 시도했지만 X에서 실행되므로로드 키를 시도하지 않았습니다.
내가 발견 여기에 내가 시도 할 수 있다는 것을 setkeycodes
, "커널 키 코드를 할당 한 후 버튼으로 Xorg에서 작업을해야하기 때문에" 그러나 나는 또한 발견 "당신은 USB 키보드에서 'setkeycodes'를 사용할 수 없습니다" 내 경우 (나는 경우에 관심이 있다고, 누군가 내가 어댑터를 사용할 수 있다고 생각하기 때문에 ps2에서 작동하게합니다.)
이것은 유망한 "스캔 코드를 키 코드로 매핑"하는 것처럼 보이지만 몇 가지 테스트 후에도 아무런 변화가 없었습니다.
vt1에서 키 코드 "36"( "j"키)를 showkey
발견 했으며 스캔 코드 "7e"(키패드 ".") vt1showkey --scancodes
$cat >/etc/udev/hwdb.d/90-custom-keyboard.hwdb
keyboard:usb:v*p*
keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*
KEYBOARD_KEY_7e=36
$udevadm hwdb --update #updates file: /lib/udev/hwdb.bin
$udevadm trigger #should apply the changes but nothing happened
$cat /lib/udev/hwdb.bin |egrep "KEYBOARD_KEY_7e.{10}" -ao
KEYBOARD_KEY_7eleftmeta
$#that cat on hwdb.bin did not change after the commands..
Obs. : 다음과 함께 작동하지 않았습니다. KEYBOARD_KEY_7e=j
키를 찾는 다른 방법 (@ vinc17) :
evtest /dev/input/by-id/...
또는
input-kbd 3
( ls -l /dev/input/by-id/*
ex. event3에서 찾은 id 색인을 넣음)
추신 : * 당신이 직접 테스트에 관심이 있다면, 응용 프로그램의 관련 스레드는 다음과 같습니다 : http://forums.thedarkmod.com/topic/14266-keyboard-issue-in-new-version-108/ 내가 문제 동일 함 : 일부 키 (KP_Decimal, DownArrow, UpArrow, RightArrow)는 무시되고 "0x00"에 동일한 값을 갖는 것으로 간주됩니다.
showkey --scancodes
사용하면 udev가 기대하는 스캔 코드를 제공하지 않습니다 (값이 다릅니다). 이 input-kbd
유틸리티는 올바른 스캔 코드를 제공합니다.
evtest
유틸리티는 당신에게 올바른 스캔 코드를 제공해야합니다 : 키를 입력 한 후, 당신은이 선을 받아야하고, 첫 번째 형태의 무언가로 끝나야합니다 code 4 (MSC_SCAN), value xxx
, xxx
스캔 코드입니다. 그러나 내 키보드의 드라이버는 버그가 있으며 MSC_SCAN
다시 매핑하려는 키에 대해서는 이 줄을 얻지 못했습니다 . 그래서 내가 input-kbd
선택한 장치의 모든 스캔 코드를 나열하는을 사용했습니다 .
/etc/udev/hwdb.bin
아니 어야합니다/lib/udev/hwdb.bin
. 그러나이 파일이 올바르게 업데이트되었지만 재부팅 후에도 작동하지 않습니다. 문서에 누락 된 내용이있을 수 있습니다. 이 약 bugs.freedesktop.org/show_bug.cgi?id=82311