Forum bépo

Forum des utilisateurs du bépo

Vous n'êtes pas identifié(e).

#1 8/8/2016 20:09:00

Yahyalexandre
Membres
Inscription : 7/8/2016
Messages : 13

Variante programmeur "level 5"

N’étant pas satisfait par les variantes pour programmeur que j’ai vu jusqu’à présent, je propose ma variante pour GNU/Linux, basée sur une touche modificatrice de niveaux 5.

Je l’ai disposée à 2 endroits : <CAPS> et <MENU>.

    include "level5(modifier_mapping)"

    key <CAPS> { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] };
    key <MENU> { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] };

Mais vous pouvez les disposer ailleurs bien sur…

Pour obtenir l’effet du verrou majuscule, on appuie simultanément sur les 2 Shifts :

    include "shift(both_capslock)"

Voilà le tableau du niveau 5 :

┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓
│     │     │     │     │     │     │     │     │     │     │     │     │     ┃          ┃
│     │ 1   │ 2   │ 3   │ 4   │ 5   │ 6   │ 7   │ 8   │ 9   │ 0   │     │     ┃ ⌫        ┃
┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫
┃        ┃ @   │ [   │ ]   │ \   │ %   │ ^   │ |   │ =   │ +   │ ?   │ -   │     ┃       ┃
┃ ↹      ┃     │     │     │     │     │     │     │     │     │     │     │     ┃       ┃
┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓  ⏎   ┃
┃         ┃ ;   │ {   │ }   │ ,   │ #   │ &   │ "   │ <   │ >   │ '   │ `   │     ┃      ┃
┃ Mod 5   ┃     │     │     │     │     │     │     │     │     │     │     │     ┃      ┃
┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫
┃      ┃     │ :   │ (   │ )   │ _   │ *   │ ~   │ /   │ .   │ $   │ !   ┃               ┃
┃ ⇧    ┃     │     │     │     │     │     │     │     │     │     │     ┃ ⇧             ┃
┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫
┃       ┃       ┃       ┃                                ┃       ┃       ┃       ┃       ┃
┃ Ctrl  ┃ Super ┃ Alt   ┃                                ┃ AltGr ┃ Super ┃ Mod 5 ┃ Ctrl  ┃
┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛

Justifications de l’emplacement de certains symboles les uns par rapport aux autres :

— « ; » : permet de fermer facilement les blocs « { } », « [ ] » et « ( ) » ;
— « / » : pour fermer les balises « < > » ;
— « ~ » : pour les chemins absolus partant du répertoire personnel « ~/ » et « ~/. » ;
— « = » : pour instancier les variables avec les guillemets « " " » et « ' ' ».

De plus, avec le petit doigt de la main gauche sur <CAPS>, on peut atteindre aisément  « { } », « [ ] » et « ( ) » avec l’index et le majeur, le « ; » avec l’annulaire, et avec la main droite « / », « " »…


Et voilà le bloc de code à placer dans /usr/share/X11/xkb/symbols/fr :

partial alphanumeric_keys modifier_keys
xkb_symbols "bepo5" {

    name[Group1]= "French (Bepo Prog Level5)";

    key.type[Group1] = "EIGHT_LEVEL";


    //   First   row

    key  <TLDE>  {    [  dollar,           numbersign,    endash,                paragraph,             NoSymbol      ]  };

    key  <AE01>  {    [  quotedbl,         1,             emdash,                doublelowquotemark,    1             ]  };
    key  <AE02>  {    [  guillemotleft,    2,             less,                  leftdoublequotemark,   2             ]  };
    key  <AE03>  {    [  guillemotright,   3,             greater,               rightdoublequotemark,  3             ]  };
    key  <AE04>  {    [  parenleft,        4,             bracketleft,           lessthanequal,         4             ]  };
    key  <AE05>  {    [  parenright,       5,             bracketright,          greaterthanequal,      5             ]  };

    key  <AE06>  {    [  at,               6,             asciicircum,           NoSymbol,              6             ]  };
    key  <AE07>  {    [  plus,             7,             plusminus,             notsign,               7             ]  };
    key  <AE08>  {    [  minus,            8,             U2212,                 onequarter,            8             ]  };
    key  <AE09>  {    [  slash,            9,             division,              onehalf,               9             ]  };
    key  <AE10>  {    [  asterisk,         0,             multiply,              threequarters,         0             ]  };

    key  <AE11>  {    [  equal,            degree,        notequal,              minutes,               NoSymbol      ]  };
    key  <AE12>  {    [  percent,          grave,         U2030,                 seconds,               NoSymbol      ]  };


    //   Second  row

    key  <AD01>  {    [  b,                B,             bar,                   brokenbar,             at            ]  };
    key  <AD02>  {    [  eacute,           Eacute,        dead_acute,            dead_doubleacute,      bracketleft   ]  };
    key  <AD03>  {    [  p,                P,             ampersand,             section,               bracketright  ]  };
    key  <AD04>  {    [  o,                O,             oe,                    OE,                    backslash     ]  };
    key  <AD05>  {    [  egrave,           Egrave,        dead_grave,            grave,                 percent       ]  };

    key  <AD06>  {    [  dead_circumflex,  exclam,        exclamdown,            NoSymbol,              asciicircum   ]  };
    key  <AD07>  {    [  v,                V,             dead_caron,            NoSymbol,              bar           ]  };
    key  <AD08>  {    [  d,                D,             eth,                   ETH,                   equal         ]  };
    key  <AD09>  {    [  l,                L,             dead_stroke,           NoSymbol,              plus          ]  };
    key  <AD10>  {    [  j,                J,             U0133,                 U0132,                 question      ]  };

    key  <AD11>  {    [  z,                Z,             schwa,                 SCHWA,                 NoSymbol      ]  };
    key  <AD12>  {    [  w,                W,             dead_breve,            NoSymbol,              NoSymbol      ]  };


    //   Third   row

    key  <AC01>  {    [  a,                A,             ae,                    AE,                    semicolon     ]  };
    key  <AC02>  {    [  u,                U,             ugrave,                Ugrave,                braceleft     ]  };
    key  <AC03>  {    [  i,                I,             dead_diaeresis,        dead_abovedot,         braceright    ]  };
    key  <AC04>  {    [  e,                E,             EuroSign,              dead_currency,         comma         ]  };
    key  <AC05>  {    [  comma,            semicolon,     rightsinglequotemark,  dead_horn,             numbersign    ]  };

    key  <AC06>  {    [  c,                C,             copyright,             U017F,                 ampersand     ]  };
    key  <AC07>  {    [  t,                T,             thorn,                 THORN,                 quotedbl      ]  };
    key  <AC08>  {    [  s,                S,             ssharp,                U1E9E,                 less          ]  };
    key  <AC09>  {    [  r,                R,             registered,            trademark,             greater       ]  };
    key  <AC10>  {    [  n,                N,             dead_tilde,            NoSymbol,              apostrophe    ]  };

    key  <AC11>  {    [  m,                M,             dead_macron,           masculine,             grave         ]  };
    key  <BKSL>  {    [  ccedilla,         Ccedilla,      dead_cedilla,          dead_belowcomma,       NoSymbol      ]  };


    //   Fourth  row

    key  <LSGT>  {    [  ecircumflex,      Ecircumflex,   slash,                 NoSymbol,              NoSymbol      ]  };
    key  <AB01>  {    [  agrave,           Agrave,        backslash,             NoSymbol,              colon         ]  };
    key  <AB02>  {    [  y,                Y,             braceleft,             leftsinglequotemark,   parenleft     ]  };
    key  <AB03>  {    [  x,                X,             braceright,            rightsinglequotemark,  parenright    ]  };
    key  <AB04>  {    [  period,           colon,         ellipsis,              periodcentered,        underscore    ]  };
    key  <AB05>  {    [  k,                K,             asciitilde,            NoSymbol,              asterisk      ]  };

    key  <AB06>  {    [  apostrophe,       question,      questiondown,          dead_hook,             asciitilde    ]  };
    key  <AB07>  {    [  q,                Q,             dead_abovering,        dead_belowdot,         slash         ]  };
    key  <AB08>  {    [  g,                G,             dead_greek,            NoSymbol,              period        ]  };
    key  <AB09>  {    [  h,                H,             dagger,                doubledagger,          dollar        ]  };
    key  <AB10>  {    [  f,                F,             dead_ogonek,           ordfeminine,           exclam        ]  };


    key  <SPCE>  {    [  space,            nobreakspace,  underscore,            U202F,                 space         ]  };

    include "shift(both_capslock)"
    include "level3(ralt_switch)"
    include "level5(modifier_mapping)"

    key <CAPS> { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] };
    key <MENU> { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] };
};

Pour l’utiliser : 

setxkbmap fr -variant bepo5

J’attends des retours pour éventuellement changer l’emplacement des symboles…

Dernière modification par Yahyalexandre (9/8/2016 01:20:42)

Hors ligne

#2 17/8/2018 13:34:53

LilianBeug
Membres
Inscription : 24/9/2017
Messages : 19

Re : Variante programmeur "level 5"

Salut Yahyalexandre,

Désolé de déterrer un vieux sujet, mais ça me fais de la peine que personne n’est répondu.
Ta proposition ne manque pourtant pas de qualité.
C’est sans doute que les claviers qui proposent une touche pour le «level 5» ne sont pas légions.
Du coup, il faut toujours sacrifier une touche pour avoir le «level 5».
Utiliser la touche «menu» est sans doute le meilleur choix. Vu qu’on l’a aussi en «clic droit».

Pour ma part, je trouve effectivement que le «level5» devient indispensable quand on veut étendre les possibilités.
C’est pourquoi je le prévois sur le futur clavier ToucheLibre.

Deux questions techniques me taraude :
1/
Est qu’avec l’utilisation de «key.type[Group1] = "EIGHT_LEVEL";» le «level6» est obtenu par «level5 + MAJ» ?
Et les levels 7 et 8, on fait comment ?

2/
Comment faire pour avoir aussi les level5 et 6  sous Windows ?

Hors ligne

#3 17/8/2018 16:24:22

Yahyalexandre
Membres
Inscription : 7/8/2016
Messages : 13

Re : Variante programmeur "level 5"

Je te remercie.

Pour répondre à tes questions :

1/ Shift + L5 : L6
L3 (AltGr) + L5 : L7
Shift + L3 + L5 : L8.

2/ Je ne sais pas comment, mais ça doit être possible car la disposition Neo (allemand) propose le concept pour Linux et Windows...

Dernière modification par Yahyalexandre (17/8/2018 17:09:00)

Hors ligne

#4 17/8/2018 18:23:54

LilianBeug
Membres
Inscription : 24/9/2017
Messages : 19

Re : Variante programmeur "level 5"

Super merci. Je m’en va essayer ça…

Je suis tombé sur un extrait de la norme ISO9995.
Il y a un truc bizarre. Dans l’iso AltGr ne semble pas fait de la même manière :
Pour eux, AltGr = Groupe2 + direct
Alors que dans GNU/Linux, AltGr = Groupe1 + level3.

Du coup, existe-t-il un groupe2 dans GNU/Linux ?

Hors ligne

#5 17/8/2018 18:47:58

Yahyalexandre
Membres
Inscription : 7/8/2016
Messages : 13

Re : Variante programmeur "level 5"

Oui ça existe, il y a même un lock group2 de mémoire (comme caps lock). Ce qui fait, si tu combines avec les 8 levels, 16 possibilités par touches...

Hors ligne

Pied de page des forums