키보드의 숫자 키패드를 어떻게 비활성화합니까?

키보드의 숫자 키패드를 어떻게 비활성화합니까?

키보드 오른쪽에 있는 모든 숫자 패드 키를 비활성화하고 싶습니다.

어떻게 해야 하나요? 물론, 작동을 복원하고 숫자 키패드를 다시 활성화하는 방법도 알고 싶습니다.

나는 다시 매핑하는 것과 같은 다양한 것을 시도했습니다.

xmodmap -e "keycode # = """

하지만 오류가 발생합니다.

xmodmap commandline1: bad keycode value

내가 뭘 잘못했나요?

답변1

이를 비활성화하려면 XKB다음에서 수행할 수 있습니다.엑스 keycodes파일(키보드에 해당하는 파일 -운영 체제사용 /usr/share/X11/xkb/keycodes/evdev). 숫자 패드 키 코드는 다음으로 시작하므로 <KP...이 행 앞에 다음을 추가할 수 있습니다 //kp_dsbl( //주석은 kp_dsbl변경 사항을 되돌리려는 경우 나중에 행을 식별하는 데 사용할 수 있는 임의의 문자열입니다).

sed -i '/^[[:blank:]]\{1,\}<KP/s|^|//kp_dsbl|' /usr/share/X11/xkb/keycodes/evdev

또는

ed -s /usr/share/X11/xkb/keycodes/evdev <<\IN
g/^[[:blank:]]\{1,\}<KP/s|^|//kp_dsbl|
w
q
IN

다시 활성화하려면:

sed -i 's|^//kp_dsbl||' /usr/share/X11/xkb/keycodes/evdev

또는

ed -s /usr/share/X11/xkb/keycodes/evdev <<\IN
,s|^//kp_dsbl||
w
q
IN

답변2

#이 키 코드 번호를 나타내는 데 사용된다고 가정할 때 제가 발견한 첫 번째 문제는 쉘 인용이었습니다. 쉘은 분리되지 않는 한 문자열을 암시적으로 연결합니다.

그래서 입력할 때

xmodmap -e "keycode # = """

그것은 동등하다

xmodmap -e "keycode # = "

다음 중 하나를 입력할 수 있습니다.

xmodmap -e "keycode # = \"\""
xmodmap -e 'keycode # = ""'
xmodmap -e "keycode # = "\"\"
xmodmap -e "keycode # = "'""'

그럼에도 불구하고 원하는 효과를 얻지 못할 수도 있습니다. 내 기억이 녹슬었지만 널 키 표기법을 사용해야 할 수도 있습니다.

xmodmap -e "keycode # = null"

일반적으로 말하면 지도에 올바른 경로를 제거했다가 추가하고 있다고 생각합니다. 추가하는 것은 쉬워야 합니다.

답변3

"잘못된 키코드 값"이라고 표시 되면 xmodmap잘못된 키코드 값을 전달했다는 의미입니다. 이 프로그램을 사용하여 xev키에서 보낸 키코드를 볼 수 있습니다. 터미널에서 이 프로그램을 실행하고 xev 창에서 키를 누른 다음 KeyPress터미널에 나타나는 이벤트를 확인하세요. #질문에 쓴 대로 올바른 값을 사용하세요 .

현재 전송된 기호 키 기호를 기반으로 키를 재할당할 수도 있습니다. 비슷한 방법을 사용하여 키보드를 비활성화할 수 있습니다

xmodmap <<EOF
keysym KP_0 =
keysym KP_Decimal =
keysym KP_Enter =
keysym KP_Plus =
keysym KP_Minus =
keysym KP_Multiply =
keysym KP_Divide =
EOF

그러나 키보드 기능을 복원하려면 키코드를 기억해야 합니다. 처음에는 파일에 저장할 수 있습니다.

xmodmap -pke | grep KP_ >keypad.xmodmap

XKB에는 더 편리한 방법이 있을 수 있습니다.

관련 정보