Hallo, ich suche nach einem Weg, für eine Ebene eines Tastaturlayoutes die zu drückenden Tasten (Modifier) zu identifizieren. Leider kann ich diesen Prozess bisher nicht vollständig automatisieren.
Ziel ist es für einen Symbol aus keysymdef.h (Z.B. XK_t, XK_tau ) die zu drückende Taste und zu drückenden Modifier auf der Tastatur zu ermitteln. Bisher gehe ich wie folgt vor: 1. Erzeugung der Tabelle (xmodmap -pk), die jeder Taste (keycode) eine Liste von Symbolen (keysym) zuordnet. Die Reihenfolge der Spalten unterscheidet sich hier leider bei verschiedenen Neo-Versionen. Z.B. (Zeile für die Taste 't') A) 0x0074 (t) 0x0054 (T) 0x0074 (t) 0x0054 (T) 0x002d (minus) 0x07f4 (Greek_tau) 0xffb6 (KP_6) 0xffb6 (KP_6) 0x08ef (partialderivative) B) 0x0074 (t) 0x0054 (T) 0x002d (minus) 0x07f4 (Greek_tau) 0xffb6 (KP_6) 0xffb6 (KP_6) 0x08ef (partialderivative) Mittels dieser Tabelle kann also bestimmt werden, auf welcher Taste und Ebene das gewünschte Symbol liegt. Doch es ist nicht klar, welche Tasten gedrückt gehalten werden müssen, um diese Ebene zu selektieren. 2. Für jeden Modifier (keysym) kann eine Taste ermittelt werden, die ihn auslöst. (xmodmap -pm) Auch diese Werte hängen von der verwendeten Neo-Version ab. Beispielausgabe: shift Shift_L (0x32), Shift_R (0x3e) lock Shift_L (0x32) control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Meta_L (0xcd) mod2 BadKey (0xcf) mod3 ISO_Level5_Shift (0xcb) mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce) mod5 ISO_Level3_Shift (0x33), ISO_Level3_Shift (0x5c) Jetzt benötige ich aber noch die Information, welche Modifier-Kombination mit welcher Ebene des Tastaturlayouts assoziiert werden muss. Derzeit gebe ich die Verbindung manuell vor, aber leider musste ich feststellen, dass ich auf drei Systeme jeweils eine andere Konfiguration nutzen musste... Hat jemand eine Idee, wie die Verbindung zwischen Ebenen und Mod-Tasten ermittelt werden kann? Vielen Dank Olaf
