Botão Backtick (acento grave) colado

3

Tenho o Ubuntu 12.04 em execução em uma máquina virtual do Virtual Box, no meu sistema Windows 7 de 32 bits. Ele tem funcionado muito bem, exceto pelo fato de o botão de backtick / til ficar grudado (não fisicamente).

Quando pressiono o botão de backtick, ele continua se repetindo até que outro botão de entrada seja pressionado. Então, se eu pressionar a barra de espaço enquanto o backtick estiver repetindo, ele para, mas se eu pressionar o shift enquanto ele estiver repetindo, o backtick se transformará em um til e o til se repetirá até eu soltar a tecla Shift (ponto em que é um backtick novamente e continua repetindo).

Esse comportamento persistente só acontece com a chave backtick e apenas na minha virtualização do Ubuntu, nunca no Windows.

Eu tentei o teclado do meu laptop e um teclado USB externo e o problema acontece em ambos. Ambos os teclados que eu tentei são de layout de teclado 106/109 japonês, mas estou usando-os com um perfil de inglês (EUA) 101. Quando me refiro à chave backtick acima, quero dizer onde está no layout dos EUA.

Se eu usar o perfil em japonês, a chave nesse local (a localização de backtick dos EUA) ainda ficará, mas não será mais mapeada como a chave de backtick.

Quaisquer pensamentos sobre o que pode estar causando isso e possíveis soluções?

Eu pesquisei muito, mas não encontrei nenhuma ajuda até agora. Qualquer ajuda é muito apreciada.

Informações adicionais: Eu inicializei o Linux a partir de uma chave USB e descobri que ele não tinha esse problema de chave presa. Então parece ser algo com o Virtual Box.

    
por Scott Lemmon 26.09.2012 / 02:57

1 resposta

1

Eu sei sobre esse problema. Eu tenho um laptop Windows comprado no Japão e me deparo com o problema da chave do til.

Como você sabe, a tecla til é usada em janelas japonesas para comutação IME orientada ao japonês, e os teclados japoneses contêm marcações na tecla para esse efeito.

Eu me dediquei um pouco à questão, mas perdi motivação. Um resumo das minhas descobertas é basicamente isso:

  • O VirtualBox, na janela da máquina virtual, não captura eventos comuns do Windows WM_KEY. Em vez disso, registra um gancho de teclado de baixo nível . Procure por ocorrências de LowLevelKeyboardProc em este arquivo de origem do VirtualBox .

  • Eu suspeito que no Windows em japonês, devido à sua função especial, a chave do til não gera um evento up quando a tecla é liberada. Como o VirtualBox precisa fazer uma simulação fiel dos códigos de verificação para o sistema virtualizado, parece que o til está sendo pressionado.

  • Embora eu tenha sido capaz de monitorar os eventos que fluem nas janelas do VirtualBox usando o Spy ++, os de baixo nível não podem ser vistos. A interface do usuário de configuração do VirtualBox tem eventos-chave normais fluindo para ela, mas as janelas da máquina, absolutamente nada. Mesmo as teclas de atalho da interface do usuário para o VirtualBox em si (não destinadas à máquina) são tratadas através desse gancho de baixo nível, parece.

Portanto, testar essa hipótese exigiria escrever um programa de exemplo que intercepta os eventos do teclado da mesma maneira e mostra que não há "up" correspondente para um "down" para a tecla til. Embora eu tenha o Visual Studio dando uma volta e não seja complicado, é um esforço muito grande para esse problema idiota.

De qualquer forma, apesar da investigação incompleta, eu coloco uma baixa probabilidade na noção de que esta é uma questão do Ubuntu.

    
por Kaz 11.04.2013 / 08:19