Mapeie Super + [Esquerda | Direita] para Home / End

7

Como faço para mapear a chave "Super", então, quando combinado com Esquerda / Direita, produz o código de tecla Home / End?

Meu setxkbmap atual:

setxkbmap \
  -model pc105 \
  -layout 'us(dvorak-intl),us(alt-intl)' \
  -option \
  -option grp:lctrl_lshift_toggle \
  -option compose:rwin
    
por iokevins 20.02.2013 / 08:25

1 resposta

8

Você não pode fazer isso com apenas uma opção setkxbmap, já que nenhuma opção padrão faz o que você quer.

Mas você pode fazer isso definindo o comportamento-chave em um nível inferior.

A página link me ajudou a entender e encontrar uma maneira de fazer isso.

Crie um arquivo ~ / .xkb / keymap / mykbd onde você coloca a saída do setxkbmap, ele será a sua definição de teclado base; por exemplo:

setxkbmap -print > ~/.xkb/keymap/mykbd

então vamos criar um arquivo ~ / .xkb / types / mytypes e ~ / .xkb / symbols / mysymbols. no mytypes, coloque o seguinte:

partial
xkb_types "super_level2" {
    Virtual_modifiers Super;
    type "SUPER_LEVEL2" {
        modifiers= Super;
        map[Super]= Level2;
        level_name[Level1]= "Base";
        level_name[Level2]= "Super";
    };
};

define um tipo SUPER_LEVEL2 que permitirá definir facilmente símbolos enviados quando uma tecla é pressionada com Super .

então, nos mysybols coloque as seguintes linhas:

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

(observe o uso do tipo "SUPER_LEVEL2" definido, significa que o segundo símbolo (nível 2) na linha de símbolos é acionado ao pressionar a tecla Super (em vez da tecla Shift).

agora, edite o arquivo ~ / .xkb / keymap / mykbd para carregar os trechos que escrevemos; na linha xkb_types adicione "+ mytypes (super_level2)", e mude a linha xkb_symbols para adicionar "+ mysymbols (super_arrows_home_end)"

finalmente, você pode carregá-lo com xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY

Agora, teste suas teclas esquerda / direita, elas devem funcionar como você queria. Aproveite.

    
por 24.02.2013 / 09:37