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が提案したように変更した後でも、xmodmap
Homeまたは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
。一部のディスプレイマネージャはこの名前に基づいて提供されており、一部のディスプレイマネージャはログインスクリプトを変更する必要があります。
xmodmap
inまたは同様のものを明示的に使用しようとしないでください。などで.profile
ログインすると問題が発生する可能性があります。ssh
編集する:で説明したように、この方法では組み合わせを説明することはできman xmodmap
ず、合計としてのみ説明できます。keycode
AltShiftMode_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 構成ガイドが信頼できない役に立つかもしれません。