Ligações de teclas de mapeamento

3

Histórico: recebi um Chromebook Acer ontem e estou usando o Ubuntu nele (também sou um pouco novo no Linux). O teclado não tem os botões Home e End dedicados, pois no Chrome OS existem substituições de teclas (que não funcionam no Linux).

Minha pergunta: é se existe uma maneira de designar uma determinada ligação de chave no Linux para as ações-chave Home e End para que eu possa recuperar essas duas chaves por combinações de teclas .

    
por oligilo 08.11.2014 / 20:44

1 resposta

3

Aqui é como costumava ser feito, com XKB. Versões mais recentes do Chrome OS agora usam o Ash .

Crie um diretório chamado ~/.xkb/keymap , ~/.xkb/types e ~/.xkb/symbols . Crie um arquivo ~/.xkb/types/chromebook contendo a seguinte definição:

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";
    };
}

Crie um arquivo ~/.xkb/symbols/chromebook contendo a seguinte definição:

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)
        ]
    };
};

Execute o comando setxkbmap -print >~/.xkb/keymap/chromebook . Edite o arquivo resultante e adicione +chromebook dentro das diretivas include para xkb_types e xkb_symbols ; o arquivo deve ficar assim:

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)"     };
};

Adicione o seguinte comando ao aplicativos de inicialização :

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

Nota: isto não foi testado, não estou muito familiarizado com o XKB e está mal documentado. Tentei seguir dicas do XKB de Vincent Lefèvre .

    
por 09.11.2014 / 05:35