Me pregunto si hay alguna herramienta de línea de comando que devuelva la distribución actual del teclado.
Me he XkbLayout
puesto 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
setxkbmap
1.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
-query
opción desetxkbmap
da tanto el diseño como la variante, como campos diferentes:fuente
-query
se agregó en setxkbmap 1.2.0setxkbmap -print -verbose 10
setxkbmap -model pc104 -layout cz,us -variant ,dvorak
Hay 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-switch
funciona bien, pero espero que haya una solución más portátilsetxkbmap
no 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
; echo
si 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
00000002
a pesar de que mi diseño es "EE.UU. Dvorak internacional". El lenguaje no es suficiente ...00001004
en mi máquina.Otro enfoque más simple, debido a las posiciones fijas de la salida del
xset -q
comando, es este:Imprime
00000002
o00001002
depende de la distribución actual del teclado.fuente
c59-66
.En sistemas más nuevos, puede usar
localectl status
Por ejemplo, le mostrará lo siguiente:
fuente
Las respuestas hasta ahora no funcionaron para mí. Lo uso
setkbmap
con dos diseños inglés y checo, por lo que cualquiera-print
o-query
siempre devolverá los dos. Grepping el estado del LEDxset -q
tampoco 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 -lxkbfile
fuente
Puede usar
xkbprint
para 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
qdbus
comando: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_symbols
valor no depende del diseño seleccionado, siempre obtengo 'nosotros'