GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Schlüssel neu zuordnen ohne xmodmap oder X-Tools

Zunächst die gute Nachricht

Die Linux-Systemkonsole verfügt absolut über einen eigenen Satz von Tastaturzuordnungen, die mit den Tools aus kbd verwaltet werden können Paket, insbesondere dumpkeys und showkey für Entdeckung und loadkeys zum Laden eines benutzerdefinierten Mappings. Die SuperUser-Frage Wie ändert man die Tastaturbelegung der Konsole unter Linux? hat eine Antwort mit guten Informationen zur Verwendung dieser Tools.

Jetzt die schlechte Nachricht

Es stimmt zwar, dass Sie mit diesen Tools die Tasten auf der Linux-Konsole neu zuordnen können, ohne xmodmap einzubeziehen oder erfordern, dass X läuft, werden sie nur beeinflussen die Tastaturbelegungen auf der virtuellen Textkonsole. Die Änderungen werden absolut keine Auswirkungen auf die grafische Umgebung haben, da das XInput/evdev-System von X direkt von den Eingabegeräten liest und seine eigene Verarbeitung durchführt.

Also, wenn Sie gehofft haben, die Verwendung von xmodmap zu vermeiden Ich fürchte, das wird nicht funktionieren, indem Sie es einfach auf der Konsole neu zuordnen und es überall anwenden lassen. Tatsächlich müssten Sie beide neu zuordnen die Konsole (mit loadkeys ) und X11 (mit einer Methode wie xmodmap ), um überall dasselbe Tastaturlayout zu verwenden.

Die Lösung für xmodmap Langsamkeit (und Fehlerhaftigkeit, da die Neuzuordnungen in Desktop-Umgebungen, die Layout-Wechsel verwenden, fehlerbehaftet und nicht dauerhaft sind) wäre, ein völlig neues zu definieren Tastaturlayout basierend auf dem Layout, das Sie zuvor verwendet haben, anstatt Laufzeitänderungen anzuwenden. Beim Start von X würden Sie dieses neue, neu zugeordnete Layout laden, anstatt das, was Sie jetzt verwenden. (Es scheint, dass dies jetzt die einzige ist Möglichkeit, das Tastaturlayout in neueren Ubuntus – und möglicherweise anderen Distributionen – zuverlässig als xmodmap zu ändern ist nicht mehr sinnvoll.)

Informationen zum Definieren und Verwenden eines benutzerdefinierten xkb Tastaturlayout, siehe:

  1. Howto:Custom keyboard layout definitions in the Ubuntu Community Wiki.
  2. How to modify a keyboard layout in Linux, ein Blogpost von Romano Giannetti.

Beide wurden in diesem Jahr (2014) geschrieben, daher sollten die Informationen aktuell sein. Die Ubuntu-Wiki-Informationen sollten größtenteils auf jede Distribution anwendbar sein, da sie alle den xkb verwenden System in X.


Es gibt tatsächlich Möglichkeiten, auf einer Ebene neu zuzuordnen, die niedrig genug ist, um auf das gesamte System angewendet zu werden, ob X11 oder nicht, und sie sind wichtiger denn je geworden, jetzt, wo wir sehen, dass Wayland-Compositors auftauchen, die es versäumen, eine Benutzeroberfläche für die Neuzuordnung von libinput bereitzustellen Unterstützung.

Sie müssen grundsätzlich neu konfigurieren, wie die Eingabeschicht des Kernels rohe Scancodes in Schlüsselcodes übersetzt, bevor sie die Konsole oder die evdev-API erreichen, auf der X11 und Wayland sitzen.

Mir sind zwei Möglichkeiten bekannt, dies zu tun:

  1. Ändern Sie die Hardwaredatenbank (hwdb ) Eintrag für Ihre Tastatur. Mit udev können Sie das tun, indem Sie Regeldateien zu /etc/udev/hwdb.d/ hinzufügen und Auslösen eines Datenbankneuaufbaus mit systemd-hwdb update , und dann erzwingen, dass es ohne Neustart über udevadm trigger angewendet wird .

    Diese ArchiWiki-Seite enthält vollständige Anweisungen und sagt ausdrücklich, dass es sowohl für X11- als auch für Konsoleneingaben funktioniert.

  2. Es gibt einen Daemon namens evdevremapkeys, der speziell für die Neuzuordnung von Schlüsselereignissen auf evdev-Geräten geschrieben wurde, um die Neuzuordnungsunterstützung für Monkey-Patches in evdev-Clients neu zuzuordnen, die sie nicht unterstützen, wie Wayland-Kompositoren.

    Es verwendet im Grunde den gleichen Ansatz wie Userspace-Treiber wie G15Daemon, die nicht standardmäßige Eingabegeräte kompensieren müssen. (Öffnen Sie das evdev-Gerät, schlucken Sie alle Ereignisse, die es neu zuordnen möchte, damit nichts anderes, das auf dem Gerät zuhört, sie sehen kann, und geben Sie dann die korrigierten Ereignisse über uinput aus API zum Erstellen von Eingabegeräten auf Kernel-Ebene aus dem Userspace.)


Linux
  1. Möglichkeit zum Einbetten einer ausführbaren Binärdatei in ein Shell-Skript ohne zusätzliche Tools?

  2. Zusammenhang von Tastaturlayout und Xmodmap?

  3. 4 Tools zum Herunterladen einer beliebigen Datei über die Befehlszeile in Linux

  4. So konvertieren Sie \uXXXX Unicode in UTF-8 mit Konsolentools in * nix

  5. Ordnen Sie Win-, Strg- und Alt-Tasten unter Linux neu zu

So wechseln Sie zwischen TTYs ohne Verwendung von Funktionstasten in Linux

Benutzerdefinierte Tastaturtasten in Linux neu zuordnen - Tutorial

Wie kann ich das Layout der Eingabetastatur in der Konsole ändern?

Skype 4.3 ohne PulseAudio, nur ALSA. Irgendwelche Optionen?

Cedilla unter C (ç) im Tastaturlayout „US International with Dead Keys“ unter Linux

Welches Tool kann eine Vorschau der Konsolenschrift anzeigen?