Für die Verwendung in einem Bash-Skript muss das Gnome-Tastaturlayout angegeben werden, das der Benutzer derzeit verwendet. Wenn der Benutzer beispielsweise das Tastaturlayout auf festlegt en-us
, benötige ich einen Bash-Befehl, der mir diesen ausgibt.
Wie kann ich diese Informationen erhalten?
Aktualisieren:
setxkbmap -query
funktioniert leider nicht. Unten ist die Ausgabe mit aktiviertem Layout en
(erster Befehl) und de
(zweiter Befehl). Das Umschalten des Tastaturlayouts scheint in gewissem Zusammenhang mit der Konfiguration der Gnome-Sitzung zu stehen
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
Update2:
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
quelle
quelle
Antworten:
Entsprechend einer ähnlichen Frage zu Stackoverflow sollte Folgendes ausreichen :
Ich konnte es nicht verifizieren, da ich momentan keinen * nix-Rechner mit X zur Verfügung habe (ich bin nicht zu Hause) ...
quelle
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
Parameter (mehrmals) anzugeben , wodurch die Ausführlichkeit erhöht und somit mehr Informationen bereitgestellt werden. Sollte sowohl für-query
als auch für funktionieren-print
. Da ich kein Multilang-Setup habe, kann ich nicht sagen, ob es die Details liefert, die Sie benötigen - aber bei-v
dreifacher Ausgabe ist hier die Aufteilung in "Angewandte Regeln" und "Keymap". Letzteres scheint die vollständige Information zu sein, so dass der erste Teil den "derzeit aktiven Teil" haben könnte.Für Ubuntu 17.10 oder höher
In Ubuntu 17.10 mit GNOME wird der aktuelle gsettings-Wert nicht geändert, wenn Sie die Eingabequelle wechseln. Stattdessen gibt es eine MRU-Quellen - Taste , die die Listen m ost r ecently u Eingangsquellen Sed.
Die erste Quelle in dieser Liste ist die aktuelle, sodass ein Oneliner zum Abrufen des aktuellen Layouts folgendermaßen aussehen kann:
Bitte beachten Sie, dass diese Antwort nicht gilt, wenn Sie Unity auf einem Ubuntu 17.10-System verwenden. Mit Unity funktioniert es weiter wie bisher.
quelle
Für Ubuntu 13.04 und niedriger
Sie können
xkblayout-state
Werkzeug verwenden. Siehe README.md Datei für die Beschreibung, Erstellung, Installation und Nutzung.Der folgende Befehl macht genau das, was Sie wollen:
Für Ubuntu 13.10 und höher
Ubuntu 13.10 brachte in diesem Sinne einige gute Verbesserungen mit sich, und Sie können die folgende einfache Bash-Funktion verwenden:
Die folgenden Befehle funktionieren auch in 13.10:
oder:
quelle
Drücken Sie einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen den folgenden Befehl aus.
Das sollten Sie sehen
quelle
Mit dem Terminal habe ich einen Test durchgeführt, bei dem zwischen 'pt' und 'us' gewechselt wurde, und nach jeder Änderung habe ich das erfolgreich verwendete Tastaturlayout gesammelt:
Holen Sie sich das aktive Tastaturlayout
setxkbmap -print
grep xkb_symbols
awk -F"+" '{print $2}'
Die Ausgabe mit aktivem 'us'-Layout ist:
us
Wechseln Sie zwischen den Layouts
Übergeben Sie die Stelle, an der "pt" steht, den Sprachcode, zu dem gewechselt werden soll.
Hinweis: Ich benutze Gnome unter Ubuntu 12.04 (Precise Pangolin)
quelle
Für Ubuntu 13.10 oder höher
(Nicht sicher, ob es in früheren Versionen funktioniert)
Um mehr Optionen zu sehen:
quelle