Website-Suche

Ordnen Sie Tastaturtasten in Ubuntu 24.04 ohne Apps von Drittanbietern neu zu


Dies ist eine Schritt-für-Schritt-Anleitung, die zeigt, wie Sie Tastaturtasten in Ubuntu manuell neu zuordnen (oder deaktivieren) können, ohne Apps von Drittanbietern zu verwenden.

Es gibt einige kostenlose Open-Source-Anwendungen, mit denen Sie die Tasten Ihrer Maus, Tastatur und anderer Eingabegeräte unter Linux neu zuordnen können. Soweit bekannt, umfassen sie Input Remmaper und AntiMicroX.

Für GNOME, den Standard-Desktop für Ubuntu und Fedora Workstation, gibt es das beliebte GNOME Tweak-Tool (verfügbar in der AppCenter/GNOME-Software) mit Optionen zum Neuzuordnen der Tasten Strg, Alt und Feststelltaste.

GNOME-Optimierungen

Ohne die oben genannten Tools stellt Linux auch Systemkonfigurationsdateien bereit, mit denen Sie Ihre Tastaturtastencodes manuell neu zuordnen können. Und hier zeige ich Ihnen, wie man den Trick in Ubuntu macht (getestet in 24.04).

HINWEIS: Die Methode in diesem Tutorial kann nur für einfache 1:1-Tastenneuzuordnungen verwendet werden.

Schritt 1: Finden Sie die Scancodes der Schlüssel heraus, die Sie neu zuordnen möchten

Wenn Sie eine physische Taste auf der Tastatur drücken, wird ein Scancode an den Computer gesendet. Anschließend ordnet Ihr System den Scancode einem virtuellen Schlüsselcode zu. Indem Sie den scancode nach Wunsch einem anderen keycode zuordnen, wird die Aufgabe erledigt.

1. Um den Scancode der Tasten herauszufinden, drücken Sie zunächst Strg+Alt+T auf der Tastatur, um ein Terminalfenster zu öffnen. Führen Sie beim Öffnen den folgenden Befehl aus:

evtest

Wenn der Befehl nicht gefunden wird, führen Sie zur Installation sudo apt install evtest aus. Und in der Terminalausgabe werden alle verfügbaren Eingabegeräte gedruckt.

In meinem Fall habe ich eine eingebaute Laptop-Tastatur (AT Translated Set 2-Tastatur) und eine kabellose Tastatur (YICHIP Wireless Device) mit einem USB-Empfänger.

Wie der Screenshot unten zeigt, muss ich für die drahtlose Tastatur 7 eingeben, die Nummer in /dev/input/event7.

2. Sobald Sie die entsprechende Zahl eingegeben und im letzten Befehl die Eingabetaste gedrückt haben, können Sie eine beliebige Taste auf der Tastatur drücken. Das Terminal gibt die Information darüber aus, was Sie gedrückt/losgelassen haben.

Im Screenshot unten sind die Wertcodes (z. B. 70028, 70025, 700e0, 700e2) die Scancodes für den entsprechenden Tastendruck/-freigabevorgang.

HINWEIS: Verschiedene Tastaturen haben unterschiedliche Scancodes für selbst gleiche Tastencodes. In meinem Fall umfasst die integrierte Laptop-Tastatur die Scancodes 1d, 1e, 1f, 20 usw., während die kabellose Tastatur über 700e0, 700e2, 70025 usw. verfügt.

Schritt 2: Ermitteln Sie die ID Ihrer Tastatur

Vor der Neuzuordnung müssen Sie auch die Informationen zur Identifizierung Ihrer Tastatur ermitteln.

Für eine USB-Tastatur führen Sie einfach den folgenden Befehl im Terminal aus (Strg+Alt+T):

lsusb

Finden Sie in der Ausgabe Ihre Tastatur anhand ihres Namens heraus. Und notieren Sie sich den Ausweis. Es ist normalerweise xxxx:xxxx, wobei die ersten vier Ziffern die Anbieter-ID und die späteren vier Ziffern die Produkt-ID sind.

Führen Sie außerdem den folgenden Befehl aus, um die Bus-ID (normalerweise 03 im Hexadezimalformat) mitzuteilen:

cat /usr/include/linux/input.h |grep BUS_*

Wenn es sich NICHT um ein USB-Gerät handelt, versuchen Sie stattdessen, den folgenden Befehl auszuführen, um die Modalia zu erhalten:

cat /sys/class/input/event7/device/modalias

Ersetzen Sie im Befehl event7 durch das richtige Gerät gemäß dem Befehl evtest in „Schritt 1“. Kopieren Sie in der Terminalausgabe „input:b****v****p****e****“

Schritt 3: Fügen Sie eine udev-Regel hinzu, um die Tastaturtaste neu zuzuordnen

Nachdem Sie die Scancodes der Tasten, die Sie neu zuordnen möchten, und die ID für Ihr Tastaturgerät herausgefunden haben, können Sie die udev-Konfigurationsdatei bearbeiten, um sie neu zuzuordnen.

Erstens gibt es in Ubuntu Linux eine integrierte Konfigurationsdatei /usr/lib/udev/hwdb.d/60-keyboard.hwdb für scancode und keycode Zuordnung.

Es wird jedoch empfohlen, im Verzeichnis /etc/ eine Regel für die benutzerdefinierte Schlüsselzuordnung des Benutzers zu erstellen.

1. Führen Sie zunächst den Befehl im Terminal aus (Strg+Alt+T), um die udev-Konfigurationsdatei zu erstellen und zu bearbeiten:

sudo gnome-text-editor /etc/udev/hwdb.d/61-keyboard-local.hwdb

Ersetzen Sie hier gnome-text-editor durch gedit für 22.04 oder mousepad für XFCE, pluma für MATE, oder nano-Befehlszeilentexteditor, der in den meisten Desktop-Umgebungen funktioniert.

2. Wenn Dateien geöffnet werden, fügen Sie unten ähnliche Zeilen hinzu:

evdev:input:b0003v3151p3020e0200*
 KEYBOARD_KEY_7001e=reserved
 KEYBOARD_KEY_700e2=leftctrl
 KEYBOARD_KEY_700e0=leftalt

Die erste Zeile evdev:input:b0003v3151p3020e0200* wird verwendet, um zu identifizieren, welches Tastaturgerät neu zugeordnet werden soll. Während input:b0003v3151p3020e0200 der Modalias ist, den Sie in „Schritt 2“ erhalten haben.

In meinem Fall kann es durch evdev:input:b0003v3151p3020* ersetzt werden. Dabei ist 0003 die USB-Bus-ID, 3151 die Hersteller-ID und 3020 die Produkt-ID. Und beide haben am Ende *.

Und die folgenden Zeilen weisen Sie an, die Scancodes Ihren gewünschten Schlüsselcodes neu zuzuordnen:

  • KEYBOARD_KEY_7001e=reserved – weist an, den Schlüssel zu deaktivieren, dessen Scancode „7001e“ ist.
  • KEYBOARD_KEY_700e2=leftctrl – weist an, die Taste, deren Scancode „700e2“ (in meinem Fall die linke Alt-Taste) ist, der linken Strg-Taste zuzuordnen.
  • KEYBOARD_KEY_700e0=leftalt – Ordnen Sie die Taste, deren Scancode „700e0“ (in meinem Fall die linke Strg-Taste) ist, der linken Alt-Taste zu.

Die dritte Zeile fordert dazu auf, die Taste (in meinem Fall die linke Alt-Taste), deren Scancode „700e2“ lautet, der linken Strg-Taste neu zuzuordnen. Während die letzte Zeile den Scancode 700e0 in die linke Alt-Position umwandelt.

Zur Auswahl können Sie Tastencodes (Kleinbuchstaben) ersetzen, indem Sie „key_“ am Anfang hinzufügen, sodass es „key_leftctrl“, „key_leftalt“, „key_1“, „key_2“, „key_a“, „key_b“, „ key_comma‘, ‚key_dot‘ oder etwas Ähnliches (evtest-Befehlsausgabe kann es erkennen)…

Sie können mit dem Layout KEYBOARD_KEY_scancode=keycode so viele Zeilen hinzufügen, wie Sie möchten. Dabei hat jede Zeile am Anfang ein Leerzeichen.

Speichern Sie die Datei nach der Bearbeitung. Drücken Sie für den Nano-Texteditor Strg+S zum Speichern und dann Strg+X zum Beenden.

Schritt 4: Änderungen übernehmen

Nachdem Sie die udev-Regel bearbeitet haben, um Tastaturtasten neu zuzuordnen, können Sie die folgenden Befehle nacheinander ausführen, um sie anzuwenden:

  • Aktualisieren Sie zunächst den Hardware-Datenbankindex:

    sudo systemd-hwdb update
  • Laden Sie als Nächstes die neuen Tastenzuordnungen neu:

    sudo udevadm trigger

HINWEIS: Die Befehle funktionieren NICHT für Tastenneuzuordnungen, die Sie später aus der udev-Regel gelöscht haben. Um dieses Problem zu umgehen, führen Sie entweder einen Neustart durch oder fügen Sie eine Regel hinzu bzw. ändern Sie sie, um sie wieder dem ursprünglichen Schlüsselcode zuzuordnen.

Versuchen Sie abschließend, entweder die Tasten auf der Tastatur zu drücken, um die Änderungen anzuzeigen, oder verwenden Sie den folgenden Befehl

udevadm info /dev/input/by-id/* | grep KEYBOARD_KEY

Die neu zugeordneten Schlüssel bleiben nach dem Neustart bestehen, da der systemd-hwdb-update.service einen Auslöser ConditionNeedsUpdate=/etc enthält, der die Hardwaredatenbank automatisch aktualisiert Index und der Kernel lädt ihn beim Systemstart automatisch neu.

Verwandte Artikel