Ich frage mich, ob es ein Befehlszeilentool gibt, das das aktuelle Tastaturlayout zurückgibt.
Ich habe XkbLayout
eingestellt us, ru
.
Aktualisieren: setxkbmap
Gibt die Layouteinstellungen zurück, nicht das ausgewählte Layout. Z.B:
$ setxkbmap -print | grep xkb_symbols
xkb_symbols { include "pc+us+ru:2+inet(evdev)+capslock(grouplock)+terminate(ctrl_alt_bksp)" };
Unabhängig vom aktuellen Layout wird dasselbe Ergebnis zurückgegeben.
Antworten:
Möglicherweise ist dies versionsabhängig, aber auf meinem Computer, der
setxkbmap
1.3.0 verwendet, funktioniert der folgende Befehl:Beachten Sie, dass es je nach Bedarf unbrauchbar sein kann, nur das Layout zu kennen: Beispielsweise unterscheidet sich die Dvorak-Variante des US-Layouts erheblich von der Standard-QWERTY. Die
-query
Option vonsetxkbmap
gibt sowohl das Layout als auch die Variante als unterschiedliche Felder an:quelle
-query
wurde in setxkbmap 1.2.0setxkbmap -print -verbose 10
setxkbmap -model pc104 -layout cz,us -variant ,dvorak
Es gibt einen xkb-Schalter, der folgendermaßen beschrieben wird:
https://github.com/ierton/xkb-switch
Auf Vorschlag von nozimica können Sie auch Folgendes verwenden:
Aus diesem Thread auf den Arch Linux-Boards: https://bbs.archlinux.org/viewtopic.php?pid=539406
quelle
xkb-switch
funktioniert gut, aber ich hoffe, dass es mehr tragbare Lösung gabsetxkbmap
zeigt nicht das aktuell aktive Layout , wenn mehr als ein Layout definiert ist.Ja, ES GIBT ein Befehlszeilentool, das macht, was Sie wollen! Ich habe es gerade vor 10 Minuten entdeckt :)
Schau mal hier: https://github.com/nonpop/xkblayout-state
macht genau das, was Sie wollen (es gibt kein Zeilenende aus, also fügen
; echo
Sie es hinzu, wenn Sie es brauchen). Führen Sie das Tool ohne Parameter für die Hilfe aus.quelle
Verwenden Sie dies, um den Code für das aktuelle Layout abzurufen:
Dies muss möglicherweise in ein gewünschtes Formular konvertiert werden, z.
quelle
00000002
, obwohl mein Layout "USA Dvorak International" ist. Sprache ist nicht genug ...00001004
auf meinem Computer den gleichen Wert .Ein anderer einfacherer Ansatz aufgrund fester Positionen der Ausgabe des
xset -q
Befehls ist der folgende:Es wird gedruckt
00000002
oder00001002
hängt von Ihrem aktuellen Tastaturlayout ab.quelle
c59-66
.Auf neueren Systemen können Sie verwenden
localectl status
Es wird Ihnen zum Beispiel Folgendes zeigen:
quelle
Die bisherigen Antworten haben bei mir nicht geklappt. Ich benutze
setkbmap
mit zwei Layouts Englisch und Tschechisch, so dass jeder-print
oder-query
wird immer die beiden zurückgeben. Das Ermitteln des LED-Status fürxset -q
funktioniert auch nicht, da der Status aller Tastatur-LEDs angezeigt wird.Das bisher beste war, dieses kleine Hilfsprogramm schnell zu schreiben: https://gist.github.com/fikovnik/ef428e82a26774280c4fdf8f96ce8eeb
und kompilieren mit
gcc -I/usr/include getxkblayout.c -lX11 -lxkbfile
quelle
Mit können Sie
xkbprint
das aktuelle Layout drucken.Zum Beispiel um das aktuelle Layout als PDF zu drucken
welche produziert:
quelle
Aus Goosfrabaa in den Arch Linux-Foren :
Dies funktioniert hier korrekt und wird gedruckt
us(dvorak-intl)
(angezeigt als "USA Dvorak International" im GNOME-Tastaturauswahlmenü).quelle
$ 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)
in diesem fall habe ich jedes mal "uns" bekommenTeilantwort: Unter KDE können Sie das aktuelle Tastaturlayout anscheinend über den folgenden
qdbus
Befehl abrufen:Ich habe mehrere Layouts konfiguriert, aber es wird nur das aktuell verwendete angezeigt.
Getestet auf Kubuntu 18.04 (qdbus Version 4.8.7). Es gibt möglicherweise andere D-Bus-basierte Lösungen für Nicht-Qt-Umgebungen, aber ich kenne sie nicht.
quelle
quelle
Sie können verwenden:
quelle
latam
.xkb_symbols
Wert hängt nicht vom ausgewählten Layout ab. Ich erhalte immer 'uns'