Utilisateur:A2/neo2bepo

De Disposition de clavier francophone et ergonomique bépo

Cette page explique le fonctionnement de mon pilote Windows bépo « amélioré » en cours de développement (fév. 2010) : le déplacement de quasi toutes les touches, dont les modificateurs, est possible en compilant les sources en C du WDK[1].

néo2bépo est un projet perso visant à améliorer l'accessibilité des chiffres, des caractères de programmation et de typographie de la disposition de clavier bépo sur un clavier standard (105 touches décalé) en s'inspirant de la disposition Neo2 allemande.

Déplacement des modificateurs

L'idée du Neo2 est d'utiliser six modificateurs[2] pour accèder à deux couches[3] dont l'une est un AltGr mort[4] et l'autre une nouvelle couche inventée. Ce système est bien meilleur que le simple AltGr du bépo ou que la ctouche morte 8 à tout faire du dvorak-fr.

┌──┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─────┐ 
│  │ │ │ │ │ │ │ │ │ │ │ │ │Verr.│
├──┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬────┤ 
│   │ │ │ │ │ │ │ │ │ │ │ │ │    │ 
├───┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┐   │ 
│Maj │ │ │ │ │ │ │ │ │ │ │ │ │Maj│ 
├───┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴─┴───┤ 
│Ici│ │ │ │ │ │ │ │ │ │ │ │Là-bas│ 
├──┬┴─┼─┴┬┴─┴─┴─┴─┴─┴┬┴─┼─┴┬──┬──┤ 
│  │  │AltGr         │AltGr│  │  │ 
└──┴──┴──┴───────────┴──┴──┴──┴──┘
J'améliore la symétrie et l'accessibilité des modificateurs en plaçant[5] :
  • deux clavier azertyMaj sur clavier bépoCapslock et clavier bépoEntrée ;
  • deux nouveaux modificateurs clavier azertyIci et clavier azerty sur les anciens clavier bépoMaj ;
  • un deuxième clavier azertyAltGr à gauche sur clavier bépoAlt qui est décalé sur clavier bépoWinG ;
  • un clavier azertyVerrou, sorte de clavier bépoCapslock placé sur clavier bépoRetour arrière[6].

clavier bépoAltGr, clavier bépoTab et les touches clavier bépoCtrl et ne bougent pas.

Carte ASCII détaillée des modificateurs
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│    │    │    │    │    │    │    │    │    │    │    │    │    ║Verrouille
│    │    │    │    │    │    │    │    │    │    │    │    │    ║         ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
║       ║    │    │    │    │    │    │    │    │    │    │    │    ║      ║
║ Tab   ║    │    │    │    │    │    │    │    │    │    │    │    ║      ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗     ║
║        ║    │    │    │    │    │    │    │    │    │    │    │    ║     ║
║ Maj    ║    │    │    │    │    │    │    │    │    │    │    │    ║ Maj ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║      ║    │    │    │    │    │    │    │    │    │    │    ║            ║
║ Ici  ║    │    │    │    │    │    │    │    │    │    │    ║          ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
║       ║      ║     ║                           ║     ║      ║     ║      ║
║ Ctrl  ║ AltAltGr║                           ║AltGr║ WinMenu ║ Ctrl ║
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝

Changements perso sur bépo

  • Je garde bépo quasi complet. Pas question de réapprendre un réarrangement des touches, ça attendra une éventuelle v2 dans quelques années :
    • Je supprime l’espace insécable de Maj+espace[7].
    • Je place l’apostrophe typographique en accès direct.
    • «⍽ ⍽» : guillemets avec espace insécable ligaturée.
    • penser à placer un « où » ligaturé quelque part.


Les modificateurs Ici et Là et la couche Verrouille

Les nouveaux[8] modificateurs clavier azertyIci et clavier azerty accèdent :

  • aux touches de déplacement en T inversé (WASD gamer pour les trois doigts forts) et de défilement sous la main gauche ;
  • à un pavé numérique complet sous la main droite (semblable niveau forme à l'ancien pour le moment).

Le nouveau clavier azertyVerr. verrouille cette couche en accès direct. (Le placement des autres caractères que ceux du pavé numérique sur cette couche reste à faire, j'ai juste mis quelques paires pour illustrer.)

┌──┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─────┐ Légende :
│  │ │ │ │ │ │ │7│8│9│+│ │ │     │ ⇥ Tab
├──┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬────┤ ⇱ Début  ⇲ Fin
│ ⇥ │⇱│⇡│⇲│ │ │ │4│5│6│-│ │ │    │ ⇠ Gauche ⇢ Droite
├───┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┐   │ ⇡ Haut   ⇣ Bas
│ ↲  │⇠│⇣│⇢│⌫│ │ │1│2│3│ │ │ │ ↲ │ ⌫ Retour arrière
├───┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴─┴───┤ ⌦ Suppr. ⎀ Inser.
│Ici│/│⇞│⎀│⇟│⌦│↲│ │ │ │ │ │    │ ⇞ Préc.  ⇟ Suiv.
├──┬┴─┼─┴┬┴─┴─┴─┴─┴─┴┬┴─┼─┴┬──┬──┤ ↲ Entrée ␣ Espace
│  │  │  │     ␣     │  │  │  │  │ 
└──┴──┴──┴───────────┴──┴──┴──┴──┘
┌──┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─────┐ 
│  │ │ │ │ │ │ │7│8│9│+│ │ │Verr.│ 
├──┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬────┤ 
│ ⇥ │ │(│)│ │ │ │4│5│6│-│ │ │    │ 
├───┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┐   │ 
│    │[│]│{│}│ │ │1│2│3│0│ │ │   │ 
├───┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴─┴───┤ 
│   │/│\│<│>│ │↲│ │ │ │ │ │      │ 
├──┬┴─┼─┴┬┴─┴─┴─┴─┴─┴┬┴─┼─┴┬──┬──┤ 
│  │  │  │     ↲     │  │  │  │  │ 
└──┴──┴──┴───────────┴──┴──┴──┴──┘

Autocritique

Points positifs

  • modificateurs symétriques au niveau de la rangée de repos pour l'accès aux majuscules, perte du réflexe d'aller chercher les Maj vers le bas ;
  • modificateurs symétriques pour accèder à la couche AltGr
  • une nouvelle couche contenant un pavé numérique sous la main droite, accessible partiellement par clavier bépoIci et clavier bépo, verrouillable avec clavier bépoVerr. pour un accès complet en direct ;
  • des touches de déplacements/défilements sous la main gauche, accessible par clavier bépoIci et clavier bépo
  • une touche compose ♫ (du Neo2) en clavier bépoIci+clavier bépoê
  • empilement de touches mortes possible (en utilisant le même principe que compose).

Points négatifs

  • capslock pour les majuscules n'existe plus au profit du pavé numérique sous les doigts, c'est l'un ou l'autre ;
  • une seule touche super à droite voir aucune sur un clavier 104 touches avec un seul super.
  • pas de raccourcis ctrl sur les touches du pavé numérique déplacée : il faut ajuster le positionnement des vk pour les raccourcis importants (XCV, A Z…)

À faire

  • compléter la nouvelle couche Verr à commencer par les abords du nouveau pavé numérique
  • revoir la couche AltGr maintenant symétrique et la rangée supérieure
  • tenter de rendre numlock accessible pour surligner, par exemple sur inser pas trop loin de bs
  • vérifier compose et les touches mortes, programmer les touches mortes « empilables » inaccessibles actuelement mais déjà dans le pilote
  • ajuster les vk key au mieux pour les raccourcis
  • une installe pour les pilotes que les gens puissent essayer… quand le code sera plus propre !

 Opportunités du pilote en C

Une petite liste de ce qui est faisable en plus de MSKLC :

  • déplacement des fonctions (Maj) du pavé numérique : touches de déplacements, de défilements, inser. et suppr. ;
  • gestion d'une touche compose et empilement de touche morte ;
  • facilite la gestion des couches supplémentaires.

Notes

  1. Pour tester le pilote je copie la dll générée avec le WDK dans les répertoires system32 et sysWOW64 en écrasant les précédentes puis je ferme et rouvre ma session. Il n'y pas besoin de rebooter ou d’installer/désinstaller la disposition.
  2. Neo2 sacrifie deux touches en accès direct, en bépo clavier bépoê et clavier bépoç, la 102e touche et la touche balladeuse.
  3. Carte/couche/état/niveau/plan AltGr/Maj… Quel terme utiliser en français pour décrire « l'ensemble des touches sous l'action d'un modificateur spécifique ». J’utilise le plus souvent inconsciement le mot « couche », pour son sens stratigraphique, décrivant la disposition comme une superposition de couches. La couche AltGr, la couche Maj, la couche AltGr+Maj… En anglais on trouve le terme d'état (shift state dans la source du pilote wind kbd.h), en allemand la traduction serait plutôt niveau, plan ou calque (le Neo2 utilise le mot Ebene). Sur ce wiki rencontre parfois simplement « carte AltGr » pour désigner la « carte de la “couche” AltGr ». Bref, où sont les académiciens ?
  4. AltGr n'est plus un Ctrl+Alt mais une touche morte (vérrouillable avec kanalock si besoin).
  5. Dans les sources en C, l'astuce pour déplacer les modificateurs est de modifier le .H qui contient une table des scancodes des touches et des virtualkeys.
  6. Il vérrouille la nouvelle couche contenant le pavé numérique et non l'accès aux lettres capitales.
  7. Elle me dérange car je l’insère trop souvent par mégarde quand je saisie des caractères en Maj.
  8. Ici et Là sont des Maj normaux, Verrouille est un Capslock normal. Seul la manière d'utiliser ces touches est nouvelle.