Como o servidor X emite um caractere quando o teclado é pressionado? [duplicado]

1

Esta é realmente uma questão de codificação.

Eu sei que o servidor X verifica o layout do teclado ativo para descobrir qual caractere (que suporta o unicode) deve ser emitido. Mas eu realmente não sei como isso é feito, alguém poderia me apontar para o código-fonte onde eu posso ver isso em ação?

O que eu quero realmente fazer é criar um "driver de teclado unicode" que pode fazer a mesma coisa (ignorando o layout ativo), mas eu preciso saber como o X está emitindo o caractere unicode para a GUI.

Mesmo que eu precise adicionar novas funcionalidades ao servidor X e recompilá-lo, tudo bem. Eu só quero ser apontado para o código fonte certo para a emissão desses caracteres na GUI.

EDITAR:

Os comentários me levaram em boas direções sobre onde encontrar respostas. Acho que agora descobri como posso programar de forma programática o texto unicode em interfaces gráficas no Linux.

Dicas: xdotool / libxdo, XTestFakeKeyEvent, xmodmap -e "keycode 107 = U2196"

Verificarei se posso responder a essa pergunta com minha própria biblioteca C ++ para fazer isso.

    
por Joakim L. Christiansen 09.02.2018 / 20:50

1 resposta

0

Eu descobri os dois comandos necessários para fazer isso de forma programática:

XChangeKeyboardMapping (para mapear um código não utilizado para char / unicode)

XTestFakeKeyEvent (para enviá-lo para o servidor X)

Portanto, qualquer caractere pode ser enviado e o layout do teclado pode permanecer o mesmo.

    
por 10.02.2018 / 00:13