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].
État de base et majuscules
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│Num │ │ │ │ │ │ │ │ │ │ │ │ ║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 ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║NeoMaj║ Ê │ À │ 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. 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.
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 ¾│ ° ′│ ` ″║ ║ │ $ –│ " —│ « <│ » >│ ( [│ ) ]║ @ ^│ + ±│ - −│ / ÷│ * ×│ = ≠│ % ‰║ ║
- je supprime les accès direct ascii « historique » pour le moment : ~`° sont disponibles avec les touches mortes
- « et » comme : ; ? et ! sont liés à l’espace insécable en français : en maj. avec $ qui peut avoir besoin d’une insécable « 298 $ ».
- «»()[]<>/\{} n'ont pas à être placées par paires comme sur bépo (qui a adopté cette configuration à cause de l'altgr asymétrique)
- trois tirets sont nécessaires en français, - en direct donc sur le 0, le moins pire pour le moment étant droitier ;
- reste deux places surement pour des touches mortes multi-fonctions comme fait neo (à tester).
- pour info il reste à placer des caractères comme ()/çùœ*=@+%æ<>[]&… (dans l'ordre de fréquence même si c'est peu pertinent),
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗ │ │ │ « │ » │ │ │ │ – │ — │ │ │ │ ║ ║ │ 0 │ 1 │ 2( │ 3) │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ - │ │ ║ ║
Couche AltGr
Penser à placer une touche compose : ♫
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║ ║ ║ ║
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│ │ │ │ │ │ ║ │ │ │ │ │ │ ║ ║
│ – │ — │ < │ > │ [ │ ] ║ ^ │ ± │ − │ ÷ │ × │ ≠ │ ‰ ║ ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
║ ║ │ │ │ │ ║ │ │ │ │ │ │ ║ ║
║ ║ | │ ´ │ & │ œ │ ` ║ ¡ │ ˇ │ ð │ / │ ij │ ə │ ˘ ║ ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗ ║
║ ║ │ │ │ │ ║ │ │ │ │ │ │ ║ ║
║ ║ æ │ ù │ ¨ │ € │ ’ ║ © │ þ │ ß │ ® │ ˜ │ ¯ │ ¸ ║ ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║ ║ │ │ │ │ │ ║ │ │ │ │ ║ ║
║ ║ / │ \ │ { │ } │ … │ ~ ║ ¿ │ ° │ µ │ † │ ˛ ║ ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
║ ║ ║ ║ ║ ║ ║ ║ ║
║ ║ ║ ║ _ ║AltGr║ ║ ║ ║
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
+---------------------------------------------------------------------------------------+
¦˜ ? ¯¦° ª ¬¦§ º ?¦l ? ?¦» ? ?¦« · ?¦$ £ ?¦€ ¤ ?¦„ ? 8¦“ / ?¦” * ئ— - ?¦? ? ?¦Backspace¦
¦ˆ ° ?¦1 ¹ 1¦2 ² 2¦3 ³ 3¦4 › ?¦5 ‹ ?¦6 ¢ ?¦7 ¥ ?¦8 ‚ ?¦9 ‘ ?¦0 ’ 0¦- -¦` ¨ ?¦ ? ¦
+---------------------------------------------------------------------------------------¦
¦ Tab? ¦X ? ?¦V ? v¦L ? ?¦C ? C¦W ? O¦K ¡ צH 7 ?¦G 8 G¦F 9 F¦Q + Q¦? - °¦¸ ? ?¦ ¦
¦ Tab? ? ¦x … ?¦v _ ¦l [ ?¦c ] ?¦w ^ ?¦k ! ?¦h < ?¦g > ?¦f = f¦q & ?¦ß ? ?¦´ / ?¦Return¦
+---------------------------------------------------------------------------------+ ¦
¦ Mod ¦U ? ?¦I ? ?¦A ? ?¦E ? ?¦O ? ?¦S ¿ S¦N 4 N¦R 5 R¦T 6 ?¦D , ?¦Y . ?¦ Mod ¦ ? ¦
¦ 3 ¦u \ ¦i / ?¦a { a¦e } e¦o * ?¦s ? s¦n ( ?¦r ) ?¦t - t¦d : d¦y @ ?¦ 3 ¦ ¦
+---------------------------------------------------------------------------------------¦
¦CapsLk¦ Lock¦Ü ? ?¦Ö ? n¦Ä ? ?¦P ? ?¦Z ? Z¦B : ?¦M 1 ?¦– 2 ?¦• 3 ?¦J ; T¦ CapsLock ¦
¦Umsch ¦Mod4 ¦ü # ¦ö $ ?¦ä | ?¦p ~ p¦z ` ?¦b + ߦm % µ¦, " ?¦. ' ?¦j ; ?¦ Umschalt ¦
+------+-----------------------------------------------------------+--------------------¦
¦ Strg ¦ ¦ Alt ¦Leerzeichen? 0 schmal ¦ ¦ Lock ¦ ¦ Menü ¦ Strg ¦
¦ ¦ ¦ ¦Leerzeichen? Leerzeichen? geschützt ? ¦Mod4 ¦ ¦ ¦ ¦
+---------------------------------------------------------------------------------------+
Erste Ebene – Miniatur
+----------------------------------+ ¦ ˆ ¦1¦2¦3¦4¦5¦6¦7¦8¦9¦0¦-¦`¦ Back ¦ +----------------------------------¦ ¦Tab?¦x¦v¦l¦c¦w¦k¦h¦g¦f¦q¦ß¦´¦ Ret ¦ +------------------------------+ ¦ ¦ M3 ¦u¦i¦a¦e¦o¦s¦n¦r¦t¦d¦y¦M3¦ ¦ +----------------------------------¦ ¦Ums¦M4¦ü¦ö¦ä¦p¦z¦b¦m¦,¦.¦j¦ Umsch ¦ +---+--+-----------------+---------¦ ¦Str¦Fe¦Al¦Leerzeichen¦M4¦Fe¦Me¦Str¦ +----------------------------------+
Couche AltGr + Maj
À FAIRE
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│ │ │ │ │ │ ║ │ │ │ │ │ │ ║ ║
│ ° │ ¹ │ ² │ ³ │ › │ ‹ ║ ¢ │ ¥ │ ‚ │ ‘ │ │ ≠ │ ‰ ║ ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
║ ║ │ │ │ │ ║ │ │ │ │ │ │ ║ ║
║ ║ | │ ´ │ & │ œ │ ` ║ <--│ ˇ │ ð │ / │ ij │ ə │ ˘ ║ ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗ ║
║ ║ │ │ │ │ ║ │ │ │ │ │ │ ║ ║
║ Maj. ║ æ │ ù │ ¨ │ € │ ’ ║ © │ þ │ ß │ ® │ ˜ │ ¯ │ ¸ ║ Maj.║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║ ║ │ │ │ │ │ ║ │ │ │ │ ║ ║
║ ║ / │ \ │ { │ } │ … │ <-'║ ¿ │ ° │ µ │ † │ ˛ ║ ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
║ ║ ║ ║ ║ ║ ║ ║ ║
║ ║ ║AltGr║ 0 ║AltGr║ ║ ║ ║
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
Les neoMaj
geoMaj et deoMaj ouvrent les grimoires du pavé numérique perdu. geoMaj s'est installé sur Maj gauche qui a su grimper d'un rang pour conquérir et même faire fuire Capslock.
Les neoMaj sont partagés entre science et littérature mais aucun n'a de réel pouvoir sur la main droite. deoMaj est l'ami des chiffres et du francais. Il facilite l'accès à bien du beau monde sur la rangée de repos non loin de Nbsp l'invisible. deoMaj a du mal avec les chiffres mais il a le tiret rapide, d'une seulement main.
Peut-être que geoMaj abandonnera les chiffres dans le prochain épisode
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│ │ │ │ │ │ ║ │ │ │ │ │ │ ║ ║
│ % │ 9 │ 8 │ 7 │ 6 │ 5 ║ + │ % │ │ │ │ │ ║ ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
║ ║ │ │ │ │ ║ │ │ │ │ │ │ ║ ║
║ ║ 4 │ 3 │ 2 │ 1 │ ! ║ <--│ │ ⇡ │ │ - │ │ ║ ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗ ║
║ ║ │ │ │ │ ║ │ │ │ │ │ │ ║ ║
║ ║ « │ » │ ? │ - │ ; ║ . │ ⇠ │ ⇣ │ │ + │ │ ║ ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║geoMaj║ │ │ │ │ │ ║ │ │ │ │ ║ deoMaj ║
║ ║ / │ \ │ < │ > │ : │ <-'║ ' │ │ │ . │ ║ ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
║ ║ ║ ║ ║ ║ ║ ║ ║
║ ║ ║ ║ nbsp ║ .? ║ ║ ║ ║
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
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).
Idée à la con ! Mettre le pavé numérique sur le clavier pour avoir les touches directionnelles : ça ne fonctionne pas, numlock n'est effectif que sur les touches du pavé numérique :[
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.