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

Benutzerdefinierte Tastaturtasten in Linux neu zuordnen - Tutorial

Moderne Probleme erfordern moderne Lösungen. Ich habe mir kürzlich einen neuen Linux-Test-Laptop zugelegt, ein IdeaPad 3, das ich (leider aufgrund von Marktknappheit) mit dem UK-Tastaturlayout anstelle des US-Layouts gekauft habe. Dies bedeutet eine suboptimale physische Tastenplatzierung - selbst wenn Sie eine andere Tastaturvariante verwenden. Die Tasten Bar und Backspace und dergleichen sind nämlich falsch platziert, außerdem ist die Eingabetaste zu klein.

Darüber hinaus bedeutet dies auch, Muskelgedächtnis und alles, dass Sie am Ende \ eingeben, wenn Sie eigentlich zu einer neuen Zeile springen möchten, und das kann ziemlich nervig sein. Also dachte ich, vielleicht kann ich die Tastaturtasten ein wenig neu zuordnen? Aber ich wollte nicht einfach die Rücktaste (mit den britischen Tilde- und Hash-Symbolen) einer "zweiten" Eingabetaste zuordnen und so effektiv eine größere Eingabetaste machen, ich wollte immer noch die Balken- und die Rücktaste verfügbar haben. Daher eine komplexere Übung. Lassen Sie mich Ihnen zeigen, wie Sie dieses etwas komplizierte, aber superschöne Setup erreichen können.

Anstehende Aufgabe

Lassen Sie mich also klar erklären, was ich vorhabe:

  • Die physische, in Großbritannien abgebildete IdeaPad 3-Tastatur hat die Raute-/Tilde-Taste in der Nähe der Eingabetaste. Es hat den Balken/Backslash in der Nähe der linken Verschiebung (was es effektiv kleiner macht).
  • Wenn Sie das US-Layout auf dieser Tastatur verwenden, erhalten Sie am Ende:Strich/Backslash, der Raute/Tilde in der Nähe der Eingabetaste zugeordnet ist, und die Taste mit dem Strich/Rücktaste-Symbol, das linken und rechten Klammern zugeordnet ist ( ). Aber diese werden bereits durch die Shift-Funktion auf den Punkt- und Komma-Tasten im US-Layout erfüllt, also gibt es einen Überschuss an Tasten - entweder Klammern oder die Kombination aus Strich und Rücktaste.

Daher möchte ich Folgendes tun:

  • Ordnen Sie die Taste mit der physikalischen Symbolbezeichnung Raute/Tilde - verwendet als Strich/Backslash - einer ZWEITEN Eingabe neu zu. Dadurch wird die Eingabetaste effektiv größer, und ich wollte diese große umgekehrte L-förmige Eingabetaste, wie Sie sie normalerweise auf einer US-Tastatur bekommen würden.
  • Ordnen Sie die separate Taste mit dem Balken/Backslash-Symbol in der Nähe der linken Umschalttaste - im US-Layout als linker und rechter Pfeil verwendet - neu zu Bar/Backslash zu, da ich diese durch die Neuzuordnung im ersten Aufzählungspunkt verliere.

Beachten Sie die "kaputte" linke Umschalt- und Eingabetaste. Nur wegen ineffizienter physischer Anordnung.

Meine Aufgabe erfordert zwei Neuzuordnungen:zuerst die Eingabetaste, dann den Balken/Backslash. Jetzt ist es wichtig, die Neuzuordnungen tatsächlich auf diese Weise vorzunehmen, da sonst, wenn wir zuerst bar/Backslash neu zuordnen, die Taste neben der Eingabetaste überhaupt keine Zuordnung hat. Sinnvoll?

Handelswerkzeuge:xev und xmodmap

Wir brauchen zwei Dienstprogramme, die Teil des X-Bundles sind - ich habe keine Ahnung, ob und wie man das auf Wayland machen würde, aber ich benutze Wayland im Allgemeinen nicht, weil es keine funktionale Parität mit X hat, plus Xorg die Standardsitzung auf den meisten Distributionen, die ich tatsächlich verwende, wie beispielsweise Ubuntu oder Kubuntu.

Wir werden mit xmodmap neu zuordnen, aber wir müssen die tatsächlichen Tastensymbole "erfassen", damit wir die Neuzuordnung durchführen können. Führen Sie dazu xev in einem Terminalfenster aus. Das Tool öffnet ein kleines Fenster in der Ecke Ihres Bildschirms und beginnt mit der Erfassung von Eingaben. Wenn Sie eine Taste auf der Tastatur drücken, sehen Sie im Terminalfenster die folgende Ausgabe - nur ein Beispiel:

KeyRelease event, serial 40, Synthetic NO, window 0x5a00001,
root 0x6a9, subw 0x0, time 2784437, (1131,438), root:(1131,475),
state 0x0, keycode 94 (keysym 0x3c, weniger), same_screen YES,
XLookupString ergibt 1 Byte:(3c) "<"
XFilterEvent gibt zurück:False

Tun Sie dies, um das Keysym für die Leiste/Rücktaste und die Pfeiltasten zu greifen. Vergessen Sie nicht, die "zweite" zugeordnete Taste (mit Umschalttaste) zu ergreifen, damit Sie beide und nicht nur eine zuordnen können. Andernfalls haben wir entweder nur die Bar- oder die Backslash-Taste, aber nicht beide zur Verfügung.

Bevor wir das tun, möchte ich Ihnen zeigen, wie Sie Tasten tatsächlich neu zuordnen. Drücken Sie bei laufendem xev einmal die Taste, die Sie ersetzen möchten, und die Taste, durch die Sie sie ersetzen möchten. Führen Sie dann xmodmap wie folgt aus:

xmodmap -e "keysym HEX =NAME"

Sie ordnen einen Schlüssel mit dem HEX-Wert neu zu, um das zu tun, was der Schlüssel mit dem NAME-Wert tun sollte. Zum Beispiel:

xmodmap -e "keysym 0x5c =Return"

Dieser Befehl ordnet das Tastensymbol 0x5c (das einem Balken/Backslash entspricht) der Eingabetaste zu. Sobald dieser Befehl abgeschlossen ist, fungiert in meinem Fall die mit dem Hash/Tilde-Symbol markierte physische UK-Taste, die der Bar/Backspace-Funktion im US-Layout zugeordnet ist, nun als zweite Eingabetaste. Großartig.

Aber jetzt müssen wir auch die bar/backspace-Funktion abbilden.

Modifikator

Um sowohl die Standard- als auch die zweite (Shift)-Funktionalität für eine Taste abzubilden, benötigen wir einen Modifikator. Sie können überprüfen, welche vorhandenen Modifikatoren vorhanden sind mit:

xmodmap -pm
xmodmap:bis zu 4 Tasten pro Modifikator, (Tastencodes in Klammern):

shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)

Um nun eine Taste mit ZWEI Funktionen neu zuzuordnen, lautet die Syntax wie folgt:

xmodmap -e "keysym HEX MOD =NAME1 NAME2"

In unserem Beispiel:

xmodmap -e "keysym 0x3c Shift_L =umgekehrter Schrägstrich"

Wir ordnen eine Taste neu zu, die 0x3c entspricht – dies ist die Taste, die auf der physischen britischen Tastatur mit Balken/Rücktaste gekennzeichnet ist, die auf der US-Tastatur dem Links- und Rechtspfeil zugeordnet ist –, um tatsächlich als Balken/Rücktaste zu fungieren. Der Modifikator ist die linke Umschalttaste. Wenn Sie also die Taste allein drücken, erhalten Sie einen Backslash, wenn Sie sie mit der linken Umschalttaste verwenden, erhalten Sie das Balkensymbol (Pipe). Und wir haben jetzt das gewünschte Layout.

Denken Sie noch einmal daran, dass wir die Pfeiltasten nicht verlieren, da sie bereits den Komma- und Punkttasten in der Nähe der rechten Umschalttaste zugeordnet sind. Tatsächlich führte die Kombination aus physischer britischer und virtueller US-Tastatur zu zwei Pfeiltastenpaaren, also werden wir eine los und erhalten eine zusätzliche Eingabetaste.

Autostart-Skript

Machen Sie sich keine Sorgen, wenn Sie einen Fehler machen. Starten Sie Ihr System neu und Sie kehren zum Normalzustand zurück. Um die benutzerdefinierten Neuzuordnungen dauerhaft zu machen, müssen wir daher ein Autostart-Skript erstellen, das bei jeder Benutzeranmeldung ausgeführt wird und die erforderlichen Änderungen vornimmt.

Es gibt viele Möglichkeiten, wie Sie dies tun können. Ich werde Ihnen zeigen, wie Sie ein Autostart-Skript für den Plasma-Desktop erstellen, obwohl die Prinzipien für so ziemlich jeden Desktop da draußen gleich sind. Dies ist sehr ähnlich zu dem, was ich mit der Schaltfläche "Desktop anzeigen" in Gnome gemacht habe.

Öffnen Sie ein Konsole-Fenster, gehen Sie zu ~/.config/autostart-scripts. Erstellen Sie hier eine Textdatei mit folgendem Inhalt:

[Desktop-Eintrag]
Name=Schlüsseltausch
Exec=key-swap.sh
Terminal=false
Type=Application

Sie können einen beliebigen Namen verwenden und die Datei beliebig benennen, aber stellen Sie sicher, dass sie ein Desktop-Suffix hat. In meinem Beispiel habe ich dies als key-swap.desktop gespeichert. Machen Sie diese Datei ausführbar:

chmod +x ~/.config/autostart-scripts/key-swap.desktop

Jetzt verweist die Exec-Zeile in der Desktop-Datei auf ein Skript, das noch nicht existiert. Wenn Sie sich Exec-Zeilen für andere Desktop-Skripte ansehen (Sie können Firefox oder Chrome oder was auch immer überprüfen), werden Sie normalerweise feststellen, dass ein einzelner Befehl geschrieben wurde. Da wir zwei xmodmap-Befehle benötigen, besteht die einfachste Lösung darin, diese in ein separates Shell-Skript zu stecken und das Skript dann als Exec-Befehl zu verwenden.

Erstellen Sie im Verzeichnis autostart-scripts eine Datei namens key-swap.sh - machen Sie sie auch ausführbar.

#!/bin/bash

xmodmap -e "keysym 0x5c =Return"
xmodmap -e "keysym 0x3c Shift_L =Backslash bar"

exit 0

Das ist mein Beispiel. Möglicherweise haben Sie ganz andere Anforderungen, und Sie benötigen möglicherweise nur eine xmodmap oder vielleicht sieben. Nur als Referenz und der Vollständigkeit halber, wenn Sie eine einzelne xmodmap-Änderung vornehmen würden, könnten Sie das Shell-Skript überspringen und es einfach in die Desktop-Datei einfügen.

[Desktop-Eintrag]
Name=Schlüsseltausch einzelner Schlüssel
Exec=xmodmap -e "keysym 0x5c =Return"
Terminal=false
Type=Application

Über das Dienstprogramm Plasma-Einstellungen können Sie tatsächlich überprüfen, ob alles in Ordnung ist:

Wenn Sie jemals Ihre Meinung ändern, können Sie die Skripte deaktivieren oder entfernen, andere Tastaturzuordnungen verwenden und beim nächsten Neustart werden die Dinge auf den Standardzustand oder den neuen benutzerdefinierten Zustand zurückgesetzt, den Sie wünschen. So haben Sie die nötige Flexibilität. Während die Dinge sozusagen dauerhaft sind, können Sie sie jederzeit ändern.

Schlussfolgerung

Los geht's. Dies ist mein kleines Tutorial, das zeigt, wie ich die Standardergonomie meiner Lenovo IdeaPad-Tastatur verbessert habe, indem ich ihr physisches Layout besser genutzt und die Tastenbelegungen auf benutzerdefinierte Werte geändert habe. Was den Leitfaden noch interessanter macht, ist die Tatsache, dass ich ein US-Layout verwendet habe, also gibt es eine weitere kleine Wendung, aber dies wird definitiv nützlich sein, wenn Sie auch andere Sprachen verwenden. Denken Sie daran, dass die physischen Markierungen auf den Tasten und die eigentliche Funktion nichts gemeinsam haben. Es ist nur eine visuelle Referenz, um es den Leuten zu erleichtern, die richtigen Symbole zu finden.

Hoffentlich war das praktisch. Ich habe eine sofortige Verbesserung meiner Tippgeschwindigkeit bemerkt, außerdem mache ich viel weniger Fehler bei der Eingabe der Rücktaste. Meine Hände können schnell weiterarbeiten, ohne sich auf ein weiteres physisches Layout umschulen zu müssen, das sich so drastisch von den meisten anderen Laptops und/oder Tastaturen unterscheidet, die ich habe. Mit xev und xmodmap sollten Sie richtig viel Spaß haben. Wenn Sie ähnliche oder vielleicht obskure Anfragen haben, pingen Sie mich an und ich werde sehen, was ich tun kann. Viel Spaß beim Tippen.


Linux
  1. Linux – Raw-Tastaturmodus?

  2. Linux – Tastatur Hard Remap Keys?

  3. Tastenkombinationen, die unabhängig vom Tastaturlayout sind?

  4. Meine benutzerdefinierte Kali-Linux-Distribution

  5. Wie kann ich auf einem Apple Keyboard unter Linux die Funktionstasten ohne die Fn-Zusatztaste funktionieren lassen?

So installieren und verwenden Sie KompoZer unter Linux - Tutorial

So installieren und verwenden Sie Kerkythea unter Linux - Tutorial

Mono oder dotNET45 unter Linux installieren - Tutorial

Notepad++ unter Linux optimieren

So richten Sie SSH-Schlüssel unter Debian 11 Linux ein

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