A solução para o seu pedido é o método de entrada.
O que você descreveu é algo familiar para a maioria dos usuários de idiomas CJK. Vamos rever como o método de entrada funciona nos sistemas Linux atuais.
O sistema do método de entrada
Aqui está uma arquitetura simples para um sistema de método de entrada comum:
OBSERVAÇÃO: faço um instantâneo desta imagem no Protocolo de método de entrada X . Algumas das setas são irrelevantes para acompanhar a discussão.
Historicamente, o XIM (o protocolo X Input Method) era o único protocolo. É excessivamente complexo e carece de alguns recursos desejados. Então, ele é praticamente abandonado, embora a compatibilidade ainda seja fornecida por kits de ferramentas populares como GTK, Qt.
Um sistema moderno de método de entrada contém várias partes:
-
Suporte à biblioteca no lado do cliente
- normalmente implementado como um módulo carregado por kits de ferramentas (por exemplo, para o GTK, consulte
/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/
)
- normalmente implementado como um módulo carregado por kits de ferramentas (por exemplo, para o GTK, consulte
- Servidor do método de entrada
- servidor X
Como essas partes se encaixam?
Um usuário digita uma chave. O servidor X recebe o evento de hardware da interface evdev, compõe um XEvent e envia para o aplicativo sob o foco do teclado. O módulo do método de entrada do kit de ferramentas de aplicação (GTK, Qt) intercepta o evento e passa a informação para o servidor do método de entrada. O servidor do método de entrada define o que o usuário pode desejar e passa algum texto de volta para o módulo de MI.
Agora, vamos falar sobre a arquitetura do servidor de mensagens instantâneas.
Um servidor de mensagens instantâneas normalmente consiste em duas partes:
- Uma estrutura de mensagens instantâneas que lida com detalhes específicos da plataforma e fornece uma interface agradável para os módulos IM do mecanismo de IM e do kit de ferramentas. Ele fornece os mecanismos de IPC usados pelo módulo de IM, servidor e mecanismo.
- Vários mecanismos de mensagens instantâneas realizam o trabalho real de transformar as chaves digitadas pelo usuário em texto desejado. Os mecanismos de IM podem ser bibliotecas compartilhadas carregadas pelo servidor de IM ou processos independentes se comunicando com o servidor de MI.
- Os programas de configuração de método de entrada auxiliar fornecem uma interface de usuário amigável para personalizar o servidor de IM e os comportamentos do mecanismo.
Em resumo, o que um IM faz é transformar o que você digita em algo diferente e, opcionalmente, fornecer previsões.
Um exemplo
Usamos ibus-pinyin
aqui para digitar alguns caracteres chineses.
A romanização de 汉语拼音 é han yu pin yin
. Primeiro, você precisa digitar todas essas letras para obter os quatro caracteres chineses. Mas depois de algumas vezes, você só precisa digitar os quatro caracteres iniciais h y p y
para obter o caractere chinês.
No caso ibus-pinyin
, han yu pin yin
é encurtado para h y p y
.
Mecanismos de mensagens instantâneas mais avançados utilizam técnicas de aprendizado estatístico para fornecer uma previsão melhor. Nada pode impedi-lo de escrever um mecanismo de método de entrada em inglês para fornecer um aumento de digitação.
Como bônus, todos os kits de ferramentas têm suporte ao método de entrada, exceto alguns programas X antigos simples. Portanto, esta é uma solução bastante universal.
Obrigado a Anders F. U. Kiær. Recursos / Booster de digitação | O Wiki do Projeto Fedora deve ser a resposta