Forum bépo

Forum des utilisateurs du bépo

Vous n'êtes pas identifié(e).

#1 31/10/2013 00:40:39

ariasuni
Admin
Lieu : France, Seine-Saint-Denis (93)
Inscription : 2/11/2012
Messages : 579
Site Web

[GNU/Linux][xkb] Remapper une touche dont on ne connait pas le nom

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.

Dernière modification par ariasuni (31/10/2013 01:27:47)


Écrit selon l’orthographe de 1990.
Ma page utilisateur, mon site web.

Hors ligne

#2 31/10/2013 14:24:39

Laurent
Membres
Inscription : 9/8/2009
Messages : 710
Site Web

Re : [GNU/Linux][xkb] Remapper une touche dont on ne connait pas le nom

Bonjour,

Sinma a écrit :

Le 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

Dernière modification par Laurent (31/10/2013 14:51:17)

Hors ligne

#3 31/10/2013 15:44:00

ariasuni
Admin
Lieu : France, Seine-Saint-Denis (93)
Inscription : 2/11/2012
Messages : 579
Site Web

Re : [GNU/Linux][xkb] Remapper une touche dont on ne connait pas le nom

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).

Dernière modification par ariasuni (31/10/2013 15:59:10)


Écrit selon l’orthographe de 1990.
Ma page utilisateur, mon site web.

Hors ligne

#4 31/10/2013 15:50:29

bobo38
Membres
Inscription : 10/4/2013
Messages : 164

Re : [GNU/Linux][xkb] Remapper une touche dont on ne connait pas le nom

@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.

Dernière modification par bobo38 (31/10/2013 15:52:01)


pour la frappe à l'aveugle, l'idéal c'est de poser ça sur son bureau : l'aide mémoire BÉPO (à plier en 3)

Hors ligne

#5 31/10/2013 16:01:54

ariasuni
Admin
Lieu : France, Seine-Saint-Denis (93)
Inscription : 2/11/2012
Messages : 579
Site Web

Re : [GNU/Linux][xkb] Remapper une touche dont on ne connait pas le nom

@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…

Dernière modification par ariasuni (31/10/2013 16:44:06)


Écrit selon l’orthographe de 1990.
Ma page utilisateur, mon site web.

Hors ligne

#6 1/11/2013 11:22:52

Laurent
Membres
Inscription : 9/8/2009
Messages : 710
Site Web

Re : [GNU/Linux][xkb] Remapper une touche dont on ne connait pas le nom

Sinma a écrit :

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…

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à.

Hors ligne

#7 1/11/2013 17:30:08

ariasuni
Admin
Lieu : France, Seine-Saint-Denis (93)
Inscription : 2/11/2012
Messages : 579
Site Web

Re : [GNU/Linux][xkb] Remapper une touche dont on ne connait pas le nom

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.


Écrit selon l’orthographe de 1990.
Ma page utilisateur, mon site web.

Hors ligne

#8 3/11/2013 10:35:16

Laurent
Membres
Inscription : 9/8/2009
Messages : 710
Site Web

Re : [GNU/Linux][xkb] Remapper une touche dont on ne connait pas le nom

Sinma a écrit :

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.

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.

Hors ligne

#9 3/11/2013 14:46:54

ariasuni
Admin
Lieu : France, Seine-Saint-Denis (93)
Inscription : 2/11/2012
Messages : 579
Site Web

Re : [GNU/Linux][xkb] Remapper une touche dont on ne connait pas le nom

C’est pas une mauvaise idée, je vais y réfléchir! smile


Écrit selon l’orthographe de 1990.
Ma page utilisateur, mon site web.

Hors ligne

Pied de page des forums