Neuzuordnung der Feststelltaste, um zu entkommen, und des Menüs, um sie zu komponieren, auf der Linux-Konsole

9

Wenn Sie XI ausführen, verwenden Sie eine .xmodmaprc, um bestimmte Schlüssel folgendermaßen neu zuzuordnen:

! Make it so that both Caps Lock and Escape do Escape
clear Lock
keysym Caps_Lock = Escape
! Remap the menu key as Compose
keysym Menu = Multi_key

Wie kann ich die gleichen Dinge auf der Konsole erreichen?

aktualisieren

Zusätzlich zu der in meiner Antwort angegebenen Teillösung habe ich erfahren, dass die Konsole STRG- .dem Verfassen zuordnet . Daran kann ich mich vielleicht gewöhnen. Das Einrichten der Menütaste als Verfassen ist nicht so einfach, da es eine Menge nicht zugewiesener Schlüsselcodes gibt und kein offensichtlicher Anwärter auf einen alternativen Namen für das Menü.

Ich habe auch festgestellt, dass die Compose-Bindungen selbst viel eingeschränkter sind als unter X, und dass die meisten Sonderzeichen, die ich häufig verwende, nicht vorhanden sind. Vielleicht gibt es ein Dienstprogramm, das X-Syntax-Compose-Bindungen in etwas übersetzt, loadkeysdas lesen kann?

intuitiv
quelle
1
Traditionell: mit loadkeys. Ich denke, heutzutage kann man die Linux-Konsole dazu bringen, die X-Konfiguration zu lesen, aber ich weiß nicht, wie das funktioniert.
Gilles 'SO - hör auf böse zu sein'

Antworten:

8

Sie müssen Ihre Konsolen-Keymap bearbeiten. Auf meiner Konsole habe ich Escape to Caps Lock und Caps Lock to Escape zugeordnet. So funktioniert das.

  1. Zuerst müssen Sie Ihre Keymap finden. Ich verwende das Standard-US-Layout. Auf meinem System befindet es sich unter /usr/share/keymaps/i386/qwerty/us.map.gz.
  2. Erstellen Sie beispielsweise eine Kopie der Datei unter einem neuen Namen us-nocaps.map.gz.
  3. Entpacken Sie die Datei und öffnen Sie sie in einem Texteditor: gunzip us-nocaps.map.gz && vim us-nocaps.map
  4. Ändern Sie die Zuordnungen in der Datei nach Ihren Wünschen, zum Beispiel die, keycode 58 = Caps_Lockdie ich geändert habe keycode 58 = Escape.
  5. Gzip die Datei und lade sie : gzip us-nocaps.map && loadkeys us-nocaps.

Eine weitere Sache: Sie müssen Ihre Distribution wahrscheinlich irgendwie konfigurieren, um sicherzustellen, dass die neuen Keymaps beim Booten immer geladen werden. Andernfalls müssen Sie Ihre Keymap jederzeit manuell laden loadkeys. Wie Sie das tun, hängt davon ab, welche Distribution Sie verwenden.

Cedric
quelle
1
Der Gunzip-Schritt ist hier eigentlich nicht notwendig - in den meisten Versionen vimsollte es nur möglich seinvim us-nocaps.map.gz
Glittershark
3

Für neuere Debian-Distributionen benötigen Sie dies alles nicht mehr.

Die Tastaturdatei beschreibt die Eigenschaften der Tastatur. Es wird von gelesen, setupcon(1)um die Tastatur auf der Konsole zu konfigurieren. In Debian-Systemen wird das Standardtastaturlayout in beschrieben /etc/default/keyboardund von X und der Konsole gemeinsam genutzt. (Mann Tastatur)

Im /etc/default/keyboardSet XKBOPTIONS="caps:escape"und dann machen:

~$ sudo setupcon

Eine Beschreibung aller verfügbaren Tastaturmodelle, Layouts, Varianten und Optionen finden Sie in /usr/share/X11/xkb/rules/xorg.lst. "(Man-Tastatur)

Ingo
quelle
1

Mit Hilfe von Cedric habe ich festgestellt, dass Ubuntu die Keymaps nicht dort installiert hat, wo $ man loadkeyssie angeblich sein sollen ( /usr/share/keymaps). Dies ist eine brandneue Installation. Vielleicht muss ich nur ein Paket installieren, um andere Keymaps als die zu erhalten, die ich während der Installation ausgewählt habe.

Anstatt diesen Blickwinkel zu verfolgen und die Lösung etwas robuster und bequemer zu gestalten, mache ich Folgendes:

    $ sudo dumpkeys | sed 's/CtrlL_Lock/Escape/' | sudo loadkeys

Obwohl ich ein bisschen verwirrt bin, warum Cedrics System Caps_Lockfür die Feststelltaste und meine verwendet wird CtrlL_Lock, funktioniert es trotzdem.

intuitiv
quelle
Das ist interessant, ich wusste dort nicht, wo es Unterschiede zwischen den Distributionen mit diesen Keymaps gibt. Persönlich benutze ich Gentoo, die Keymaps stammen aus dem Paket sys-apps / kbd-1.15.
Cedric
2
Ab Ubuntu 10.04 sind die Keymaps im console-dataPaket enthalten. Sie sind nicht standardmäßig installiert. Sie können herausfinden, in welchem ​​Paket Dateien installiert sind, /usr/share/keymapsindem Sie ausführen apt-file search /usr/share/keymaps.
Gilles 'SO - hör auf böse zu sein'