![xmodmap을 사용하여 키 매핑을 사용하면 여러 키가 변경됩니다.](https://linux55.com/image/126623/xmodmap%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%82%A4%20%EB%A7%A4%ED%95%91%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%A9%B4%20%EC%97%AC%EB%9F%AC%20%ED%82%A4%EA%B0%80%20%EB%B3%80%EA%B2%BD%EB%90%A9%EB%8B%88%EB%8B%A4..png)
저는 우분투 서버 16.04를 실행하고 있습니다. 이것이 중요한지는 확실하지 않지만 다음을 사용하여 화면을 브라우저로 전달하고 있습니다.XPRA.
일부 성가신 키 조합을 제외하면 모든 것이 잘 작동합니다. 저는 SHIFT와 Z 키 사이에 backslash
and (파이프) 가 있는 키가 있는 GB 키보드를 사용합니다 bar
. 이를 "바 키"라고 부릅니다. 키보드의 왼쪽 상단 모서리에는 "무덤 키"라고 불리는 grave
키가 있습니다.notsign
이러한 키는 클라이언트 운영 체제와 SSH를 사용하여 서버에 연결할 때 제대로 작동합니다. 그러나 전달된 응용 프로그램(예: xterm)에서 사용할 때 잘못된 문자가 표시됩니다.
"Bar Key"는 "\"(올바른 것) 및 "Ø"(잘못된 것, "|"여야 함)을 표시합니다.
"grave key"는 무덤 "`"(올바른) 및 notsign "Ø"(올바른)을 표시합니다.
그래서 키코드를 찾아 매핑하기 위해 일반적인 xev
& 조합을 시도했습니다.xmodmap
xev를 실행하면 "bar key"에 대해 다음과 같은 출력이 표시됩니다.
backslash (\): keycode 94
bar (|): keycode 49
그리고 다음의 "무덤의 열쇠"
grave (`): keycode 49
notsign (¬): keycode 49
여러 개의 물리적 키에 매핑되는 키코드 49를 사용하면 많은 일이 벌어지고 있는 것 같습니다.
사물이 어디에 매핑되어 있는지 확인하기 위해 다음 명령을 실행했습니다.
xmodmap -e "keycode 49 = 1 2 3 4 5 6"
다양한 키를 입력하면
\ = is still \ because we didn't remap 94
| = 2
` = 1
¬ = 2 (also 2 ... brilliant)
그렇다면 두 문자가 동일한 키코드/위치 조합에 매핑되는 경우 어떻게 다시 매핑합니까? (@key 출력 Q와 같이 다시 매핑해야 할 몇 가지 다른 항목이 있지만 먼저 첫 번째 항목부터 살펴보겠습니다.)
다음은 몇 가지 추가 진단 정보입니다.
~$ setxkbmap -query
rules: evdev
mode: pc105
layout: gb
~$ localectl status
System Locale: LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
VC Keymap: n/a
X11 Layout: gb
X11 Model: pc101