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.