Utilisateur:A2/neo2bepo
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. De plus l'utilisation de la touche kana comme touche morte permet de créer une couche vérrouillable (kanalock). 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, clavier bépo^ et clavier bépok du bépo, 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, les clavier bépoMajs, clavier bépoCapslock, 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 sous les index comme sur un clavier TypeMatrix. Les Majuscules sont remontées d'un cran sur clavier bépoCapslock et clavier bépoEntrée. Alt sert d'AltGr gauche. Je décalle Alt à la place de Win gauche toujours sous le pouce. Reste capslock à placer sur Retour arrière en attendant une autre idée.
Utilisable comme bépo sur un clavier 104 touches pour le moment. J'ai mis la touche compose ♫ (du Neo2) en AltGr+ê[2].
Tout 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.
État de base et majuscules
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│dir │ │ │ │ │ │ │ │ │ │ │ │ ║caps ║
│Lock│ │ │ │ │ │ │ │ │ │ │ │ ║ Lock ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
║ ║ 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 ║ ║
║ Maj ║ a │ u │ i │ e │ , │ c │ t │ s │ r │ n │ m │ k ║ Maj ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║reoMaj║ Ê │ À │ Y │ X │ │ │ │ Q │ G │ H │ F ║ neoMaj ║
║ ║ ê │ à │ y │ x │ . │ <-'│ ’ │ Q │ g │ h │ f ║ ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
║ ║ ║ ║ Espace insécable ║ ║ ║ ║ ║
║ Ctrl ║ Alt ║AltGr║ Espace ║AltGr║Super ║Menu ║ Ctrl ║
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
- du bépo from scratch : les nouveaux modificateurs
- Je garde bépo pour l’alphabétique
et place les chiffres en accès direct(à voir). 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 '.
- Je place le tiret en maj+, pour tester cette position (entre autre)
Reste clavier bépoMaj+clavier bépo’ et clavier bépoMaj+clavier bépo. à trouver et toute la rangée supérieure…
Penser à placer une touche compose : ♫.
La couche altgr du bépo est pour l'instant conservée.
Carte provisoire déplacement/défilement=
┌──┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬────┤ │ │ │↷│ │ │ │ │ │ │ │ │ │ │ │ ├───┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┐ │ │ │↲│⇟│⇞│ │ │⌫│⇠│⇣│⇡│⇢│ │ │ │ ├───┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴─┴───┤ │ICI│ │⌦│ │i│ │↲│ │ │ │ │ │ LÀ │ ├──┬┴─┼─┴┬┴─┴─┴─┴─┴─┴┬┴─┼─┴┬──┬──┤ │ │ │ │ ␣ │ │ │ │ │ └──┴──┴──┴───────────┴──┴──┴──┴──┘
Carte provisoire ⍓
┌──┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─────┐ │ │ │ │ │ │ │ │7│8│9│ │ │ │ ⍓ │ ├──┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬────┤ │ ⇥ │ │ │ │ │ │ │4│5│6│ │ │ │ │ ├───┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┐ │ │ │ │ │ │ │ │ │1│2│3│ │ │ │ │ ├───┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴─┴───┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──┬┴─┼─┴┬┴─┴─┴─┴─┴─┴┬┴─┼─┴┬──┬──┤ │ │ │ │ 0 │ │ │ │ │ └──┴──┴──┴───────────┴──┴──┴──┴──┘
Scancode et vk
brouillon dev
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗ │OEM1│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │OEM+│OEM3║ LWIN ║ │ 29 │ 02 │ 03 │ 04 │ 05 │ 06 │ 07 │ 08 │ 09 │ 0A │ 0B │ 0C │ 0D ║ 0E ║ ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣ ║ TAB ║ 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 ║RSHIFT║ ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗ ║ ║ LSHIFT ║ A │ U │ I │ E │OEMC| C │ T │ S │ R │ N │ M │ K ║ ║ ║ 3A ║ 1E │ 1F │ 20 │ 21 │ 22 │ 23 │ 24 │ 25 │ 26 │ 27 │ 28 │ 2B ║ 1C ║ ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣ ║ OEM 2║OEMX│OEM6│ Y │ X │OEMP│RTRN│OEM7│ Q │ G │ H │ F ║ OEM_2 ║ ║ 2A ║ 56 │ 2C │ 2D │ 2E │ 2F │ 30 │ 31 │ 32 │ 33 │ 34 │ 35 ║ 36 ║ ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣ ║ ║LMENU ║OEM_8║ ║OEM_8║ RWIN ║ APPS║ ║ ║ 1D ║ X5B ║ 38 ║ 39 ║ X38 ║ X5C ║ X5D ║ ║ ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
- OEM+ = OEM_PLUS
- OEMX = OEM_102
- OEMC = OEM_COMMA
- OEMP = OEM_PERIOD
- RTRN = RETURN
Cas particuliers : '\\' et '\''
{ VK_TAB, 0, {'\t'} },
{ VK_ESCAPE, 0, {'\x1b'} },
{ VK_RETURN, 0, {'\r', '\n'} },
{ VK_BACK, 0, {'\b'} },
Ce pilote slovaque utilise VK_EMPTY + « ROSDATA » à la place de « static ALLOC_SECTION_LDATA » ?
Dans kbd.h, maximum number of layout tables in a DLL : KBDTABLE_MULTI_MAX (8)
Pour ceux qui voudraient « taper à l'envers », si l'on place toutes les lettres sur un VK_LEFT (flèche directionnelle gauche) le curseur est placé à droite à chaque fois ce qui donne « |A » à la place de « A| » (« | » désigne le curseur).
Notes
<references>
- ↑ 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, plan, calque).
- ↑ Il y a des pb. avec compose en maj+tab sur le pilote win Neo2.