Xorg 用の新しいカスタム キーボード レイアウトを作成していますが、Unicode には存在しない特定のグリフが 1 つあります。ただし、標準文字と結合発音区別符号を使用することで簡単に作成できます。
たとえば、v
下にマクロンが付いた文字が必要な場合、シーケンスによってU0073+U0331
必要な文字が作成されます。
私の xkb レイアウト定義では、単一の Unicode ポイントを指定できます (ここではaltgr+d
ḏ とaltgr+shift+d
Ḏ にバインドされています)。
key <AC03> { [ d, D, U1E0F, U1E0E ] }; // d with macron below
しかし、単一のキーに対して「結合された」Unicode グリフを指定することはできないようです。
key <AB04> { [ v, V, U0076+U0331, U0056+U0331 ] }; // v with macron below
このようにシステム全体の xkb 定義を作成することは可能ですか?
答え1
編集:
まだやっています...
テストの結果、キーマップは各位置に 1 つのキーのみを配置することが分かりました。
ただし、キーマップ定義でまれな/使用されたことのないキーシムを使用し、そのキーシムが必要なさまざまな Unicode 文字を出力するようにするグローバル Xmodmap を使用すると、これは機能します。
キーマップ内:
key <AB04> { [ v, V, XF86LaunchA, XF86LaunchB ] };
グローバル Xmodmap 内: (おそらく /etc/profile.d からロードされます)
keysym XF86LaunchA = U0056 U0331
keysym XF86LaunchB = U0076 U0331
未使用/特殊用途のキーシンボルがかなりありますが、例として LaunchA/B を選択しました。
答え2
一方、特定のキーに Unicode の結合二段階文字自体を関連付けて、他の文字の後にそれを入力することができます。実際、これが Unicode の結合文字が機能する方法です。
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
これは、Unicode と多言語入力を完全にサポートするように構築された、ほぼドロップイン代替品です。他の多くの機能の中でも、uim を使用すると、U0073+U0331
キーの押下やデッド キーの組み合わせの結果として、マルチコード ポイント文字を出力できます。