Você pode usar preserve
para isso: adicionar a sua definição de tipo (por exemplo, THREE_LEVEL
) à linha
preserve[LevelThree+Shift] = Shift;
Isso diz ao xkb para preservar o modificador de turno ao descobrir o nível apropriado de sua combinação de modificadores no caso de LevelThree + Shift
. O modificador de turno é passado para uso pelo kit de ferramentas ou pelo aplicativo (veja também aqui: usando preservar com tipos ).
Observe que isso tem impacto, por exemplo, em como o aplicativo interpreta combinações de pressionamentos de tecla: se você tivesse definido o preservar acima e
key <AC08> { type="THREE_LEVEL", [ k, K, kappa ] };
e você pressionaria Ctrl + Shift + LevelThree + <AC08>
o aplicativo o leria como uma combinação de teclas Ctrl + Shift + kappa
(em vez de geralmente Ctrl + kappa
) porque o modificador de deslocamento é preservado e é passado para o aplicativo.