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

De Disposition de clavier bépo
 
(50 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. 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.
{|
|-
|
┌──┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─────┐
│  │ │ │ │ │ │ │ │ │ │ │ │ │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, {{t|^}} et {{t|k}} 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 {{t|Alt}}, {{t|Super}}, les {{t|Majuscule}}s, {{t|Capslock}}, {{t|Retour arrière}}, {{t|Entrée}}, {{t|ç}} et {{t|^}}. 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 {{t|Capslock}} et {{t|Entré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.
{{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|Num}} │    │    │    │    │    │    │    │    │    │    │    │    ║{{r|Caps}}     ║
  │   │    │    │    │    │    │    │    │    │    │    │    │    ║{{r|Verrouille}}
  │{{r|lock}}│    │    │    │    │    │    │    │    │    │    │    │    ║ {{r|lock}}   
  │   │    │    │    │    │    │    │    │    │    │    │    │    ║        
  ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
  ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
  ║      ║ É  È  │    │ ║      ║  
  ║      ║           │    │             ║      ║
  ║ ->|  é  è  {{r|<--}}║      ║
  ║ Tab                          ║      ║
  ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
  ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
  ║        ║ │    │ ║    ║
  ║        ║         │    │               ║    ║
  ║ {{r|Maj}}   ║ {{r|Maj}} ║
  ║ {{r|Maj}}                           ║ {{r|Maj}} ║
  ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
  ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
  ║ {{r|Pavé}} Ê  À  │    │    │    │   {{r|Pavé}}   
  ║             │    │    │    │                  
  ║ {{r|dir.}} ║ ê  à  {{r|<-'}}’  ║    {{r|num.}}  
  ║ {{r|Ici}}                       ║    {{r|}}    
  ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
  ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
  ║      ║      ║    ║ Espace insécable          ║    ║      ║    ║      ║
  ║      ║      ║    ║                           ║    ║      ║    ║      ║
  ║ Ctrl  ║ {{r|Alt}}  ║{{r|AltGr}}║ Espace                    ║AltGr║{{r|Super}} ║{{r|Menu}} ║ Ctrl ║
  ║ Ctrl  ║ {{r|Alt}}  ║{{r|AltGr}}║                           ║AltGr║ {{r|Win}} ║{{r|Menu}} ║ Ctrl ║
  ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
  ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
</code>
</center>}}
 
:'''du bépo from scratch :''' {{r|les nouveaux modificateurs}}
 
 
*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.
*<s>Je supprime l’espace insécable de maj+espace : elle me dérange car je l’insère trop souvent par mégarde.</s>
*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#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 !
==Changements perso sur bépo==
*si on a ê le ^ mort est moins pertinent en accès direct, il serait surement mieux avec les autres touches mortes (vérifier fréq. des âûî tout de même)
*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 :
*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 ?
**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>.
*Nemolivier suggère d'inverser NEW et SHIFT : j'essaye ça (ça augmente l'accessibilité des « » insécable mais le maj droit se retrouvre plus loin, autant il est énorme (entrée !) > pb. le linefeed (shift+entrée) est moins accessible qu'avant.
**Je place l’[[apostrophe]] typographique en accès direct.
**«⍽ ⍽» : guillemets avec espace insécable ligaturée.
**penser à placer un « où » ligaturé quelque part.


<!--
===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 77 : Ligne 86 :
</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
<code>
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
│    │    │    │    │    │    ║    │    │    │    │    │    │    ║        ║
│ {{v|°}}  │ ¹  │ ²  │ ³  │ ›  │ ‹  ║ ¢  │ ¥  │ ‚  │ ‘  │  │ ≠  │ ‰  ║        ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
║      ║    │    │    │    │    ║    │    │    │    │    │    │    ║      ║
║      ║ |  │ {{v|´}}  │ &  │ {{b|œ}}  │ {{v|`}}  ║ <--│ {{v|ˇ}}  │ {{b|ð}}  │ {{v|/}}  │ {{b|ij}}  │ {{b|ə}}  │ {{v|˘}}  ║      ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║    │    │    │    │    ║    │    │    │    │    │    │    ║    ║
║ Maj.  ║ {{b|æ}}  │ {{b|ù}}  │ {{v|¨}}  │ €  │ ’  ║ ©  │ {{b|þ}}  │ {{b|ß}}  │ ®  │ {{v|˜}}  │ {{v|¯}}  │ {{v|¸}}  ║ Maj.║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
║      ║    │    │    │    │    │    ║    │    │    │    │    ║            ║
║      ║ /  │ \  │ {  │ }  │ …  │ <-'║ ¿  │ {{v|°}}  │ {{v|µ}}  │ †  │ {{v|˛}}  ║            ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
║      ║      ║    ║                          ║    ║      ║    ║      ║
║      ║      ║AltGr║                    0    ║AltGr║      ║    ║      ║
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
</code>


== New Shift ! ==
<!--
On peut y mettre un pavé numérique sous la main que l'on désire, accessible depuis, il ne faut pas
== 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.


Maj gauche la touche d'accès au pavé numérique et en passant à la touche - qui devient méga super accessible !! Youpi !
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.


Pour le moment j'essaye ça, le 0 à l'air un peu loin, faut une place pour le . :


Carte de la bataille entre dirLock et les neoMajs :
<code>
<code>
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
  │   │    │    │    │    │    ║    │    │   │    │    │    │    ║        ║
  │{{r|dLck}}│    │    │    │    │    ║    │    │ 9{{r|*}} │    │    │    │    ║        ║
  │ %  │ 9  │ 8  │ 7  │ 6  │ 5  ║ +  │ %  │   │    │    │    │    ║        ║
  │ %  │ 9  │ 8  │ 7  │ 6  │ 5  ║ +  │ %  │ {{r|⇞}}  │    │    │    │    ║        ║
  ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
  ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
  ║      ║    │    │    │    │    ║    │    │   │    │    │    │    ║      ║
  ║      ║    │    │    │    │    ║    │    │ 8{{r|*}} │    │    │    │    ║      ║
  ║       ║ 4  │ 3  │ 2  │ 1  │ !  ║ <--│    │   │    │ -  │    │    ║      ║
  ║ ⇥    ║ 4  │ 3  │ 2  │ 1  │ !  ║ ⌫  │    │ {{r|⇡}}  │    │ -  │    │    ║      ║
  ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
  ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
  ║        ║    │    │    │    │    ║    │       │    │    │    ║    ║
  ║        ║    │    │    │    │    ║    │ │    │    │    ║    ║
  ║        ║ «  │ »  │ ?  │ -  │ ;  ║         │ +  │    │    ║    ║
  ║        ║ «  │ »  │ ?  │ -  │ ;  ║ {{r|⇠}}  {{r|⇣}}  {{r|⇢}}  │ +  │    │    ║    ║
  ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
  ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
  ║      ║    │    │    │    │    │    ║    │    │   │    │    ║  New Shift
  ║geo{{b|Maj}}║    │    │    │    │    │    ║    │    │ 3{{r|*}} │    │    ║  deo{{b|Maj}}   
  ║      ║ /  │ \  │ <  │ >  │ :  │ <-'║   │    │   │ .  │    ║            ║
  ║      ║ /  │ \  │ <  │ >  │ :  │ <-'║ │    │ {{r|⇟}}  │ .  │    ║            ║
  ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
  ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
  ║      ║      ║    ║                          ║    ║      ║    ║      ║
  ║      ║      ║    ║                          ║    ║      ║    ║      ║
Ligne 148 : Ligne 136 :
</code>
</code>


==Scancode et vk==
<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>
brouillon dev
 
<pre>
 
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗
Légende :
│OEM1│ 1  │ 2  │ 3  │ 4  │ 5  │ 6  │ 7  │ 8  │ 9  │ 0  │OEM+│OEM3║  LWIN  ║
63 ⇥   … Tab
│ 29 │ 02 │ 03 │ 04 │ 05 │ 06 │ 07 │ 08 │ 09 │ 0A │ 0B │ 0C │ 0D ║  0E  
64 ⇤    … Left_Tab (spring z.B. ein Eingebefeld zurück)
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣
65 ⇞⇟   … Bild auf/Bild ab
║  TAB  ║ B │OEM4│ P  │ O  │OEM5│BACK│ V  │ D  │ L  │ J  │ Z  │ W  ║      ║
66 ⇱⇲  … Pos1/Ende
║  0F   ║ 10 │ 11 │ 12 │ 13 │ 14 │ 15 │ 16 │ 17 │ 18 │ 19 │ 1A │ 1B ║RSHIFT║
67 ⌫ ⌦ … Backspace/Entf
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
68 ⌧   … Esc
║ LSHIFT ║ A │ U  │ I  │ E  │OEMC| C  │ T  │ S  │ R  │ N  │ M  │ K  ║    ║
69 ⎀   … Einf
║  3A   ║ 1E │ 1F │ 20 │ 21 │ 22 │ 23 │ 24 │ 25 │ 26 │ 27 │ 28 │ 2B ║ 1C  ║
70 ⇠⇡⇢⇣ … Links/Hoch/Rechts/Runter
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣
71 ♫    … Steht als Symbol für die Kombotaste (Compose)
║ OEM 2║OEMX│OEM6│ Y  │ X  │OEMP│RTRN│OEM7│ Q  │ G  │ H  │ F  ║  OEM_2  
72 ╌    … Weicher Trennstrich (U+00AD SOFT HYPHEN)
║  2A  ║ 56 │ 2C │ 2D │ 2E │ 2F │ 30 │ 31 │ 32 │ 33 │ 34 │ 35 ║    36    ║
73 ␣    … Leerzeichen (SPACE)
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣
74 ⍽    … Geschütztes Leerzeichen (U+00A0 NO-BREAK SPACE)
║      ║LMENU ║OEM_8║                          ║OEM_8║ RWIN ║ APPS║      ║
75 ¦    … Schmales, geschütztes Leerzeichen (U+202F NARROW NO-BREAK SPACE)
║  1D  ║ X5B  ║ 38  ║          39              ║ X38 ║  X5C ║ X5D ║      ║
76 ↶    … undo-Funktion
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝
77 ↷    … redo-Funktion
</pre>
78 ↻    … Drehen-Funktion, dreht das folgende Zeichen
*OEM+ = OEM_PLUS
79 ⍓    … (de)aktiviert die Maussteuerung über die Tastatur -->
*OEMX = OEM_102
*OEMC = OEM_COMMA
*OEMP = OEM_PERIOD
*RTRN = RETURN


==  Les modificateurs Ici et Là et la couche Verrouille ==
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 :
*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).


Cas particuliers : <nowiki>'\\' et '\''</nowiki>
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.)
<code>
{|
   { VK_TAB, 0, {'\t'} },
|-
  { VK_ESCAPE, 0, {'\x1b'} },
|
  { VK_RETURN, 0, {'\r', '\n'} },
┌──┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─────┐ Légende :
   { VK_BACK, 0, {'\b'} },
│  │ │ │ │ │ │ │7│8│9│+│ │ │    │ ⇥ Tab
</code>
├──┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬────┤ ⇱ 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│ │ │  │
├───┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴─┴───┤
│  │/│\│<>│ │↲│ │ │ │ │ │      │
├──┬┴─┼─┴┬┴─┴─┴─┴─┴─┴┬┴─┼─┴┬──┬──┤
│  │  │  │    ↲    │  │  │  │  │
└──┴──┴──┴───────────┴──┴──┴──┴──┘
|}


[http://reactos.freedoors.org/Reactos%200.3.8/ReactOS-0.3.8-REL-src/dll/keyboard/kbdsk/kbdsk.c Ce pilote slovaque] utilise VK_EMPTY + « ROSDATA » à la place de « static ALLOC_SECTION_LDATA » ?
==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).


Dans kbd.h, maximum number of layout tables in a DLL : KBDTABLE_MULTI_MAX  (8)
=== 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…)


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).
== À 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 !


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 :[
== 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==
==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.