Las teclas AltGr no funcionan con Ubuntu en VirtualBox

8

Acabo de instalar VirtualBox (de Oracle) en Windows 7 y creé una máquina virtual con la última versión de Ubuntu.

Aquí en Firefox puedo usar la tecla Ctrl izquierda, mientras que la derecha no tiene ningún efecto. Sin embargo, no puedo usar la tecla AltGr (también conocida como Right Alt) para producir, por ejemplo, llaves como {} (lo pegué a través de Ctrl V).

En una ventana de terminal, puedo cambiar el "Método de entrada" a "Multipress", y luego puedo usar AltGr para escribir, por ejemplo, {}, que es cómo produje esos caracteres para esta publicación. Sin embargo, con "Multipress" las teclas Ctrl parecen no tener ningún efecto. Entonces, para escribir, por ejemplo, Ctrl DI, haga clic derecho y cambie el "Método de entrada" a "Sistema (IBus (bus de entrada inteligente))". Entonces AltGr no funciona.

Intenté especificar la clave de redacción en la disposición del teclado de configuración del sistema.

Con eso, ni Ctrl ni AltGr funcionaron.

Esto es lo que informa xmodmap:

[~]
$ xmodmap -pke | control grep -i
código clave 37 = Control_L Sin símbolo Control_L
código clave 105 = Control_R NoSymbol Control_R
[~]
$ xmodmap -pke | grep -i alt
código clave 64 = Alt_L Meta_L Alt_L Meta_L
código clave 204 = NoSymbol Alt_L NoSymbol Alt_L
[~]
PS

¿Cómo puedo arreglar esto?

Información adicional: el teclado es un teclado de PC estándar, un Logitech K120, con diseño noruego.

Además, primero intenté hacer esta pregunta en el sitio de Superusuario, pero no hubo respuesta después de 2 días ...

Alf P. Steinbach
fuente
Obtuve la clave AltGr trabajando en Ubuntu. Solo tenía que saber que debía crear un archivo llamado ".Xmodmap" y agregar esta línea: "keycode 113 = Mode_switch Multi_key". Lo que encontré en un informe de error sobre un problema similar, en bugs.launchpad.net/ubuntu/+source/xkeyboard-config/+bug/349487/…
Alf P. Steinbach

Respuestas:

5

Ejecutar el comando xev. En la ventana xev, presione la AltGrtecla. Verás algo como

KeyPress event, serial 29, synthetic NO, window 0x6400001,
    root 0x105, subw 0x0, time 966635535, (243,-207), root:(1891,26),
    state 0x0, keycode 66 (keysym 0xff7e, Mode_switch), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

Tenga en cuenta el código clave; Como la clave no está haciendo lo que quieres, verás algo más (posiblemente Alt_R) en lugar de Mode_switch. Desea asignar este código clave Mode_switch, que es el nombre de X11 para AltGr. Ponga el siguiente comando en un archivo llamado .Xmodmap(nota mayúscula X) en su directorio de inicio:

keycode 66 = Mode_switch

Además, es posible que deba asignar un modificador Mode_switch, pero si todo lo que está sucediendo es una discrepancia de código clave, ya habrá una. Consulte Establecer la clave para la letra eñe en español para obtener más información.

Ejecute xmodmap ~/.Xmodmappara probar su archivo. En muchos sistemas, incluido Ubuntu 10.04, este archivo se carga automáticamente en el entorno predeterminado de Gnome. En otras distribuciones o entornos, es posible que deba indicar explícitamente que desea ejecutar xmodmap ~/.Xmodmapcuando inicie sesión.

Gilles 'SO- deja de ser malvado'
fuente
Es una respuesta interesante, usando el código clave 66. En mi comentario antes de publicar esta respuesta, noté que el código clave 113, que acabo de copiar y pegar de la red, funciona para esa línea. Ahora, cuando ejecuto xevcomo sugiere, informa el código clave 108. Sin embargo, la línea que copié de la red funciona. Por lo tanto, aparentemente no tiene nada que ver con el código clave. Lo cambié a 66, solo por diversión, y reinicié: todavía funciona. Así que concluyo que no es algo técnicamente preciso en absoluto, sino evidentemente un Heisenbug en Ubuntu.
Alf P. Steinbach
@ AlfP.Steinbach El código clave está determinado por su hardware (o emulador de hardware, en una VM) y por su kernel y la versión del servidor X. En los teclados de PC, la tecla Alt derecha tiene el código clave 113 en distribuciones Linux más antiguas y 108 en las más nuevas (mi ejemplo con 66 es porque tengo AltGr en la tecla Bloq Mayús). Hace un tiempo pregunté cómo determinar automáticamente si tengo un sistema "antiguo" o "nuevo" con respecto a las asignaciones de códigos clave.
Gilles 'SO- deja de ser malvado'
Bueno, todavía funciona después de cambiar el nombre de ese archivo y reiniciar. Y el terminal aún recuerda el historial de comandos anterior después de reiniciar. Con estados dinámicos persistentes como ese, creo que debe ser bastante difícil cazar errores: no se pueden reproducir de manera confiable en un entorno tan interferente. Creo que una prueba más de eso es cómo el error sobre AltGr se ha ido yoyo: cerrado como resuelto, reabierto, cerrado como resuelto, reabierto, etc. Así que creo que sería una buena idea (TM) castigar severamente a la persona que introdujo esa persistencia de configuración y estado. :-)
Alf P. Steinbach