NetBSD에서 US AltGr-Intl 레이아웃을 효율적으로 얻는 방법은 무엇입니까?

NetBSD에서 US AltGr-Intl 레이아웃을 효율적으로 얻는 방법은 무엇입니까?

미국 레이아웃으로 전환한 후 wsconsctl -w encoding=us키맵을 내 맘대로 수정하는 방법을 찾아보고 있습니다.

나는 그랬다:

wsconsctl -w map+="keycode 1 = Cmd_Debugger Caps_Lock"
wsconsctl -w map+="keycode 58 = Escape"

대문자 잠금 키와 Esc 키를 바꿉니다(저는 Vim 사용자이므로 이 스왑이 의미가 있습니다).

나는 wsconsctl mapset 을 발견했는데 keycode 184 = Mode_switch Multi_key, 내가 이해한 바에 따르면 이는 AltGr독일어 키보드에서 사용하는 기능입니다.

키코드를 184로 설정해 보았 으나 Mode_switch(보통 Alt_R아무 작업도 수행하지 않음) 그것이 무엇을 하는지 완전히 이해하지 못했습니다 AltGr.

NetBSD는 US AltGr-Intl 변형과 함께 제공되지 않는 것 같으므로 최소한 정의하고 싶습니다.일부나는 키(예: 독일어 움라우트)가 필요했고 AltGr-Intl 변형을 이런 식으로 "백포트"했습니다.

그래서 제가 가장 먼저 시도한 것은wsconsctl -w map+="keycode 16 = q Q adiaeresis Adiaeresis"

AltGr이 작업을 수행할 때 + :를 입력하면 콘솔에 이상한 오류 코드가 표시됩니다 q. <00ef>utf-8 코드나 내 코드와 유사한 것 같습니다. 어쨌든 예상대로 "ä"가 생성되지 않습니다. 또한 키맵의 내용을 확인할 때 변경 후 다음과 같은 일이 발생합니다.

# wsconsctl map | grep -i "code 16"
keycode 16 = q Q adiaeresis gr_D

"" gr_D? 그거 어디서 나온 거야? 어떤 이유에서인지 192번째 줄에 있는데도 다음과 같은 내용 wsconsctl이 마음에 들지 않는 것 같습니다.Adiaeresis/usr/include/dev/wscons/wsksymdef.h

#define    KS_Adiaeresis    0xc4

나는 이것이 모든 캐릭터에게 발생하는 것은 아니라는 것을 알았습니다. 매핑을 시도했는데 wsconsctl -w map+="keycode 16 = q Q at at"훌륭하게 작동합니다. 그런 다음 AltGr+ 를 클릭하여 "@"을 입력 할 수 있습니다 q.

또한 로그인 프롬프트에서 길게 누르면 특수 문자를 입력할 수 있습니다. 사용자 이름을 AltGr입력하는 것은 äåéóöëíúáßðfø¶œï문제가 되지 않습니다. 하지만 일단 로그인하면 US 인코딩이 로드되는 것 같고 그 이후로는 일반적인 US 레이아웃이 됩니다. .

AltGr기본적으로 또는 오른쪽 Alt 키를 길게 눌러 특수(라틴어) 문자를 입력 할 수 있다는 아이디어입니다 .

운영 체제는 NetBSD 7.0/amd64이며 amd64 호스트(Linux)의 VM에서 실행됩니다.

관련 정보