Utilisateur:Lawrent

De Disposition de clavier bépo

Ma disposition subit encore quelques modifications. Si vous souhaitez une version stable, revenez d'ici quelques temps :-) .

Cette page n'est pas à jour, je ferai un tri la prochaine fois que je ferai des essais sur ma modification

Disposition complète, encore en cours de changements

level 1-2 : lettre et majuscule
level 3-4 (altgr, altgr+maj) : autres lettres et/ou symboles
level 5  (level5, seulement à droite): pavé numérique
level 5 + maj : chiffres en exposant
level 5 + altgr: chiffres en indice (plus difficiles à saisir)

┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────╔════════════════╗
│ CAPS   │        │        │        │        │        │ SHUT   │        │        │        │        │        │        ║                ║
│ LOCK   │ ALTGR  │ META   │ TAB    │ CTRL   │        │ DOWN   │        │ CTRL   │ ALT    │ INSERT │        │        ║ DELETE         ║
╔══════════════╗──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──╚═════╦══════════╣
║              ║  O   Œ │ É      │ P      │ À      │ È      │ ¨ `  ≠ │ V      │ D      │ L ≤    │ B ≥    │ Z      │ Ç      ║       |  ║
║ ←——          ║  o   œ │ é    & │ p    | │ à      │ è    ` │ ^ ´  = │ v ^  5 │ d $  6 │ l <  7 │ b >  8 │ z #  9 │ ç @  % ║     ←—'  ║
╠══════════════╩═╗──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬────────┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────╚═╗        ║
║                ║ A    Æ │ U    Ù │ I    « │ E    » │ ;      │ C      │ T ~    │ N –    │ R      │ S      │ M      │        ║        ║
║ ALTGR          ║ a    æ │ u    ù │ i    ( │ e    ) │ ,    — │ c \  0 │ t /  1 │ n -  2 │ r {  3 │ s }  4 │ m %  . │ ALTGR  ║        ║
╠═══════════╦════╝──════──┴──════──┴──════──┴──════──┴───┬────┴───┬────┴──════──┴──════──┴──════──┴──════──┴───╔═════════════╩════════╣
║           ║ Ê    £ │ H    ≠ │ Y      │ X    ± │ :    · │ K      │ ? ≈    │ Q    ± │ G      │ J      │ F      ║ W                    ║
║ Level5    ║ ê    € │ h    = │ y    * │ x    + │ .    … │ k    ° │ ' !  , │ q "  + │ g _  - │ j [  * │ f ]  / ║ w                    ║
╠═══════════╬════════╦════════╦════════╦════════════════════════════════════════════╦════════╦════════╦════════╬══════════════════════╝ 
║           ║        ║        ║        ║   [esp insecable]         [esp insecable]  ║        ║        ║        ║
║ ALT       ║        ║ OVERLAY║   MAJ  ║   [space]                  ~               ║ MAJ    ║ ESC    ║ META   ║
╚═══════════╩════════╩════════╩════════╩════════════════════════════════════════════╩════════╩════════╩════════╝

carte overlay
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗
│    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
│    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
╔═══════╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣
║       ║    │    │    │    │    │    │    │    │    │    │    │    ║     ║
║       ║    │    │    │    │    │    │PgDw│PgUp│    │    │    │    ║     ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║    │    │    │    │    │    │    │    │    │    │    │    ║    ║
║        ║CTRL│ALT │META│MAJ │    │  ← │  ↓ │  ↑ │  → │    │    │    ║    ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔══════╩════╣
║      ║    │    │    │    │    │    │    │    │    │    │    ║           ║
║      ║    │    │    │    │    │    │    │End │Home│    │    ║           ║
╠══════╬════╦════╦════╦════════════════════════╦════╦════╦════╬═══════════╝
║      ║    ║    ║    ║                        ║    ║    ║    ║
║      ║    ║OVRL║    ║                        ║    ║    ║    ║
╚══════╩════╩════╩════╩════════════════════════╩════╩════╩════╝

Alternative pour le suédois (bien que si on veut vraiment taper du suédois il faut repenser toute la carte).

┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────╔════════════════╗
│        │        │        │        │        │        │        │        │        │        │        │        │        ║                ║
│        │        │        │        │        │        │        │        │        │        │        │        │        ║                ║
╔══════════════╗──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──╚═════╦══════════╣
║              ║  O   Ö │        │        │  À   Å │        │        │        │        │        │        │        │        ║          ║
║              ║  o   ö │        │        │  à   å │        │        │        │        │        │        │        │        ║          ║
╠══════════════╩═╗──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────╚═╗        ║
║                ║  A   Ä │        │        │        │        │        │        │        │        │        │        │        ║        ║
║                ║  a   ä │        │        │        │        │        │        │        │        │        │        │        ║        ║
╠═══════════╦════╝───┬────┴───┬────┴───┬────┴──════──┴───┬────┴───┬────┴──════──┴───┬────┴───┬────┴───┬────┴───╔═════════════╩════════╣
║           ║        │        │        │        │        │        │        │        │        │        │        ║                      ║
║           ║        │        │        │        │        │        │        │        │        │        │        ║                      ║
╠═══════════╬════════╦════════╦════════╦════════════════════════════════════════════╦════════╦════════╦════════╬══════════════════════╝
║           ║        ║        ║        ║                                            ║        ║        ║        ║
║           ║        ║        ║        ║                                            ║        ║        ║        ║
╚═══════════╩════════╩════════╩════════╩════════════════════════════════════════════╩════════╩════════╩════════╝

Remarque: à partir de 3 touches simultanées, certaines combinaisons de touche n'envoient pas de signal du clavier vers le pc (par exemple sur mon clavier la combinaison maj+altgr (gauche) + n) à cause d'un phénomène appelé ghosting (http://www.microsoft.com/appliedsciences/antighostingexplained.mspx). Lorsqu'on déplace les modificateurs, il arrive que certaines combinaisons de touche s'avèrent impossibles (il faut donc trouver une alternative propre au clavier). Sur Linux, xev affiche dans la console les events envoyés par le clavier et permet de détecter une combinaison de touche interdite.

Pour l'utilisation de l'overlay, attention: toujours relacher la touche pressée avant la touche overlay. Sinon elle reste enfoncée et ça fait des surprises.

Changements à essayer

  • mettre Space+AltGr comme espace insécable.
  • placer ~ (tilde) sur w+altgr et ~ (accent) sur w+altgr+maj
  • ajouter µ sur m+maj+altgr
  • swap t<->n ? le N est la consonne la plus fréquente du français, pourquoi ne pas la mettre sur l'index… (+ l'auriculaire droit a énormément de travail puisqu'il a 8 touches à gérer)
  • swap è<->ê: c'est un détail, mais le è est légèrement plus fréquent en français que le ê, autant le mettre donc sur une touche plus accessible. (Ceci casse la compatibilité avec les claviers à 104 touches, où le ê se tape ^e.)
  • déplacer META sur le [CTRL] gauche et INSERT sur le [CTRL] droit. J'utilise ces touches une fois toutes les 3 lunes (et je n'utilise jamais les [CTRL]), ça devrait me libérer de la place sur ma ligne des chiffres. Peut-être que je pourrais les remplacer par des caractères peu fréquents, ou trouver un meilleur endroit pour mon Level5? À tester alors, pour faciliter l'alternance entre AltGr gauche et Level5 (fréquents quand on écrit du code):
    • êÊ€£ sur [2]
    • Level5 sur [T]
    • Esc sur [Maj] gauche
  • Swap PgDw <-> Home
  • Pavé numérique à tester:
 ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗ 
 │    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║ 
 │    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║ 
 ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣ 
 ║       ║    │    │    │    │    │    │   "│   6│   7│   8│   9│    ║     ║
 ║       ║    │    │    │    │    │    │   '│    │    │    │    │    ║     ║ 
 ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║ 
 ║        ║    │    │    │    │    │   0│   1│   2│   3│   4│   5│    ║    ║
 ║        ║    │    │    │    │    │    │    │    │    │    │    │    ║    ║ 
 ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔══════╩════╣ 
 ║      ║    │    │    │    │    │    │   ;│   ±│   =│   (│   )║  :        ║
 ║      ║    │    │    │    │    │    │   ,│   +│   -│   *│   /║  .        ║ 
 ╠══════╬════╦════╦════╦════════════════════════╦════╦════╦════╬═══════════╝ 
 ║      ║    ║    ║    ║                        ║    ║    ║    ║ 
 ║      ║    ║    ║    ║                        ║    ║    ║    ║ 
 ╚══════╩════╩════╩════╩════════════════════════╩════╩════╩════╝
  • Carte overlay enrichie pour les combinaisons ctrl-F4, alt-F2, alt-F4, ctrl-tab, ctrl-maj-tab, alt-tab:
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗
│    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
│    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
╔═══════╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣
║       ║    │    │    │    │    │    │    │    │    │    │    │    ║     ║
║       ║    │    │    │    │    │    │PgDw│PgUp│    │    │    │    ║     ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║    │    │    │    │    │    │    │    │    │    │    │    ║    ║
║        ║CTRL│ALT │META│MAJ │    │  ← │  ↓ │  ↑ │  → │ F2 │ F4 │    ║    ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔══════╩════╣
║      ║    │    │    │    │    │    │    │    │    │    │    ║           ║
║      ║    │    │    │    │    │    │    │End │Home│    │    ║           ║
╠══════╬════╦════╦════╦════════════════════════╦════╦════╦════╬═══════════╝
║      ║    ║    ║    ║                        ║    ║    ║    ║
║      ║    ║OVRL║    ║                   TAB  ║    ║    ║    ║
╚══════╩════╩════╩════╩════════════════════════╩════╩════╩════╝
  • (changement majeur) À l'instar de l'Arensito, monter toutes les touches d'une ligne et utiliser la ligne inférieure comme ligne de modificateurs. Ça donnerait de la place pour (entre autres) remapper Enter et placer Level5 sous mon pouce gauche. Pour l'instant à l'état de brouillon ici.

Caractéristiques principales

  • rendre AltGr symétrique pour pouvoir accéder facilement aux 4 levels de toutes les touches et ainsi rendre les symboles courants en programmation plus accessibles.
  • ne pas utiliser la ligne des chiffres que je juge trop inaccessible.
  • déplacer les modificateurs (l'idée des majuscules sous les pouces et des ctrl sur la ligne des chiffres vient de Robin). La combinaison maj+altgr s'en voit facilitée des deux côtés.
  • placer un pavé numérique sur deux lignes sous la main droite. Ses lignes sont décalées pour équilibrer la charge de l'index et de l'auriculaire.
  • un accès très facile aux flèches directionnelles. Vraiment, ça change la vie.
  • les ^ et ~ sont ajoutés comme touches non-mortes pour la programmation
  • les touches spéciales placées sur l'overlay sont fréquemment utilisées sur Linux Mint pour passer d'un écran virtuel à un autre, etc. En plus, MAJ+flèche permet de sélectionnel du texte
  • altgr est duppliqué sur la ligne des chiffres pour faciliter les raccourcis ctrl-], ctrl-^ et d'autres vimités

J'ai également modifié l'emplacement initial de certaines touches:

  • Le B: Robin recommande d'intervertir le J et le B à cause de la fréquence des digrammes ja, aj, bn, nb. Le digramme mb s'en retrouve plus difficile mais on y gagne à faciliter les digrammes bl et br car ils sont effectués par des doigts voisins.
  • Le H : je n'aime vraiment pas la place du H dans le bépo original à cause du digramme ch. Vue la place peu privilégiée du H et la fréquence du J un swap H<->J me semble adéquat.
  • Le O : ma méthode de saisie (voir plus bas) encourage l'utilisation des pouces comme pivots vers l'extérieur. Je trouve donc les touches O, È, ^ et V particulièrement inaccessibles. Un swap H<->O rend le O plus accessible et facilite les digrammes ou et oi (il ne faut plus «casser» les poignets vers l'intérieur). Dans l'ensemble, ça compense le digramme he concentré sur un seul doigt.
  • déplacement du ! : c'est une exception de mettre un signe de ponctuation en altgr, mais le '^' est trop inaccessible à mon goût, et puis ça me permet de faire une touche rien qu'avec les accents morts.
  • Le S et le N : pour faciliter les trigrammes des et men.
  • swap à<->h: parce que le mot « déjà » qui revient souvent a un schéma bizarre dans mes doigts, tout comme des phrases comme « as-tu pensé à […] » où l'annulaire gauche fait un saut entre la rangée supérieure et la rangée inférieure. Autres justifications:
    • le = se trouve sur mon h (parce que H, = et ≠ ça se ressemble je trouve) serait placé à côté de ses amis + et *
    • le h est plus fréquent que le à (11298 versus 7449 sur la page des Fréquence_des_caractères) et je n'aime vraiment pas les touches au-dessus des index
    • au niveau des digrammes, « he » est largement plus fréquent que les « hu », « hé » et « ph » (1632 versus 347+173+356 d'après la fréquence des digrammes).

Justification de mes changements par rapport au bépo original

Avertissement: ne modifiez pas votre disposition bépo :D

"Le principal problème de Bépo étant qu’il évolue constamment. Un jour, faudrait leur dire qu’un clavier optimisé à 99% et disponible maintenant est préférable qu’un clavier qui change tout le temps pour être un jour optimisé à 100% alors que bon, de toutes façons, à partir du moment où on demande l’avis des gens, ils seront forcément pas contents." (Ploum)

Avant d'expliquer pourquoi j'ai changé quelle touche de place, il faut que je vous donne ma propre carte d'accessibilité (= la préférence que j'accorde personnellement à chaque touche).

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗
│    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
│    │    │    │  3 │  3 │    │    │    │  3 │  3 │    │    │    ║        ║
╔═══════╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣
║       ║    │    │    │    │    │    │    │    │    │    │    │    ║     ║
║       ║  2 │  1 │  1 │  4 │  5 │  6 │  4 │  1 │  1 │  2 │  3 │  3 ║     ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║    │    │    │    │    │    │    │    │    │    │    │    ║    ║
║        ║  0 │  0 │  0 │  0 │  1 │  1 │  0 │  0 │  0 │  0 │  1 │  3 ║    ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔══════╩════╣
║      ║    │    │    │    │    │    │    │    │    │    │    ║           ║
║      ║  1 │  4 │  2 │  2 │  1 │  5 │  1 │  2 │  2 │  4 │  1 ║           ║
╠══════╬════╦════╦════╦════════════════════════╦════╦════╦════╬═══════════╝
║      ║    ║    ║    ║                        ║    ║    ║    ║
║      ║    ║    ║    ║                        ║    ║    ║    ║
╚══════╩════╩════╩════╩════════════════════════╩════╩════╩════╝

(Plus une touche a une valeur élevée, moins je la trouve accessible.)

(à finir…)

Utilisation recommandée

  • saisie des caractères proche de la variante A (idée: utiliser les index comme pivots pour les lignes supérieures et "tirer les mains vers l'extérieur" pour la ligne inférieure)
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗
│ 1  │ 1  │ 1  │    │ 1  │    │ 1  │ 1  │    │ 1  │    │    │    ║        ║
╔═══════╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣
║       ║ 1  │    │ 1  │    │    │ 1  │ 1  │    │ 1  │    │    │    ║     ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║ 1  │    │ 1  │    │    │ 1  │ 1  │    │ 1  │    │    │    ║    ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔══════╩════╣
║      ║ 1  │    │ 1  │    │    │    │ 1  │ 1  │    │ 1  │    ║           ║
╠══════╬════╦════╦════╦════════════════════════╦════╦════╦════╬═══════════╝
║      ║    ║    ║    ║                        ║    ║    ║    ║
╚══════╩════╩════╩════╩════════════════════════╩════╩════╩════╝

Apprentissage

(à réécrire)

Installation (Linux)

En console

En mode console (par exemple, quand on fait ctrl-alt-f2, attention que pour revenir à l'interface graphique il faut appuyer sur ctrl-alt-f8), ce n'est pas xkb qui gère la disposition du clavier mais loadkeys. Du coup, il faut également configurer loadkeys si on est sur une version bidouillée. Lire la page du wiki d'Arch pour voir comment s'y prendre: on peut déplacer les ctrl, alt et autres maj ou caps-lock où on veut, mais c'est pas certain qu'il existe un mode overlay…

Plus généralement, c'est le package kbd qui prend la gestion du clavier en charge. man keymaps donne des infos sur comment écrire ses fichiers loadkeys.

XKB

  • Copier le code suivant à la fin du fichier /usr/share/X11/xkb/symbols/fr (les touches non-affectées sont toutes affectées à §).
  • Remplacer le fichier xkb/types/level5 par celui proposé ici (dans mes souvenirs avec le type "EIGHT_LEVEL_SEMIALPHABETIC", "CAPS_LOCK + Level5" agit comme "Shift + Level5" alors que "CAPS_LOCK" ne devrait pas avoir d'influence sur le pavé numérique)
  • (Note personnelle: ajouter également le fichier dans xkb/types/ dans lequel j'ai modifié la définition du tye EIGHT_LEVEL_SEMIALPHABETIC)
  • Pour activer la disposition, lancer la commande setxkbmap fr bepo2
  • Pour activer la disposition par défaut, modifier le fichier xorg.conf (locate xorg.conf pour le trouver) ou /etc/default/keyboard sur les dernières versions d'Ubuntu/Linux Mint avec les lignes
XKBLAYOUT="fr"
XKBVARIANT="bepo2"
  • Après chaque modification ultérieure, lancer commande sudo sudo rm /var/lib/xkb/* (copier préalablement le contenu du dossier /var/lib/xkb/ par sécurité...). Pour tester la validité des modifications, lancer xkbcomp /usr/share/X11/xkb/symbols/fr (s'il n'y a pas de sortie, c'est que c'est bon).
// a ajouter dans xkb/symbols/french

partial alphanumeric_keys
xkb_symbols "bepo2" {

    include "keypad(oss)" // touches standard
 
    name[Group1]= "French (Bepo2, ergonomic, derived from the Bepo by Laurent Van Eesbeeck)";
 
    key <TLDE> { type[group1] = "ONE_LEVEL", [ Caps_Lock          ]};
    key <AE01> { type[group1] = "ONE_LEVEL", [ ISO_Level3_Shift   ]};
    key <AE02> { type[group1] = "ONE_LEVEL", [ Super_L            ]};
    key <AE03> { type[group1] = "TWO_LEVEL", [ Tab , ISO_Left_Tab ]};
    key <AE04> { type[group1] = "ONE_LEVEL", [ Control_L          ]};
    key <AE05> { type[group1] = "ONE_LEVEL", [ section            ]};
    key <AE06> { type[group1] = "ONE_LEVEL", [ Terminate_Server   ]};
    key <AE07> { type[group1] = "ONE_LEVEL", [ section            ]};
    key <AE08> { type[group1] = "ONE_LEVEL", [ Control_R          ]};
    key <AE09> { type[group1] = "ONE_LEVEL", [ Alt_L              ]};
    key <AE10> { type[group1] = "ONE_LEVEL", [ Insert             ]};
    key <AE11> { type[group1] = "ONE_LEVEL", [ section            ]};
    key <AE12> { type[group1] = "ONE_LEVEL", [ Backspace          ]};
    key <BKSP> { type[group1] = "ONE_LEVEL", [ Delete             ]};

    key <TAB>  { type[group1] = "ONE_LEVEL"                , [ BackSpace      ]};
//    key <AD01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC" , [ o              , O             , oe         , OE                      ]};
    key <AD01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC" , [ o              , O             , odiaeresis , Odiaeresis              ]};
    key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC" , [ eacute         , Eacute        , ampersand  , section                 ]};
    key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC" , [ p              , P             , bar        , section                 ]};
    key <AD04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC" , [ agrave      , Agrave      , aring          , Aring          ]};
    key <AD05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC" , [ egrave         , Egrave        , grave      , section                 ]};
    key <AD06> { type[group1] = "EIGHT_LEVEL"               , [ dead_circumflex, dead_diaeresis, dead_acute , dead_grave      , equal, notequal   ]};
    key <AD07> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ v              , V             , asciicircum, section         , 5, fivesuperior , fivesubscript  ], overlay1=<PGDN>};
    key <AD08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ d              , D             , dollar     , section         , 6, sixsuperior  , sixsubscript   ], overlay1=<PGUP>};
    key <AD09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ l              , L             , less       , lessthanequal   , 7, sevensuperior, sevensubscript ]};
    key <AD10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ b              , B             , greater    , greaterthanequal, 8, eightsuperior, eightsubscript ]};
    key <AD11> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ z              , Z             , numbersign , section         , 9, ninesuperior , ninesubscript  ]};
    key <AD12> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ ccedilla       , Ccedilla      , at         , section         , percent, percent                 ]};
    key <RTRN> { type[group1] = "ONE_LEVEL"                 , [ Return                                                                ]};

    key <CAPS> { type[group1] = "ONE_LEVEL"                 , [ ISO_Level3_Shift                                           ]};
//    key <AC01> { type[group1] = "FOUR_LEVEL_ALPHABETIC"     , [ a                , A         , ae         , AE             ],  overlay1=<AE04>};
    key <AC01> { type[group1] = "FOUR_LEVEL_ALPHABETIC"     , [ a                , A         , adiaeresis , Adiaeresis     ],  overlay1=<AE04>};
    key <AC02> { type[group1] = "FOUR_LEVEL_ALPHABETIC"     , [ u                , U         , ugrave     , Ugrave         ],  overlay1=<LCTL>};
    key <AC03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ i                , I         , parenleft  , guillemotleft  , parenleft , parenleft , parenleft     ],  overlay1=<RCTL>};
    key <AC04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ e                , E         , parenright , guillemotright , parenright, parenright, parenright    ],  overlay1=<LALT>};
    key <AC05> { type[group1] = "FOUR_LEVEL"                , [ comma            , semicolon , emdash     , section        ]};
    key <AC06> { type[group1] = "EIGHT_LEVEL_ALPHABETIC"    , [ c                , C         , backslash  , section        , 0      , zerosuperior , zerosubscript ],  overlay1=<LEFT>};
    key <AC07> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ t                , T         , slash      , dead_tilde     , 1      , onesuperior  , onesubscript  ],  overlay1=<DOWN>};
    key <AC08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ n                , N         , minus      , endash         , 2      , twosuperior  , twosubscript  ],  overlay1=<UP>};
    key <AC09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ r                , R         , braceleft  , section        , 3      , threesuperior, threesubscript],  overlay1=<RGHT>};
    key <AC10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ s                , S         , braceright , section        , 4      , foursuperior , foursubscript ]};
    key <AC11> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ m                , M         , percent    , section        , period , period ]};
    key <BKSL> { type[group1] = "ONE_LEVEL"                 , [ ISO_Level3_Shift                                    ]};

    key <LFSH> { type[group1] = "ONE_LEVEL"                 , [ ISO_Level5_Shift                                            ]};
    key <LSGT> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC" , [ ecircumflex , Ecircumflex , EuroSign       , sterling       ]};
    key <AB01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC" , [ h              , H             , equal      , notequal                ]};
    key <AB02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC" , [ y           , Y           , asterisk       , section        ]};
    key <AB03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC" , [ x           , X           , plus           , plusminus      ]};
    key <AB04> { type[group1] = "FOUR_LEVEL"                , [ period      , colon       , ellipsis       , periodcentered ]};
    key <AB05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC" , [ k           , K           , degree         , section        ]};
    key <AB06> { type[group1] = "EIGHT_LEVEL"               , [ apostrophe  , question    , exclam         , approxeq       , comma    ]};
    key <AB07> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ q           , Q           , quotedbl       , section        , plus     , plusminus], overlay1=<END>};
    key <AB08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ g           , G           , underscore     , section        , minus    , minus    ], overlay1=<HOME>};
    key <AB09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ j           , J           , bracketleft    , section        , asterisk , asterisk ]};
    key <AB10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ f           , F           , bracketright   , section        , slash    , slash    ]};
    key <RTSH> { type[group1] = "ALPHABETIC"                , [ w           , W                                             ]};

    key <LCTL> { type[group1] = "ONE_LEVEL"                , [ Alt_L                                                        ]};
    key <LWIN> { type[group1] = "ONE_LEVEL"                , [ VoidSymbol ]   , actions = [ SetControls(controls=Overlay1)  ]};
    key <LALT> { type[group1] = "ONE_LEVEL"                , [ Shift_L                                                      ]};
    key <SPCE> { type[group1] = "FOUR_LEVEL"               , [ space          , nobreakspace  , asciitilde , nobreakspace   ]};
    key <RALT> { type[group1] = "ONE_LEVEL"                , [ Shift_R                                                      ]};
    key <MENU> { type[group1] = "ONE_LEVEL"                , [ Escape                                                       ]};
    key <RCTL> { type[group1] = "ONE_LEVEL"                , [ Super_R                                                      ]};
    
    modifier_map Shift   { Shift_L, Shift_R };
    modifier_map Lock    { Caps_Lock }; // caps lock
    modifier_map Control { Control_L, Control_R };
    modifier_map Mod5    { ISO_Level3_Shift }; // altgr
    modifier_map Mod3    { ISO_Level5_Shift }; // Level5
};
partial default xkb_types "default" {
    // Definition for a key type used for the czech keymap, for instance.
    // Defines style a with four level shift. It is similar to three_level
    // type used for iso9995 but it lets the shift key behave "normally".

    virtual_modifiers LevelThree,ScrollLock,LevelFive;

    type "EIGHT_LEVEL" {
        modifiers = Shift+LevelThree+LevelFive;
	map[None] = Level1;
	map[Shift] = Level2;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[LevelFive] = Level5;
	map[Shift+LevelFive] = Level6;
	map[LevelThree+LevelFive] = Level7;
	map[Shift+LevelThree+LevelFive] = Level8;
	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "Alt Base";  
	level_name[Level4] = "Shift Alt";  
	level_name[Level5] = "X";
	level_name[Level6] = "X Shift";
	level_name[Level7] = "X Alt Base";
	level_name[Level8] = "X Shift Alt";
    };

    type "EIGHT_LEVEL_ALPHABETIC" {
	modifiers = Shift+Lock+LevelThree+LevelFive;
	map[None] = Level1;
	map[Shift] = Level2;
	map[Lock]  = Level2;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[Lock+LevelThree] =  Level4;
        map[Lock+Shift+LevelThree] = Level3;

	map[LevelFive] = Level5;
	map[Shift+LevelFive] = Level6;
	map[Lock+LevelFive]  = Level6;
	map[LevelThree+LevelFive] = Level7;
	map[Shift+LevelThree+LevelFive] = Level8;
	map[Lock+LevelThree+LevelFive] =  Level8;
        map[Lock+Shift+LevelThree+LevelFive] = Level7;

	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "Alt Base";
	level_name[Level4] = "Shift Alt";
	level_name[Level5] = "X";
	level_name[Level6] = "X Shift";
	level_name[Level7] = "X Alt Base";
	level_name[Level8] = "X Shift Alt";
    };

//    type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" {
//    	// Level5-Lock is implemented by using NumLock, because a real modifier
//    	// is required.
//    	
//        modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
//
//        map[None]                                    = Level1;
//        map[Shift]                                   = Level2;
//        map[LevelThree]                              = Level3;
//        map[LevelThree+Shift]                        = Level4;
//
//        map[LevelFive]                               = Level5;
//        map[LevelFive+Shift]                         = Level6;
//        map[LevelFive+LevelThree]                    = Level7;
//        map[LevelFive+LevelThree+Shift]              = Level8;
//
//        map[NumLock]                                 = Level5;
//        map[NumLock+Shift]                           = Level6;
//        map[NumLock+LevelThree]                      = Level7;
//        map[NumLock+LevelThree+Shift]                = Level8;
//
//        map[NumLock+LevelFive]                       = Level1;
//        map[NumLock+LevelFive+Shift]                 = Level2;
//        map[NumLock+LevelFive+LevelThree]            = Level3;
//        map[NumLock+LevelFive+LevelThree+Shift]      = Level4;
//
//        // Lock has no effect
//        map[Lock]                                    = Level1;
//        map[Lock+Shift]                              = Level2;
//        map[Lock+LevelThree]                         = Level3;
//        map[Lock+LevelThree+Shift]                   = Level4;
//
//        map[Lock+LevelFive]                          = Level5;
//        map[Lock+LevelFive+Shift]                    = Level6;
//        map[Lock+LevelFive+LevelThree]               = Level7;
//        map[Lock+LevelFive+LevelThree+Shift]         = Level8;
//
//        map[Lock+NumLock]                            = Level5;
//        map[Lock+NumLock+Shift]                      = Level6;
//        map[Lock+NumLock+LevelThree]                 = Level7;
//        map[Lock+NumLock+LevelThree+Shift]           = Level8;
//
//        map[Lock+NumLock+LevelFive]                  = Level1;
//        map[Lock+NumLock+LevelFive+Shift]            = Level2;
//        map[Lock+NumLock+LevelFive+LevelThree]       = Level3;
//        map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4;
//
//        preserve[LevelFive+Shift] = Shift;
//        preserve[NumLock+Shift] = Shift;
//        preserve[Lock+LevelFive+Shift] = Shift;
//        preserve[Lock+NumLock+Shift] = Shift;
//
//        level_name[Level1] = "Base";
//        level_name[Level2] = "Shift";
//        level_name[Level3] = "Alt Base";
//        level_name[Level4] = "Shift Alt";
//        level_name[Level5] = "X";
//        level_name[Level6] = "X Shift";
//        level_name[Level7] = "X Alt Base";
//        level_name[Level8] = "X Shift Alt";
//    };
//
//    type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" {
//    	// Level5-Lock is implemented by using NumLock, because a real modifier
//    	// is required.
//    	
//        modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
//    
//        map[None]                                    = Level1;
//        map[Shift]                                   = Level2;
//        map[LevelThree]                              = Level3;
//        map[LevelThree+Shift]                        = Level4;
//
//        map[LevelFive]                               = Level5;
//        map[LevelFive+Shift]                         = Level6;
//        map[LevelFive+LevelThree]                    = Level7;
//        map[LevelFive+LevelThree+Shift]              = Level8;
//
//        map[NumLock]                                 = Level5;
//        map[NumLock+Shift]                           = Level6;
//        map[NumLock+LevelThree]                      = Level7;
//        map[NumLock+LevelThree+Shift]                = Level8;
//
//        map[NumLock+LevelFive]                       = Level1;
//        map[NumLock+LevelFive+Shift]                 = Level2;
//        map[NumLock+LevelFive+LevelThree]            = Level3;
//        map[NumLock+LevelFive+LevelThree+Shift]      = Level4;
//
//        // Lock interchanges Level1 and Level2
//        map[Lock]                                    = Level2;
//        map[Lock+Shift]                              = Level1;
//        map[Lock+LevelThree]                         = Level3;
//        map[Lock+LevelThree+Shift]                   = Level4;
//
//        map[Lock+LevelFive]                          = Level5;
//        map[Lock+LevelFive+Shift]                    = Level6;
//        map[Lock+LevelFive+LevelThree]               = Level7;
//        map[Lock+LevelFive+LevelThree+Shift]         = Level8;
//
//        map[Lock+NumLock]                            = Level5;
//        map[Lock+NumLock+Shift]                      = Level6;
//        map[Lock+NumLock+LevelThree]                 = Level7;
//        map[Lock+NumLock+LevelThree+Shift]           = Level8;
//
//        map[Lock+NumLock+LevelFive]                  = Level2;
//        map[Lock+NumLock+LevelFive+Shift]            = Level1;
//        map[Lock+NumLock+LevelFive+LevelThree]       = Level4;
//        map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3;
//
//        preserve[LevelFive+Shift] = Shift;
//        preserve[NumLock+Shift] = Shift;
//
//        level_name[Level1] = "Base";
//        level_name[Level2] = "Shift";
//        level_name[Level3] = "Alt Base";
//        level_name[Level4] = "Shift Alt";
//        level_name[Level5] = "X";
//        level_name[Level6] = "X Shift";
//        level_name[Level7] = "X Alt Base";
//        level_name[Level8] = "X Shift Alt";
//    };

    type "EIGHT_LEVEL_SEMIALPHABETIC" {
	modifiers = Shift+Lock+LevelThree+LevelFive;
	map[None] = Level1;
	map[Shift] = Level2;
	map[Lock]  = Level2;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[Lock+LevelThree] =  Level3;
        map[Lock+Shift+LevelThree] = Level4;

	map[LevelFive] = Level5;
	map[Shift+LevelFive] = Level6;
	map[Lock+LevelFive]  = Level5;
		map[Lock+Shift+LevelFive]  = Level6;
	map[LevelThree+LevelFive] = Level7;
	map[Shift+LevelThree+LevelFive] = Level8;
	map[Lock+LevelThree+LevelFive] =  Level7;
        map[Lock+Shift+LevelThree+LevelFive] = Level8;

	preserve[Lock+LevelThree] = Lock;
	preserve[Lock+Shift+LevelThree] = Lock;
	preserve[Lock+LevelFive] = Lock;
	preserve[Lock+Shift+LevelFive] = Lock;
	preserve[Lock+LevelThree+LevelFive] = Lock;
	preserve[Lock+Shift+LevelThree+LevelFive] = Lock;

	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "Alt Base";
	level_name[Level4] = "Shift Alt";
	level_name[Level5] = "X";
	level_name[Level6] = "X Shift";
	level_name[Level7] = "X Alt Base";
	level_name[Level8] = "X Shift Alt";
    };

};

VIM (en cours de changements)

J'ai remis le N et le S à leurs positions originales, cette section n'est donc pas à jour

Comme j'ai interverti le N et le S, le fichier de configuration de VIM doit être modifié en conséquence:

  • flèches directionnelles:
    • c = ←, C = haut de l'écran
    • t = ↓, T = joindre
    • n = ↑, N = aide
    • r = →, R = bas de l'écran
  • remplacement des touches ctnr:
    • jx = aller au prochain caractère x, Jx = aller au caractère x précédent
    • lmov = supprime le mouvement mov et bascule en mode insertion, L = supprime la fin de ligne et bascule en mode insertion (tester si ll supprime toute la ligne)
    • hx = remplace le caractère sous le curseur par x, H = entre en mode remplacement
    • k = cherche la prochaine occurrence de pattern (après /pattern), K = cherche l'occurrence précédente

Au passage j'ai aussi modifié la gestion des fenêtres, avec deux modificateurs (presque) symétriques: à et w. Il y a aussi d'autres modifications au passage que je ne sais pas si je garderai (remapper ê sur 0).

Mon fichier ~/.vimrc.bepo est alors le suivant:

" I. Les commandes de base
" azerty   bépo   signification (minuscule)                signification (majuscule)
" ----------------------------------------------------------------------------------
"    H      C     flèche gauche                            début d'écran
"    J      T     flèche bas                               fusionne deux lignes
"    K      N     flèche haut                              lance :!man sur le mot courant
"    L      R     flèche droite                            fin d'écran
"    C      L     supprime <mvt> puis insert               supprime la fin de ligne puis insert
"    T      J     va à l'emplacement avant le <x> suivant  va après le <x> précédent
"    N      K     relance / et ?                           relance / et ? dans l'autre sens
"    R      H     remplace le caractère sous le curseur    mode remplacement
"    W      É     mouvement jusqu'au prochain mot          jusqu'au prochain MOT

" II. La gestion des fenêtres
"	azerty		bépo	signification (minuscule)		signification (majuscule)				mnémo (bépo)
" ----------------------------------------------------------------------------------------------------------
"	<C-W>		à		préfixe pour la gestion des fenêtres, à gauche sur le clavier
"	<C-W>		w		préfixe pour la gestion des fenêtres, à droite sur le clavier
"	<C-W><C-W>	À		bascule vers la fenêtre précédente (cycle sur toutes les fenêtres)
"	<C-W>p		W		bascule vers la fenêtre précédente (alterne entre 2)
"	<C-W>h		àc		va à la fenêtre à gauche		déplace la fenêtre à l'extrême gauche
"	<C-W>j		àt		va à la fenêtre en bas			déplace la fenêtre à l'extrême bas
"	<C-W>k		àn		va à la fenêtre en haut			déplace la fenêtre à l'extrême haut
"	<C-W>l		àr		va à la fenêtre à droite		déplace la fenêtre à l'extrême droite
"	<C-W>c		we		ferme la fenêtre courante 		(rien)									exit
"	<C-W>t		wh		va à la fenêtre supérieure		déplace la fenêtre vers un nouveau tab  haut
"	<C-W>n		ww		ouvre une nouvelle fenêtre		(rien)									window
"	<C-W>r		wt/wn	déplace la fenêtre un cran vers le bas/vers le haut						t/n (flèches)
"	:vsplit<CR>	à<CR>	divise la fenêtre verticalement
"	:split<CR>	à<SPACE>divise la fenêtre horizontalement

" Remappage d'une touche en azerty: noremap bépo azerty

" remappage de h, H
noremap c h
noremap C H

" remappage de j, gj, zj, J, gJ
noremap t j
noremap gt gj
noremap zn zj
noremap T J
noremap gT gJ

" remappage de k, gk, zk, K
noremap n k
noremap gn gk
noremap zt zk
noremap N K

" remappage de l, L
noremap r l
noremap R L

" remappage de c, C
noremap l c
noremap L C

" remappage de t, T
noremap j t
noremap J T

" remappage de n, N
noremap k n
noremap K N

" remappage de r, R
noremap h r
noremap H R

" remappage de w, W, aw, aW, iw, iW (les text objects du mot courant)
noremap é w
noremap É W
onoremap aé aw
onoremap aÉ aW
onoremap ié iw
onoremap iÉ iW

 
" Navigation des onglets
" onglet précédant / suivant
noremap gb gT
noremap gé gt
" premier / dernier onglet
noremap gB :exe "silent! tabfirst"<CR>
noremap gÉ :exe "silent! tablast"<CR>
 

"Le gestionnaire des fenêtres
" définition des préfixes et commandes fréquentes
noremap à <C-w>
noremap À <C-w><C-w>
noremap w <C-w>
noremap W <C-w>p
noremap à<SPACE> :vsplit<CR>
noremap à<CR> :split<CR>

" pour utiliser ctnr comme hjkl
" même si j est mappé sur t et à est mappé sur <C-w>,
" il faut quand même remapper àt sur <C-w>j
noremap àc <C-w>h
noremap àC <C-w>H
noremap àt <C-w>j
noremap àT <C-w>J
noremap àn <C-w>k
noremap àN <C-w>K
noremap àr <C-w>l
noremap àR <C-w>L

" réattribue ce qui était attribué à ctnr
noremap we <C-w>c
noremap wh <C-w>t
noremap wH <C-w>T
noremap ww <C-w>n
noremap wt <C-w>r
noremap wn <C-w>R


" Remappage personnel:
" ê va au début de ligne, Ê va au premier caractère non-blanc de la ligne
" (plus accessibles que 0 et ^ sur mon clavier)
" mémo: ^ est l'accent de Ê
noremap ê 0
noremap Ê ^
" idem pour le début de la ligne sur l'écran
noremap gê g0
noremap gÊ g^
" ç est remappé sur ` (utilisé pour atteindre un mark)
" mnémo: ç est sur la même touche que @ (lance une macro)
noremap ç `

Gmail

Gmail possède une option pour parcourir ses mails avec des raccourcis claviers. Cette option est encore expérimentale, c'est pourquoi il faut l'activer manuellement dans "roue crantée > paramètres > labos". Le mieux, c'est qu'on peut redéfinir ses raccourcis claviers dans le menu "roue crantée > paramètres > raccourcis claviers". Personnellement j'ai désactivé les raccourcis correspondant aux actions que je n'utilise jamais et j'ai associé les raccourcis suivants (l'idéal est de choisir des moyens mnémotechniques pour les retenir):

c	va au message précédent dans une discussion
t	va à la conversation suivante dans un dossier
n	va à la conversation précédente dans un dossier
r	va au message suivant dans une discussion

x	sélectionne la discussion (coche la case)
d	supprime (Delete)
o	Ouvrir le message sélectionné
m/M	écrire un nouveau Message
u/U	annuler la dernière action (Undo)/mettre à jour la conversation (Update)
g	retour à la liste des conversations (unGo ou Gmail)
,/;	marquer comme lu/non lu
p/P	réPondre/réPondre dans une nouvelle fenêtre
a/A	répondre à tous (All)/répondre à tous dans une nouvelle fenêtre
f/F	transférer (Forward)/transférer dans une nouvelle fenêtre
l	ouvre le menu « appliquer le libellé »
e	archiver

i	accède à la boite de réception (Inbox)
É	accède aux messages envoyÉs
B	accède aux Brouillons
C	accède aux Contacts
T	accède à Tous les messages

/	sélectionne la barre de recherche
L	cherche pour un label

?	afficher les raccourcis clavier

Autour du clavier

Je suis passé à VIM comme éditeur de texte par défaut. Comme pour bépo, il a une courbe d'apprentissage/d'adaptation assez raide, mais il surpasse de loin les éditeurs de texte standards.

Pour plus tard:

  • changer mon gestionnaire de fenêtres vers quelque chose optimisé pour une utilisation au clavier. On m'a recommandé récemment i3 que j'essayerais bien. D'autres gestionnaires de fenêtre qui ont l'air intéressant: wmii, scrotwm.
  • passer à un clavier Tipro. Avec son clavier orthogonal entièrement personnalisable sur 8 lignes, je pourrai y placer mes modificateurs et touches spéciales (MAJ, CTRL, ALT, ALTGR, ESC, TAB, …) où je veux. :-)
  • Les claviers Ergodox ont l'air cool à bidouiller aussi

Liens utiles et tout ce qui n'a pas sa place ailleurs

Pour en savoir plus sur la syntaxe utilisée dans le wiki: http://meta.wikimedia.org/wiki/Help:Wikitext_examples/fr

Un article que je lirai un jour: http://mtgap.bilfo.com/keyboard.html

http://www.lexique.org/listes/liste_bigrammes.txt des statistiques sur les bigrammes de la langue française, utile si on veut modifier le bépo original

Je suis en dualboot Windows 7/Linux et pour l'instant Windows est resté sagement en azerty. Un jour il faudrait que j'explore PKL pour voir si je peux également bidouiller ma disposition sur Windows.

Un lien vers les symboles ascii, utiles pour dessiner un clavier: http://www.toutimages.com/codes_caracteres.htm

╔ ╗ ╚ ╝ ╩ ╦ ╠ ╣ ═ ║ ╬
┌ ┐ └ ┘ ┴ ┬ ├ ┤ ─ │ ┼

Pour s'habituer au pavé numérique, on peut s'exercer en recopiant les décimales de pi. Voici ses 2400 premières décimales, trouvées sur http://trucsmaths.free.fr/images/pi/pi2400.htm

3,141 592 653 589 793 238 462 643 383 279 502 884 197 169 399 375 105 820 974 944 592 307 816 406 286 208 998 628 034 825 342 117 067 982 148 086 513 282 306 647 093 844 609 550 582 231 725 359 408 128 481 117 450 284 102 701 938 521 105 559 644 622 948 954 930 381 964 428 810 975 665 933 446 128 475 648 233 786 783 165 271 201 909 145 648 566 923 460 348 610 454 326 648 213 393 607 260 249 141 273 724 587 006 606 315 588 174 881 520 920 962 829 254 091 715 364 367 892 590 360 011 330 530 548 820 466 521 384 146 951 941 511 609 433 057 270 365 759 591 953 092 186 117 381 932 611 793 105 118 548 074 462 379 962 749 567 351 885 752 724 891 227 938 183 011 949 129 833 673 362 440 656 643 086 021 394 946 395 224 737 190 702 179 860 943 702 770 539 217 176 293 176 752 384 674 818 467 669 405 132 000 568 127 145 263 560 827 785 771 342 757 789 609 173 637 178 721 468 440 901 224 953 430 146 549 585 371 050 792 279 689 258 923 542 019 956 112 129 021 960 864 034 418 159 813 629 774 771 309 960 518 707 211 349 999 998 372 978 049 951 059 731 732 816 096 318 595 024 459 455 346 908 302 642 522 308 253 344 685 035 261 931 188 171 010 003 137 838 752 886 587 533 208 381 420 617 177 669 147 303 598 253 490 428 755 468 731 159 562 863 882 353 787 593 751 957 781 857 780 532 171 226 806 613 001 927 876 611 195 909 216 420 198 938 095 257 201 065 485 863 278 865 936 153 381 827 968 230 301 952 035 301 852 968 995 773 622 599 413 891 249 721 775 283 479 131 515 574 857 242 454 150 695 950 829 533 116 861 727 855 889 075 098 381 754 637 464 939 319 255 060 400 927 701 671 139 009 848 824 012 858 361 603 563 707 660 104 710 181 942 955 596 198 946 767 837 449 448 255 379 774 726 847 104 047 534 646 208 046 684 259 069 491 293 313 677 028 989 152 104 752 162 056 966 024 058 038 150 193 511 253 382 430 035 587 640 247 496 473 263 914 199 272 604 269 922 796 782 354 781 636 009 341 721 641 219 924 586 315 030 286 182 974 555 706 749 838 505 494 588 586 926 995 690 927 210 797 509 302 955 321 165 344 987 202 755 960 236 480 665 499 119 881 834 797 753 566 369 807 426 542 527 862 551 818 417 574 672 890 977 772 793 800 081 647 060 016 145 249 192 173 217 214 772 350 141 441 973 568 548 161 361 157 352 552 133 475 741 849 468 438 523 323 907 394 143 334 547 762 416 862 518 983 569 485 562 099 219 222 184 272 550 254 256 887 671 790 494 601 653 466 804 988 627 232 791 786 085 784 383 827 967 976 681 454 100 953 883 786 360 950 680 064 225 125 205 117 392 984 896 084 128 488 626 945 604 241 965 285 022 210 661 186 306 744 278 622 039 194 945 047 123 713 786 960 956 364 371 917 287 467 764 657 573 962 413 890 865 832 645 995 813 390 478 027 590 099 465 764 078 951 269 468 398 352 595 709 825 822 620 522 489 407 726 719 478 268 482 601 476 990 902 640 136 394 437 455 305 068 203 496 252 451 749 399 651 431 429 809 190 659 250 937 221 696 461 515 709 858 387 410 597 885 959 772 975 498 930 161 753 928 468 138 268 683 868 942 774 155 991 855 925 245 953 959 431 049 972 524 680 845 987 273 644 695 848 653 836 736 222 626 099 124 608 051 243 884 390 451 244 136 549 762 780 797 715 691 435 997 700 129 616 089 441 694 868 555 848 406 353 422 072 225 828 488 648 158 456 028 50

Deux claviers vierges: un large et un étroit

┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────╔════════════════╗
│        │        │        │        │        │        │        │        │        │        │        │        │        ║                ║
│        │        │        │        │        │        │        │        │        │        │        │        │        ║                ║
╔══════════════╗──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──┴─────┬──╚═════╦══════════╣
║              ║        │        │        │        │        │        │        │        │        │        │        │        ║          ║
║              ║        │        │        │        │        │        │        │        │        │        │        │        ║          ║
╠══════════════╩═╗──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────╚═╗        ║
║                ║        │        │        │        │        │        │        │        │        │        │        │        ║        ║
║                ║        │        │        │        │        │        │        │        │        │        │        │        ║        ║
╠═══════════╦════╝───┬────┴───┬────┴───┬────┴──════──┴───┬────┴───┬────┴──════──┴───┬────┴───┬────┴───┬────┴───╔═════════════╩════════╣
║           ║        │        │        │        │        │        │        │        │        │        │        ║                      ║
║           ║        │        │        │        │        │        │        │        │        │        │        ║                      ║
╠═══════════╬════════╦════════╦════════╦════════════════════════════════════════════╦════════╦════════╦════════╬══════════════════════╝
║           ║        ║        ║        ║                                            ║        ║        ║        ║
║           ║        ║        ║        ║                                            ║        ║        ║        ║
╚═══════════╩════════╩════════╩════════╩════════════════════════════════════════════╩════════╩════════╩════════╝

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗
│    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
│    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
╔═══════╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣
║       ║    │    │    │    │    │    │    │    │    │    │    │    ║     ║
║       ║    │    │    │    │    │    │    │    │    │    │    │    ║     ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║    │    │    │    │    │    │    │    │    │    │    │    ║    ║
║        ║    │    │    │    │    │    │    │    │    │    │    │    ║    ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔══════╩════╣
║      ║    │    │    │    │    │    │    │    │    │    │    ║           ║
║      ║    │    │    │    │    │    │    │    │    │    │    ║           ║
╠══════╬════╦════╦════╦════════════════════════╦════╦════╦════╬═══════════╝
║      ║    ║    ║    ║                        ║    ║    ║    ║
║      ║    ║    ║    ║                        ║    ║    ║    ║
╚══════╩════╩════╩════╩════════════════════════╩════╩════╩════╝