ComposeKeyによるスマートレイアウト

このトピックは、 以前のトピックの続きで、3つ以上ある場合のレイアウトの切り替えに関する問題について説明しました。 このトピックでは、ComposeKeyを使用してこの問題を解決する方法について説明します。 さらに、ComposeKeyは他の目的にも最適です。



一般的な情報



代替レイアウトでは、ほとんど使用されない少数の文字のみが必要なので、別の追加のキーボードレイアウトを保持するよりも、特定のキーボードショートカットにそれらをバインドする方が便利です。 はい、Unicode文字を使用してそれらを記述できますが、まず、文字コードを覚えておく必要があり、次に、常に機能するとは限りません(前の記事で説明)。 ComposeKeyは、印刷できない文字を入力するためのLinux上のメカニズムである救助に来ます。



どのように機能しますか?



ComposeKeyキーがあり、押すと他のキーの組み合わせのセットがあり、シンボルが表示されます。 このキーは、コンソール(たとえば、 setxkbmap -option compose:rwin



が正しいWinキーをComposeKeyに設定する)、またはグラフィカルインターフェイスから構成できます。



画像



組み合わせはどのように利用できますか?



すべての組み合わせは、ファイル/usr/share/X11/locale/CURRENT/Compose



で利用できます。ここで、CURRENTは現在のロケールです。 すべての組み合わせは直感的であり、主なことはそれらの構造の原理を理解することです。



そして、これはレイアウトにどのように関係しますか?



独自の組み合わせを宣言する機会があります。 たとえば、 ComposeKey +



onにІ



表示され、 ComposeKey +



にїが表示されます。 そして、覚えておくのは簡単であり、使用は追加の問題にはなりません。



まず、ドワーフの問題を解決しましょう。 彼はすべてのロケールでの互換性のためにコードにハードコードされたすべての組み合わせを持っているので、それらを変更することはできません。 しかし、標準のXwindow Input Method(XIM)でそれらをオーバーライドできます。 これを行うには、環境変数GTK_IM_MODULE = "xim"



を設定する必要があります。 〜/ .bashrcに書き込みます(すべてのユーザーに必要な場合は、/ etc /環境に):



export GTK_IM_MODULE="xim"







組み合わせを登録するには、ソースキーの名前、キャラクター自体、必要なキャラクターのUnicodeコードを知る必要があります。



ソースキー名


悪名高いxevユーティリティが助けとなり、すべてのXイベントを表示します。 まず、ロシア語のレイアウトでいくつかのキーを押して、出力を確認します。 次のようになります。



KeyPress event, serial 35, synthetic NO, window 0x4800001,

root 0x15a, subw 0x0, time 191545195, (-229,390), root:(776,413),

state 0x2000, keycode 58 (keysym 0x6d8, Cyrillic_softsign), same_screen YES,

XLookupString gives 2 bytes: (d1 8c) ""

XmbLookupString gives 2 bytes: (d1 8c) ""

XFilterEvent returns: False



KeyRelease event, serial 35, synthetic NO, window 0x4800001,

root 0x15a, subw 0x0, time 191545265, (-229,390), root:(776,413),

state 0x2000, keycode 58 (keysym 0x6d8, Cyrillic_softsign), same_screen YES,

XLookupString gives 2 bytes: (d1 8c) ""

XFilterEvent returns: False







state 0x2000, keycode 58 (keysym 0x6d8, Cyrillic_softsign), same_screen YES



。このCyrillic_softsign



はキーの名前です。



シンボルとそのUnicodeコード


シンボル自体は、シンボルテーブルで見つけるか、どこかからコピーできます。 そのユニコードコードを見つけるには、インターネット上でユニコード文字のテーブルを見つけ、文字とそのコードを見つける必要があります。



しかし、例はどうですか?



たとえば、 ComposeKey +



表示されるように組み合わせてみましょう。 「s」キーの名前を見つけます。 xev



は、シンボルがCyrillic_yeru



と呼ばれると言います。 さらに、Unicodeテーブルでシンボル「i」とそのコードU0456を見つけます。 組み合わせを説明する行は次のようになります。

<Multi_key> <Cyrillic_yeru> : "i" U0456







Multi_keyはComposeKeyです。



~/.XCompose



バージョンを投稿します。



include "/usr/share/X11/locale/en_US.UTF-8/Compose"

<Multi_key> <Cyrillic_e> : "є" U0454

<Multi_key> <Cyrillic_E> : "Є" U0404

<Multi_key> <Cyrillic_yeru> : "i" U0456

<Multi_key> <Cyrillic_YERU> : "І" U0406

<Multi_key> <Cyrillic_ghe> : "ґ" U0491

<Multi_key> <Cyrillic_GHE> : "Ґ" U0490

<Multi_key> <Cyrillic_hardsign> : "ї" U0457

<Multi_key> <Cyrillic_HARDSIGN> : "Ї" U0407









PS変更後は、Xサーバーを再起動することを忘れないでください



All Articles