Tastatur neu belegen

Hallo
Ich bin leidenschaftlicher Zocker, ganz besonders Indy Spiele haben es mir angetan. Leider gibt es einige Kandidaten wo sich die Tastatur nicht anpassen lässt.

Ich habe mir gedacht das man die Tasten “umbiegen” könnte. Wenn ich z.B. X drücke soll ein **U** gewählt/angezeigt werden.
Das soll natürlich ein ganzes Set werden, also da kommen schon einige Tasten zusammen.

Ich habe einige dieser sogenannten remapper getestet, komme einfach nicht damit klar. Die Tutorials, die ich gefunden habe, taugen nix bezw, sind unverständlich für mich.

Am besten erscheint mir noch das grafische Programm input remaper, aber auch das verstehe ich nicht.
Aber eine Gui ist kein muss. Wenn es gut verständlich ist, nehme ich natürlich auch ein Terminal Programm.

Ich hoffe das war verständlich. Hat jemand eine Idee und kann mir bei meinem Problem helfen?

Was nutzt Du ? KDE Plasma oder etwas anderes ? Wayland oder doch X11 mit einer anderen Desktopumgebung ?

Bietet Deine Tastatur ggf. ein eigentständiges Programm zur Konfiguration ? Keychron Tastaturen bspw., welche ja doch ziemlich populär sind haben eine eigene Firmware.

Stellt sich außerdem die Frage ob die Umbelegung der Tasten global oder für individuelle Spiele angepasst werden soll.

Ansonsten kann ich nur auf die Liste im (englischen) Arch wiki verweisen Input remap utilities.

Cinnamon x11
Soll nur für ein aktuelles Spiel sein, nicht für immer

Ja, kenne ich, danke. Komme damit auch nicht klar. Gibt halt kein gescheites tut

Ist auch eher ungewöhnlich das ein Spiel keine Tastenumbelegung erlaubt.

Mir ist nur der Kontext / Spieltitel nicht bekannt und ich weiß nicht was Du mit **U** konkret bezwecken willst.

Das X für U ist nur ein Beispiel. Es geht nur darum wenn ich eine Taste auf dem Keyboard drücke, eine andere ausgelöst wird.

Also gut, dann ausführlicher..
Bei den Spielen gibt es die Bewegungstasten vorwärts, rückwärts, links, rechts - springen

Auf der Tastatur ist dafür W-A-S-D belegt. Zum springen wird meistens die Space Taste gesetzt. Ducken fällt mir grade nicht ein. Damit kann ich nicht spielen.
Siehe auch hier:

Ich brauche für die Bewegung: Cursor hoch/runter - Cursor links/rechts. Zum springen nehme ich die 0 (Einfügen) auf dem Nummernblock.

Wenn ich die Belegung nicht im Spiel konfigurieren kann, wars das, ich kann damit nicht zocken.
Ist mir schon öfters passiert, ich muss dann das Game zurückgeben.

Vor kurzem hatte ich das Problem wieder, das Game Omno sieht toll aus, habe mir die Demo gezogen und das wars dann. Keine Tastatur config möglich.

Du hast gerade einem digital native versucht zu erklären was es mit den Tasten W-A-S-D auf sich hat,
ohne das Dir aufgefallen ist das **U** eine recht ungewöhnliche Zeichensequenz ist die mehr als nur ein Zeichen darstellt, sondern eine Kombination mehrerer Zeichen, also das was man umgangssprachlich ein Makro nennt.

Aber der Sherlock schlußfolgert einfach mal das es einfach nur ein eine nicht korrekte Zeichenkombination bzgl. discourses BBCodes ist und kein Makro, Du einfach ein fett hervorgehobenes U schreiben wolltest. Was in präformatierten Text nicht zulässig ist.

Wie auch immer. Das was Du suchst klingt in meinen Ohren stark nach den Funktionen von Makima, das kann anhand der geöffneten Programmfenster gezielt eine separate Tastaturbelegung zuweisen. Bloß wie das genau klappt, da kann ich keine Erfahrungswerte liefern.

Persönlich nutze ich keyd aus der bereits erwähnten Wiki-Liste. Tutorial für dieses wäre:

  1. Installation keyd
  2. Konfigurationsdatei in /etc/keyd/myconf.conf:
[ids]
*

[main]
up = w
down = s
left = a
right = d
  1. Service start sudo systemctl start keyd

Danach liegt WASD, auf den Cursor-Tasten.

Musste erstal googeln was ein digital native ist …okok..alles klar :slightly_smiling_face:

Ok, hätte die Fett Formatierung lassen und nicht mit einer Codebox kombinieren sollen.
Sollte eigendlich nur ein einfaches “U” sein. Habe den Code für Fett (**) mit markiert :roll_eyes:

Das sieht einfach aus. Aber wie bekommt man die Zeichen für z.B. 0 auf dem Nummernblock heraus. Da gabs doch auch ein Programm für, ich komm nicht mehr drauf.

Und .. kann man da mehrere config files anlegen? Z.B um alles wieder in den Original Zustand zu bringen?

PS
Ok, reset geht mit systemctl sudo systemctl stop keyd

sudo keyd monitor im Terminal gibt eine Liste von allen empfangenen Eingaben inklusive der Taste für die Konfigurationsdatei aus (Gerät - ID - Taste - Ereignis).

Mit keyd kann man auch spezifische Anwendungen einfangen, aber das ist etwas fortgeschrittenerer Konfigurationskram. Solange man sich mit den Änderungen nicht das sudo Passwort versaut, ist ein globale Konfiguration und Stoppen mit sudo systemctl stop keyd wahrscheinlich die einfachste Variante für gelegentliche Nutzung.

Vielleicht sind andere Lösungen einfacher in der Anwendung, aber da fehlen mir Erfahrungswerte. Keyd war für mein Problem die passende Lösung.

Ok, das funktioniert, danke.

Selbst wenn man sich sudo versaut, ist die Konfiguration beim Neustart des PC’s weg. Es wird ja nicht sudo systemctl enable keyd gesetzt. Das wäre in der Tat fatal :face_with_spiral_eyes:

Zu mehreren config files habe ich noch nix gefunden, aber zur Not könnte man die Files umbenennen, wenn man es den unbedingt braucht. Ich muss noch mal die manpage durchackern, vieleicht finde ich was.

Man kann nur eine aktive Konfiguration haben, d.h. man müsste Dateien umbenennen/bewegen.

Alternativ wäre die Option Fenster einzufangen, die dann eine jeweils eigene Konfiguration besitzen können. Nutze ich hier ebenfalls bei ein paar Spielen.

Ja, das wäre ideal!
Leider verstehe ich, wenn ich deinem Link folge, nur “Bahnhof”. Sorry, das ist mir zu hoch.

Wie gesagt, gescheite Anleitungen gibt es für diese Remapper nicht, anscheinend wird hierbei erweitertes Wissen vorausgesetzt.
Naja, zur Not lege ich da mehrere config files an, wenn ich es denn mal brauchen sollte.

Warum denn gleich die Flinte ins Korn schmeißen ?
Denn mir scheint die Anleitung nicht all zu kompliziert.

Du musst Dein Benutzeraccount zur Gruppe keyd hinzufügen:
usermod -aG keyd benutzername

Eine Konfigurationsdatei erstellen:
touch ~/.config/keyd/spielname.conf

Diese dann bearbeiten
nano ~/.config/keyd/spielname.conf

mit folgendem Inhalt:

[omno] # hier muss der genaue Name der Fensterklasse eingetragen werden in dem Omno läuft

space = 0    # hier anhand von sudo keyd monitor die bisherige Sprungtaste 
             # (falls es die Leertaste sein sollte) mit der gewünschten Taste neu belegen.   

Für die Fensterklasse, einmal das Spiel starten. Nicht im Vollbildmodus, sondern einem Fenster.
Dann in einem Terminal den Befehl xprop WM_CLASS eingaben, der Mauszeiger sollte nun ein Fadenkreuz werden, der die aktuelle Fensterklasse ins Terminal schreibt, wenn Du mit dem Fadenkreuz auf ein Fenster klickst. Dort sollte sowas wie: WM_CLASS(STRING) = "firefox", "Firefox"stehen. Dabei interessiert Dich aber nur der zweite Name, also in diesem Fall Firefox, das ist die Fensterklasse nach der Du filtern willst. Der erste String firefox hingegen ist der Name der Instanz, also hier umbedingt Groß- und Kleinschreibung beachten.

Sollte das System den Befehl xprop noch nicht kennen, yay -S xorg-xprop installiert diesen.

Danach keyd-application-mapper ausführen und testen.
Und, falls Du dies nicht bei jedem Neustart neu ausführen willst, kannst keyd-application-mapper in die ~/.xinitrceintragen.

Persönlich kann ich es leider nicht testen da ich aud Niri mit Wayland unterwegs bin.

Bin mir aber auch sicher das der @Schlaefer gerne weitere Hilfestellungen gibt.

Muss aber auch sagen: Wenn Dir das bereits zu hoch ist - das sind einfache Basics die hilfreich sind und meiner Meinung nach jeder Linuxnutzer sollte diese beherrschen. Sind ja nun keine reguläre Ausdrücke oder Ähnliches Hexenwerk.

Erstmal bin ich nicht gut in englisch, und zweitens verstehe ich nur Bahnhof, wie ich das schon mal gepostet habe.
Und das hier…

… hättest du auch lassen können.


Nun gut …
Vielen Dank für deine ausführliche Beschreibung, das bekomme ich hin. Für zukünftige Spiele werde ich das nutzen können.
Allerdings brauche ich das nicht für das besagte Omno. Da dieses Spiel auf der Unreal Engine bassiert, gibt es hier eine Datei wo die Tastaturbelegung angepasst werden kann:

.../SteamLibrary/steamapps/common/Omno/Omno/Config/DefaultInput.ini

Beispiel:
Das ist der Original String für Jump = SpaceBar)`

+ActionMappings=ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=SpaceBar)

Hier abgeändert auf Jump = NumPadZero

+ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=NumPadZero)

So kann man das weiterführen bis man seine Tastaturbelegung hat. Habe ich leider grade erst gefunden. Das soll bei allen Unreal Spiele funktionieren.

Dennoch ist deine Lösung hilfreich, wie beschrieben, für zukünftige Spiele werde ich das nutzen können/müssen, nicht alle Spiele basieren auf der Unreal Engine.