¿Cuál es la diferencia entre el mapeo de teclas X11 y el mapeo de teclas de la consola virtual?

¿Cuál es la diferencia entre el mapeo de teclas X11 y el mapeo de teclas de la consola virtual?

En Linux tenemos X11, que controla la distribución del teclado, pero lamentablemente cualquier cambio realizado allí no afecta al sistema en su conjunto, por lo que en un tty te quedas con el qwerty estándar sin importar cuáles sean tus preferencias de X11. Recientemente decidí profundizar en el tty así que necesitaba configurar mi diseño (neo) allí. Al final no pude pero tengo estas preguntas que hacerte:

¿Por qué tenemos archivos diferentes para describir los diseños de X11 y los diseños de la consola? ¿Por qué necesitamos diferentes herramientas para gestionar esos diseños? ¿Por qué nadie parece interesado en cambiar los diseños de la consola? ¿Los administradores de servidores sólo utilizan qwerty?

¡Muchas gracias!

Respuesta1

Si bien estamos de acuerdo en que sería bueno si los dos conjuntos de configuraciones se integraran juntos, hay dos razones por las que son diferentes:

  • evolucionaron por separado (y nadie ha propuesto una solución integrada que satisfaga los requisitos de ambos), y
  • tienen diferentes requisitos.

Las consolas virtuales de Linux proporcionan una interfaz de terminal que admite termios POSIX: lo que podría considerar de bajo nivelpersonajeE/S. Eso estaba bien definido a mediados de los años 1980, con tecnología de los 10 años anteriores. La interfaz de termios se ocupa de los caracteres de control, algunas funciones de resaltado de vídeo para un solopequeñofuente, etc. No hace muchas suposiciones sobre el teclado aparte de que puede enviar caracteres.

X11 llegó a finales de la década de 1980 y fue diseñado para soportargráficoE/S. Hace suposiciones diferentes a las de termios, por ejemplo, los gráficos implican múltiples fuentes (y la capacidad de mostrar una amplia gama de caracteres). Además (debido a la necesidad de manejar un mouse u otro dispositivo puntero), necesita métodos adicionales para manejar la entrada.

A diferencia de la interfaz termios (que utiliza una secuencia de caracteres/bytes), X11 pasa información poreventosque contienen mucha información y los eventos se pueden combinar de maneras no contempladas cuando se ideó termios. Por lo tanto, en lugar de codificar controly shiften un carácter, un evento X11 podría pasar elcontrol modificadorcomo un evento y unclavecomo un evento más. Las bibliotecas X11 combinan esos eventos.

Aunque ambas eran tecnologías existentes desde el principio, X11 (incluso como X386) se usó menos y básicamente llegó varios años tarde para influir en el diseño de los termios. Todo eso se hizo antes de que comenzara Linux. Dado que no había (y aparentemente todavía hay) ningún diseño alternativo que proporcione una ventaja distintiva, no ha habido ningún cambio desde mediados o finales de los años 1990.

Otras lecturas:

información relacionada