Xorg에 대한 새로운 사용자 정의 키보드 레이아웃을 작성 중인데 유니코드에 존재하지 않는 특정 문자 모양이 있습니다. 그러나 표준 문자와 발음 구별 부호를 결합하면 쉽게 만들 수 있습니다.
v
예를 들어, 아래 매크로가 포함된 문자를 원할 경우 이 시퀀스 U0073+U0331
는 내가 원하는 문자를 생성합니다.
내 xkb 레이아웃 정의에서 단일 유니코드 포인트를 지정할 수 있습니다(여기서는 altgr+d
ḏ 및 altgr+shift+d
Ḏ에 바인딩됨).
key <AC03> { [ d, D, U1E0F, U1E0E ] }; // d with macron below
하지만 단일 키에 대해 "결합된" 유니코드 문자를 지정할 수 없는 것 같습니다.
key <AB04> { [ v, V, U0076+U0331, U0056+U0331 ] }; // v with macron below
이와 같이 시스템 전체 xkb 정의를 만드는 것이 가능합니까?
답변1
편집하다:
아직도 노력중...
테스트 결과 키맵은 위치당 하나의 키만 사용하는 것으로 나타났습니다.
그러나 키맵 정의에서 드물거나 전혀 사용되지 않는 키심을 사용하는 경우 전역 Xmodmap을 사용하여 해당 키심 출력을 필요한 다양한 유니코드 문자로 만드는 것이 가능합니다.
키맵에서:
key <AB04> { [ v, V, XF86LaunchA, XF86LaunchB ] };
전역 Xmodmap에서: (/etc/profile.d에서 로드될 수 있습니까?)
keysym XF86LaunchA = U0056 U0331
keysym XF86LaunchB = U0076 U0331
사용되지 않은/특수 목적의 키 기호가 많이 있습니다. 저는 LaunchA/B를 예로 선택했습니다.
답변2
반면에 발음 구별 문자 자체와 결합된 유니코드를 지정된 키에 추가한 다음 다른 문자 뒤에 입력할 수 있습니다. 실제로 이것이 유니코드 결합 문자가 작동하는 방식입니다.
X11에는 반대 방식으로 작동하는 데드 키가 있습니다. 먼저 데드 키, 그 다음 기본 문자입니다. <dead_belowmacron>
열쇠에 부착할 수 있는 것이 있습니다 .
그런 다음 로케일의 Compose 파일을 편집하고(사용자 정의 위치에서 Compose 파일에 정의를 추가하는 방법을 아는 사람이 있다면 감사하겠습니다) 다음과 같은 줄을 추가해야 합니다.
# when the output is a single unicode char, you put also the corresponding
# X11 symbol name
# <symbol> <symbol> : "one-char-string" <symbol>
<dead_belowmacron> <d> : "ḏ" U1E0F
<dead_tilde> <n> : "ñ" <ntilde>
# when the output is a multicharacter string, you put just the string
# <symbol> <symbol> : "string"
<dead_belowmacron> <v> : "v̱"
사용할 Compose 파일은 /usr/share/X11/locale/compose.dir 파일의 로케일에 의해 정의됩니다(경로는 다를 수 있음).
답변3
2020 업데이트
이 질문은 2012년에 제기되었으며, 이 질문 이전의 최신 답변은 2013년에 있었습니다. 오랫동안, 더 나은 대답은 간단히 xim
시작하는 것이었습니다.uim
. 유니코드 및 다국어 입력을 완벽하게 지원하도록 설계된 드롭인 대체품입니다. 다른 많은 기능 중에서 uim을 사용 U0073+U0331
하면 키 입력이나 데드 키 조합의 결과 와 같은 다중 코드 포인트 문자를 출력할 수 있습니다 .