Utilisateur:Lawrent

De Disposition de clavier bépo

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

Disposition complète

(le clavier est dessiné tel qu'il est sur mon pc)

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

Caractéristiques principales

A l'exception du ç et du w inversées pour l'anglais, j'ai gardé la disposition des lettres initiale du bépo. Pour le reste, j'ai presque tout modifié avec en tête les contraintes suivantes:

  • limiter au strict minimum l'usage de la ligne des chiffres, pas assez accessible à mon gout
  • rendre les symboles de programmation très accessibles avec la priorité aux symboles courants en LaTeX (remarque: en LaTeX, ~ est une espace insécable, c'est pourquoi il est placé sur la barre d'espace)
  • placer un pavé numérique sur le clavier

Dans les caractéristiques principales, on peut noter

  • un altgr symétrique
  • maj gauche inversé avec caps lock, la touche caps lock étant plus accessible. En particulier, la combinaison altgr+maj à gauche devient très accessible
  • les +-*/= sont duppliqués pour pouvoir utiliser le pavé numérique de manière indépendante du reste du clavier

Je destine ma configuration à un usage personnel (et donc personnalisé), c'est pourquoi beaucoup de caractères sont absents (ce qui me laisse de la place disponible si je veux ajouter des caractères plus tard).

Parmi mes gadgets, j'ai ajouté

  • des flèches directionnelles "un peu comme vim" sur la ligne supérieure (je les ai mises là où j'ai trouvé de la place)
  • la touche ESC sur le ê, rendue volontairement très accessible pour son usage dans vim
  • les touches INSERT et DELETE sont plus accessible que sur un clavier standard parce que je les utilise souvent

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  │    ║           ║
╠══════╬════╦════╦════╦════════════════════════╦════╦════╦════╬═══════════╝
║      ║    ║    ║    ║                        ║    ║    ║    ║
╚══════╩════╩════╩════╩════════════════════════╩════╩════╩════╝
  • usage du caps lock: en fait, cette touche est très utile! Par exemple, pour écrire LASER, je tape: <caps lock>laser<caps lock>. Pas besoin de faire danser les auriculaires sur maj gauche et maj droit.

Apprentissage

Dans un premier temps, je suis peu convaincu de l'utilité des exercices de type "nu su er na isu ra etti". Ils sont utiles pour les perfectionnistes qui veulent encore améliorer leur frappe mais pas pour les débutants. Je crois que la meilleure manière d'apprendre passe par l'écriture de mots et de phrases de la vie de tous les jours. Personnellement, je copie-colle les exercices dans un fichier, j'appuie sur Insert et je réécris le texte caractère par caractère.

Pour les programmeurs qui veulent personnaliser leur apprentissage, on peut écrire un script sur base d'un fichier dictionnaire, par exemple celui sur http://www.pallier.org/ressources/dicofr/dicofr.html .

Lorsque je connaitrai tout le clavier, je compte m'exercer sur les textes du recueil d'Amic.

Installation (Linux)

  • Copier le code suivant à la fin du fichier /usr/share/X11/xkb/symbols/fr (les touches non-affectées sont toutes affectées à §).
  • 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é...)
// a ajouter dans xkb/symbols/fr

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] = "FOUR_LEVEL"               , [ twosuperior    , threesuperior , section             , section      ]};
    key <AE01> { type[group1] = "FOUR_LEVEL"               , [ degree         , section       , section             , section      ]};
    key <AE02> { type[group1] = "FOUR_LEVEL"               , [ emdash         , endash        , section             , section      ]};
    key <AE03> { type[group1] = "FOUR_LEVEL"               , [ parenleft      , guillemotleft , section             , section      ]};
    key <AE04> { type[group1] = "FOUR_LEVEL"               , [ parenright     , guillemotright, section             , section      ]};
    key <AE05> { type[group1] = "FOUR_LEVEL"               , [ section        , section       , section             , section      ]};
    key <AE06> { type[group1] = "FOUR_LEVEL"               , [ section        , section       , section             , section      ]};
    key <AE07> { type[group1] = "FOUR_LEVEL"               , [ section        , section       , KP_Left             , section      ]};
    key <AE08> { type[group1] = "FOUR_LEVEL"               , [ plus           , section       , KP_Down             , KP_Page_Up   ]};
    key <AE09> { type[group1] = "FOUR_LEVEL"               , [ minus          , figdash       , KP_Up               , KP_Page_Down ]};
    key <AE10> { type[group1] = "FOUR_LEVEL"               , [ asterisk       , section       , KP_Right            , section      ]};
    key <AE11> { type[group1] = "FOUR_LEVEL"               , [ slash          , section       , section             , section      ]};
    key <AE12> { type[group1] = "FOUR_LEVEL"               , [ equal          , section       , section             , section      ]};
    key <BKSP> { type[group1] = "FOUR_LEVEL"               , [ BackSpace      , BackSpace     , Delete              , Delete       ]};

    key <TAB>  { type[group1] = "TWO_LEVEL"                , [ Tab            , ISO_Left_Tab                                       ]};
    key <AD01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ b              , B             , bar                 , section      ]};
    key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute         , Eacute        , ampersand           , section      ]};
    key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ p              , P             , section             , section      ]};
    key <AD04> { type[group1] = "FOUR_LEVEL_ALPHABETIC"    , [ o              , O             , oe                  , OE           ]};
    key <AD05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave         , Egrave        , section             , section      ]};
    key <AD06> { type[group1] = "FOUR_LEVEL"               , [ dead_circumflex, exclam        , section             , comma        ]};
    key <AD07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ v              , V             , asciicircum         , 5            ]};
    key <AD08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ d              , D             , underscore          , 6            ]};
    key <AD09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ l              , L             , less                , 7            ]};
    key <AD10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ j              , J             , greater             , 8            ]};
    key <AD11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ z              , Z             , percent             , 9            ]};
    key <AD12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ccedilla       , Ccedilla      , section             , section      ]};
    key <RTRN> { type[group1] = "ONE_LEVEL"                , [ Return                                                              ]};

    key <CAPS> { type[group1] = "ONE_LEVEL"                , [ Shift_L                                                             ]};
    key <AC01> { type[group1] = "FOUR_LEVEL_ALPHABETIC"    , [ a              , A             , ae                  , AE           ]};
    key <AC02> { type[group1] = "FOUR_LEVEL_ALPHABETIC"    , [ u              , U             , ugrave              , Ugrave       ]};
    key <AC03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i              , I             , dead_diaeresis      , section      ]};
    key <AC04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ e              , E             , EuroSign            , section      ]};
    key <AC05> { type[group1] = "FOUR_LEVEL"               , [ comma          , semicolon     , rightsinglequotemark, section      ]};
    key <AC06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ c              , C             , slash               , period       ]};
    key <AC07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ t              , T             , backslash           , 0            ]};
    key <AC08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ s              , S             , dollar              , 1            ]};
    key <AC09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ r              , R             , braceleft           , 2            ]};
    key <AC10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ n              , N             , braceright          , 3            ]};
    key <AC11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ m              , M             , numbersign          , 4            ]};
    key <BKSL> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ w              , W             , section             , section      ]};

    key <LFSH> { type[group1] = "FOUR_LEVEL"               , [ Caps_Lock      , Caps_Lock     , Insert              , Insert       ]};
    key <LSGT> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ecircumflex    , Ecircumflex   , Escape              , section      ]};
    key <AB01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ agrave         , Agrave        , at                  , section      ]};
    key <AB02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ y              , Y             , Prior               , section      ]};
    key <AB03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ x              , X             , Next                , section      ]};
    key <AB04> { type[group1] = "FOUR_LEVEL"               , [ period         , colon         , ellipsis            , section      ]};
    key <AB05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ k              , K             , section             , section      ]};
    key <AB06> { type[group1] = "FOUR_LEVEL"               , [ apostrophe     , question      , quotedbl            , equal        ]};
    key <AB07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ q              , Q             , leftsinglequotemark , plus         ]};
    key <AB08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ g              , G             , rightsinglequotemark, minus        ]};
    key <AB09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ h              , H             , bracketleft         , asterisk     ]};
    key <AB10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ f              , F             , bracketright        , slash        ]};
    key <RTSH> { type[group1] = "ONE_LEVEL"                , [ Shift_R                                                             ]};

    key <LCTL> { type[group1] = "ONE_LEVEL"                , [ Control_L                                                           ]};
    key <LWIN> { type[group1] = "ONE_LEVEL"                , [ Alt_R                                                               ]};
    key <LALT> { type[group1] = "ONE_LEVEL"                , [ ISO_Level3_Shift                                                    ]};
    key <SPCE> { type[group1] = "FOUR_LEVEL"               , [ space          , nobreakspace  , asciitilde          , space        ]};
    key <RALT> { type[group1] = "ONE_LEVEL"                , [ ISO_Level3_Shift                                                    ]};
    key <MENU> { type[group1] = "TWO_LEVEL"                , [ Super_L        , Menu                                               ]};
    key <RCTL> { type[group1] = "ONE_LEVEL"                , [ Control_R                                                           ]};

    modifier_map Control { <LCTL>, <RCTL> };
    modifier_map Shift   { <CAPS>, <RTSH> };
    modifier_map Mod1    { <LWIN>         }; // alt
    modifier_map Mod5    { <LALT>, <RALT> }; // altgr
};

Disposition par thème

  • disposition générale
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗
│ ³  │    │ –  │ «  │ »  │    │    │    │    │ −  │    │    │    ║        ║    – (demi-cadratin)  − (signe moins)
│ ²  │ °  │ —  │ (  │ )  │    │    │    │ +  │ -  │ *  │ /  │ =  ║ ←—— DEL║    — (cadratin)       - (tiret)
╔═══════╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣
║  |←—  ║ B  │ É  │ P  │ O Œ│ È  │ !  │ V  │ D  │ L  │ J  │ Z  │ Ç  ║   | ║
║  —→|  ║    │    │    │    │    │ ^  │    │    │    │    │    │    ║ ←—' ║    ^ (accent)
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║ A Æ│ U Ù│ I  │ E  │ ;  │ C  │ T  │ S  │ R  │ N  │ M  │ W  ║    ║
║   MAJ  ║    │    │   "│   €│ , ’│    │    │    │    │    │    │    ║    ║    " (accent)         ’ (apostrophe typographique)
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔══════╩════╣
║      ║ Ê  │ À  │ Y  │ X  │ :  │ K  │ ?  │ Q  │ G  │ H  │ F  ║           ║
║ CPSLK║    │   @│    │    │ . …│    │ ' "│    │    │    │    ║     MAJ   ║    ' (apostrophe)     " (guillemets)
╠══════╬════╦════╦════╦════════════════════════╦════╦════╦════╬═══════════╝
║      ║    ║    ║    ║ [espace ins]           ║    ║    ║    ║
║ CTRL ║ Fn ║Alt ║AltG║ [espace]               ║AltG║ Win║Ctrl║
╚══════╩════╩════╩════╩════════════════════════╩════╩════╩════╝
  • disposition "programmation"
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗
│    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
│    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
╔═══════╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣
║       ║    │    │    │    │    │    │    │    │    │    │    │    ║     ║
║       ║   |│   &│    │    │    │    │   ^│   _│   <│   >│   %│    ║     ║    ^ (touche non-morte)
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║    │    │    │    │    │    │    │    │    │    │    │    ║    ║
║        ║    │    │    │    │    │   /│   \│   $│   {│   }│   #│    ║    ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔══════╩════╣
║      ║    │    │    │    │    │    │    │    │    │    │    ║           ║
║      ║    │    │    │    │    │    │    │   `│   ´│   [│   ]║           ║    ` (touche non-morte)     ´ (touche non-morte)
╠══════╬════╦════╦════╦════════════════════════╦════╦════╦════╬═══════════╝
║      ║    ║    ║    ║                        ║    ║    ║    ║
║      ║    ║    ║AltG║                    ~   ║AltG║    ║    ║                ~ (touche non-morte)
╚══════╩════╩════╩════╩════════════════════════╩════╩════╩════╝
  • disposition "pavé numérique"
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗
│    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
│    │    │    │    │    │    │    │    │    │    │    │    │    ║        ║
╔═══════╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣
║       ║    │    │    │    │    │   ,│   5│   6│   7│   8│   9│    ║     ║    , (virgule)
║       ║    │    │    │    │    │    │    │    │    │    │    │    ║     ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║    │    │    │    │    │   .│   0│   1│   2│   3│   4│    ║    ║    . (point)
║ MAJ    ║    │    │    │    │    │    │    │    │    │    │    │    ║    ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔══════╩════╣
║      ║    │    │    │    │    │    │   =│   +│   -│   *│   /║           ║    - (tiret)
║      ║    │    │    │    │    │    │    │    │    │    │    ║           ║
╠══════╬════╦════╦════╦════════════════════════╦════╦════╦════╬═══════════╝
║      ║    ║    ║    ║               [space]  ║    ║    ║    ║
║      ║    ║    ║AltG║                        ║    ║    ║    ║
╚══════╩════╩════╩════╩════════════════════════╩════╩════╩════╝
  • disposition "gadgets"
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗
│    │    │    │    │    │    │    │    │PgDn│PgUp│    │    │    ║        ║
│    │    │    │    │    │    │    │   ←│   ↓│   ↑│   →│    │    ║        ║
╔═══════╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣
║       ║    │    │    │    │    │    │    │    │    │    │    │    ║     ║
║  INS  ║    │    │    │    │    │    │    │    │    │    │    │    ║     ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║    │    │    │    │    │    │    │    │    │    │    │    ║    ║
║        ║    │    │    │    │    │    │    │    │    │    │    │    ║    ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔══════╩════╣
║      ║    │    │    │    │    │    │    │    │    │    │    ║           ║
║      ║ ESC│    │    │    │    │    │    │    │    │    │    ║           ║
╠══════╬════╦════╦════╦════════════════════════╦════╦════╦════╬═══════════╝
║      ║    ║    ║    ║                        ║    ║    ║    ║
║      ║    ║    ║AltG║                        ║AltG║    ║    ║
╚══════╩════╩════╩════╩════════════════════════╩════╩════╩════╝

Divers

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

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

Deux claviers vierges: un large et un étroit

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

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