私は次のような韓国語のキーボードを持っています:
漢字(한자)、のすぐ左 space、韓国語で入力してもほとんど利用されていませんが、 i3ウィンドウマネージャーのmodキー として左手の親指の主要な不動産にあります。それは解放されます 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ウィンドウマネージャー
X11モディファイアの処理は少し独特です。キーを取得してモディファイアとして宣言することはできません。モディファイア設定とkeysym設定の間で一貫している必要があるものがいくつかあります。
古典的な修飾子は、Shift
、Control
、Alt
、Meta
、Hyper
、およびSuper
です(それぞれ2つのキーシムがあります)例:Shift_L
とShift_R
)(さらに、動作が多少異なるCapsLockとNumLock)。ほとんどのアプリケーションは、修飾子として使用される他のキーシムでは機能しません。
したがって、漢字キーを修飾子として使用するには、それをHyper_L
にします(たとえば)。
keycode 131 = Hyper_L
remove Mod4 = Hyper_L
add Mod3 = Hyper_L
これにより、そのキーは漢字キーとしてまったく使用されなくなります。 xmodmapの代わりにXKBを使用する場合、両方の関数を保持する方法があるかもしれませんが、方法がわかりません。