Il y a des gens ici qui comprennent comment les inputs fonctionnent dans xorg?
Je cherche a reconfigurer un clavier secondaire pour envoyer des input arbitrairement reconfigurable dans un logiciel qui accepte des hotkey.
les keycode sont defini dans /usr/share/X11/xkb/keycodes/evdev
Et les keycode sont converti en symbols dans /usr/share/X11/xkb/symbols/us
C'est ce symbols/us qui fait le mapping entre la touche physique et ce que la touche veux dire en terme de symbole. par exemple pour la ligne du haut des lettres:
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ e, E ] };
key <AD04> { [ r, R ] };
key <AD05> { [ t, T ] };
key <AD06> { [ y, Y ] };
key <AD07> { [ u, U ] };
key <AD08> { [ i, I ] };
key <AD09> { [ o, O ] };
key <AD10> { [ p, P ] };
key <AD11> { [ bracketleft, braceleft ] };
key <AD12> { [ bracketright, braceright ] };
On peut voir que la touche qui fait "[" est <AD11> et genere un symbol nomme "bracketleft"
Ce que je ne comprends pas est comment ce "bracketleft" ce transforme en "["
on peut voir dans xev quand la touche est appuye:
KeyPress event, serial 35, synthetic NO, window 0x5c00001,
root 0x1e3, subw 0x0, time 1099114011, (689,186), root:(6450,225),
state 0x10, keycode 34 (keysym 0x5b, bracketleft), same_screen YES,
XLookupString gives 1 bytes: (5b) "["
XmbLookupString gives 1 bytes: (5b) "["
XFilterEvent returns: False
Il y a deux choses interessante:
1) le keycode est transforme en symbol "bracketleft" et c'est le symbol 0x5b.
2) bracketleft est transforme par XLookupString en "["
je ne comprends pas comment ces deux mapping se font. En particulier si je change dans le fichier de symbol "bracketleft" en "something" (et que je recharge avec setxkbmap) alors xev me donne "NoSymbol" de keysym 0x0
Donc ca veut dire que quelque defini la liste des symbol qui ont du sens. Mais je n'arrive pas a trouver cette liste pour rajouter des symbols stupide pour faire mon mapping de hotkey.
Une idee de comment ce truc la fonctionne?
Note que vraiment, je pourrais prendre un charactere d'un alphabet que je n'utiliserai jamais pour remapper le clavier. Mais maintenant je suis curieux de savoir comment le truc fonctionne.