ctrl+j/k
->left/right
とctrl+h/l
->のようにキーを再マッピングしたいと思いますctrl+left/right
。だから基本xkb
ファイルをインポートし、次の内容を追加しました。
まず、新しい型を定義しました。
type "newType" {
modifiers= Shift+Control+Lock;
map[Shift]= Level2;
map[Lock]= Level2;
map[Control]= Level3;
map[Control+Lock]= Level3;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Control";
};
その後、再keysym
定義しましたh/j/k/l
。
key <AC06> {
type= "SimonCtrlMap",
symbols[Group1]= [ h, H, Left ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(keycode=<LEFT>) ]
};
key <AC07> {
type= "SimonCtrlMap",
symbols[Group1]= [ j, J, Left ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(keycode=<LEFT>, clearmods=Control) ]
};
key <AC08> {
type= "SimonCtrlMap",
symbols[Group1]= [ k, K, Right ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(keycode=<RGHT>, clearmods=Control) ]
};
key <AC09> {
type= "SimonCtrlMap",
symbols[Group1]= [ l, L, Right ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(keycode=<RGHT>) ]
};
次に、ほとんどのアプリケーションで動作するキーマップを使用して新しいxkb
ファイルをロードします。ただし、一部のアプリケーションでは、キーマッピングは機能しません。xkbcomp
firefox
gnome-terminal
gedit
たとえば、vnc-viewer
を押すとではなくctrl+j/k
認識されます。ctrl+left/right
left/right
最も疑わしい点は、nautilus
デフォルトのファイルブラウザですがgnome
、押すと!l
と認識される点です。ctrl+l
誰でも私に問題を解決するように提案できますか?リンクに記載されているmulti-group
方法と方法を見ましたoverlay
https://superuser.com/questions/801611/how-to-make-all-applications-Respect-my-modified-xkb-layout?newreg=4416b0444d2949079d57d2848f86452a。私のキーマップに加えて他の役割を果たすmulti-group
メソッドを使用したくありません。ctrl
そして、このoverlay
方法では私の問題は解決されません。