Alterei bastante o layout do meu teclado usando dois níveis de teclas shift. Basicamente agora, eu tenho 3 camadas no meu teclado. Para fazer isso, usei o ISO_Level3_Shift e o ISO_Level5_Shift.
default partial alphanumeric_keys modifier_keys xkb_symbols "basic" {
name[Group1]= "Thinkpad US (portuguese AltGr dead keys)";
include "us(basic)"
// Modkeys
// -------
// POP
key <AC10> { type[Group1]="EIGHT_LEVEL", [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3
_Shift, ISO_Level3_Shift, question, question, NoSymbol ] };
modifier_map Mod3 { <AC10> };
// SNAP
key <CAPS> { type[Group1]="EIGHT_LEVEL", [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5
_Shift, ISO_Level5_Shift, colon, colon, NoSymbol ] };
key <AC11> { type[Group1]="EIGHT_LEVEL", [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5
_Shift, ISO_Level5_Shift, semicolon, semicolon, NoSymbol ] };
modifier_map Mod3 { <CAPS>, <AC11> };
replace key <ESC> { [ Caps_Lock ] };
key.type[Group1]="EIGHT_LEVEL_ALPHABETIC" ;
// middle row
// ----------
// asdfghjkl
// [SNAP]
key <AC01> { [ a, A, NoSymbol, NoSymbol, asciitilde, asciitilde, NoSymbol ] };
key <AC02> { [ s, S, Home, Home, equal, equal, NoSymbol ] };
key <AC03> { [ d, D, Prior, Prior, apostrophe, apostrophe, NoSymbol ] };
key <AC04> { [ f, F, Next, Next, quotedbl, quotedbl, NoSymbol ] };
key <AC05> { [ g, G, End, End, minus, minus, NoSymbol ] };
key <AC06> { [ h, H, Left, Left, plus, plus, NoSymbol ] };
key <AC07> { [ j, J, Down , Down, comma, comma, NoSymbol] };
key <AC08> { [ k, K, Up, Up, period, period, NoSymbol ] };
key <AC09> { [ l, L, Right, Right, Escape, Escape, NoSymbol ] };
// [POP]
// [SNAP]
// Space key
// ---------
key <SPCE> { [ space, space, grave, grave, Tab, Tab, NoSymbol ] };
};
Isso funciona como esperado, exceto ao usar as teclas modificadoras normais, como as teclas Alt ou Control ou Windows.
Por exemplo, Espaço é configurado para dar Tab quando pressionado junto com a tecla SNAP [;] (então SNAP + Space = Tab), mas se eu pressionar Alt + SNAP + Espaço não obtenho o comportamento esperado do Alt + Tab conforme esperado.
Como posso conseguir a funcionalidade adequada?
Tags wayland keyboard-layout xkb