Por que o US International Keyboard quebra Alt_R?

3

Todos adicionando o layout de teclado do inglês internacional dos EUA (com chaves inativas) quebra minha tecla Alt_R. Alguma idéia por quê?

Estou trabalhando no RHEL 5.5 usando o GNOME. O problema desaparece se eu remover o layout adicional e reaparecer se eu adicioná-lo de volta.

Problemas específicos incluem a Alt-F2 não funcionando para iniciar o aplicativo de execução se o Alt_R e o CTRL-Alt-L não estiverem funcionando novamente para a tela se estiver usando Alt_R.

Eu tentei usar o xev para solucionar problemas. Aqui está o que eu recebo apenas com o layout em inglês dos EUA:

KeyPress event, serial 29, synthetic NO, window 0x1e00001,
    root 0x3a2, subw 0x0, time 1766794207, (169,-13), root:(2099,35),
    state 0x0, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 29, synthetic NO, window 0x1e00001,
    root 0x3a2, subw 0x0, time 1766794447, (169,-13), root:(2099,35),
    state 0x8, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False  

Veja o que recebo com o layout do inglês internacional dos EUA (com chaves inativas):

KeyPress event, serial 26, synthetic NO, window 0x1e00001,
    root 0x3a2, subw 0x0, time 1766853750, (169,-13), root:(2099,35),
    state 0x0, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 29, synthetic NO, window 0x1e00001,
    root 0x3a2, subw 0x0, time 1766853872, (169,-13), root:(2099,35),
    state 0x80, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Não faz diferença se esse layout está sendo usado no momento. Apenas tê-lo na lista selecionada quebra as coisas. Se isso é um bug, alguém sabe onde deve ser arquivado (GNOME, Xorg, Redhat)?

EDIT : percebi agora que posso ver o meu mapeamento de modificadores usando o xmodmap. Inicialmente, mod5 foi mapeado para mod5 Mode_switch (0x5d) e ISO_Level3_Shift (0x7c). Adicionando o layout internacional, mapeie Alt_R (0x71) para mod5 também, e por que estou tendo este problema. Com base na recomendação do Caleb, eu mudei Alt_R para ser um ISO_Level3_Shift tal que mod5 é agora mapeado para "mod5 Mode_switch (0x5d), ISO_Level3_Shift (0x71), ISO_Level3_Shift (0x7c)". Isso ainda quebra Alt_R como uma alternativa Alt_L embora.

    
por deuberger 18.04.2011 / 18:05

2 respostas

2

A maioria dos layouts de teclado fora dos EUA atribui a tecla Alt correta a um propósito diferente, chamado AltGr ( Alt Graph ), que faz dos EUA a exceção ao regra. A tecla AltGr é uma espécie de outro tipo de tecla Shift, destinada a selecionar caracteres extras disponíveis nas outras teclas. Veja o artigo da Wikipedia em AltGr.

Portanto, se você quiser emitir uma combinação de teclas com o modificador Alt, como Alt-F2 ou Ctrl-Alt-L, pressione a tecla Alt esquerda , pois a tecla direita tem outro propósito. É apenas no layout do inglês dos EUA que não há outro uso para essa chave que a reatribui (ou melhor, mantém a atribuição antiga original) como uma tecla Alt adicional. Até mesmo o layout do inglês britânico usa AltGr para emitir caracteres como "€" e "£".

    
por 18.04.2011 / 18:51
3

Na maioria dos layouts internacionais, Alt_R se torna uma chave AltGr (grupo alternativo?), também conhecido como seletor de 3º nível que lhe dá acesso a letras, símbolos e letras alternativas. acentos, etc. Mesmo que o código de acesso que você está vendo não seja corretamente remapeado para isso, eu suspeito que o layout esteja EXPECTANDO que ele esteja soluçando no código de acesso.

Eu sugiro que você examine as outras guias das opções de teclado do gnome e configure manualmente uma tecla AltGr, talvez como essa, para que o layout internacional funcione com total eficácia.

    
por 18.04.2011 / 18:18