人々はXKBを使用する必要があるので、この質問はおそらく計算を見直すべきです。しかし、私は彼らがそれをする方法を本当に疑問に思います。クラスプグループ切り替えにはxmodmap /を使用してくださいXChangeKeyboardMapping()
。
xmodmap manとX11 libのドキュメントを読み、英語とロシア語のキーボードレイアウトを使用するには、キーシンボルを特定のキーコード(たとえば[code_for_letter_l] --> XK_l XK_L XK_Cyrillic_de XK_Cyrillic_DE
)にマップし、特定のキーコードをMODE_SWITCHにマップする必要があるようです。
このコードとLを押すと、ロシア語の文字「Д」が表示されます。
しかし、どのようにロックできますか? Lock修飾子があるがXK_Caps_Lockキー記号(および理解できないShiftLock)でのみ機能します。
MODE_SWITCHにロックを追加しても効果はありません。
Linuxコンソールのキーマップを使用してAltGrにグループを追加し、AltGr_Lockにいくつかのキーコードを追加することでロックできます。効果があるしかし、Xではどうすればいいですか?
キリル語やその他のビラティンレイアウト(古代のディストリビューションでは多い)の複数のモードマップを確認しましたが、すべての場合、人々は大文字のロックを使用したりロック/ラッチをまったく使用したりしません。
だから私はXKB以前(1996年以前?)には「CTRL + Shift」のようなキーを使ってレイアウトを切り替えることは不可能だと思いました。しかし、それはとんでもなく聞こえます。
私は正しいですか?
答え1
まずこれをこう呼ぶ。ロックするなぜならクラスプそのキーが次のキーにのみ影響することを示します。
持ついいえコアプロトコルでグループをロックする方法ですが、XKB拡張は次のようにいくつかのキーを追加します。ISO/IEC 9995。
XKB、付録C.新しいKeySym:ISO NEXT GROUP
keysymdefs.h
#define XK_ISO_Next_Group 0xfe08
そのため、Winキーの代わりににkeycode 133 = ISO_Next_Group_Lock
を追加して~/.xmodmap
グループを切り替えました。