왼쪽/오른쪽과 결합하여 키코드 Home/End를 생성하도록 "Super" 키를 어떻게 매핑할 수 있습니까?
내 현재 setxkbmap:
setxkbmap \
-model pc105 \
-layout 'us(dvorak-intl),us(alt-intl)' \
-option \
-option grp:lctrl_lshift_toggle \
-option compose:rwin
답변1
원하는 작업을 수행하는 기본 옵션이 없기 때문에 setkxbmap 옵션만으로는 이 작업을 수행할 수 없습니다.
그러나 낮은 수준에서 주요 동작을 정의하면 이를 수행할 수 있습니다.
이 페이지http://madduck.net/docs/extending-xkb/이를 이해하고 이를 수행할 수 있는 방법을 찾도록 도와주세요.
~/.xkb/keymap/mykbd 파일을 만들고 여기에 setxkbmap의 출력을 배치합니다. 이는 기본 키보드 정의 역할을 합니다.
setxkbmap -print > ~/.xkb/keymap/mykbd
그런 다음 파일을 만들고 ~/.xkb/types/mytypes
다음 내용을 넣습니다.
partial
xkb_types "super_level2" {
Virtual_modifiers Super;
type "SUPER_LEVEL2" {
modifiers= Super;
map[Super]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Super";
};
};
키를 눌렀을 때 전송되는 기호를 쉽게 정의할 수 있는 SUPER_LEVEL2 유형을 정의합니다 Super.
그런 다음 ~/.xkb/symbols/mysymbols
다음 줄을 입력합니다.
partial modifier_keys
xkb_symbols "super_arrows_home_end" {
key <LEFT> {
type[Group1] = "SUPER_LEVEL2",
symbols[Group1] = [ Left, Home ]
};
key <RGHT> {
type[Group1] = "SUPER_LEVEL2",
symbols[Group1] = [ Right, End ]
};
};
(우리가 정의한 "SUPER_LEVEL2" 유형의 사용에 유의하세요. 이는 Shift 키 대신 Super 키를 누르면 기호 행에서 두 번째(레벨 2) 기호가 트리거된다는 의미입니다.
마지막으로 ~/.xkb/keymap/mykbd
파일을 편집하여 우리가 작성한 코드 조각을 로드합니다.
- 줄 안에 따옴표
xkb_types
추가+mytypes(super_level2)
- 줄에 따옴표를
xkb_symbols
추가합니다+mysymbols(super_arrows_home_end)
.
이제 로드할 수 있습니다.
xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
왼쪽/오른쪽 버튼을 테스트하면 원하는 대로 작동해야 합니다.