« Utilisateur:Nbrodu/bépo contextuel » : différence entre les versions

De Disposition de clavier bépo
(AltGr gauche et Caps_Lock en AltGr)
Ligne 191 : Ligne 191 :




Bugs connus :
'''Bug majeur : AltGr gauche fait systématiquement des AltGr + Shift tout seul'''. Ce qui est assez rédhibitoire, mais bon, il y a déjà là une bonne base de départ…
 
 
Autres bugs connus :
* une deuxième pression sur le CAPS annule le Caps_Lock au lieu de faire un simple AltGr. Je suspecte que cela est du à la ligne présente par défaut « modifier_map Lock { <CAPS> }; » ;
* une deuxième pression sur le CAPS annule le Caps_Lock au lieu de faire un simple AltGr. Je suspecte que cela est du à la ligne présente par défaut « modifier_map Lock { <CAPS> }; » ;
* il faut parfois exécuter deux fois « xkbcomp -w bépo_contexte.xkb :0 » successivement pour la prise en compte correcte du comportement de CAPS. Il pourrait s’agir d’un bug Xorg, je n’ai pour l’instant pas d’autre explication.
* il faut parfois exécuter deux fois « xkbcomp -w bépo_contexte.xkb :0 » successivement pour la prise en compte correcte du comportement de CAPS. Il pourrait s’agir d’un bug Xorg, je n’ai pour l’instant pas d’autre explication.
Ligne 197 : Ligne 200 :


Merci de rajouter ici où dans la page de discussion d’autres bugs éventuels si vous en voyez.
Merci de rajouter ici où dans la page de discussion d’autres bugs éventuels si vous en voyez.


==Archives ==
==Archives ==

Version du 22 mai 2008 à 15:02

Bépo contextuel

L’idée de cette variante est d’adapter la disposition bépo pour un usage plus « technique » tout en gardant la possibilité de basculer dans un mode plus « littéraire » en fonction du contexte (ex : écriture de mail) par un mécanisme proche du caps-lock.

Par exemple, on peut utiliser l’apostrophe «’» comme je fait là pour un texte en français, ou bien celle-ci «'» droite, pour taper un script. Les deux occupent la même touche, en accès direct dans les deux cas sans avoir besoin de remapper quoi que ce soit, juste en choisissant le « mode » du clavier en fonction du contexte par pression sur une simple touche « litt. lock ».

Ça permet aussi d’échanger à la volée «» et <> en accès direct, et potentiellement d’autres choses du genre, peu intrusives mais bien pratique.

L’idée peut être étendue à plus que deux modes, à différents contextes comme ici un mode « technique » et un mode « littéraire », mais on peut imaginer de nombreuses autres possibilités. Le tout est de partir d’une disposition de base qui implique le moins de changement possible entre les modes afin que ça reste intuitif, mais suffisamment de changement pour que la présence de différents modes se justifie.


En Image

Il s’agit pour l’instant d’une version peu modifiée de la 0.6.6 provisoire. Note : Les «» ont des nbsp automatiques dans les deux cas ci-dessous…


Par défaut (presque une 0.6.6, changements en bleu) :

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗
│ #  │ 1  │ 2  │ 3  │ 4  │ 5  ║ 6  │ 7  │ 8  │ 9  │ 0  │ @  │    ║        ║
│ $  │ " —│ < «> »│ ( [│ ) ]║ _  │ +  │ -  │ /  │ *  │ =  │ %  ║ <--    ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣
║  |<-  ║ B  │ É  │ P  │ O Œ│ È  ║ !  │ V  │ D  │ L  │ J  │ Z  │ W  ║   | ║
║  ->|  ║   |│    │   &│    │    ║ ˆ  │    │    │    │    │    │    ║ <-' ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║ A Æ│ U Ù│ I  │ E  │ ?  ║ C  │ T  │ S  │ R  │ N  │ M  │ Ç  ║    ║
║ Shift  ║    │    │   ¨│   €│ ,  ║    │    │    │    │    │    │    ║    ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩════╣
║      ║  Ê │ X  │ Y  │ À  │ :  │ K  ║ ;  │ Q  │ G  │ H  │ F  ║     ^     ║
║ Caps ║   /│   \│   {│   }│ . …│   ~║ '  │    │    │    │    ║     |     ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧╦═══╧═╦══╧════╬═════╦═════╣
║       ║      ║     ║ Espace insécable         ║     ║       ║     ║     ║
║ Ctrl  ║ Litt ║ Alt ║ Espace            _      ║AltGr║Compose║Menu ║Ctrl ║
╚═══════╩══════╩═════╩══════════════════════════╩═════╩═══════╩═════╩═════╝


Après pression sur « Litt » (changements par rapport à ci-dessus en bleu) :

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗
│ #  │ 1  │ 2  │ 3  │ 4  │ 5  ║ 6  │ 7  │ 8  │ 9  │ 0  │ @  │    ║        ║
│ $  │ " —│ « <» >│ ( [│ ) ]║ _  │ +  │ -  │ /  │ *  │ =  │ %  ║ <--    ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣
║  |<-  ║ B  │ É  │ P  │ O Œ│ È  ║ !  │ V  │ D  │ L  │ J  │ Z  │ W  ║   | ║
║  ->|  ║   |│    │   &│    │    ║ ˆ  │    │    │    │    │    │    ║ <-' ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║ A Æ│ U Ù│ I  │ E  │ ?  ║ C  │ T  │ S  │ R  │ N  │ M  │ Ç  ║    ║
║ Shift  ║    │    │   ¨│   €│ ,  ║    │    │    │    │    │    │    ║    ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩════╣
║      ║  Ê │ X  │ Y  │ À  │ :  │ K  ║ ;  │ Q  │ G  │ H  │ F  ║     ^     ║
║ Caps ║   /│   \│   {│   }│ . …│   ~║   │    │    │    │    ║     |     ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧╦═══╧═╦══╧════╬═════╦═════╣
║       ║      ║     ║ Espace insécable         ║     ║       ║     ║     ║
║ Ctrl  ║ Tech ║ Alt ║ Espace            _      ║AltGr║Compose║Menu ║Ctrl ║
╚═══════╩══════╩═════╩══════════════════════════╩═════╩═══════╩═════╩═════╝

« Tech » permet de revenir en mode « technique ». On peut voir ça comme un genre de CapsLock ou NumLock.


Note : J’ai également pendant un temps inversé Shift et Caps gauche pour améliorer l’accessibilité du Shift gauche, mais il se trouve que certains claviers n’apprécient pas. Il se pourrait que CAPS soit hardcodé, même si en l’occurence seulement l’indicateur LED du CAPS semblait hardcodé (la touche fonctionnait comme un vrai CAPS). Ceci dit je penche plutôt pour une mauvaise configuration xkb, il faudrait que je regarde la section concernant les indicateurs lumineux dans le manuel pour tenter de résoudre ce problème. Qui plus est mes tests récents avec un AltGr à droite sur CAPS sont également sujets à des problèmes similaires.


Fichier Xkb

Vous pouvez enregistrer le texte ci-dessous dans un fichier comme « bépo_contexte.xkb » puis exécuter la commande « xkbcomp -w bépo_contexte.xkb :0 » pour la tester.

xkb_keymap        {
   
xkb_keycodes      { include "xfree86+aliases(azerty)" };
   
xkb_types         { include "complete" };
   
xkb_compatibility { include "complete" };
   
partial alphanumeric_keys
xkb_symbols "dvorak" {
   
   name[Group1]= "France - Bepo, ergonomic, Dvorak way (v0.6.6 variant)";
   include "pc(pc105)"
   
   key <TLDE> { type[group1] = "FOUR_LEVEL", [ dollar, numbersign, section, paragraph ] }; // $ # § ¶
   key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash ] }; // " 1 —
   key <AE02> {
       type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ less, 2, guillemotleft, lessthanequal ],
       type[group2] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, lessthanequal ] 
   }; // « 2 < ≤
   key <AE03> { 
       type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ greater, 3, guillemotright, greaterthanequal ],
       type[group2] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, greaterthanequal ]
   }; // » 3 > ≥
   key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, leftdoublequotemark ] }; // ( 4 [ “
   key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, rightdoublequotemark ] }; // ) 5 ] ”
   key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6 ] }; // @ 6
   key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, degree ] }; // + 7 ± °
   key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, endash, minutes ] }; // - 8 – ′
   key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, seconds ] }; // / 9 ÷ ″
   key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply ] }; // * 0 ×
   key <AE11> { type[group1] = "THREE_LEVEL", [ equal, asciicircum, notsign ] }; // = ^ ¬
   key <AE12> { type[group1] = "THREE_LEVEL", [ percent, grave, U2030 ] }; // % ` ‰
   
   key <AD01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ b, B, bar, brokenbar ] }; // b B | ¦
   key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, dead_acute, dead_doubleacute ] }; // é É ´ ˝
   key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ p, P, ampersand ] }; // p P &
   key <AD04> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ o, O, oe, OE ] }; // o O œ Œ
   key <AD05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, dead_grave, grave ] }; // è È ` `
   key <AD06> { type[group1] = "FOUR_LEVEL", [ dead_circumflex, exclam, dead_caron, exclamdown ] }; // ^ ! ˇ ¡
   key <AD07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ v, V ] }; // v V
   key <AD08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ d, D, eth, ETH ] }; // d D ð Ð
   key <AD09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ l, L, UFDD0 ] }; // l L ﷐
   key <AD10> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ j, J, U0133, U0132 ] }; // j J ij IJ
   key <AD11> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ z, Z, schwa, SCHWA ] }; // z Z ə Ə
   key <AD12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ w, W, dead_breve ] }; // w W ˘
   
   key <AC01> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ a, A, ae, AE ] }; // a A æ Æ
   key <AC02> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ u, U, ugrave, Ugrave ] }; // u U ù Ù
   key <AC03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ¨ ˙
   key <AC04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ e, E, EuroSign, UFDD1 ] }; // e E € ﷑
   key <AC05> {
       type[group1] = "FOUR_LEVEL", [ comma, question, rightsinglequotemark, questiondown ],
       type[group2] = "FOUR_LEVEL", [ comma, question, apostrophe, questiondown ]
   }; // , ? ’ ¿
   key <AC06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ c, C, copyright ] }; // c C ©
   key <AC07> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ t, T, thorn, THORN ] }; // t T þ Þ
   key <AC08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ s, S, ssharp ] }; // s S ß
   key <AC09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ r, R, registered ] }; // r R ®
   key <AC10> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ n, N, ntilde, Ntilde ] }; // n N ñ Ñ
   key <AC11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ m, M, dead_macron, masculine ] }; // m M ¯ º
   key <BKSL> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ccedilla, Ccedilla, dead_cedilla ] }; // ç Ç ¸
   
   key <LSGT> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ecircumflex, Ecircumflex, slash ] }; // ê Ê /
   key <AB01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ x, X, backslash ] }; // x X \
   key <AB02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft ] }; // y Y {
   key <AB03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ agrave, Agrave, braceright ] }; // à À }
   key <AB04> { type[group1] = "FOUR_LEVEL", [ period, colon, ellipsis, periodcentered ] }; // . : … ·
   key <AB05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ k, K, asciitilde, dead_tilde ] }; // k K ~ ~
   key <AB06> {
       type[group1] = "THREE_LEVEL", [ apostrophe, semicolon, leftsinglequotemark ],
       type[group2] = "THREE_LEVEL", [ rightsinglequotemark, semicolon, leftsinglequotemark ]
   }; // ' ; ‘
   key <AB07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ q, Q, dead_abovering ] }; // q Q ˚
   key <AB08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ g, G, UFDD2 ] }; // g G ﷒
   key <AB09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ h, H, dagger, doubledagger ] }; // h H † ‡
   key <AB10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, ordfeminine ] }; // f F ˛ ª
   key <SPCE> { type[group1] = "FOUR_LEVEL", [ space, nobreakspace, underscore, U202F ] }; //     _  

// Pour inverser Caps et Shift gauche    
//    key <CAPS> {	[	Shift_L		]	};
//    key <LFSH> {	[ 	 Caps_Lock		]	};

   key <RWIN>	{ [ Multi_key, Multi_key, Multi_key, Multi_key ] };
   key <LWIN> { [  ISO_Next_Group, ISO_Prev_Group, ISO_Next_Group, ISO_Prev_Group ] };
   
   include "level3(ralt_switch)"
};
   
xkb_geometry { include "pc(pc105)" };
   
};


Test en cours: AltGr sur CAPS et Caps_Lock en AltGr

Pour décrire cette idée plus clairement, il s’agit de mettre un AltGr à gauche, en l’occurence ici sur la touche CAPS. Et de garder quand même la possibilité d’un Caps_Lock au besoin (par exemple pour taper des séries de chiffres avec la disposition actuelle). Ce Caps_Lock est pour l’instant mis en AltGr(droit)+CAPS. Caps_Lock est donc gardé sur la même touche, car je n’ai pas trouvé pour l’instant de moyen de à la fois le déplacer, le mettre en AltGr, et que ça fonctionne sur tous les claviers. Cf également la note ci-dessus.

Pour tester en l’état actuel, il faut remplacer dans le fichier xkb ci-dessus la ligne « xkb_types » par ce qui suit :

xkb_types {
    include "complete" 
    type "ALTGR_TWO" {
        modifiers = LevelThree;
        map[None] = Level1;
        map[LevelThree] = Level2;
        level_name[Level1] = "Base";
        level_name[Level2] = "AltGr";
    };
};

ainsi qu’ajouter les lignes suivantes à la fin de la section « xkb_symbols » :

    key <LFSH> { [ Shift_L ] };
    key <CAPS> { type = "ALTGR_TWO", [ ISO_Level3_Shift, Caps_Lock ] };


Reste plus qu’à tester sur votre clavier…


Bug majeur : AltGr gauche fait systématiquement des AltGr + Shift tout seul. Ce qui est assez rédhibitoire, mais bon, il y a déjà là une bonne base de départ…


Autres bugs connus :

  • une deuxième pression sur le CAPS annule le Caps_Lock au lieu de faire un simple AltGr. Je suspecte que cela est du à la ligne présente par défaut « modifier_map Lock { <CAPS> }; » ;
  • il faut parfois exécuter deux fois « xkbcomp -w bépo_contexte.xkb :0 » successivement pour la prise en compte correcte du comportement de CAPS. Il pourrait s’agir d’un bug Xorg, je n’ai pour l’instant pas d’autre explication.


Merci de rajouter ici où dans la page de discussion d’autres bugs éventuels si vous en voyez.

Archives

Vous pouvez consulter la page archivée sur Utilisateur:Nbrodu/archive bépo tech. Elle contient une image d’une version précédente de ma disposition qui améliorait la place du W en particulier pour l’anglais, et il faudrait que je réfléchisse à une autre solution pour rester proche de la 0.6.6.


À propos

Voir ma page perso.