挿入キーを End/Home にマッピング

挿入キーを End/Home にマッピング

Ubuntu 16.10では、InsertキーをEndに再マップし、Shift + InsertをHomeに再マップしようとしています。からインスピレーションを受けるSuper+[左|右]を Home/End にマッピングまた、次のmysymbolsファイルを作成した他のリソースもあります。

partial modifier_keys
xkb_symbols "insert_end_home" {
   key <INS>  {[    End, Home     ]};
};

動作しますEndが、Shift + InsertはHome機能を生成しません。この問題をどのように解決できますか?

編集する

@dirktが提案したように変更した後でも、xmodmapHomeまたはEndのみが表示されます。xevを押してからを押すとInsert出力されますshift+Insert。実際にイベントがあるのにFocusOut、それはどういう意味ですか?

KeyPress event, serial 37, synthetic NO, window 0x3800001,
    root 0xed, subw 0x0, time 56790713, (-342,308), root:(439,360),
    state 0x0, keycode 118 (keysym 0xff50, Home), same_screen YES,
    XKeysymToKeycode returns keycode: 110
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x3800001,
    root 0xed, subw 0x0, time 56790753, (-342,308), root:(439,360),
    state 0x0, keycode 118 (keysym 0xff50, Home), same_screen YES,
    XKeysymToKeycode returns keycode: 110
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x3800001,
    root 0xed, subw 0x0, time 56796591, (-342,308), root:(439,360),
    state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x3800001,
    root 0xed, subw 0x0, time 56796755, (-342,308), root:(439,360),
    state 0x1, keycode 118 (keysym 0xff57, End), same_screen YES,
    XKeysymToKeycode returns keycode: 115
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x3800001,
    root 0xed, subw 0x0, time 56796811, (-342,308), root:(439,360),
    state 0x1, keycode 118 (keysym 0xff57, End), same_screen YES,
    XKeysymToKeycode returns keycode: 115
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x3800001,
    root 0xed, subw 0x0, time 56797003, (-342,308), root:(439,360),
    state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

FocusOut event, serial 37, synthetic NO, window 0x3800001,
    mode NotifyNormal, detail NotifyNonlinear

PropertyNotify event, serial 37, synthetic NO, window 0x3800001,
    atom 0x168 (_NET_WM_STATE), time 56802723, state PropertyNewValue

また、出力は次のとおりですxmodmap -pm

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  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)

答え1

xkbファイルへの書き込みが困難です。xmodmap代わりに使用してください。

ログイン時の自動ロードマッピングの標準名はです~/.Xmodmap。一部のディスプレイマネージャはこの名前に基づいて提供されており、一部のディスプレイマネージャはログインスクリプトを変更する必要があります。

xmodmapinまたは同様のものを明示的に使用しようとしないでください。などで.profileログインすると問題が発生する可能性があります。ssh

編集する:で説明したように、この方法では組み合わせを説明することはできman xmodmapず、合計としてのみ説明できます。keycodeAltShiftMode_Switch

最大8つのキーシンボルをキーに追加できますが、最後の4つのキーシンボルは主要なXサーバー実装では使用されません。最初のキー記号はこのキーで修飾キーを押さないときに使用され、2番目のキー記号はShiftキーと一緒に使用され、3番目のキー記号はMode_switchキーがこのキーと一緒に使用されるときに使用され、4番目のキー記号は次のようになります。 Mode_switchキーとShiftキーの両方を使用するときに使用されます。

マイキーボードの場合は、左側のWindowsキー(マイキーボードにMode_Switchあります)に割り当てました。Super_L

keysym Super_L = Mode_switch

したがって、未使用のキーを割り当てるか、その単語がどのようにMode_Switch使用されるかを読んでください。xkbdこれXKB 構成ガイドが信頼できない役に立つかもしれません。

関連情報