Xorg用の新しいカスタムキーボードレイアウトを作成していますが、Unicodeには存在しない特定の文字の外観があります。ただし、標準文字と発音区別記号を組み合わせることで簡単に作成できます。
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つのキーのみを使用することがわかりました。
ただし、キーマップ定義でまれまたは全く使用されていないキーシムを使用している場合は、グローバルXmodmapを使用してそのキーシム出力を必要なさまざまなUnicode文字にすることができます。
キーマップから:
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
と、キーストロークやデッドキーの組み合わせの結果など、マルチコードポイント文字を出力できます。