Eu tentei definir algo assim:
xkb_types "complete" {
type "COMPLETE_LEVEL" {
modifiers = Alt+Shift+Control+Super;
map[None] = Level1;
map[Shift] = Level2;
map[Control] = Level3;
map[Control+Shift] = Level4;
map[Alt] = Level5;
map[Alt+Shift] = Level6;
map[Super] = Level7;
map[Super+Shift] = Level8;
map[Control+Alt] = Level8;
map[Control+Alt+Shift] = Level8;
map[Control+Alt+Super] = Level8;
map[Control+Alt+Super+Shift] = Level8;
map[Control+Super] = Level8;
map[Control+Super+Shift] = Level8;
map[Alt+Super] = Level8;
map[Alt+Super+Shift] = Level8;
level_name[Level1] = "Base";
level_name[Level2] = "Shift";
level_name[Level3] = "Control Base";
level_name[Level4] = "Control Shift";
level_name[Level5] = "Alt Base";
level_name[Level6] = "Alt Shift";
level_name[Level7] = "Super Base";
level_name[Level8] = "Disabled";
};
}
xkb_symbols "pc+us+inet(evdev)" {
key.type = "COMPLETE_LEVEL";
key <AE01> { [ 1, exclam, ∅, ∅, ∅, ∅, ∅, ∅ ] };
}
(∅ é substituído pelo VoidSymbol) Mas depois dessa definição, não consigo nem um ponto de exclamação. Há algo errado com a minha sintaxe, ou eu estou apenas entendendo mal como os tipos / símbolos funcionam?
Para maior clareza, estou tentando garantir que algumas combinações de teclas não façam nada, em vez de apenas exibir o caractere não modificado. Por exemplo, em vez de deixar Super + 1 produzir apenas 1, ele não deve fazer nada. Deveria ser como se uma tecla não tivesse sido pressionada. Com o acima, eu deveria ser capaz de controlá-lo com outros personagens também. O objetivo com o acima é que "1" deve produzir "1" sem nenhum modificador, "1" deve produzir "!" se a mudança for mantida pressionada. E se quaisquer outros modificadores forem mantidos pressionados ao mesmo tempo, "1" não deverá produzir nada. O que eu estou recebendo com o acima é, "1" saídas "1", se qualquer modificador for selecionado, mesmo mudar, o que significa que eu não posso realmente digitar um "!".
Tags xkb