« Utilisateur:A2/neo2bepo » : différence entre les versions

De Disposition de clavier bépo
m (→‎Scancode et vk : alignement)
 
(74 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
{{sommaire à droite}}
{{sommaire à droite}}
{{note|neo2bepo est en travaux, de nombreux changements sont possibles sur les pilotes Windows depuis les sources en C.}}
{{note|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<ref>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.</ref>.}}
'''neo2bepo''' est un projet pour améliorer l'accessibilité des [[place des chiffres|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 [http://neo-layout.org/ Neo2 allemande].
'''néo2bépo''' est un projet perso visant à améliorer l'accessibilité des [[place des chiffres|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 [http://neo-layout.org/ Neo2 allemande].


L'idée du Neo2 est de sacrifier deux touches en accès direct, en bépo {{t|ê}} et {{t|ç}} ainsi que capslock pour obtenir six modificateurs donnant accès de manière quasi symétrique pour les deux mains à deux couches complètes<ref>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 [http://de.wiktionary.org/wiki/Ebene ''Ebene''], plan, calque).</ref>, 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]].
==Déplacement des modificateurs==
L'idée du Neo2 est d'utiliser six modificateurs<ref>Neo2 sacrifie deux touches en accès direct, en bépo {{t|ê}} et {{t|ç}}, la 102{{e}} touche et la touche balladeuse.</ref> pour accèder à deux couches<ref>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 [http://de.wiktionary.org/wiki/Ebene ''Ebene'']). Sur ce wiki rencontre parfois simplement « carte AltGr » pour désigner la « carte de la “couche” AltGr ». Bref, où sont les académiciens ?</ref> dont l'une est un AltGr mort<ref>AltGr n'est plus un Ctrl+Alt mais une touche morte (vérrouillable avec kanalock si besoin).</ref> et l'autre une nouvelle couche inventée. Ce système est bien meilleur que le simple AltGr du bépo ou que la <s>c</s>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.
{|
|-
|
┌──┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─────┐
│  │ │ │ │ │ │ │ │ │ │ │ │ │Verr.│
├──┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬────┤
│  │ │ │ │ │ │ │ │ │ │ │ │ │    │
├───┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┐  │
│Maj │ │ │ │ │ │ │ │ │ │ │ │ │Maj│
├───┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴─┴───┤
│Ici│ │ │ │ │ │ │ │ │ │ │ │Là-bas│
├──┬┴─┼─┴┬┴─┴─┴─┴─┴─┴┬┴─┼─┴┬──┬──┤
│  │  │AltGr        │AltGr│  │  │
└──┴──┴──┴───────────┴──┴──┴──┴──┘
| J'améliore la symétrie et l'accessibilité des modificateurs en plaçant<ref>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.</ref> :
*deux {{tA|Maj.}} sur {{t|Capslock}} et {{t|Entrée}} ;
*deux nouveaux modificateurs {{tA|Ici}} et {{tA|Là}} sur les anciens {{t|Maj}} ;
*un deuxième {{tA|AltGr}} à gauche sur {{t|Alt}} qui est décalé sur {{t|WinG}} ;
*un {{tA|Verrou}}, sorte de {{t|Capslock}} placé sur {{t|Retour arrière}}<ref>Il vérrouille la nouvelle couche contenant le pavé numérique et non l'accès aux lettres capitales.</ref>.


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 {{t|Alt}}, {{t|Super}} (WinG), {{t|Retour arrière}}, {{t|Entrée}}, {{t|ç}} et {{t|^}}. J'ai Entrée et Retour au milieu du clavier, une couche AltGr et une couche « Lock(able) » avec deux modificateurs chacune.
{{t|AltGr}}, {{t|Tab}} et les touches {{t|Ctrl}} et ne bougent pas.
 
|}
Utilisable comme bépo sur un clavier 104 touches pour le moment. J'ai mis la touche compose ♫ (du Neo2) en AltGr+ê<ref>Il y a des pb. avec compose en maj+tab sur le pilote win Neo2.</ref>.
{{boîte|titre=Carte ASCII détaillée des modificateurs|afficher=non|
 
<center>
== État de base et majuscules ==
<code>
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  │    │    │    │    │    │    │    │    │    │    │    │    │    ║ {{r|Super}}
  │    │    │    │    │    │    │    │    │    │    │    │    │    ║{{r|Verrouille}}
  │    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
  │    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
  ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
  ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
  ║      ║ É  {{v|È}}  │    │ {{v|W}}  ║      ║  
  ║      ║           │    │             ║      ║
  ║ ->|  é  {{v|è}}  {{r|<--}}{{v|w}}  ║      ║
  ║ Tab                          ║      ║
  ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
  ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
  ║        ║ │    │ {{v|K}}  ║    ║
  ║        ║         │    │               ║    ║
  ║ {{r|Lock}}   {{v|k}}  ║{{r|Lock}} ║
  ║ {{r|Maj}}                           ║ {{r|Maj}} ║
  ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
  ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
  ║   ^  Ê  À  │    │    │    │     ^     
  ║             │    │    │    │                  
  ║   |  ║ ê  à  {{r|<-'}}{{B|’}}      |      ║
  ║ {{r|Ici}}                         {{r|Là}}     ║
  ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╝
  ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
  ║      ║      ║    ║ {{B|Espace}}                    ║    ║      ║    ║
  ║      ║      ║    ║                           ║    ║      ║    ║     
  ║ Ctrl  ║ {{r|Alt}}  ║{{r|AltGr}}║ Espace                    ║AltGr║ Menu ║Ctrl
  ║ Ctrl  ║ {{r|Alt}}  ║{{r|AltGr}}║                           ║AltGr║ {{r|Win}}  ║{{r|Menu}} ║ Ctrl
  ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╝
  ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
</code>
</center>}}


:'''du bépo from scratch :''' {{b|ce qui change}}, {{v|ce qui pourrait bouger}}<ref>Fréquemment débattu par les utilisateurs du bépo</ref>, {{r|les nouveaux modificateurs}}
==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<ref>Elle me dérange car je l’insère trop souvent par mégarde quand je saisie des caractères en Maj.</ref>.
*Je garde bépo pour l’alphabétique <s>et place les chiffres en accès direct</s>. Pas question de réapprendre un réarrangement des touches, ça attendra une éventuelle v2 dans quelques années.
**Je place l’[[apostrophe]] typographique en accès direct.
*Je supprime l’espace insécable de maj+espace : elle me dérange car je l’insère trop souvent par mégarde.
**«⍽ ⍽» : guillemets avec espace insécable ligaturée.
*Je place l’[[apostrophe]] typographique en accès direct à la place de '.
**penser à placer un « où » ligaturé quelque part.
*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#Corpus de Nicolas C.|fréquence des lettres]] sur le corpus de [[Utilisateur:Crako|o<]] utilisée pour générer la dispo :
 
*le [[Utilisateur:nemolivier:tiret|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<ref>C'est con à dire mais on a forcément l'habitude du placement des shifts pour faire les majuscules sur ces claviers…</ref>


<!--
===Rangée supérieur : 26 places ===
===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…
Ceux qui veulent une disposition optimisée pour coder peuvent utiliser cette ligne de 13 touches pour mettre l'alphabet dans l'ordre…
Ligne 52 : Ligne 61 :
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  │ a  │ b  │ c  │ d  │ e  │ f  │ g  │ h  │ i  │ j  │ k  │ l  │ m  ║        ║
  │ 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  ║   <-- 
  │ n  │ o  │ p  │ q  │ r  │ s  │ t  │ u  │ v  │ w  │ x  │ y  │ z  ║        
</pre>
</pre>


Ligne 62 : Ligne 71 :
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  │ # ¶│ 1 „│ 2 “│ 3 ”│ 4 ≤│ 5 ≥║ 6  │ 7 ¬│ 8 ¼│ 9 ½│ 0 ¾│ ° ′│ ` ″║        ║
  │ # ¶│ 1 „│ 2 “│ 3 ”│ 4 ≤│ 5 ≥║ 6  │ 7 ¬│ 8 ¼│ 9 ½│ 0 ¾│ ° ′│ ` ″║        ║
  │ $ –│ " —│ « <│ » >│ ( [│ ) ]║ @ ^│ + ±│ - −│ / ÷│ * ×│ = ≠│ % ‰║ <--   
  │ $ –│ " —│ « <│ » >│ ( [│ ) ]║ @ ^│ + ±│ - −│ / ÷│ * ×│ = ≠│ % ‰║        
</pre>
</pre>
* « et » comme : ; ? et ! sont liés à l’espace insécable, la paire «» est surement mieux sur une autre couche.
* je supprime les accès direct ascii « historique » pour le moment : ~`° sont disponibles avec les touches mortes
* trois tirets sont nécessaires en français, sur 8 il est moins pire qu'ailleurs
* « 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 $ ».
* on pourrait aussi placer È Ê Ç W
* «»()[]<>/\{} n'ont pas à être placées par paires comme sur bépo (qui a adopté cette configuration à cause de l'altgr asymétrique)
* ou des touches mortes multi-fonctions (le grave mort est souvent utilisé pour ça).
* trois tirets sont nécessaires en français, - en direct donc sur le 0, le moins pire pour le moment étant droitier ;
* pour info il reste à placer des caractères comme ()/ùœ*=@+%æ<>[]&… (dans l'ordre de fréquence même si c'est peu pertinent),
* 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),


<!--
<pre>
<pre>
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  │    │ 1  │    │   È Ê  │    │    │ 8 Ç │    │    │    ║        ║
  │    │    │ «  »   │    │    │ │    │    │    │    ║        ║
  │         ^ ê     - ç   │    │    ║   <-- 
  │ 2( 3) 4 5 8 9 │    │    ║        
</pre>
</pre>
-->
== Couche AltGr ==


À FAIRE
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) :
<code>
<code>
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  +---------------------------------------------------------------------------------------+
  │    │    │    │    │    │    ║    │    │    │    │    │////│    ║        ║
  ¦˜ ? ¯¦° ª ¬¦§ º ?¦l ? ?¦» ? ?¦« · ?¦$ £ ?¦€ ¤ ?¦„ ? 8¦“ / ?¦” * ئ— - ?¦? ?  ?¦Backspace¦
  │ {{v|°}}  │ ¹ ² ³ ¢ ¥ │////│ ≠  │ ‰  ║        ║
  ¦ˆ ° ?¦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¦? - °¦¸ ? ?¦     ¦
  ║      ║ |  │ {{v|´}} │ {{b|œ}} │ {{v|`}} ║ ¡ │ {{v|ˇ}} │ {{b|ð}} │ {{v|/}}  │ {{b|ij}│ {{b|ə}} │ {{v|˘}}  ║      ║
  ¦ 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 ¦ ? ¦
  ║        ║ {{b|æ}} │ {{b|ù}}  │ {{v|¨}}  │ €  │ ’  ║ ©  │ {{b|þ}}  │ {{b|ß}}  │ ®  │ {{v|˜}}  │ {{v|¯}}  │ {{v|¸}}  ║    ║
  ¦    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  ¦
      ║ {{r|♫}} │ \  │ {  │ }  │ …  │ ~  ║ ¿  │ {{v|°}}  │ {{v|µ}}  │ †  │ {{v|˛}}  ║            ║
  ¦Umsch ¦Mod4 ¦ü # ¦ö $ ?¦ä | ?¦p ~ p¦z ` ?¦b + ߦm % µ¦, " ?¦. ' ?¦j ; ?¦  Umschalt  ¦
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
  +------+-----------------------------------------------------------+--------------------¦
  ║      ║     ║    ║                          ║    ║     ║    ║    
  ¦ Strg ¦     ¦ Alt ¦Leerzeichen?     0        schmal ¦ ¦ Lock ¦      ¦ Menü ¦ Strg ¦
  ║      ║     ║AltGr║  _                        ║AltGr║     ║    ║    
  ¦     ¦     ¦     ¦Leerzeichen? Leerzeichen? geschützt ? ¦Mod4 ¦     ¦     ¦     ¦
  ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝'''
  +---------------------------------------------------------------------------------------+
</code>
</code>


== Couche AltGr + Maj ==
 
À FAIRE
<!--
== La bataille entre dirLock et les neoMajs ==
{{t|{{r|dirLock}}}} ({{r|dLck}}) est un démon qui contrôle le côté obscure de la force du pavé numérique. Il a défait {{t|numLock}}, plus connu dans nos contrées sous le nom verrNum, et a marqué d'une Étoile rouge{{r|*}} les terres dispatchées de cet ancien pavé-monde numérique sur lesquelles les neo{{t|{{b|Maj}}}}s ont seulement un pouvoir surligneur, surtout geo{{t|Maj}}. {{t|{{r|dirLock}}}} maitrise les flèches directionnelles qui lui permettent de se déplacer plus vite dans l'espace. Il pourra bientôt de se {{t|défil}}er, voir s'{{t|insér}}er ou mettre {{t|fin}} à tout.
 
Les neo{{t|Maj}}s ont du caractère, aiment science et littérature. Ils ont pris une place importante et ont un rôle majeur à apporter au monde :
*geo{{t|Maj}} s'est installé sur {{t|Maj gauche}} qui a su, lui, grimper d’un rang pour conquérir et même faire fuire {{t|Capslock}} de son trône. S’il a un peu de mal avec les chiffres il surveille les caractères de prêt et a le tiret {{t|-}} plutôt rapide ;
*deo{{t|Maj}}, copiant son semblable, a destitué {{t|Maj droit}}, reparti sans broncher par la porte d’{{t|Entrée}}. deoMaj est bien plus à l'aise avec les chiffres que geoMaj ;
* non loin repose {{t|Nbsp}} l'invisible ⍽ assis sur sa barre, attendant fortune ailleurs.
 
 
Carte de la bataille entre dirLock et les neoMajs :
<code>
<code>
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  │   │    │    │    │    │    ║    │    │    │    │    │////│    ║        ║
  │{{r|dLck}}│    │    │    │    │    ║    │    │ 9{{r|*}} │    │    │    │    ║        ║
  │ {{v|°}} ¹ ² ³ ¢ ¥ ‘  ////≠  ‰  ║        ║
  │ % 9 8 7 6 5 + % {{r|⇞}}         ║        ║
  ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
  ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
  ║      ║    │    │    │    │    ║    │    │   │    │    │    │    ║      ║
  ║      ║    │    │    │    │    ║    │    │ 8{{r|*}} │    │    │    │    ║      ║
  ║       | {{v|´}} & {{b|œ}} {{v|`}} ¡ {{v|ˇ}}  │ {{b|ð}}  │ {{v|/}}  {{b|ij}} {{b|ə}}  {{v|˘}}  ║      ║
  ║ ⇥    4 3 2 1 !   │ {{r|}}  │   -     ║      ║
  ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
  ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
  ║        ║    │    │    │    │    ║    │       │    │    │    ║    ║
  ║        ║    │    │    │    │    ║    │ │    │    │    ║    ║
  ║        ║ {{b|æ}} {{b|ù}} {{v|¨}} © │ {{b|þ}}  │ {{b|ß}} │ ® │ {{v|˜}}  │ {{v|¯}} {{v|¸}}  ║    ║
  ║        ║ « » ? - ; . │ {{r|}}  │ {{r|}}  │ {{r|}}  │ +   │    ║    ║
  ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
  ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
  ║      ║    │    │    │    │    │    ║    │    │   │    │    ║          
  ║geo{{b|Maj}}║    │    │    │    │    │    ║    │    │ 3{{r|*}} │    │    ║ deo{{b|Maj}}   
  ║ Maj. ║ /  │ \  │ { } ¿ {{v|°}}  │ {{v|µ}}  │ {{v|˛}}    Maj.   
  ║     ║ /  │ \  │ < > : <-''   │ {{r|}}  │ .            
  ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
  ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
  ║      ║      ║    ║                          ║    ║      ║    ║      ║
  ║      ║      ║    ║                          ║    ║      ║    ║      ║
  ║      ║      ║AltGr║                          ║AltGr║     ║    ║      ║
  ║      ║      ║    ║  nbsp                    ║ .?  ║     ║    ║      ║
  ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝'''
  ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
</code>
</code>


== Couche Lock ==
<small>Les neo{{t|Maj}} et {{t|dirLock}} pourraient éventuellement posséder {{t|Entrée}} et {{t|Retour arrière}} et permettre de récupérer les deux touches abandonnées afin de revenir à un bépo plus normal…</small>
TODO À FAIRE… (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==


<pre>
Légende :
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
63 ⇥    … Tab
│OEM1│ 1 2 3 8 9 0  │OEM+│OEM3║ LWIN  ║
64 ⇤    … Left_Tab (spring z.B. ein Eingebefeld zurück)
29 02 03 04 05 06 07 08 09 0A 0B 0C 0D ║  0E    ║
65 ⇞⇟  … Bild auf/Bild ab
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
66 ⇱⇲  … Pos1/Ende
║      ║ B │OEM4│ P O │OEM5│BACK│ V D L J Z W ║      ║
67 ⌫ ⌦  … Backspace/Entf
0F  ║ 10 11 12 13 14 15 16 17 18 19 1A 1B ║      ║
68 ⌧    … Esc
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
69 ⎀    … Einf
OEM_2 ║ A U E  │OEMC| C  K ║OEM_2║
70 ⇠⇡⇢⇣ … Links/Hoch/Rechts/Runter
3A    ║ 1E 1F 20 21 22 23 24 25 26 27 28 2B ║ 1C  ║
71 ♫    … Steht als Symbol für die Kombotaste (Compose)
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
72 ╌    … Weicher Trennstrich (U+00AD SOFT HYPHEN)
    ║OEMX│OEM6│ Y  X │OEMP│RTRN│OEM7│ Q G H F  ║            ║
73 ␣    … Leerzeichen (SPACE)
║  2A ║ 56 2C 2D 2E 2F 30 31 │ 32 │ 33 │ 34 │ 35 ║    36    ║
74 ⍽    … Geschütztes Leerzeichen (U+00A0 NO-BREAK SPACE)
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
75 ¦    … Schmales, geschütztes Leerzeichen (U+202F NARROW NO-BREAK SPACE)
║      ║LMENU ║OEM_8║                          ║OEM_8║      ║    ║      ║
76 ↶    … undo-Funktion
║  1D  ║ X5B  ║ 38  ║          39              ║ X38 ║      ║    ║      ║
77 ↷    … redo-Funktion
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
78 ↻    … Drehen-Funktion, dreht das folgende Zeichen
</pre>
79 ⍓    … (de)aktiviert die Maussteuerung über die Tastatur -->
*OEM+ = OEM_PLUS
 
*OEMX = OEM_102
==  Les modificateurs Ici et Là et la couche Verrouille ==
*OEMC = OEM_COMMA
Les nouveaux<ref>Ici et Là sont des Maj normaux, Verrouille est un Capslock normal. Seul la manière d'utiliser ces touches est nouvelle.</ref> modificateurs {{tA|Ici}} et {{tA|Là}} accèdent :
*OEMP = OEM_PERIOD
*aux touches de déplacement en T inversé (WASD gamer pour les trois doigts forts) et de défilement sous la main gauche ;
*RTRN = RETURN
*à un pavé numérique complet sous la main droite (semblable niveau forme à l'ancien pour le moment).
 
Le nouveau {{tA|Verr.}} 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.
{{r|Ici}}/│⇞│⎀│⇟│⌦│↲│ │ │ │ │ │ {{r|Là}}  ⇞ Préc.  ⇟ Suiv.
├──┬┴─┼─┴┬┴─┴─┴─┴─┴─┴┬┴─┼─┴┬──┬──┤ ↲ Entrée ␣ Espace
  │      ␣    │ │  │  │  │  
└──┴──┴──┴───────────┴──┴──┴──┴──┘
|
  ┌──┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─────┐
  │ │ │ │ │ │ │ │7│8│9│+│ │ │{{r|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 {{t|Ici}} et {{t|Là}}, verrouillable avec {{t|Verr.}} pour un accès complet en direct ;
* des touches de déplacements/défilements sous la main gauche, accessible par {{t|Ici}} et {{t|Là}}
* une touche compose ♫ (du Neo2) en {{touches|Ici|ê}}
* 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 !


==Pavé numérique==
== Opportunités du pilote en C ==
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.
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==
==Notes==
<references>
<references>

Dernière version du 10 mai 2010 à 07:35

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

<references>

  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.