Para usar en un script bash, necesito obtener la distribución del teclado gnome que el usuario está usando actualmente. Por ejemplo, si el usuario establece la distribución del teclado en en-us
, necesito un comando bash que me imprima esto.
¿Cómo puedo obtener esa información?
Actualizar:
setxkbmap -query
desafortunadamente no funciona. A continuación se muestra la salida con el diseño en
(primer comando) y el de
(segundo comando) activado. Cambiar el diseño del teclado parece tener alguna relación con la configuración de la sesión de gnome
setxkbmap -query
rules: evdev
model: pc105
layout: us,de
variant: ,
options: terminate:ctrl_alt_bksp,lv3:ralt_switch,grp:alts_toggle
setxkbmap -query
rules: evdev
model: pc105
layout: us,de
variant: ,
options: terminate:ctrl_alt_bksp,lv3:ralt_switch,grp:alts_toggle
Actualización2:
setxkbmap -print #with en-us layout
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+de:2+inet(evdev)+level3(ralt_switch_for_alts_toggle):1+level3(ralt_switch_for_alts_toggle):2+group(alts_toggle)+level3(ralt_switch)+terminate(ctrl_alt_bksp)" };
xkb_geometry { include "pc(pc105)" };
};
setxkbmap -print #after switching to german layout
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+de:2+inet(evdev)+level3(ralt_switch_for_alts_toggle):1+level3(ralt_switch_for_alts_toggle):2+group(alts_toggle)+level3(ralt_switch)+terminate(ctrl_alt_bksp)" };
xkb_geometry { include "pc(pc105)" };
};
command-line
keyboard-layout
ftiaronsem
fuente
fuente
Respuestas:
Según una pregunta similar sobre Stackoverflow , lo siguiente debería ser el truco:
No pude verificarlo, ya que actualmente no tengo una máquina * nix con X disponible (no estoy en casa) ...
fuente
xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+us+inet(evdev)" }; xkb_geometry { include "pc(pc105)" }; };
-v
parámetro (varias veces), lo que aumenta la verbosidad y, por lo tanto, proporciona más información. Debería funcionar para ambos,-query
así como también-print
. Como no tengo una configuración de varios idiomas, no puedo decir si proporciona los detalles que necesita, pero con 3 veces la-v
salida aquí se divide en "reglas aplicadas" y "mapa de teclas". Esta última parece ser la información completa, por lo que la primera parte podría tener la "parte actualmente activa".Para Ubuntu 17.10 o posterior
En Ubuntu 17.10, con GNOME, el valor actual de gsettings no cambia cuando cambia la fuente de entrada. En su lugar hay una MRU-fuentes clave que enumera el m ost r ecientemente u sed fuentes de entrada.
La primera fuente en esa lista es la actual, por lo que una línea para obtener el diseño actual puede verse así:
Tenga en cuenta que esta respuesta no se aplica si utiliza Unity en un sistema Ubuntu 17.10. Con Unity sigue funcionando como antes.
fuente
Para Ubuntu 13.04 y versiones inferiores
Puedes usar la
xkblayout-state
herramienta. Consulte el archivo README.md para obtener una descripción, compilación, instalación y uso.El siguiente comando hará exactamente lo que quieras:
Para Ubuntu 13.10 y superior
Ubuntu 13.10 vino con algunas buenas mejoras en este sentido, y puede usar la siguiente función bash simple:
Los siguientes comandos también funcionan en 13.10:
o:
fuente
Simplemente presione Ctrl+ Alt+ Ten su teclado para abrir Terminal. Cuando se abra, ejecute el siguiente comando.
Esto es lo que deberías ver
fuente
Usando el terminal, ejecuté una prueba que cambiaba entre 'pt' y 'nosotros', y después de cada cambio, reuní la distribución del teclado que se utilizó con éxito:
Obtener la distribución activa del teclado
setxkbmap -print
grep xkb_symbols
awk -F"+" '{print $2}'
La salida que tiene el diseño 'nosotros' activo es:
us
Swith entre diseños
Pase donde se lee 'pt', el código de idioma para cambiar.
Nota: Estoy usando Gnome en Ubuntu 12.04 (Precise Pangolin)
fuente
Para Ubuntu 13.10 o posterior
(No estoy seguro si funciona en versiones anteriores)
Para ver más opciones:
fuente