Moriz schrieb:
Früher konnte man mit XCompose recht einfach unter Linux
Tastenkombinationen für beliebige Zeichen definieren.
Nun wurde etwas "viel besseres" gebaut und in Linux eingebaut: XKB.
Leider ist diese eierlegende Wollmilchsau dermaßen kompliziert, dass es
nix mehr ist, mit eben mal ein Zeichen auf eine Tastenkombination legen.
Ein auch nur halbwegs brauchbares Kochrezept dafür habe ich nicht nicht
gefunden.
Hat jemand einen Tipp?
Hab genau den Beitrag Gemini 3 (fast) gestellt.
Leider geht die Formatierung verloren:
Ich fühle deinen Schmerz. Der Wechsel von der intuitiven .XCompose zur "Architektur-Kathedrale" XKB fühlt sich oft so an, als würde man versuchen, ein Bild mit einem Presslufthammer aufzuhängen. XKB ist mächtig, ja, aber die Lernkurve ist eine senkrechte Wand.
Die gute Nachricht: Du musst XKB nicht komplett meistern, um ein paar Zeichen zu binden. Es gibt drei Wege, je nachdem, wie tief du in die System-Eingeweide greifen willst.
- Der "Schummel-Weg": XCompose behalten
Bevor wir uns an XKB die Zähne ausbeißen: XCompose ist nicht tot. Auch unter modernen Desktop-Umgebungen (Gnome, KDE) und sogar teilweise unter Wayland funktioniert es noch, sofern die Applikationen GTK oder Qt nutzen.
1 |
Stelle sicher, dass die Umgebungsvariable GTK_IM_MODULE=xim und QT_IM_MODULE=xim gesetzt ist.
|
2 |
|
3 |
Deine .XCompose im Home-Verzeichnis wird dann meist weiterhin beachtet.
|
- Der pragmatische Weg: xmodmap
Wenn du unter X11 arbeitest, ist xmodmap der heilige Gral für Leute, die keine Lust auf die XKB-Hölle haben. Es ist ein Wrapper, der die Komplexität versteckt.
Beispiel: Euro-Zeichen auf AltGr + E
1 |
Finde heraus, welchen Keycode die Taste hat: xev -event keyboard drücken.
|
2 |
|
3 |
Erstelle eine Datei ~/.Xmodmap:
|
4 |
Bash
|
5 |
|
6 |
keycode 26 = e E e E eurosign
|
7 |
|
8 |
(Die Spalten stehen für: Taste, Shift+Taste, Mode_switch+Taste, Mode_switch+Shift+Taste)
|
9 |
|
10 |
Lade es mit xmodmap ~/.Xmodmap.
|
- Das "Kochrezept" für XKB (Minimal-Invasiv)
Wenn du es wirklich über XKB machen willst (z.B. für Wayland-Kompatibilität über xkeyboard-config), ist dies der sauberste Weg ohne die Systemdateien zu zerschießen:
Du erstellst ein User-Layout.
Schritt 1: Ordner anlegen
Bash
mkdir -p ~/.config/xkb/symbols
Schritt 2: Mapping-Datei erstellen
Erstelle eine Datei namens mein_layout in diesem Ordner:
Plaintext
xkb_symbols "custom" {
include "de(basic)" // Basis ist die deutsche Tastatur
1 |
// Syntax: key <CODE> { [ Normal, Shift, AltGr, AltGr+Shift ] };
|
2 |
key <AD03> { [ e, E, eurosign, trademark ] };
|
};
Hinweis: <AD03> ist die physikalische Position der "E"-Taste (Reihe D, Taste 3).
Schritt 3: Aktivieren
Du kannst dieses Layout mit setxkbmap testen:
Bash
setxkbmap -layout "mein_layout(custom)" -print | xkbcomp -I$HOME/.config/xkb - $DISPLAY
Welchen Weg soll ich nehmen?
1 |
X11 & Bequemlichkeit: Bleib bei XCompose oder xmodmap. Es ist genau das "mal eben schnell", das du suchst.
|
2 |
|
3 |
Wayland (Gnome/KDE): Hier wird es haarig. Oft ist es einfacher, ein Tool wie Input Remapper (GUI-basiert) zu nutzen, das die Komplexität von XKB/Libinput komplett wegkapselt.
|
Soll ich dir für ein ganz bestimmtes Zeichen und eine bestimmte Taste den exakten Code für die ~/.Xmodmap heraussuchen?