15 outubro, 2014

Resolvendo mudanca automática de layout de teclado no Windows 8

Desde quando instalei o Windows 8 no meu computador, ainda durante o beta, eu notei um comportamento estranho e que me incomodava muito: O layout do meu teclado mudava “sozinho”.

selecao de teclado e lingua

No início eu achava que era a sincronização de configurações que estava fazendo isso, mudando o layout do meu computador do trabalho para o layout de casa e vice-versa. Para a maioria das pessoas isso não seria um problema, pois normalmente teriam todos os teclados com o mesmo layout (ABNT2 para o teclados nacionais). Mas para mim isso é um problema pois tenho 3 computadores:

  • Desktop em casa com teclado USB ABNT2
  • Laptop no trabalho com teclado Americano (comprado nos EUA) + Teclado ABNT2 wireless da Microsoft
  • Surface Pro 2 com Type cover Americana

Para “resolver” isso eu desabilitei no PC Settings o sincronísmo das configurações de teclado e língua

sync setting Windows 8

Agora, cada um dos meus computadores tem suas próprias configurações individuais neste aspecto. Meu Surface e deskto em casa não tiveram mais problemas, pois ambos têm apenas 1 teclado, mas meu laptop no trabalho continuou apresentando mudanças de layout do teclado “aleatórias” e eu não conseguia descobrir a causa. Passei a achar que o Windows 8 tinha alguma lógica interna que tentava ser “esperto” e descobrir o layout do teclado, mas estaria se perdendo por ter 2 teclados físicos com layouts diferentes.

Por um tempo, para mitigar o problema, eu removi o teclado com layout americano das configurações no meu laptop e dexei apenas o ABNT2 que é o que uso para trabalhar, mas essa configuração não é boa se eu tiver que ir para alguma reunião ou cliente com o laptop pois nesses casos o teclado estaria errado. Acabei colocando o teclado americano novamente e tendo que conviver com a mudança “automática” do layout.

O ideal seria que o Windows identificasse automaticamente o hardware que estou usando e se adaptasse de acordo, ou seja, se eu digito no teclado se fio ele sabe que é ABNT2, se eu digito no teclado do laptop ele sabe que é padrão americano, e a língua que estou usando continuaria sob meu controle. Mas não é assim que funciona.

Finalmente, depois de MUITO tempo trocando chaves e acentos (o que é particularmente ruim em .NET pois as chaves e ; e aspas são alguns dos caracteres que mudam de lugar nesses 2 layouts) eu descobri o motivo das mudanças de layout “automáticas” e como resolver o problema. Até o Windows 7 a tecla de atalho para mudança de layout era shift + alt. No Windows 8, são 3 teclas de atalho: shift + alt para mudar a lingua, ctrl + shift para mudar o layout de teclado e Windows + barra de espaço para mudar entre as conbinações configuradas de teclado + lingua. Viram o problema? Ctrl + shift é uma tecla MUITO usada em edição de texto, principalmente se você trabalha escrevendo código. Agora está explicado e a solução é bem simples.

Como temos 3 formas de mudar o layout do teclado e língua, posso facilmente desabilitar 2 delas e mantar apenas 1 que faça ambas as alterações. Sendo assim, vou desabilitar shift + alt e ctrl + alt e deixar apenas o Windows + espaço. Para fazer isso, siga os passos abaixo:

  • No painel de controle, acesse a tela de configurações de língua e vá em configurações avançadas, conforme no print abaixo.

control panel - language

  • Escolha a opção de mudar as teclas de atalho da barra de línguas, clicando no link abaixo.

language - advanced settings

  • Note que no meu computador tem 2 línguas e 2 layouts de teclado, mas apenas a opção de trocar entre eles tem tecla de atalho. Selecione esta opção e clique no botão de mudar sequencia de teclas

change language bar hot keys change key sequence

Agora bastou mudar para a primeira opção, dar Ok em todas as janelas e pronto, problema resolvido.

De agora em diante, se eu quiser mudar o teclado por estar usando o nativo do laptop ou quiser mudar a língua para ficar com correção ortográfica correta ao escrever em inglês ou português basta usar a tecla Windows + espaço até marcar a combinação desejada de teclado e língua.

Realmente, escolher Ctrl + shift como atalho padrão para mudar o layout de teclado foi uma idéia muito, muito ruim. Fazer essa configuração vir ativa por padrão foi pior ainda. Espero que essa dica ajude mais gente que esteja com o mesmo problema que eu estava.

10 comentários:

Alberto Régio disse...

Você salvou minha vida, rsrsrsrs.
Já não estava mais aguentando essa mudança de "forma aleatória".
Obrigado, ajudou muito.

Anônimo disse...

Obrigado. Resolveu essa bruxaria rsrsrsr.

Rafael Santos disse...

OBRIGADOOOOO !!!!!! No windows 10 tambem funciona

André Scudeler Catharino disse...

Como desativo no win 10?
Tenho o mesmo problema, teclado abnt2 no serviço e padrão EUA internacional em casa.
Essa troca automática me irrita demais!

Kelps Sousa disse...

É a mesma coisa do Windows 8 André. A única diferença é que o aplicativo de configurações do Windows 10 tem mais opções e está mais organizado.

Abra o aplicativo de configurações pelo botão na central de notificações ou pela tecla de atalho "Windows + i" e digite na caixa de busca "sinc" ou "sync" (dependendo se o seu Windows está em português ou inglês). Você também pode ir direto pela opção "Accounts > Sync your settings" do aplicativo de configurações. A tela que vai abrir é muito parecida com a que está neste post e basta desabilitar a mesma opção de sincronizar "Language preferences" que o problema estará resolvido. Se você tiver múltiplas máquinas, sugiro que faça isso apenas na que é diferente das outras.

André Scudeler Catharino disse...

Obrigado Kelps, deu certo consegui fazer aqui!

Vlw!

Carlos 8k disse...

Você acaba de salvar a minha vida, nunca ia adivinha que a M$ chegaria a uma burrice desse tamanho.
Funcionando no Windows 10 64x pro, com Surface Book e Microsoft Wireless 2000.

Ps.: Também sou programador .net.

Anônimo disse...

Valeu!

Fagner Marques disse...

Valeu mesmo!
Já estava enlouquecendo com estas trocas. Aqui só tenho o teclado americano e mesmo assim o PC insiste em volta e meia por o abnt2

Anônimo disse...

Parabéns pelo tutorial. Pesquisei em vários que só mandavam excluir o segundo teclado e, essa não era a solução para mim também.