Autor(es) original(es) | Fundación X.Org |
---|---|
Versión estable | 1.0 / 1996 ( 1996 ) |
Sitio web | www.x.org/wiki/XKB/ |
En las interfaces hombre-computadora , la extensión de teclado X o XKB es una parte del Sistema X Window que extiende la capacidad de controlar el teclado más allá de lo que ofrece el protocolo central del Sistema X Window y permite usar múltiples diseños de teclado .
Sus principales características son:
XKB se compone de dos partes: una extensión de servidor y una biblioteca cliente. Las versiones modernas de Xlib contienen XKB, que está activo de forma predeterminada. Los programas cliente que no utilicen esta extensión pueden desactivarla antes de conectarse con el servidor o simplemente pueden funcionar normalmente, ya que la extensión simula el protocolo principal de forma predeterminada.
XKB también es utilizado por los compositores Wayland y kmscon .
XKB permite bloquear o enclavar un modificador , además de estar en su estado normal. Normalmente, un modificador está activo exactamente cuando se presiona, como la tecla Shift . Sin embargo, un modificador también puede estar bloqueado, como el modificador Caps Lock . Cuando un modificador está bloqueado, permanece activo hasta que se desactiva explícitamente. Una condición intermedia entre el estado normal y el bloqueado es el estado enclavado: cuando un modificador está enclavado, permanece activo, pero solo hasta que se presiona la siguiente tecla que no sea modificadora.
XKB permite que una aplicación cliente bloquee o encierre explícitamente un modificador. Además, una aplicación puede vincular la pulsación o liberación de una tecla a un cambio de estado del modificador. De esta manera, un modificador puede quedar bloqueado o encierre automáticamente cada vez que se pulsa o se suelta una tecla.
XKB permite que el teclado cambie entre cuatro grupos de caracteres diferentes. Esto se hace generalmente para que un teclado se comporte como un teclado de otro idioma. En este contexto, el conjunto de caracteres que genera el teclado se denomina grupo y un teclado puede cambiar a un grupo diferente en cualquier momento.
XKB define algunos selectores de grupo (que en la especificación se denominan simplemente grupos ). Al igual que con los modificadores, un selector de grupo puede estar asociado a una clave, pero también puede estar bloqueado o enclavado.
El comportamiento del teclado depende de una serie de parámetros que pueden ser modificados por los clientes. Estos parámetros se denominan controles . Por ejemplo, el control SlowKey se puede utilizar para ignorar pulsaciones de teclas breves. Otro control es MouseKeys , que realiza algunas pulsaciones de teclas para simular movimientos del ratón. El control solo indica si esta simulación está activa o no; las teclas que producen el movimiento no se consideran parte del control, sino que se especifican asociando acciones a estas teclas.
Los dos controles anteriores son booleanos : están activos o no. El control PerKeyRepeat no es booleano. Es decir, es una máscara que indica qué teclas están en modo de repetición automática. Según la especificación, los controles no booleanos están "siempre activos": esto significa que siempre dependen de un conjunto de parámetros (en este caso, la máscara), pero que no hay un único bit que pueda utilizarse para desactivar por completo los efectos del control.
Además de ser booleanos o no booleanos, los controles también se clasifican como que afectan el comportamiento del servidor y que afectan el comportamiento de la biblioteca cliente. Los dos anteriores son controles de servidor. Los controles de la biblioteca cliente afectan la traducción de un código de tecla o una secuencia de códigos de tecla en una cadena ( XlookupString ) y la entrega de eventos.
XKB permite asociar acciones con pulsaciones de teclas, lo que traslada parte de la carga del procesamiento de eventos de entrada desde las aplicaciones cliente al servidor X. Sin embargo, las acciones que se pueden asociar con las teclas se limitan a las siguientes:
Además, hay algunas acciones relacionadas con los dispositivos que están disponibles si el servidor admite la extensión X Input.
La extensión del teclado X es incompatible con el manejo del teclado principal y, como resultado, varias teclas modificadoras no funcionan o requieren soluciones alternativas dentro de entornos emulados como VNC o Xephyr .
XKB permite un mejor manejo de los indicadores del teclado (LED). En particular, XKB proporciona nombres simbólicos para los indicadores, lo que permite vincular los indicadores a la actividad del teclado y verificar qué indicadores están realmente presentes en el teclado.
XKB también mejora el manejo de campanas del protocolo principal ; el protocolo principal solo admite una campana y la única acción que puede realizar un cliente es hacerla sonar. XKB admite múltiples campanas con nombre y permite que un cliente desactive algunas de ellas y reciba información cuando suena una campana.
XKB permite a un cliente consultar la forma física del teclado, incluidas las formas de las teclas individuales. En particular, las teclas se organizan en secciones, posiblemente rotadas (como ejemplo, el teclado numérico se considera típicamente una sección). Dentro de una sección, las teclas se organizan en filas. Las teclas y secciones tienen una geometría, que comprende el contorno aproximado de la tecla, su cuadro delimitador y la forma precisa. Además de las teclas, la geometría también incluye adornos , que son elementos del teclado que no son teclas. La forma general del teclado es un adorno. La información proporcionada sobre los adornos incluye su color y cualquier texto impreso en ellos (incluida la fuente utilizada).