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
방법으로는 내 문제가 해결되지 않습니다.