Utilisateur:A2/neo2bepo

De Disposition de clavier bépo

neo2bepo est en travaux, de nombreux changements sont possibles sur les pilotes Windows depuis les sources en C.

neo2bepo est un projet pour 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 en s'inspirant de la disposition Neo2 allemande.

L'idée du Neo2 est de sacrifier deux touches en accès direct, en bépo clavier bépoê et clavier bépoç ainsi que capslock pour obtenir six modificateurs donnant accès de manière quasi symétrique pour les deux mains à deux couches complètes[1], nommées mod3 et mod4 sur le neo2, en plus de la couche majuscule. Les deux couches sont bien plus accessibles que la couche AltGr (définie Ctrl+Alt) du bépo ou que la touche morte 8 à tout faire du dvorak-fr.

Dans les sources en C, l'astuce est que le .H contient une table des scancodes des touches et des virtualkeys. On sait que l'on peut donc déplacer certains modificateurs et que l'utilisation de la touche kana permet de créer une couche supplémentaire en plus de celle AltGr. Pour tester le pilote je copie la dll générée avec le WDK dans les répertoires system32/sysWOW64 en écrasant l'ancienne puis je ferme et rouvre ma session. Il n'y pas besoin de rebooter ou d’installer/désinstaller des tonnes de dispositions.

Je sacrifie deux touches de plus au milieu du clavier comme je faisais avec pkl pour améliorer la symétrie et donc l'accessibilité aux modificateurs des couches auxiliaires : pour ça je permute clavier bépoAlt, clavier bépoSuper (WinG), clavier bépoRetour arrière, clavier bépoEntrée, clavier bépoç et clavier bépo^. J'ai Entrée et Retour au milieu du clavier, une couche AltGr et une couche « Lock(able) » avec deux modificateurs chacune.

Utilisable comme bépo sur un clavier 104 touches pour le moment. J'ai mis la touche compose ♫ (du Neo2) en AltGr+ê[2].

État de base et majuscules

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│    │    │    │    │    │    │    │    │    │    │    │    │    ║  Super  ║
│    │    │    │    │    │    │    │    │    │    │    │    │    ║         ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
║       ║ B  │ É  │ P  │ O  │ È  │    │ V  │ D  │ L  │ J  │ Z  │ W  ║      ║ 
║  ->|  ║ b  │ é  │ p  │ o  │ è<--│ v  │ d  │ l  │ j  │ z  │ w  ║      ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗     ║
║        ║ A  │ U  │ I  │ E  │    │ C  │ T  │ S  │ R  │ N  │ M  │ K  ║     ║
║ Lock   ║ a  │ u  │ i  │ e  │ ,  │ c  │ t  │ s  │ r  │ n  │ m  │ kLock ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║   ^  ║ Ê  │ À  │ Y  │ X  │    │    │    │ Q  │ G  │ H  │ F  ║     ^      ║
║   |  ║ ê  │ à  │ y  │ x  │ .  │ <-'  │ Q  │ g  │ h  │ f  ║     |      ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╝
║       ║      ║     ║ Espace                    ║     ║      ║     ║
║ Ctrl  ║ AltAltGr║ Espace                    ║AltGr║ Menu ║Ctrl ║
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╝

du bépo from scratch : ce qui change, ce qui pourrait bouger[3], les nouveaux modificateurs


  • Je garde bépo pour l’alphabétique et place les chiffres en accès direct. 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 : elle me dérange car je l’insère trop souvent par mégarde.
  • Je place l’apostrophe typographique en accès direct à la place de '.
  • De là, le reste va bouger en fonction de mes besoins personnels et se construire petit à petit. De toute manière je peux revenir à bépo. Le but est en premier temps d’étudier l’accessibilité des nouvelles couches.
Remarque :

On peut revoir la position des touches « sensibles » en tenant compte de la fréquence des lettres sur le corpus de o< utilisée pour générer la dispo :

  • le tiret « - », servant de trait d'union en français, est quasi aussi fréquent que « à » et manque complètement alors que x y è z w ç et k moins fréquents sont en accès direct !
  • si on a ê le ^ mort est moins pertinent en accès direct, il serait surement mieux avec les autres touches mortes sur la couche AltGr.
  • tenir compte de l’argument que les touches de M, Z et surtout W sont en dehors de la « zône dactylograpique », voir les différentes variantes du bépo (bépow)
  • Nemolivier suggère d'inverser Lock et SHIFT mais je pense que l'accessibilité aux majuscules est moins importantes que ce que l'on va placer sur les autres couches lock[4]

Rangée supérieur : 26 places

Ceux qui veulent une disposition optimisée pour coder peuvent utiliser cette ligne de 13 touches pour mettre l'alphabet dans l'ordre…

 ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
 │ a  │ b  │ c  │ d  │ e  │ f  │ g  │ h  │ i  │ j  │ k  │ l  │ m  ║         ║
 │ n  │ o  │ p  │ q  │ r  │ s  │ t  │ u  │ v  │ w  │ x  │ y  │ z  ║   <--   ║

Blague à part. Le neo2 choisit de mettre les chiffres en direct c'est discutable. Déjà l’ordre des chiffres peut être modifié fonction de la place du 0. Il faut tenir compte du fait que la touche du 6 est très peu accessible. Les caractères en majuscules sur cette rangée paraissent moins accessibles que ceux des nouvelles couches.

De plus le semblant de pavé numérique (sur lock) pour les chiffres est bien plus pratique et ergonomique à l'utilisation que la rangée supérieure, linéaire. Il vaudrait mieux placer des symboles en direct sur cette rangée. Les chiffres sont moins fréquents que certains symboles. Voici le bépo actuel :

 ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
 │ # ¶│ 1 „│ 2 “│ 3 ”│ 4 ≤│ 5 ≥║ 6  │ 7 ¬│ 8 ¼│ 9 ½│ 0 ¾│ ° ′│ ` ″║         ║
 │ $ –│ " —│ « <│ » >│ ( [│ ) ]║ @ ^│ + ±│ - −│ / ÷│ * ×│ = ≠│ % ‰║ <--     ║
  • « et » comme : ; ? et ! sont liés à l’espace insécable, la paire «» est surement mieux sur une autre couche.
  • trois tirets sont nécessaires en français, sur 8 il est moins pire qu'ailleurs
  • on pourrait aussi placer È Ê Ç W
  • ou des touches mortes multi-fonctions (le grave mort est souvent utilisé pour ça).
  • pour info il reste à placer des caractères comme ()/ùœ*=@+%æ<>[]&… (dans l'ordre de fréquence même si c'est peu pertinent),


Couche AltGr

J'essaye déjà de garder la couche AltGr pensée pour bépo et d'expoiler. Voilà la couche neo2 (voir la carte AltGr pour bépo) :

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│    │    │    │    │    │    ║    │    │    │    │    │////│    ║         ║
│ °  │ ¹  │ ²  │ ³  │ ›  │ ‹  ║ ¢  │ ¥  │ ‚  │ ‘  │////│ ≠  │ ‰  ║         ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
║       ║    │    │    │    │    ║    │    │    │    │    │    │    ║      ║
║       ║ |  │ ´  │ &  │ œ`  ║ ¡  │ ˇð/ijə˘  ║      ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗     ║
║        ║    │    │    │    │    ║    │    │    │    │    │    │    ║     ║
║        ║ æù¨  │ €  │ ’  ║ ©  │ þß  │ ®  │ ˜¯¸  ║     ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║      ║    │    │    │    │    │    ║    │    │    │    │    ║            ║
║      ║   │ \  │ {  │ }  │ …  │ ~  ║ ¿  │ °µ  │ †  │ ˛  ║            ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
║       ║      ║     ║                           ║     ║      ║     ║      ║
║       ║      ║AltGr║  _                        ║AltGr║      ║     ║      ║
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝

Couche AltGr + Maj

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│    │    │    │    │    │    ║    │    │    │    │    │////│    ║         ║
│ °  │ ¹  │ ²  │ ³  │ ›  │ ‹  ║ ¢  │ ¥  │ ‚  │ ‘  │////│ ≠  │ ‰  ║         ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
║       ║    │    │    │    │    ║    │    │    │    │    │    │    ║      ║
║       ║ |  │ ´  │ &  │ œ`  ║ ¡  │ ˇð/ijə˘  ║      ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗     ║
║        ║    │    │    │    │    ║    │    │    │    │    │    │    ║     ║
║        ║ æù¨  │ €  │ ’  ║ ©  │ þß  │ ®  │ ˜¯¸  ║     ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║      ║    │    │    │    │    │    ║    │    │    │    │    ║            ║
║  Maj. ║ /  │ \  │ {  │ }  │ …  │ ~  ║ ¿  │ °µ  │ †  │ ˛  ║   Maj.    ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
║       ║      ║     ║                           ║     ║      ║     ║      ║
║       ║      ║AltGr║                           ║AltGr║      ║     ║      ║
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝

Couche Lock

TODO… (on peut y mettre un pavé numérique sous la main que l'on désire ou sous linux/pkl les touches de déplacements.) On ne peut pas avoir les touches directionnelles… snif.

Scancode et vk

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│OEM1│ 1  │ 2  │ 3  │ 4  │ 5  │ 6  │ 7  │ 8  │ 9  │ 0  │OEM2│OEM3║  LWIN   ║
│ 29 │ 02 │ 03 │ 04 │ 05 │ 06 │ 07 │ 08 │ 09 │ 0A │ 0B │ 0C │ 0D ║   0E    ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
║       ║ B  │OEM4│ P  │ O  │OEM5│BACK│ V  │ D  │ L  │ J  │ Z  │ W  ║      ║
║  0F   ║ 10 │ 11 │ 12 │ 13 │ 14 │ 15 │ 16 │ 17 │ 18 │ 19 │ 1A │ 1B ║  1C  ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗     ║
║  KANA  ║ A  │ U  │ I  │ E  │OEMC| C  │ T  │ S  │ R  │ N  │ M  │ K  ║KANA ║
║  3A    ║ 1E │ 1F │ 20 │ 21 │ 22 │ 23 │ 24 │ 25 │ 26 │ 27 │ 28 │ 2B ║     ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║      ║OEMX│OEM6│ Y  │ X  │OEMP│RTRN│OEM7│ Q  │ G  │ H  │ F  ║            ║
║  2A  ║ 56 │ 2C │ 2D │ 2E │ 2F │ 30 │ 31 │ 32 │ 33 │ 34 │ 35 ║     36     ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
║       ║LMENU ║OEM_8║                           ║OEM_8║      ║     ║      ║
║  1D   ║ X5B  ║ 38  ║          39               ║ X38 ║      ║     ║      ║
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
  • OEMX = OEM_102
  • OEMC = OEM_COMMA
  • OEMP = OEM_PERIOD
  • RTRN = RETURN

Pavé numérique

Le neo2 modifie aussi le pavé numérique en fonction des modificateurs, pour le moment ça ne m'intéresse pas, bepo n'a jamais touché à ça non plus.

Notes

<references>

  1. Ne sachant pas trop quel mot utiliser pour décrire l'ensemble des touches d’un modificateur spécifique, j’utilise le mot « couche », au sens de niveau (stratigraphique) comme si la disposition était une superposition d’états (shift state en anglais dans kbd.h) ou de plans (neo2 utilise le mot Ebene).
  2. Il y a des pb. avec compose en maj+tab sur le pilote win Neo2.
  3. Fréquemment débattu par les utilisateurs du bépo
  4. C'est con à dire mais on a forcément l'habitude du placement des shifts pour faire les majuscules sur ces claviers…