Trabalhando com mapeamento de teclado

O modelo a seguir mostra como os métodos de entrada são utilizados por aplicativos. Use essas informações para ajudá-lo a customizar o mapeamento do teclado.

O processamento de entrada é dividido em três etapas:

  1. keycode / keystate (raw)-> keysym/modifier (novo)

    Esta etapa é de aplicação e dependente de ambiente. O aplicativo é responsável por mapear o evento de chave bruta em um keysym / modificador para entrada para o método de entrada.

    No ambiente AIXwindows, o cliente utiliza a tabela keysym do servidor, xmodmap, que é instalado no servidor, para realizar esta etapa. O xmodmap define o mapeamento das teclas Shift, Lock e Alt-Graphic. O cliente usa o xmodmap assim como os modificadores Shift e Lock do evento X para determinar o keysym / modifier representado por este evento.

    Por exemplo, se você pressionar o keysym XK_a com um modificador Shift, o xmodmap mapeia-o para o keysym XK_A . Como você usou a tecla Shift para mapear o código chave para um keysym, o aplicativo deve mascarar o modificador Shift do evento X original. Consequentemente, a entrada para o método de entrada seria o keysym XK_A e nenhum modificador.

    Em outro ambiente, se o dispositivo não fornece nenhuma informação adicional, o método de entrada recebe o keysym XK_a com o modificador Shift. O método de entrada deve realizar o mesmo mapeamento em ambos os casos e retornar a letra A.

  2. keysym/modifier (novo)-> string localizada

    Esta etapa depende do IMED localizado e varia com cada locale. Ele notifica o IMED de que um evento chave ocorreu e para pedir uma indicação de que seu IMED utiliza o evento chave internamente. Isso ocorre quando o aplicativo chama a subroutine IMFilter .

    Se o IMED indicar que o evento chave é usado para o processamento interno, o aplicativo ignora o evento. Como o IMED é o primeiro a ver o evento, esta etapa deve ser feita antes que o aplicativo interprete o evento. O IMED só usa eventos essenciais que são essenciais.

    Se o IMED indicar que o evento não é utilizado para o processamento interno, o aplicativo executa o próximo passo.

  3. keysym/modifier (novo)-> string customizada

    Esta etapa ocorre quando o aplicativo chama a sub-rotina IMLookupString .. O keymap do método de entrada (criado pelo comando keycomp ) define o mapeamento para esta fase. É a última tentativa de mapear o evento chave para uma string e permite que um usuário personalize o mapeamento.

    Se a combinação keysym / modifier (nova) for definida no keymap do método de entrada (imkeymap), uma string será devolvida. Caso contrário, o evento chave é desconhecido para o método de entrada.