xmodmap / コアプロトコルマッピングのラッチグループ (XChangeKeyboardMapping())

xmodmap / コアプロトコルマッピングのラッチグループ (XChangeKeyboardMapping())

人々は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グループを切り替えました。

おすすめ記事