
Ich hatte immer Probleme damit, die Art und Weise zu verstehen, wie die Tastaturbelegung und verwandte Dinge in Linux zusammengesetzt sind.
Wenn etwas kaputt geht, kocht mein Blut, wenn ich endlose veraltete Mailinglisten und Forenbeiträge durchforsten muss, um zu findenDASein Befehl oder eine Inputrc-Zeile, die mein Problem behebt.
Es gibt klassische Probleme wie die nicht funktionierende Rücktaste in Vim oder die Ctrl
+ Pfeiltasten in Bash, bis Sie den Terminaltyp wechseln. Oder ein Problem, auf das ich kürzlich gestoßen bin, bei dem @
die Taste bei einer Neuinstallation von Debian tatsächlich druckt "
und "
druckt @
(falsches Tastaturlayout?)
Nur Dateien und Tools anzuschauen hilft nicht viel. inputrc? xmodmap? setxkbmap? console-setup? Wo fange ich eigentlich an,verstehenwie funktioniert es, damit ich nicht auf die zweifelhaften Befehle von jemand anderem zurückgreifen muss, um meine Tastaturprobleme zu beheben?
Antwort1
Das ist viel komplizierter als es sein sollte, aber hier ist mein Versuch.
Auf der grundlegendsten Ebene erkennt der Kernel Tastaturen und versteht das Konzept einesTastenbelegung der Konsole. Dies ist die einfachste Möglichkeit, Ihre Tastatur zu konfigurieren. Dabei muss nur eine Variable berücksichtigt werden. Diese Einstellungen wirken sich jedoch nur auf Ihre Tastatureingaben auf der Linux-Textkonsole aus.
Sobald Sie sich mit Xorg befassen, wird es etwas komplizierter, aber es ergibt tatsächlich einen gewissen Sinn. Xorg hat mehrere spezifische Konzepte, die sehr wichtig zu verstehen sind.
- Xorg kommuniziert direkt mit dem Tastaturgerät, umgeht den Kernel und ignoriert die auf der Konsole angegebene Tastenbelegung.
- Xorg ermöglicht es Ihnen, in der Datei xorg.conf einige spezielle Optionen für Ihre Tastatur festzulegen, obwohl aktuelle Linux-Distributionen versuchen, möglichst ohne xorg.conf-Datei zu laufen. Abhängig von Ihrer Xorg-Version müssen Sie Ihr XkbLayout möglicherweise in einem
InputClass
Abschnitt (für neuere Versionen von Xorg) oder einemInputDevice
Abschnitt (für ältere Versionen) angeben. - In Xorg gibt es mehrere spezifische Interpretationsebenen, wenn eine Taste gedrückt wird.
- Auf der grundlegendsten Ebene wird jedes Tastendruckereignis durch einen numerischen Tastencode dargestellt.
- Das XkbModel in Kombination mit dem XkbLayout wird verwendet, um einen bestimmten Tastencode mit einem tatsächlichen Tastenereignis zu verknüpfen. Auf meiner Tastatur generiert beispielsweise der Tastencode 50
Shift_L
. - Sie können optional mehrere XkbLayouts für eine Tastatur angeben und dann die
XkbOptions
(die vollständige Liste ist normalerweise in gespeichert/usr/share/X11/xkb/rules
) verwenden, um zu konfigurieren, wie zwischen den Layouts gewechselt werden soll. (Dies ist beispielsweise nützlich, wenn Sie sich selbst Dvorak beibringen möchten oder zwischen englischen und russischen Tastaturlayouts wechseln möchten.) - Jeder Tastencode kann, abhängig von den gedrückten Modifikatoren, auf mehrere Arten interpretiert werden.
xmodmap
Hier können Sie sehen, welche Tastenereignisse gesendet werden, abhängig von den gedrückten Modifikatoren.
Antwort2
Heutzutage können die Konsole und X tatsächlich zusammenarbeiten.
Ich weiß nicht, ob dies bereits vollständig standardisiert ist, aber in Debian Unstable (und vermutlich auch in anderen Distributionen mit aktuellen Xorg- und Konsolentools) /etc/default/keyboard
können Sie die X-Style-Syntax verwenden, um die Tastatur in der Konsole und in X einzurichten – zumindest, wenn Sie Konsolentools und Konsolensetup verwenden. Der Rest ist wie von clee beschrieben.
Antwort3
Es gibt klassische Probleme wie die nicht funktionierende Rücktaste in Vim ...
Vielleicht sprechen Sie über das Verhalten von vim, mit der Rücktaste nur die Zeichen zu löschen, die Sie in der aktuellen Ausgabe eingegeben haben, und dies mit Zeichen zu verhindern, die bereits vor dem Wechsel in den Bearbeitungsmodus vorhanden waren.
Dieses Verhalten wird durch folgende Einstellung geändert:
set backspace=indent,eol,start