OVH Cloud OVH Cloud

Codage clavier/caractères

6 réponses
Avatar
my name
Bonjour,
Souhaitant me convertir au clavier dvorak, j'ai un peu bidouillé la
table des symboles X pour obtenir l'effet recherché. Je peux ainsi
switcher entre un clavier dvorak et un clavier azerty en utilisant la
touche "Menu" et j'en ai profité pour rajouter les caractères accentués
les plus fréquents aux voyelles qui sont groupées sur un clavier dvorak.
LE résultat est le fichier de configuration xkb suivant :

// based on a keyboard map from an 'xkb/symbols/dvorak' file
//

partial default alphanumeric_keys
xkb_symbols "basic" {

name[Group1]= "Dvorak_nono";

// Alphanumeric section
key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";

key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
key <BKSL> { [ backslash,bar ] };

key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, dollar ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, asciicircum, dead_circumflex,
dead_circumflex ] };
key <AE07> { [ 7, ampersand ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleft, dead_grave] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ bracketleft, braceleft ] };
key <AE12> { [ bracketright, braceright, dead_tilde] };

key <AD01> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
key <AD04> { [ p, P ] };
key <AD05> { [ y, Y ] };
key <AD06> { [ f, F ] };
key <AD07> { [ g, G ] };
key <AD08> { [ c, C , ccedilla ] };
key <AD09> { [ r, R ] };
key <AD10> { [ l, L ] };
key <AD11> { [ slash, question ] };
key <AD12> { [ equal, plus ] };

key <AC01> { [ a, A ,agrave ] };
key <AC02> { [ o, O ,ocircumflex ] };
key <AC03> { [ e, E ,eacute ] };
key <AC04> { [ u, U , ugrave ] };
key <AC05> { [ i, I , idiaeresis ] };
key <AC06> { [ d, D , egrave ] };
key <AC07> { [ h, H ] };
key <AC08> { [ t, T ] };
key <AC09> { [ n, N ] };
key <AC10> { [ s, S ] };
key <AC11> { [ minus, underscore ] };

key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
key <AB02> { [ q, Q ] };
key <AB03> { [ j, J ] };
key <AB04> { [ k, K ] };
key <AB05> { [ x, X ] };
key <AB06> { [ b, B ] };
key <AB07> { [ m, M ] };
key <AB08> { [ w, W ] };
key <AB09> { [ v, V ] };
key <AB10> { [ z, Z ] };

key <LWIN> { type[Group1]="TWO_LEVEL",
[ ISO_Level3_Shift, Multi_key ] };


modifier_map Mod5 { <RALT> };
};

Tout fonctionne très bien, sauf dans emacs où je ne peux pas accéder aux
caractères de niveau 3 et 4.
Quelqu'un aurait-il une solution ?

Merci d'avance
Arnaud

6 réponses

Avatar
lhabert
my name :

Tout fonctionne très bien, sauf dans emacs où je ne peux pas accéder aux
caractères de niveau 3 et 4.



Ce genre de louze me dit vaguement quelque chose. Il me semble que dans mon
cas, ça marchait mieux si on faisait en sorte que les niveaux 3 et 4 soient
sélectionnés par AltGr au lieu de ISO_Level_3_Shift. Enfin, je n'ai jamais
rien compris à xkb de toutes manières, et j'ai fini par revenir à xmodmap,
ça suffit pour ce que je veux faire, et ça a l'avantage d'être nettement
plus simple.
Avatar
lhabert
my name :

j'en ai profité pour rajouter les caractères accentués les plus fréquents
aux voyelles qui sont groupées sur un clavier dvorak.



Tiens, j'oubliais de répondre à ça.

(racontage-de-vie-mode 1)

Moi, j'avais adopté une méthode plus radicale : je garde la rangée des
chiffres comme en azerty, et je ne remappe que le reste en dvorak (le seul
endroit qui accroche est le A azerty qu'il faut mettre en ! et non "). Comme
ça, j'ai les lettres accentuées les plus utiles sur la rangée des chiffres
(avec la majuscule en altgr+shift par dessus), et je peux mettre les autres
en altgr sur la rangée des voyelles. À la longue, je ne suis pas sur que
c'était une bonne idée : après tout, sur les claviers qwerty, je me
débrouille très bien avec toutes les lettres accentuées en altgr un peu
partout, j'aurais aussi bien pu faire la même chose sur un pur dvorak.

(racontage-de-vie-mode -1)
Avatar
my name
Luc Habert wrote:
my name :


Tout fonctionne très bien, sauf dans emacs où je ne peux pas accéder aux
caractères de niveau 3 et 4.




Ce genre de louze me dit vaguement quelque chose. Il me semble que dans mon
cas, ça marchait mieux si on faisait en sorte que les niveaux 3 et 4 soient
sélectionnés par AltGr au lieu de ISO_Level_3_Shift. Enfin, je n'ai jamais



Pb: J'ai un clavier spécial (dvorak/qwerty) où le AltGr (RALT en langage
xkb ?) est tout en bas à droite du clavier et donc pour les accents
c'est pas excessiveement. Le dvorak est censé _réduire_ les contraintes
sur la dactylographie, pas les augmenter, d'où le remapping sauvage que
j'ai effectué.

rien compris à xkb de toutes manières, et j'ai fini par revenir à xmodmap,



Moi non plus. Je ne savais même pas qu'il y avait une différence.

Arnaud
Avatar
my name
Luc Habert wrote:
my name :


Tout fonctionne très bien, sauf dans emacs où je ne peux pas accéder aux
caractères de niveau 3 et 4.





Je viens de m'apercevoir d'un autre problème. En fait, même quand je
suis en mode azerty avec le RALT comme ISO_Level3_Shift, ça ne marche
pas dans emacs :-( C'est d'autant plus étonnant que cela fonctionnait
parfaitement avant.

Arnaud
Avatar
lhabert
my name :

Pb: J'ai un clavier spécial (dvorak/qwerty) où le AltGr (RALT en langage
xkb ?)



Non. En fait, j'ai pas été clair. Ce que j'entendais par « AltGr », c'est
« ModeSwitch », qui est le keysym qu'on associe usuellement à la touche qui
s'appelle « AltGr » sur les claviers azerty, et qui a pour effet de
sélectionner les groupes 3 et 4. Il semble que les xfree récents se soient
mis dans la tête que AltGr c'est mal, et ils ont décidé de mettre
« ISO_Level3_bidulechouette » à la place.

Je te suggérais donc de mettre « ModeSwitch » là où tu as « ISO_machin ».

Enfin, avant ça, basic sanity check : lance xev, appuye sur ta touche lwin,
et dis nous ce qu'xev te crache.
Avatar
lhabert
my name :

Pb: J'ai un clavier spécial (dvorak/qwerty) où le AltGr (RALT en langage
xkb ?)



Non. En fait, j'ai pas été clair. Ce que j'entendais par « AltGr », c'est
« ModeSwitch », qui est le keysym qu'on associe usuellement à la touche qui
s'appelle « AltGr » sur les claviers azerty, et qui a pour effet de
sélectionner les groupes 3 et 4. Il semble que les xfree récents se soient
mis dans la tête que AltGr c'est mal, et ils ont décidé de mettre
« ISO_Level3_bidulechouette » à la place.

Je te suggérais donc de mettre « ModeSwitch » là où tu as « ISO_machin ».

Enfin, avant ça, basic sanity check : lance xev, appuye sur ta touche lwin,
relache la, et dis nous ce qu'xev t'a craché.