Me pregunto si hay alguna herramienta de línea de comando que devuelva la distribución actual del teclado.
Me he XkbLayoutpuesto a us, ru.
Actualización: setxkbmap devuelve configuraciones de diseño, diseño no seleccionado. P.ej:
$ setxkbmap -print | grep xkb_symbols
xkb_symbols { include "pc+us+ru:2+inet(evdev)+capslock(grouplock)+terminate(ctrl_alt_bksp)" };
Devolverá el mismo resultado sin importar cuál sea el diseño actual.

Respuestas:
Quizás esto depende de la versión, pero en mi máquina que usa
setxkbmap1.3.0 funciona el siguiente comando:Tenga en cuenta que, según su necesidad, puede ser inútil conocer solo el diseño: por ejemplo, la variante Dvorak del diseño de EE. UU. Es bastante diferente del QWERTY predeterminado. La
-queryopción desetxkbmapda tanto el diseño como la variante, como campos diferentes:fuente
-queryse agregó en setxkbmap 1.2.0setxkbmap -print -verbose 10setxkbmap -model pc104 -layout cz,us -variant ,dvorakHay xkb-switch que se describe así:
https://github.com/ierton/xkb-switch
O, siguiendo la sugerencia de nozimica, puede usar:
Desde este hilo en las placas Arch Linux: https://bbs.archlinux.org/viewtopic.php?pid=539406
fuente
xkb-switchfunciona bien, pero espero que haya una solución más portátilsetxkbmapno muestra la disposición activa en ese momento cuando se define más de un diseño.Sí, ¡HAY una herramienta de línea de comandos que hace lo que quieres! Lo acabo de descubrir hace 10 minutos :)
Mira aquí: https://github.com/nonpop/xkblayout-state
hace exactamente lo que desea (no genera un final de línea, así que agregue
; echosi lo necesita). ejecute la herramienta sin parámetros para la ayuda.fuente
Use esto para obtener el código para el diseño actual:
Es posible que esto deba convertirse a la forma que desee, como:
fuente
00000002a pesar de que mi diseño es "EE.UU. Dvorak internacional". El lenguaje no es suficiente ...00001004en mi máquina.Otro enfoque más simple, debido a las posiciones fijas de la salida del
xset -qcomando, es este:Imprime
00000002o00001002depende de la distribución actual del teclado.fuente
c59-66.En sistemas más nuevos, puede usar
localectl statusPor ejemplo, le mostrará lo siguiente:
fuente
Las respuestas hasta ahora no funcionaron para mí. Lo uso
setkbmapcon dos diseños inglés y checo, por lo que cualquiera-printo-querysiempre devolverá los dos. Grepping el estado del LEDxset -qtampoco funciona ya que muestra el estado de todos los leds del teclado.Lo mejor hasta ahora fue escribir rápidamente esta pequeña utilidad: https://gist.github.com/fikovnik/ef428e82a26774280c4fdf8f96ce8eeb
y compilar usando
gcc -I/usr/include getxkblayout.c -lX11 -lxkbfilefuente
Puede usar
xkbprintpara imprimir el diseño actual.Por ejemplo, para imprimir el diseño actual como uso de PDF
que produce:
fuente
De Goosfrabaa en los foros de Arch Linux :
Esto funciona correctamente aquí y se imprime
us(dvorak-intl)(se muestra como "USA Dvorak international" en el menú de selección del teclado GNOME).fuente
$ setxkbmap -v>>Trying to build keymap using the following components: | keycodes: evdev+aliases(qwerty) | types: complete | compat: complete+ledscroll(group_lock) | symbols: pc+us+hu:2+inet(evdev)+group(alt_shift_toggle)+compose(rwin)+terminate(ctrl_alt_bksp) | geometry: pc(pc105)en este caso siempre tengo "nosotros"Respuesta parcial: en KDE , aparentemente puede obtener la distribución actual del teclado a través del
qdbuscomando:Tengo varios diseños configurados, pero solo muestra el que está actualmente en uso.
Probado en Kubuntu 18.04 (qdbus versión 4.8.7). Puede haber otras soluciones basadas en d-bus para entornos que no sean Qt, pero no las conozco.
fuente
fuente
Puedes usar:
fuente
latam.xkb_symbolsvalor no depende del diseño seleccionado, siempre obtengo 'nosotros'