ubuntuusers.de

Einzelne Tasten neu belegen - Können Tasten mit identischem Keycode unterschiedlich belegt werden?

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

vulli

Anmeldungsdatum:
6. Februar 2024

Beiträge: 18

Schönen guten Tag, liebes Forum,

ich habe den Wunsch, einzelne Tasten auf der internen Tastatur meines Notebooks neu zu belegen, weil der Hersteller es sich in den Kopf gesetzt hat, mich mit vorgefertigten Belegungen zu plagen, die für mich nicht passen. Ich habe dazu diesen Forum-Eintrag gefunden, der eine Lösung versprach:

https://forum.ubuntuusers.de/topic/einzelne-tasten-neu-belegen/

Mit

xev | grep keycode

konnte ich die Keycodes von zwei der drei Tasten über dem Nummernblock ermitteln, die ich neu belegen wollte. (Die Taste rechts über dem Nummerblock ist die Power-Taste. Die Taste links über dem Nummernblock, die den Taschenrechner aufruft, hat sich hartnäckig der Analyse per xev widersetzt - beim Drücken gibt es in xev keine Ausgabe, nur der Taschenrechner wird gestartet. Interessanterweise startet diese Taste den Taschenrechner, obwohl in den Einstellungen unter "Tastatur > Tastenkombinationen > Tastenkombinationen anzeigen und anpassen > Starter" der Eintrag "Taschenrechner öffnen" auf Deaktiviert steht.) Leider sind das dieselben Keycodes wie die Delete- und die F9-Taste. Ich fürchte, das bedeutet, dass ich die Tasten über dem Nummernblock nicht ändern kann, ohne auch gleichzeitig die herkömmlichen Tasten Delete und F9 umzumappen, weil für das System beide Tasten identisch, also nicht unterscheidbar, sind. Aber um sicherzugehen, dass ich nicht unnötig schnell aufgebe: Geht das ev. doch? Oder gilt wirklich: gleicher Keycode, gleiche Funktion, welche auch immer ich definiere?

Marantkurz

Anmeldungsdatum:
7. September 2023

Beiträge: 881

tshe

Anmeldungsdatum:
28. Juli 2023

Beiträge: 84

Hallo,

einzelne Tasten könnten in Linux bis zu 4-fach belegt werden; in Windows nur 3-fach.

Wie die Keycodes/Belegung für dein Laptop im Detail aussehen, weiß ich nicht. Aber du kannst dir Beispiele anschauen und die Keycodes aus aktuellen Belegungen rauslesen bzw. wie der Name dieser Taste exakt lautet - ev. auch gleich ändern:

Die Tastaturbelegungen liegen im Ordner:

cd /usr/share/X11/xkb/symbols

Dateien öffnen mit, z.B. Ziffernblock:

sudo gedit keypad

Ev. ist deine gesuchte Taste über dem Ziffernblock schon dabei, oder liegt ev. in der Datei ctrl; oder du musst weitersuchen. Darüber habe ich mir auch schon komplett veränderte Tastaturbelegungen zusammengestellt und als eigene "Sprache" gespeichert. Über die Header-Leiste kann man dann einfach hin und her switchen.

Wenn du dir eine Kopie der jeweiligen Datei anlegst, kannst im Original gefahrloser rumexperimentieren, bis du deine gewünschte Tastaturbelegung gefunden hast.

Gruß, tshe

P.S. Der von Marantkurz verlinkte Thread wäre ev. eine Option; klingt interessant, erscheint mir aber etwas umständlich; werde mir später mal genauer anschauen. Mit der o.e. Option wäre das Problem "<>|"-Taste (aus dem Thread) schnell erledigt gewesen.

Beispiel "<>|"-Taste: Die Belegung ist in der "de"-Datei definiert und heißt "key <LSGT>", mit den 4 Optionen. Die LSGT-Taste hätte man dort einfach anpassen können. Denn in der US-Datei heißt die Taste ebenso LSGT, ist aber mit backslash und bar belegt.

Marantkurz

Anmeldungsdatum:
7. September 2023

Beiträge: 881

@tshe

xmodmap -ev 'keycode 59 = comma semicolon comma semicolon less'
xmodmap -ev 'keycode 60 = period colon period colon greater'
xmodmap -ev 'keycode 61 = minus underscore minus underscore bar'

Die 3 Zeilen in eine *.sh Datei und deren Pfad dann in Autostart.(oder zum Test im Terminal ausführen)

erscheint mir aber etwas umständlich;

Stimme Dir zu. 👍 War ein Dienstag.

DocHifi

Avatar von DocHifi

Anmeldungsdatum:
21. Oktober 2008

Beiträge: 1482

sudo gedit keypad

Das macht man NIEMALS

Grafische Programme mit sudo öffnen ist eine ganz schlechte Idee.

tshe

Anmeldungsdatum:
28. Juli 2023

Beiträge: 84

Hab gerade ein wenig rumgespielt mit "xev | grep keycode". Über die Tastenkombi "[STRG] + (gewünschte Taste drücken)" werden Funktionstasten nicht ausgeführt, sondern der Keycode ausgegeben. Damit hätte man zumindest die Nummern und den Namen, Bsp.: keycode 107 (keysym 0xff61, Print)

@Marantkurz: Danke für den xmodmap-Hinweis; werde ich mir gerne genauer anschauen, wie das funktiioniert. Auf den ersten Blick scheint xmodmap eine einfachere Alternative für Funktionstasten zu sein. Für reine Schriftzeichen-Ausgabe (und 4-fach-Belegung) dürfte das Anpassen in der jeweiligen Sprachdatei wahrscheinlich schneller gehen.

DocHifi schrieb:

sudo gedit keypad

Das macht man NIEMALS

Grafische Programme mit sudo öffnen ist eine ganz schlechte Idee.

Sorry 😳 ich gelobe Besserung. Hatte ich mir aus einem Tutorial so notiert. Darf ich noch fragen, warum das eine ganz schlechte Idee ist?

Marantkurz

Anmeldungsdatum:
7. September 2023

Beiträge: 881

@vulli

Die Taste links über dem Nummernblock, die den Taschenrechner aufruft, hat sich hartnäckig der Analyse per xev widersetzt - beim Drücken gibt es in xev keine Ausgabe, nur der Taschenrechner wird gestartet.

Probiere mal damit:

sudo showkey

edit

Sehe gerade, der wirft nicht identisch aus. Mal später ansehen. Scheint 'Tastencode + 8' zu sein.

Hast Du die Taste, dann

xmodmap -pke

und zuweisen.

Wobei ich nicht sagen kann, falls Du Wayland nutzt, ob sich Auslesen/Mapping wie gewünscht verhält.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11260

Wohnort: München

tshe schrieb:

Grafische Programme mit sudo öffnen ist eine ganz schlechte Idee.

Sorry 😳 ich gelobe Besserung. Hatte ich mir aus einem Tutorial so notiert. Darf ich noch fragen, warum das eine ganz schlechte Idee ist?

//wiki.ubuntuusers.de/mit_Root-Rechten_arbeiten/#Gefahren-und-Vorsichtsmassnahmen: führt das aus. Insbesondere die Seiteneffekte (z.B. verbogene Rechte für Ordner und Dotfiles im eigenen Home-Verzeichnis und Probleme mit IPC (z.B. wenn Dienste per DBus-Activation unter dem falschen Nutzer gestartet werden) können einem den Tag versauen, wenn man den Sicherheitsaspekt mal außen vor lässt.

Marantkurz

Anmeldungsdatum:
7. September 2023

Beiträge: 881

Zu der Taschenrechertaste, da der T.Rechner anspringt:

Müsste eigentlich

xmodmap -pke | grep Calculator

(XF86Calculator)

sein.

Dimanche Team-Icon

Ikhayateam

Anmeldungsdatum:
20. Juli 2007

Beiträge: 2097

vulli

(Themenstarter)

Anmeldungsdatum:
6. Februar 2024

Beiträge: 18

tshe schrieb:

Hab gerade ein wenig rumgespielt mit "xev | grep keycode". Über die Tastenkombi "[STRG] + (gewünschte Taste drücken)" werden Funktionstasten nicht ausgeführt, sondern der Keycode ausgegeben. Damit hätte man zumindest die Nummern und den Namen, Bsp.: keycode 107 (keysym 0xff61, Print)

Danke für die vielen Antworten! ☺

Ich tu mich etwas schwer damit, weil ich (vergessen zu erwähnen) noch ein ziemlicher Linux-Neuling/-Anfänger bin, erst seit ein paar Wochen dabei. Ich komme (bzw. fliehe) aus der Windows-Welt.

Zunächst mal, weil das in dem Zusammenhang relevant sein könnte: Bei mir läuft offenbar nicht Wayland, sondern X-Server, was für so ziemlich alle Hinweise und Anleitungen, denen ich begegnet bin, optimal ist. ☺

Und danke für den Tipp, bei xev die Strg-Taste zu drücken, dadurch hat es mir als Keycode für die Taschenrechnertaste 148 ausgegeben.

Ich gehe nach wie vor davon aus, dass ein Keycode nur für eine Funktion verwendet werden kann (also bei Drücken der Taste allein, ohne Kombination mit irgendwelchen Mod-Tasten). Wenn also zwei oder mehr Tasten denselben Keycode senden, ist das für das System ein- und dieselbe Taste, und wenn ich dem Keycode eine neue Funktion gebe, lösen alle Tasten mit diesem Keycode diese neue Funktion aus.

Ich denke, ich könnte damit leben, die Taschenrechner- und einfg-Taste (Keycode 118) neu zu belegen. Ist zwar etwas ungeschickt, weil die entf-Taste zwischen den beiden liegt, aber damit werde ich hoffentlich zurechtkommen. Noch Aufkleberchen mit den neuen Bezeichnungen drauf...

Aber das muss ich erst mal umsetzen. Hier mein Versuch einer Anleitung für Dummies (bzw. für mich Dummi), davon hab ich bisher nur Schritt 1 erledigt:

1. Folgende Befehle im Terminal ausführen:

cd ~/
xmodmap -pke > .Xmodmap

Nach meinem Verständnis wird dadurch in meinem Homeverzeichnis eine neue Datei .Xmodmap erstellt, welche zunächst mit dem aktuellen Tastatur-Mapping befüllt wird. Von jetzt an (bzw. ab der nächsten Anmeldung) liest das System die Tastenbelegungen (genauer: Keycode-Keysym-Zuordnungen) aus dieser Datei, wenn ich mich anmelde, das ist also ein individueller Override der Standardkonfiguration.

2. Die Datei .Xmodmap im Homeverzeichnis zur Bearbeitung öffnen. Hier ist noch offen, wie das am besten geht. Ich hab in einem anderen Zusammenhang bzgl. Bearbeitung einer Systemdatei gelesen: Wenn Bearbeitung mit einem GUI-Editor (was mir am liebsten wäre), dann die Datei erst woandershin kopieren, dann dort editieren, dann die ursprüngliche Systemdatei durch die bearbeitete ersetzen. Ich hoffe, dass das auch hier geht. (Ansonsten müsste mich mich halt mit einem Kommandozeilen-Editor wir nano befassen, dürfte auch kein Hexenwerk sein.) Also: Kopie von .Xmodmap anlegen, mit GUI-Editor bearbeiten...

3. Folgende Änderungen in der Datei vornehmen:

a) Zeile

keycode 118 = Insert NoSymbol Insert

ändern zu

keycode 118 = Home NoSymbol Insert

b) Zeile

keycode 148 = XF86Calculator NoSymbol XF86Calculator

ändern zu

keycode 148 = End NoSymbol XF86Calculator

4. Datei speichern, dann entweder Ab- und Anmelden oder Ausführen dieses Befehls im Terminal für sofortige Wirksamkeit der Änderungen:

xmodmap ~/.Xmodmap

5. Alles schön dokumentieren.

6. Sich über verbesserte Usability freuen.

Falls etwas davon Unsinn ist, freue ich mich über eine kurze Rückmeldung. Ich werd's noch etwas reifen lassen, bevor ich loslege.

Marantkurz

Marantkurz

Anmeldungsdatum:
7. September 2023

Beiträge: 881

Bsp:

Das in's Terminal dürfte sofort funktionieren:(Test, bis Neustart)

xmodmap -ev 'keycode 148 = End NoSymbol XF86Calculator'

Kontrolle:

xmodmap -pke | grep 148

tshe

Anmeldungsdatum:
28. Juli 2023

Beiträge: 84

Habe am WE selbst rumprobiert, weil ich 3 ungenutzte Funktionstasten habe, wovon ich eine mit dem Taschenrechner belegen wollte. Alle Angaben hier plus etliche Tuts aus dem Web; alle wurden 1:1 umgesetzt, sowie i.F. habe ich auch noch mit eigenen Anpassungen rumexperimentiert. Nichts war wirksam.

Das Hauptproblem: Alle Änderungen und Anpassungen wurden bei einem Neustart nicht übernommen! Es wurde immer wieder die alte xmodmap unverändert angezeigt.

Meine Vermutung:

Entweder #1 Das Speichern klappt nicht wirklich: "xmodmap ~/.Xmodmap"? Denn beim Ändern mit gedit wurde manchmal nur eine leere Seite gespeichert. Mit nano übers Terminal bleibt der gespeicherte Inhalt zumindest stabil.

oder #2 Die Änderungen werden durch eine andere Datei beim Neustart immer wieder überschrieben.

Auch das funktioniert nicht: Marantkurz schrieb:

Bsp: Das in's Terminal dürfte sofort funktionieren:(Test, bis Neustart)

xmodmap -ev 'keycode 148 = End NoSymbol XF86Calculator'

Kontrolle:

xmodmap -pke | grep 148

Bei der Kontrolle wird zwar der geänderte Keycode ausgegeben, aber funktioniert weder temporär noch nach einem Neustart.

Allgemein ist das Thema ziemlich ominös. Auch die UU-Wiki Xmodmap hält sich da sehr vage: "Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet!" usw. ... da scheint etwas ziemlich faul zu sein, oder völlig hardware-abhängig???

Auch die von @vulli beschriebenen Steps von 1-5 habe ich schon öfters durch. Keine Wirkung. Also Pkt.6 ist bei mir bisher ausgeblieben 😉

Was mich so stutzig macht ist, dass die Änderungen einfach NICHT gespeichert/übernommen werden. Aber wo liegt der Fehler? 😳 ☹

Marantkurz

Anmeldungsdatum:
7. September 2023

Beiträge: 881

Auch das funktioniert nicht.

Wayland?

Hier in einer VM U. 22.04 mit Xorg geht's.

~/.Xmodmap

Das allerdings hatte ich abgehakt, Will nicht.

tshe

Anmeldungsdatum:
28. Juli 2023

Beiträge: 84

Marantkurz schrieb:

Auch das funktioniert nicht.

Wayland?

Ich vermute: Ja. Habe letztes Jahr Ubuntu 22.04 installiert (angeblich mit Wayland), und dbzl. nichts umgestellt.

Antworten |