키 바인딩 매핑

키 바인딩 매핑

배경: 어제 Acer Chromebook을 구입하여 Ubuntu를 실행하고 있습니다(저도 Linux를 처음 접했습니다). ChromeOS(Linux 실행 시 작동하지 않음)에 대체 키 바인딩이 있기 때문에 키보드에는 전용 Home및 버튼이 없습니다 .End

내 질문: 키 조합을 통해 두 키를 모두 복원할 수 있도록 Linux의 특정 키 바인딩을 Home및 키 작업 에 할당하는 방법이 있습니까 ?End

답변1

존재하다xkeyboard-config-1.7-nav-keys.patch과거에 XKB를 사용하여 어떻게 수행되었는지 설명합니다. Chrome OS 최신 버전이제 재를 사용하세요.

~/.xkb/keymap, ~/.xkb/types및 이라는 디렉터리를 만듭니다 ~/.xkb/symbols. ~/.xkb/types/chromebook다음 정의가 포함된 파일을 만듭니다 .

xkb_types "chromebook" {
    virtual_modifiers Alt;
    type "ARROW" {
        modifiers              = Shift+Lock+Alt+Control;
        map[Shift]             = Level2;
        map[Lock]              = Level2;
        map[Alt]               = Level3;
        map[Alt+Shift]         = Level3;
        map[Alt+Lock]          = Level3;
        map[Control+Alt]       = Level4;
        map[Control+Alt+Shift] = Level4;
        map[Control+Alt+Lock]  = Level4;
        level_name[Level1]     = "Base";
        level_name[Level2]     = "Caps";
        level_name[Level3]     = "Alt";
        level_name[Level4]     = "ControlAlt";
    };
}

~/.xkb/symbols/chromebook다음 정의가 포함된 파일을 만듭니다.

xkb_symbols "chromebook" {
    key <UP> {
        type="ARROW",
        repeat=yes,
        [ Up, Up, Prior, Home ],
        actions[Group1] = [
            NoAction(),
            NoAction(),
            RedirectKey(key=<PGUP>, clearmods=Alt),
            RedirectKey(key=<HOME>, clearmods=Control+Alt)
        ]
    };
    key <DOWN> {
        type="ARROW",
        repeat=yes,
        [ Down, Down, Next, End ],
        actions[Group1] = [
            NoAction(),
            NoAction(),
            RedirectKey(key=<PGDN>, clearmods=Alt),
            RedirectKey(key=<END>, clearmods=Control+Alt)
        ]
    };
};

명령을 실행하십시오 setxkbmap -print >~/.xkb/keymap/chromebook. 생성된 파일을 편집하고 +chromebook지시문에 및를 추가하면 파일은 다음과 같아야 합니다.includexkb_typesxkb_symbols

xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete+chromebook"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+us+inet(evdev)+chromebook"     };
        xkb_geometry  { include "pc(pc105)"     };
};

다음 명령을 추가하십시오.신청 시작:

xkbcomp -I ~/.xkb -R ~/.xkb keymap/chromebook $DISPLAY

참고: 이것은 테스트되지 않았으며 XKB에 대해 잘 알지 못하며 문서도 제대로 작성되지 않았습니다. 나는 따라가려고 노력한다Vincent Lefèvre의 XKB 팁.

관련 정보