Bonjour,

Je souhaiterais remapper les touches «Desktop» et «Shuffle» de mon Typematrix. Pour ce faire, j’ai passé mon clavier en mode 106 touches, ce qui fait que ces deux touches deviennent «Muhenkan» et «Henkan» d’après la page du wiki consacrée aux claviers Typematrix.

Le site de Typematrix donne ces informations:
* The "shuffle" key becomes scan code 123/0x7B (Alt 4)
* The "desktop" key becomes scan code 121/0x79 (Alt 2)
* The "www" key becomes scan code 112/0x70 (Alt F9)
* The "calc" key becomes scan code 125/0x7D (Alt 6)
* The backslash key is moved to where the "mail" key used to be (scan code 43/0x2B - \ or |)
* The key where the backslash used to be becomes scan code 115/0x73 (Ctrl L Arrow)
Mais malgré ça, les tentatives de trouver le code de la touche avec xev (etc), j’ai pas été foutu de trouver ce qu’il fallait mettre dans le fichier /usr/share/X11/xkb/symbols/fr pour remapper ces touches (et par la même occasion les autres touches ayant été modifiées lors du passage au mode 106 touches). J’ai essayé d’utiliser directement le numéro de la touche dans ce fichier mais ça n’a pas fonctionné.

J’ai testé à peu près tout ce que j’ai pu trouvé dans les fichiers de Xorg, et je peux affirmer qu’aucun des codes suivants ne correspond à une touche du Typematrix en mode 106 touches:
key <KANA>

key <NFER>
key <XFER>
key <HKTG>
    
key <BKSL>
key <MUHE>
key <KANJ>
kkey <HIRA>
    
key <LCMP>
key <KPEN>

key <HZTG>
J’ai quand même trouvé comment remapper mon ancienne touche Ç (qui est <AB11>) et la touche pour le courrielleur (qui est <AC12>) sans trop de difficultés. Pour les autres, je suis vraiment bloqué…

Merci d’avance.
Bonjour,
Sinma a écritLe site de Typematrix donne ces informations:
Mais malgré ça, les tentatives de trouver le code de la touche avec xev (etc), j’ai pas été foutu de trouver ce qu’il fallait mettre dans le fichier /usr/share/X11/xkb/symbols/fr pour remapper ces touches (et par la même occasion les autres touches ayant été modifiées lors du passage au mode 106 touches).
Pour peu que ton système utilise evdev (ce doit être le cas de la grosse majorité des distributions récentes), tu as les correspondances dans /usr/share/X11/xkb/keycodes/evdev .

En tout cas, la commande xkbcomp -xkb $DISPLAY génère un descriptif complet de ta configuration clavier (typiquement dans un fichier nommé server-0_0.xkb si $DISPLAY contient :0.0), en commençant par les correspondances des codes touches avec les symboles.

Cela dit, les codes indiqués par TypeMatrix sont curieux ; dans keycodes/evdev, on trouve par exemble :
<VOL+> = 123;

Les codes peuvent changer suivant le driver utilisé (evdev ou kbd sur les distributions plus anciennes). Est-ce aussi ceux que tu obtiens avec xev ? Tu devrais te fier uniquement à eux.

Sinon, il y a peut-être autre chose que les japonais ne configurent pas pareil avec leurs claviers ; après tout, ce de sont pas des claviers PC 105 touches
Ma distribution utilise bien evdev, et les codes qui ne fonctionnent pas sont bien ceux correspondant à ceux obtenus via xev et le fichier /usr/share/X11/xkb/keycodes/evdev, et visiblement le fichier généré par xkbcomp semble correspondre.

Finalement je viens de tester un truc avec Xmodmap, la commande
xmodmap -e 'add Shift = Henkan'
fonctionne! Donc le problème est bien au niveau de Xorg, je ne comprends pas bien pourquoi… Je vais un peut détailler ce que je fais depuis tout à l’heure.

Déjà, ce que j’obtiens avec xev:
100 Henkan_Mode // «Desktop»
102 Muhenkan // «Shuffle»
148 XF86Calculator // Fn + Calc
101 Hiragana_Katakana // WWW
Et ce que je trouve dans le fichier d’evdev:
<HENK> = 100;   // Henkan
<MUHE> = 102;   // Muhenkan
<I148> = 148;   // #define KEY_CALC                140
<HKTG> = 101;   // Hiragana/Katakana toggle
J’ai légèrement avancé, j’ai réussi à remapper la touche Calc (mais je n’arrive pas à changer Fn + Calc, WTF?). Donc ce sont les touches qui possèdent les codes 100, 102, 148 et 101 qui me résistent. J’ai beau essayer de mettre n’importe quoi dessus, xev me ressort toujours la même chose pour ces touches. J’ai aussi essayé de prendre ce qu’il y avait dans le section «xkb_symbols» de la configuration postée ici. Pourtant, le site de Typematrix est clair: ces touches envoient bien des scancodes, et ce ne sont donc pas des séquences de touches codés en dur.

Si je regarde le fichier généré par xkbcomp, on peut voir:
key <KATA> {         [        Katakana ] };
key <HIRA> {         [        Hiragana ] };
key <HENK> {         [     Henkan_Mode ] };
key <HKTG> {         [ Hiragana_Katakana ] };
key <MUHE> {         [        Muhenkan ] };
J’ai simplement l’impression que mes changements pour ces touches se retrouvent systématiquement écrasés.

EDIT: je sais pas si je dois rager ou pas. La touche <HENK> correspond bien à la touche «Desktop», mais visiblement je ne peux pas remapper ce que la touche sort en accès direct. Pourquoi, alors là je ne sais pas…

P.-S.: xkb je sais pas si c’est codé avec les pieds mais à force de changer des touches de place et la configuration en 106 touches ou non, je finis par avoir des touches qui fonctionnent bizarrement (pour le moment ç ne fonctionne plus en 102 touches et Altgr+espace me donne espace avec mon bépo personnalisé mais pas avec le bépo classique).
@Sinma : peut-être en lien avec tes essais, le dernier support utilisateur

Librefan cherchait a utilisé la touche Mail de son clavier Typematrix pour faire du “keybinding” sur Openbox. La touche mail peut être accéder dans ce contexte via «XF86Mail ». Il y a une liste de toutes les touches « XF86 » ce lien. Pour les raccourcis clavier ça a l'air de fonctionner. À voir si ça colle avec ce que tu souhaites faire.
@bobo38: j’avais déjà vu cette discussion et malheureusement ça n’a que peu à voir avec mon problème, qui est de relocaliser des touches et non d’interpréter un code (les XF86TrucMuche). Merci quand même.

EDIT: j’ai trouvé la solution! J’ai mis:
modifier_map Mod1 { <HENK> };
dans mon fichier (j’ai trouvé un truc de ce genre dans le fichier généré par xkbcomp) et ça fonctione! Je ne comprends pas trop pourquoi des fois l’autre méthode fonctionne également (j’arrive à mettre Alt sur $ par exemple).

Je suis néanmoins toujours incapable de remapper la touche WWW, il faudrait que j’arrive à lui enlever son statut de modificateur mais je ne vois vraiment pas comment faire…
Sinma a écritJe suis néanmoins toujours incapable de remapper la touche WWW, il faudrait que j’arrive à lui enlever son statut de modificateur mais je ne vois vraiment pas comment faire…
Si tu regardes dans /usr/share/X11/xkb/symbols/compose, ils ne se cassent pas la tête à « démodifier » Alt pour mettre Compose dessus (et c’est destiné à être utilisé en option, donc par dessus une autre disposition). Par contre, ils indiquent que la disposition concerne les touches modificatrices.
Tu devrais commencer ta disposition par
partial alphanumeric_keys modifier_keys
xkb_symbols "bepo" {
Si ça ne change rien, essaye déjà de partir de la sortie de xkbcomp -xkb en supprimant la ligne qui indique que c’est un modificateur et en rechargeant le résultat avec xkbcomp bepo_modifie.xkb $DISPLAY , tu verras déjà si le problème vient bien de là.
J’ai vraiment eu de l’espoir mais en fait rajouter «modifier_keys» ça ne fonctionne pas non plus. Visiblement une connerie de xkb persiste à faire des modifications après l’interprétation de la disposition, et ça commence sérieusement à me gonfler.

Bref, je vais faire ma disposition générique, et j’ai déjà fait le script pour xmodmap qui va bien pour remapper les touches qui posent problèmes sur le Typematrix en mode 106 touches. Donc j’arrête les frais avec xkb.

Merci quand même.
Sinma a écritBref, je vais faire ma disposition générique, et j’ai déjà fait le script pour xmodmap qui va bien pour remapper les touches qui posent problèmes sur le Typematrix en mode 106 touches. Donc j’arrête les frais avec xkb.
Cela dit, du coup, si tu sors ton résultat (après la modification avec xmodmap) avec xkbcomp -xkb, tu obtiens un fichier .xkb qui fonctionne.

Pour ma disposition, j’avais d’abord travaillé à partir d’une sortie de xkbcomp -xkb, et ensuite seulement, j’ai fait quelque chose d’intégrable à symbols/fr. Comme ça, je ne me suis coltiné les questions d’includes qui marchent ou pas que dans un second temps.
C’est pas une mauvaise idée, je vais y réfléchir! 🙂