# Keyboard configuration in Xorg (Español)

Artículos relacionados

- Keyboard Configuration in Console (Español)
- Extra keyboard keys
- Xorg (Español)
- X KeyBoard extension

Nota: Este artículo trata únicamente sobre la configuración básica, sin modificar los diseños, asignación de teclas extras, etc. Véase Extra keyboard keys para conocer más sobre estos temas avanzados.

Xorg utiliza X KeyBoard extension (XKB) para gestionar la distribución del teclado. Por otra parte, xmodmap se puede utilizar para acceder al mapa del teclado interno directamente. Por lo general, no se recomienda el uso de xmodmap, excepto, tal vez, para tareas simples.

En este artículo se describe la configuración de bajo nivel usando XKB, que es eficaz en la mayoría de los casos, aunque algunos entornos de escritorios como GNOME (Español) la sobrescriben con su propia configuración.

## Visualizar la configuración del teclado

Se puede utilizar la siguiente orden para ver la configuración vigente de XKB :

    $ setxkbmap -print -verbose 10

    Setting verbose level to 10
    locale is C
    Trying to load rules file ./rules/evdev...
    Trying to load rules file /usr/share/X11/xkb/rules/evdev...
    Success.
    Applied rules from evdev:
    rules:      evdev
    model:      pc104
    layout:     es,us
    variant:    ,
    options:    keypad:pointerkeys,terminate:ctrl_alt_bksp
    Trying to build keymap using the following components:
    keycodes:   evdev+aliases(qwerty)
    types:      complete
    compat:     complete
    symbols:    pc+es+us:2+inet(evdev)+terminate(ctrl_alt_bksp)+keypad(pointerkeys)
    geometry:   pc(pc104)
    xkb_keymap {
    	xkb_keycodes  { include "evdev+aliases(qwerty)"	};
    	xkb_types     { include "complete"	};
    	xkb_compat    { include "complete"	};
    	xkb_symbols   { include "pc+es+us:2+inet(evdev)+terminate(ctrl_alt_bksp)+keypad(pointerkeys)"	};
    	xkb_geometry  { include "pc(pc104)"	};
    };

### Utilidades de terceros

Hay algunas utilidades «no oficiales» que permiten imprimir información específica acerca de la distribución del teclado que se está utilizando.

- xkb-switch-gitAUR:

    $ xkb-switch

    us

- xkblayout-stateAUR:

    $ xkblayout-state print "%s"

    de

## Configurar la distribución del teclado

La distribución del teclado en Xorg puede configurarse de múltiples maneras. He aquí una explicación de las opciones usadas :

- `XkbModel` selecciona el modelo de teclado. No tiene mucha relevancia, salvo que se cuente con un teclado con teclas extras. Los parámetros seguros son `pc104` o `pc105`. Pero para algunos portátiles con teclas adicionales, la simple definición del modelo adecuado puede hacer que funcionen dichas teclas.
- `XkbLayout` selecciona la distribución del teclado. Se pueden especificar varias distribuciones en una lista separada por comas, para el caso, por ejemplo, de que desee cambiar rápidamente entre tales distribuciones.
- `XkbVariant` selecciona una variante de la distribución específica. Por ejemplo, la variante, por defecto, del teclado `sk` es `qwertz`, pero se pueden especificar otras distintas manualmente tal como `qwerty`, etc.

  Advertencia: Se deben especificar tantas variantes como número de distribuciones de teclados haya especificado. Si desea utilizar la variante por defecto de dichos teclados, especifique como «xkbvariant» una cadena vacía (la coma debe permanecer). Por ejemplo, si se tiene la distribución de teclado `us` como primario que queremos usar con la variante predeterminada y una distribución de teclado secundaria `us` que queremos utilizar con la variante `dvorak`, especifique `us,us` como `XkbLayout` y `,dvorak` como `XkbVariant`.

- `XkbOptions` contiene algunas opciones adicionales. Se utiliza para especificar la forma de alternar, el LED de notificación, el modo de compose, etc.

El nombre de la distribución, [layout], es normalmente un código de dos letras por país. Puede ver una lista completa de los modelos de teclado, distribuciones, variantes y opciones, con su correspondiente descripción, abriendo `/usr/share/X11/xkb/rules/base.lst`. Del mismo modo, pueden usarse las órdenes de abajo para ver los listados sin más:

- `localectl list-x11-keymap-models`
- `localectl list-x11-keymap-layouts`
- `localectl list-x11-keymap-variants [layout]`
- `localectl list-x11-keymap-options`

Los ejemplos de las secciones siguientes producirán el mismo resultado, esto es, se definirá el modelo `pc104`, `es` como teclado primario, `us` como teclado secundario, las variantes `deadtilde` para el teclado `es` y `dvorak` para `us`, y la combinación de teclas `Alt+Mayús` para alternar los teclados.

### Utilizar setxkbmap

La herramienta setxkbmap establece la distribución del teclado para un servidor X activo y mantiene la configuración solo durante la sesión en curso. No obstante, puede utilizarse xinitrc para hacer que la configuración se mantenga después de los reinicios. Esto último es útil para establecer una configuración específica para nuestra sesión de usuario distinta de la establecida para todo el sistema por los archivos de configuración de X[broken link: invalid section].

Su uso es como sigue:

    $ setxkbmap [-model modelo_xkb] [-layout distribución_xkb] [-variant variantes_xkb] [-option opciones_xkb]

No es necesario especificar todas las opciones, por ejemplo, se puede cambiar solo una distribución:

    $ setxkbmap -layout distribución_xkb

Véase `man 1 setxkbmap` para conocer un listado completo de los argumentos que se pueden pasar a la línea de órdenes.

Por ejemplo:

    $ setxkbmap -model pc104 -layout es,us -variant deadtilde,dvorak -option grp:alt_shift_toggle

### Utilizar los archivos de configuración de X

La sintaxis de los archivos de configuración de X se explica en Xorg#Configuration. Este método crea la configuración para todo el sistema, que se mantiene después de los reinicios.

He aquí un ejemplo:

    /etc/X11/xorg.conf.d/10-keyboard.conf

    Section "InputClass"
            Identifier "system-keyboard"
            MatchIsKeyboard "on"
            Option "XkbLayout"  "es,us"
            Option "XkbModel"   "pc104"
            Option "XkbVariant" "deadtilde,dvorak"
            Option "XkbOptions" "grp:alt_shift_toggle"
    EndSection

### Utilizar localectl

Por conveniencia, la herramienta localectl puede ser utilizada en lugar de editar manualmente el archivo de configuración de X. Se guardará la configuración en `etc/X11/xorg.conf.d/00-keyboard.conf`. Este archivo no debe modificarse manualmente, porque localectl sobrescribirá los cambios en el siguiente inicio.

Su uso es como sigue:

    $ localectl set-x11-keymap [distribución] [modelo] [variantes] [opciones]

La siguiente órden creará un archivo `/etc/X11/xorg.conf.d/00-keyboard.conf` con el mismo contenido que el del ejemplo de arriba:

    $ localectl set-x11-keymap es,us pc104 deadtilde,dvorak grp:alt_shift_toggle

## Opciones XKB usadas frecuentemente

### Alternar entre distintas distribuciones de teclado

Para ser capaz de cambiar fácilmente la distribución del teclado, primero especifique varias distribuciones entre las que desea alternar (la primera de ellas será la predeterminada). A continuación, especifique una tecla (o combinación de teclas), que utilizará para alternar las distribuciones. Por ejemplo, para cambiar entre una distribución US y otra Sueca, utilizando la tecla `Bloq Mayús`, use `us,se` como un argumento de `XkbLayout` y `grp:caps_toggle` como un argumento de `XkbOptions`.

Puede utilizar otras combinaciones de teclas distintas de `Bloq Mayús`, las cuales se enumeran en `/usr/share/X11/xkb/rules/base.lst`, que son las que comienzan con `grp:` y terminan en `_toggle`. Para obtener la lista completa de opciones disponibles, ejecute la orden siguiente:

    $ grep "grp:.*_toggle" /usr/share/X11/xkb/rules/base.lst

### Terminar Xorg con Ctrl+Alt+Retroceso

Por defecto, la combinación de teclas `Ctrl+Alt+Retroceso` está desactivada. Puede activarla haciendo pasar el argumento `terminate:ctrl_alt_bksp` a `XkbOptions`.

### Intercambiar Bloq Mayús con Control Izquierdo

Para cambiar Bloq Mayús con la tecla Control izquierda, añada `ctrl:swapcaps` a `XkbOptions`. Ejecute la orden siguiente para ver opciones similares, junto con sus descripciones:

    $ grep -E "(ctrl|caps):" /usr/share/X11/xkb/rules/base.lst

### mouse keys

Mouse keys está desactivada por defecto y tiene que ser activada manualmente haciendo pasar el argumento `keypad:pointerkeys` a `XkbOptions`. Esto hará que al teclear `Mayús+BloqNum` alternemos entre el teclado numérico y mousekeys.

### Configurar tecla compose

La tecla compose, cuando se pulsa en secuencia con otras teclas, produce un carácter Unicode. Por ejemplo, en la mayoría de configuraciones pulsando `tecla_compose ' e` produce `é`. Esto es especialmente útil si se necesita escribir en un idioma diferente a aquel para el cual la distribución del teclado fue diseñado (como escribir en francés, italiano y alemán en un teclado americano).

Por ejemplo, para que la tecla `Alt` derecha funcione como una tecla compose, pase el argumento `compose:ralt` a `XkbOptions`.

Se pueden utilizar otras teclas como teclas compose, su listado figura en `/usr/share/X11/xkb/rules/base.lst` y comienzan con `compose:`. Para obtener la lista completa de las opciones disponibles, ejecute la orden siguiente :

    $ grep "compose:" /usr/share/X11/xkb/rules/base.lst

#### Combinaciones de teclas

Las combinaciones predeterminadas para las teclas compose dependen de la configuración regional y se almacenan en `/usr/share/X11/locale/locale_usado/Compose`, donde `locale_usado` es, por ejemplo, `es_ES.UTF-8`.

Puede definir sus propias combinaciones de la tecla compose copiando el archivo predeterminado a `~/.XCompose` y modificándolo. La tecla compose funciona con cualquiera de los miles de caracteres Unicode válidos, incluyendo aquellos fuera del Basic Multilingual Plane.

No obstante lo anterior, GTK no utiliza XIM de forma predeterminada, por lo que no lee las teclas de `~/.XCompose`. Esto se puede solucionar obligando a GTK a utilizar XIM añadiendo `export GTK_IM_MODULE=xim` y/o `export XMODIFIERS="@im=none"` a `~/.xprofile`.

Sugerencia: XIM es muy antiguo, es posible que tenga más suerte con otros métodos de entrada: SCIM, uim, IBus etc. Véase Internationalization#Input methods in Xorg para conocer más detalles.

## Otros ajustes

### Ajustar el retardo y la velocidad de typematic

La opción typematic delay («retardo para la automatización de escritura») indica la cantidad de tiempo (normalmente en milisegundos) que una tecla necesita ser presionada para que el proceso de repetición comience. Después que el proceso de repetición ha sido activado, el carácter se repite con una frecuencia determinada (por lo general en Hz dado) especificado por la opción typematic rate («velocidad de la automatización de escritura»). Estos valores se pueden cambiar usando la orden xset:

    $ xset r rate delay [rate]

Por ejemplo, para establecer una cadencia typematic de 200ms y una tasa typematic de 30Hz, utilice la siguiente orden (use xinitrc para mantener permanente la configuración):

    $ xset r rate 200 30

Al emitir la orden sin especificar el retardo y la tasa, se ​restablecerá typematic a sus respectivos valores por defecto: un retardo de 660ms y una frecuencia de 25Hz:

    $ xset r rate

Categories:

- Keyboards (Español)
- X server (Español)

Hidden category:

- Pages with broken section links