頻繁に使用しないキーボードキーを修飾キーに変更する方法

頻繁に使用しないキーボードキーを修飾キーに変更する方法

次の韓国語キーボードがあります。

ここに画像の説明を入力してください。

漢字(한자)はの左側に位置しています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 Mod3i3プロファイルに追加して再起動した後、修飾キーがないため機能しませんでした。

また、漢字キーは通常の修飾子キーとは異なる動作をします。キーを押し続けると繰り返しキー入力が生成されますが、通常の修飾キーはそうではありません。

家に専門知識を貸すことができるキーボードの専門家がいることを願っています。

Linux Mint 18 (Cinnamon) i3ウィンドウマネージャ

答え1

X11修飾子の処理は少し特別です。どのキーも修飾子として宣言できません。修飾子設定とキーシンボル設定の間に一貫性がなければなりません。

古典的な修飾子はShift、、、Controlおよび(それぞれAltにはMeta、などの2つのキー記号があります)(そしてHyperわずかに異なる動作をするCaps LockおよびNum Lock)。ほとんどのアプリケーションは、修飾子として使用される他のキーシンボルと連携しません。SuperShift_LShift_R

したがって、漢字キーを修飾子として使用するにはHyper_L(たとえば)作成します。

keycode 131 = Hyper_L
remove Mod4 = Hyper_L
add Mod3 = Hyper_L

これにより、そのキーは漢字キーとして機能しなくなります。 xmodmapの代わりにXKBを使用すると、両方の機能を保存する方法があるかもしれませんが、方法はわかりません。

関連情報