参考文献
https://wiki.archlinux.jp/index.php/GNOME/%E3%83%92%E3%83%B3%E3%83%88%E3%81%A8%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF
https://wiki.archlinux.jp/index.php/Xorg_%E3%81%A7%E3%81%AE%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E8%A8%AD%E5%AE%9A
https://wiki.archlinux.jp/index.php/X_keyboard_extension
https://wiki.archlinux.org/title/X_keyboard_extension
https://www.x.org/wiki/XKB/
https://junology.hatenablog.com/entry/2017/06/24/141322#fn-0b8eec0f
設定
/usr/share/X11/xkb/
が設定ディレクトリになる。
rules/evdev
の symbols に追記
! option = symbols
...
jpkey:util = +jpkey(util)
vimmer:caps_arrow = +vimmer(caps_arrow)
symbols/jpkey を作成
AE13 の行は vimmer 用にハット右のエスケープを$にしている。
hidden partial modifier_keys
xkb_symbols "util" {
key <AE13> { [ dollar, bar ] };
key <MUHE> { [ Control_L, Control_L ] };
key <HENK> { [ Escape, Escape ] };
key <HKTG> { [ underscore, underscore ] };
modifier_map Control { <MUHE> };
};
symbols/vimmer を作成
// ref. https://wiki.archlinux.org/title/X_keyboard_extension#Caps_hjkl_as_vimlike_arrow_keys
// ref. https://wiki.archlinux.org/title/X_keyboard_extension#Level3
xkb_symbols "caps_arrow" {
//key <LWIN> { [ ISO_Level3_Shift ] };
key <AC06> {
type= "THREE_LEVEL",
symbols= [ h, H, Left]
};
key <AC07> {
type= "THREE_LEVEL",
symbols= [ j, J, Down]
};
key <AC08> {
type= "THREE_LEVEL",
symbols= [ k, K, Up]
};
key <AC09> {
type= "THREE_LEVEL",
symbols= [ l, L, Right]
};
modifier_map Mod5 { <CAPS> };
};
dconf で設定。xkbcomp だとブラウザは設定が反映されるが、terminal では反映されなかった。
dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:none', 'jpkey:util', 'vimmer:caps_arrow']"
Tips
xev
でキーの信号を確認できる。
xkbcomp $DISPLAY now.xkb
で今の設定を now.xkb に書き出せる。設定の確認や書き方の勉強に使える。(ただし、設定が確実に反映されてるとは断言できるまで検証していない)
/usr/share/X11/xkb/rules/*.lst
に dconf で設定できる options が一覧できる。
一度ログアウトしてログインし直すと、設定を再読込できる。ただし、うまくいかない場合もあるので、そのときは再起動が必要。
補足
/usr/share/X11/xkb/
に個人の設定を追加するのは、たぶん良くない。
xkbcomp mine.xkb $DISPLAY
では gnome に上書きされるのか、terminal などで設定が反映されなかった。