Super+[왼쪽|오른쪽]을 Home/End에 매핑

Super+[왼쪽|오른쪽]을 Home/End에 매핑

왼쪽/오른쪽과 결합하여 키코드 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

왼쪽/오른쪽 버튼을 테스트하면 원하는 대로 작동해야 합니다.

관련 정보