次の韓国語キーボードがあります。
漢字(한자)はの左側に位置していますspaceが、これはハングルをタイプするときもほとんど使用しない文字ですが、私の左手の親指で最も重要な空間です。i3ウィンドウマネージャモードキー。これはAlt私のコードエディタで利用できるようにオフになります。
私の質問例:漢字キーを修飾子キーに置き換える方法は?
以下を使用してキーを確認しましたxev
。
KeyPress event, serial 32, synthetic NO, window 0x2200001,
root 0x281, subw 0x0, time 11955968, (-132,626), root:(491,646),
state 0x0, keycode 131 (keysym 0xff34, Hangul_Hanja), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 32, synthetic NO, window 0x2200001,
root 0x281, subw 0x0, time 11955968, (-132,626), root:(491,646),
state 0x20, keycode 131 (keysym 0xff34, Hangul_Hanja), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
キーコード131 = 0x83
出力でxmodmap
これが利用可能であることがわかりますmod3
。
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
私はxmodmap -e "add mod3 = Hangul_Hanja"
次のような結果を得ようとしています...
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3 Hangul_Hanja (0x83)
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
... set $mod Mod3
i3プロファイルに追加して再起動した後、修飾キーがないため機能しませんでした。
また、漢字キーは通常の修飾子キーとは異なる動作をします。キーを押し続けると繰り返しキー入力が生成されますが、通常の修飾キーはそうではありません。
家に専門知識を貸すことができるキーボードの専門家がいることを願っています。
Linux Mint 18 (Cinnamon) i3ウィンドウマネージャ
答え1
X11修飾子の処理は少し特別です。どのキーも修飾子として宣言できません。修飾子設定とキーシンボル設定の間に一貫性がなければなりません。
古典的な修飾子はShift
、、、Control
および(それぞれAlt
にはMeta
、などの2つのキー記号があります)(そしてHyper
わずかに異なる動作をするCaps LockおよびNum Lock)。ほとんどのアプリケーションは、修飾子として使用される他のキーシンボルと連携しません。Super
Shift_L
Shift_R
したがって、漢字キーを修飾子として使用するにはHyper_L
(たとえば)作成します。
keycode 131 = Hyper_L
remove Mod4 = Hyper_L
add Mod3 = Hyper_L
これにより、そのキーは漢字キーとして機能しなくなります。 xmodmapの代わりにXKBを使用すると、両方の機能を保存する方法があるかもしれませんが、方法はわかりません。