XKB: 동작에 여러 키코드 할당()

XKB: 동작에 여러 키코드 할당()

새 블루투스 키보드가 있는데 어떤 이유로 이스케이프 키가 1 대신 172의 키 코드를 반환합니다("showkey"에 따르면 동일한 코드가 xkb에 8을 추가하므로 9 대신 180이 됩니다). 설명을 따르세요이 답변키코드 9 대신 180을 사용하도록 ESC를 다시 매핑할 수 있었으므로 괜찮습니다. 하지만 두 번 할 수는 없는 것 같습니다.

    <ESC> = 9;
    <ESC> = 180;

이 경우 후자의 설정만 유효합니다. 이는 내장 키보드의 키를 손상시키므로 차선책입니다. 따라서 둘 중 하나만 작동하게 할 수는 있지만 둘 다 작동시킬 수는 없습니다.

이에 대한 올바른 접근 방식은 무엇입니까?

답변1

내가 이해한 바로는 두 가지 수준의 매핑을 거쳐야 합니다. 내부에키코드 매핑<>키보드에서 생성된 숫자 스캔 코드에 대해 "임의의" 이름(내부적으로 최대 4자)을 지정할 수 있습니다.기호 매핑이 키 이름이 어떻게 작동한다고 말합니까? 그래서 당신은 가지고 있어야합니다

<ESC> = 9;
<ESC2> = 180;

그런 다음 xkb_symbols항목

 key <ESC2>  {  [ Escape        ]   };

하지만 키보드가 2개인 경우에는 실제로는 호환되는 키보드를 만드는 것이 아니라 단순히 키보드마다 다른 레이아웃을 설정해 주어야 합니다. xinput -list각 실행의 ID setxkbmap -device id ...와 특정 키보드의 모델, 레이아웃, 변형 및 옵션을 지정하는 기타 매개변수 와 함께 키보드의 ID를 가져오는 데 사용됩니다 .

답변2

~에 따르면신뢰할 수 없는 XKB 구성 가이드,당신은 그것을 사용할 수 있습니다별명. 이 기능은 다음 용도로 사용됩니다.xkb/aliases, 그래서 당신은 다음과 같은 일을 할 수 있어야합니다

alias <ESC> = 9;
alias <ESC> = 180;

관련 정보