2020년 업데이트

2020년 업데이트

나는 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사용하면 키 누르기 또는 데드 키 콤보의 결과와 같은 다중 코드 포인트 문자를 출력할 수 있습니다 .

관련 정보