« Utilisateur:Kikoun/bepo intl » : différence entre les versions

De Disposition de clavier bépo
 
(7 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{| align="right" width="260px"
|{{Cadre
|titre=BÉPO-intl
|code couleur=rouge
|logo=Méthodologie.png
|logo_editlien=Note.png
|contenu=
'''Le bépo «international»'''. Exemples d’adaptations du bépo :
* [[Utilisateur:Kaze/Bépo-intl|Kaze/Bépo-intl]]
* [[Utilisateur:Nemolivier|Nemolivier/Bépo-intl]]
* [[Utilisateur:Flamme/bépo-intl]]
}}
|}
== Premier Jet ==
== Premier Jet ==
[[/bepo_intl_old|Mes anciennes idées pour le bépo-intl]]
[[/bepo_intl_old|Mes anciennes idées pour le bépo-intl]]
Ligne 24 : Ligne 38 :
* Ç en altgr-, ou altgr-T
* Ç en altgr-, ou altgr-T


=== Réalisation ===
=== Réalisation 1.0===
<pre>
 
# bepo_intl kkn-1.0
 
# key          direct        shift                altgr          altgr+shift
 
# First row
0!TLDE          dollar      period              endash            paragraph
1!AE01        quotedbl            1              emdash  doublelowquotemark
1!AE02            less            2        guillemotleft  leftdoublequotemark
1!AE03        greater            3      guillemotright rightdoublequotemark
1!AE04      parenleft            4          bracketleft        lessthanequal
1!AE05      parenright            5        bracketright    greaterthanequal
1!AE06          dollar            6          asciicircum
1!AE07      numbersign            7            plusminus              notsign
1!AE08              at            8            moinsmath          onequarter
1!AE09            plus            9            division              onehalf
1!AE10        asterisk            0            multiply        threequarters
0!AE11          equal      degree            notequal              minutes
0!AE12        percent        grave            permille              seconds
 
# Second row
1!AD01              b            B                  bar            brokenbar
1!AD02          eacute      Eacute          dead_acute    dead_doubleacute
1!AD03              p            P            ampersand              section
2!AD04              o            O                slash                   
1!AD05          egrave      Egrave            backslash                grave
#0!AD06 dead_circumflex      exclam          exclamdown
0!AD06              w            W       dead_caron
1!AD07              v            V      dead_circumflex
2!AD08              d            D                  eth                  ETH
1!AD09              l            L          dead_stroke
2!AD10              j            J                  ij                  IJ
2!AD11              z            Z                schwa                SCHWA
1!AD12          thorn        THORN        dead_cedilla                   
 
# Third row
2!AC01              a            A                minus                   
2!AC02              u            U              ugrave              Ugrave
1!AC03              i            I      dead_diaeresis        dead_abovedot
1!AC04              e            E          ecircumflex          Ecircumflex
0!AC05          comma    semicolon rightsinglequotemark            dead_horn
1!AC06              c            C            copyright                U017F
2!AC07              t            T            ccedilla            Ccedilla
2!AC08              s            S              ssharp                U1E9E
1!AC09              r            R          registered            trademark
1!AC10              n            N          dead_tilde
1!AC11              m            M          dead_macron            masculine
1!BKSL          exclam  exclamdown            EuroSign      dead_currency
 
# Fourth row
1!LSGT    ecircumflex  Ecircumflex                slash
1!AB01          agrave      Agrave          dead_grave grave
1!AB02              y            Y            braceleft  leftsinglequotemark
1!AB03              x            X          braceright rightsinglequotemark
0!AB04          period        colon            ellipsis      periodcentered
0!AB05      apostrophe    question        questiondown            dead_hook
1!AB06              k            K          asciitilde                U2328
1!AB07              q            Q      dead_abovering        dead_belowdot
1!AB08              g            G          dead_greek
1!AB09              h            H              dagger        doubledagger
1!AB10              f            F          dead_ogonek          ordfeminine
0!SPCE          space nobreakspace          underscore          narrownbsp
 
0w!KPDL        period      period
 
# EOF
 
</pre>
 
=== Script d'installation v1 ===
 
J'ai trouvé un script permettant d'installer simplement sa disposition personnalisée sous linux (source : http://code.google.com/p/pts-mini-gpl/source/browse/trunk/pts-magyar/us.pts_magyar.sh ). Il est assez facile à modifier pour l'adapter à son usage. Je l'ai tester sous debian sid et squeeze.
 
Il faut relancer le script après chaque mise à jour du paquet xkb-data (debian) ou équivalent.
 
Le but de ce script est surtout d'avoir une bonne intégration au système (sélecteur de disposition). Le fichier /usr/share/X11/symbols/frkkn devenant alors une roue de secours non-intégrée (mise à jour de xkb-data ou autre problème).
 
<pre>
#! /bin/bash --
#
# frkkn.xkb_install.sh : Script d'installation du layout frkkn bépo-intl v1
#
# Basé sur le script :
# us.pts_magyar.sh: Script to install the pts_magyar layout for X11 (X.Org)
# by pts@fazekas.hu at Sat Jun 12 22:37:08 CEST 2010
#
# This script hash been tested and found working on Ubuntu Karmic and Ubuntu
# Lucid.
 
if test "$EUID" = 0; then SUDO=; else SUDO=sudo; fi
 
exec $SUDO bash /dev/stdin "$@" <<'ENDSUDO'
 
set -ex
 
perl -pi -0777 -e \
    's@^// BEGIN frkkn\s.*?\n// END frkkn[ \t]*\n@@mgs' \
    /usr/share/X11/xkb/symbols/fr
cat >>/usr/share/X11/xkb/symbols/fr <<'END'
// BEGIN frkkn
//
// us.pts_magyar: pts_magyar layout, append to /usr/share/X11/xkb/symbols/us
// by pts@fazekas.hu at Wed Jul 23 21:39:45 CEST 2008
//
// Register on Hardy: sudo bash: echo '  pts_magyar      us: pts magyar' >>/usr/share/X11/xkb/rules/xorg.lst
// Test: setxkbmap 'us(pts_magyar),hu'
// Test: setxkbmap 'us(pts_magyar),hu' -print | xkbcomp - $DISPLAY
//
// Register on Ubuntu Karmic:
// (strace -e open -o key.log gnome-keyboard-properties) reports evdev.lst and evdev.xml.
// $ sudo bash: echo '  pts_magyar      us: pts magyar' >>/usr/share/X11/xkb/rules/evdev.lst
// ?$ sudo bash: echo '  pts_magyar      us: pts magyar' >>/usr/share/X11/xkb/rules/base.lst
// * Add this a bit above <name>euro</name> in /usr/share/X11/xkb/rules/evdev.xml
//        <variant>
//          <configItem>
//            <name>pts_magyar</name>
//            <description>pts magyar</description>
//          </configItem>
//        </variant>
// * ?Ditto for base.xml
// * ?Ditto for xfree86.xml
// * ?Ditto for base.xml
 
partial alphanumeric_keys modifier_keys
xkb_symbols "frkkn" {
 
name[Group1]= "France - Bepo, ergonomic, Dvorak way (vkkn.1.0)";
 
key <TLDE> { type[group1] = "FOUR_LEVEL", [ dollar, period, endash, paragraph ] }; // $ . – ¶
key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1 — „
key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ less, 2, guillemotleft, leftdoublequotemark ] }; // < 2 « “
key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ greater, 3, guillemotright, rightdoublequotemark ] }; // > 3 » ”
key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, lessthanequal ] }; // ( 4 [ ≤
key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, greaterthanequal ] }; // ) 5 ] ≥
key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ dollar, 6, asciicircum ] }; // $ 6 ^
key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ numbersign, 7, plusminus, notsign ] }; // # 7 ± ¬
key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 8, U2212, onequarter ] }; // @ 8 − ¼
key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 9, division, onehalf ] }; // + 9 ÷ ½
key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0 × ¾
key <AE11> { type[group1] = "FOUR_LEVEL", [ equal, degree, notequal, minutes ] }; // = ° ≠ ′
key <AE12> { type[group1] = "FOUR_LEVEL", [ percent, grave, U2030, seconds ] }; // % ` ‰ ″
 
key <AD01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ b, B, bar, brokenbar ] }; // b B | ¦
key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, dead_acute, dead_doubleacute ] }; // é É ´ ˝
key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ p, P, ampersand, section ] }; // p P & §
key <AD04> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ o, O, slash ] }; // o O /
key <AD05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, backslash, grave ] }; // è È \ `
key <AD06> { type[group1] = "FOUR_LEVEL", [ w, W, VoidSymbol, dead_caron ] }; // w W  ˇ
key <AD07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ v, V, dead_circumflex ] }; // v V ^
key <AD08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ d, D, eth, ETH ] }; // d D ð Ð
key <AD09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ l, L, UFDD0 ] }; // l L /
key <AD10> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ j, J, U0133, U0132 ] }; // j J ij IJ
key <AD11> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ z, Z, schwa, SCHWA ] }; // z Z ə Ə
key <AD12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ thorn, THORN, dead_cedilla ] }; // þ Þ ¸
 
key <AC01> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ a, A, minus ] }; // a A -
key <AC02> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ u, U, ugrave, Ugrave ] }; // u U ù Ù
key <AC03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ¨ ˙
key <AC04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ e, E, ecircumflex, Ecircumflex ] }; // e E ê Ê
key <AC05> { type[group1] = "FOUR_LEVEL", [ comma, semicolon, rightsinglequotemark, dead_horn ] }; // , ; ’ ̛
key <AC06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ c, C, copyright, U017F ] }; // c C © ſ
key <AC07> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ t, T, ccedilla, Ccedilla ] }; // t T ç Ç
key <AC08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ s, S, ssharp, U1E9E ] }; // s S ß ẞ
key <AC09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ r, R, registered, trademark ] }; // r R ® ™
key <AC10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ n, N, dead_tilde ] }; // n N ~
key <AC11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ m, M, dead_macron, masculine ] }; // m M ¯ º
key <BKSL> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ exclam, exclamdown, EuroSign ] }; // ! ¡ €
 
key <LSGT> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ecircumflex, Ecircumflex, slash ] }; // ê Ê /
key <AB01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ agrave, Agrave, dead_grave ] }; // à À `
key <AB02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘
key <AB03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ x, X, braceright, rightsinglequotemark ] }; // x X } ’
key <AB04> { type[group1] = "FOUR_LEVEL", [ period, colon, ellipsis, periodcentered ] }; // . : … ·
key <AB05> { type[group1] = "FOUR_LEVEL", [ apostrophe, question, questiondown, dead_hook ] }; // ' ? ¿ ̉
key <AB06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ k, K, asciitilde, U2328 ] }; // k K ~ ⌨
key <AB07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ q, Q, dead_abovering, dead_belowdot ] }; // q Q ˚ ̣
key <AB08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ g, G, UFDD2 ] }; // g G µ
key <AB09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ h, H, dagger, doubledagger ] }; // h H † ‡
key <AB10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, ordfeminine ] }; // f F ˛ ª
key <SPCE> { type[group1] = "FOUR_LEVEL", [ space, nobreakspace, underscore, U202F ] }; //    _  
 
 
include "level3(ralt_switch)"
};
// END frkkn
END
 
# evdev.lst is enough for Ubuntu Lucid.
# for F in /tmp/rules/{base,evdev,xorg,xfree86}.lst; do
for F in /usr/share/X11/xkb/rules/{base,evdev}.lst; do
  if test -f "$F"; then
    perl -pi -e '$_="" if /\bfrkkn\b/' "$F"
    # After /^! variant\n/
    perl -pi -0777 -e 's@^(  bepo_latin9[ \t]*fr: .*)@$1\n  frkkn fr: Bepo, frkkn variant@gm' "$F"
  fi
done
 
# evdev.xml is enough for Ubuntu Lucid.
# for F in /tmp/rules/{base,evdev,xorg,xfree86}.xml; do
for F in /usr/share/X11/xkb/rules/{base,evdev}.xml; do
  if test -f "$F"; then
    perl -pi -0777 -e 's@^[ \t]*<variant>\s*<configItem>\s*<name>frkkn</name>.*?</variant>[ \t]*@@gsm' "$F"
    perl -pi -0777 -e 's@^([ \t]*<variant>\s*<configItem>\s*<name>bepo_latin9</name>.*?</variant>)[ \t]*\n@$1\n        <variant>\n          <configItem>\n            <name>frkkn</name>\n            <description>bepo, frkkn variant</description>\n          </configItem>\n        </variant>\n@gsm' "$F"
  fi
done
ENDSUDO
</pre>
 
=== Réalisation 0.9===
 
 
<center>[[Fichier:Fr-dvorak-bepo-kkn.0.1.png]]</center>
<center>[[Fichier:Fr-dvorak-bepo-kkn.0.1.png]]</center>
Bientôt, Fichier pour configGenerator, pkl, drivers X.org et autre disponible.
Bientôt, Fichier pour configGenerator, pkl, drivers X.org et autre disponible.
Ligne 183 : Ligne 409 :
* Je pense peut être modifier la rangé des touches numériques sur le TMx la décalant vers la gauche pour obtenir un alignement plus proche d'un clavier normal et pour ne pas trop éloigner les touches = et %. La touche TILDE reprendrenant la place de la touche %.
* Je pense peut être modifier la rangé des touches numériques sur le TMx la décalant vers la gauche pour obtenir un alignement plus proche d'un clavier normal et pour ne pas trop éloigner les touches = et %. La touche TILDE reprendrenant la place de la touche %.
* Je viens de placer . et 0 en touche ². Cela me facilitera peut-être l'écriture d'adresse IP ou de nombres.
* Je viens de placer . et 0 en touche ². Cela me facilitera peut-être l'écriture d'adresse IP ou de nombres.
* J'ai recrée ma disposition avec ConfigGenerator. Je dispose maintenant de ma disposition sous windows et linux. Je metterais à disposition les drivers linux et le pkl pour windows une fois que j'aurai regroupé ma disposition et la version officiel. Je ne pense pas faire de version spécial TMx. Je mis adapte assez bien et je ne vois pas de problème particulier.
[[Titre du lien]]
== Version 2020 ==
J'utilise maintenant le compositeur (sorte de windows manager pour wayland) Sway sur linux qui permet d'inclure directement un fichier .xkb dans sa configuration.
J'ai surtout ajouté l'utilisation de 8 niveaux de touches permettant d'avoir un clavier numérique sous la main gauche utilisant les mêmes touches 1 2 3 et disposant des principaux séparateurs de nombres à proximité (.,:;).
J'essaye le passage au niveau 5 avec CAPSLOCK. C'est sympa et cette touche devient utilisable au moins.
<pre>
partial alphanumeric_keys modifier_keys
xkb_keymap {
xkb_keycodes  { include "evdev+aliases(azerty)" };
xkb_types    { include "complete" };
xkb_compat    { include "complete" };
xkb_geometry  { include "pc(pc105)" };
        xkb_symbols "frkkn2" {
                name[Group1]= "France - Bepo, ergonomic, Dvorak way (vkkn.2.0)";
                include "pc"
                include "inet(media_common)"
                include "compose(menu)"
                include "shift(breaks_caps)"
               
                key <TLDE> { type[group1] = "FOUR_LEVEL",                [ dollar, period, endash, paragraph                                          ] }; // $ . – ¶
                key <AE01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark,            1,1,1,1                ] }; // " 1 — „
                key <AE02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ less, 2, guillemotleft, leftdoublequotemark,        2,2,2,2                ] }; // < 2 « “
                key <AE03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ greater, 3, guillemotright, rightdoublequotemark,  3,3,3,3                ] }; // > 3 » ”
                key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ parenleft, 4, bracketleft, lessthanequal                                    ] }; // ( 4 [ ≤
                key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ parenright, 5, bracketright, greaterthanequal                              ] }; // ) 5 ] ≥
                key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ dollar, 6, asciicircum                                                      ] }; // $ 6 ^
                key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ numbersign, 7, plusminus, notsign                                          ] }; // # 7 ± ¬
                key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ at, 8, U2212, onequarter                                                    ] }; // @ 8 − ¼
                key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ plus, 9, division, onehalf                                                  ] }; // + 9 ÷ ½
                key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ asterisk, 0, multiply, threequarters                                        ] }; // * 0 × ¾
                key <AE11> { type[group1] = "FOUR_LEVEL",                [ equal, degree, notequal, minutes                                            ] }; // = ° ≠ ′
                key <AE12> { type[group1] = "FOUR_LEVEL",                [ percent, grave, U2030, seconds                                              ] }; // % ` ‰ ″
                key <AD01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ b, B, bar, brokenbar,                              4                      ] }; // b B | ¦
                key <AD02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, dead_acute, dead_doubleacute,      5                      ] }; // é É ´ ˝
                key <AD03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ p, P, ampersand, section,                          6,Up,Up,6                ] }; // p P & §
                key <AD04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ o, O, slash, slash,                                slash                  ] }; // o O / /
                key <AD05> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, backslash, grave,                  semicolon              ] }; // è È \ `
                key <AD06> { type[group1] = "FOUR_LEVEL",                [ w, W, VoidSymbol, dead_caron                                                ] }; // w W  ˇ
                key <AD07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ v, V, dead_circumflex                                                      ] }; // v V ^
                key <AD08> { type[group1] = "FOUR_LEVEL_ALPHABETIC",      [ d, D, eth, ETH                                                              ] }; // d D ð Ð
                key <AD09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ l, L, UFDD0                                                                ] }; // l L /
                key <AD10> { type[group1] = "FOUR_LEVEL_ALPHABETIC",      [ j, J, U0133, U0132                                                          ] }; // j J ij IJ
                key <AD11> { type[group1] = "FOUR_LEVEL_ALPHABETIC",      [ z, Z, schwa, SCHWA                                                          ] }; // z Z ə Ə
                key <AD12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ thorn, THORN, dead_cedilla                                                  ] }; // þ Þ ¸
                key <AC01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ a, A, minus, minus,                                7,7,7,7                ] }; // a A - -
                key <AC02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ u, U, ugrave, Ugrave,                              8,Left,Left,8              ] }; // u U ù Ù
                key <AC03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ i, I, dead_diaeresis, dead_abovedot,                9,Down,Down,9              ] }; // i I ¨ ˙
                key <AC04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ e, E, ecircumflex, Ecircumflex,                    0,Right,Right,0            ] }; // e E ê Ê
                key <AC05> { type[group1] = "FOUR_LEVEL",                [ comma, semicolon, rightsinglequotemark, dead_horn                          ] }; // , ; ’ ̛
                key <AC06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ c, C, copyright, U017F                                                      ] }; // c C © ſ
                key <AC07> { type[group1] = "FOUR_LEVEL_ALPHABETIC",      [ t, T, ccedilla, Ccedilla                                                    ] }; // t T ç Ç
                key <AC08> { type[group1] = "FOUR_LEVEL_ALPHABETIC",      [ s, S, ssharp, U1E9E                                                        ] }; // s S ß ẞ
                key <AC09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ r, R, registered, trademark                                                ] }; // r R ® ™
                key <AC10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ n, N, dead_tilde                                                            ] }; // n N ~
                key <AC11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ m, M, dead_macron, masculine                                                ] }; // m M ¯ º
                key <BKSL> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ exclam, exclamdown, EuroSign                                                ] }; // ! ¡ €
                key <LSGT> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ ecircumflex, Ecircumflex, slash                                            ] }; // ê Ê /
                key <AB01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ agrave, Agrave, dead_grave                                                  ] }; // à À `
                key <AB02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft, leftsinglequotemark,                quotedbl              ] }; // y Y { ‘
                key <AB03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ x, X, braceright, rightsinglequotemark,              colon                  ] }; // x X } ’
                key <AB04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ period, colon, ellipsis, periodcentered,            period                ] }; // . : … ·
                key <AB05> { type[group1] = "FOUR_LEVEL",                [ apostrophe, question, questiondown, dead_hook                              ] }; // ' ? ¿ ̉
                key <AB06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ k, K, asciitilde, U2328                                                    ] }; // k K ~ ⌨
                key <AB07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ q, Q, dead_abovering, dead_belowdot                                        ] }; // q Q ˚ ̣
                key <AB08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ g, G, UFDD2, UFDD2,                                XF86Cut                ] }; // g G µ
                key <AB09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ h, H, dagger, doubledagger,                        XF86Copy                ] }; // h H † ‡
                key <AB10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, ordfeminine,                    XF86Paste              ] }; // f F ˛ ª
                key <SPCE> { type[group1] = "FOUR_LEVEL",                [ space, nobreakspace, underscore, U202F                                      ] }; //    _  
                include "level3(ralt_switch)"
                include "level5(rctrl_switch)"
                include "level5(caps_switch)"
                include "inet(evdev)"
        };
};
</pre>
== Version 2020 2==
- Clavier numérique sous 123AZEQSD (azerty) via capslock ou ctrl-droit.
- Fléche sous ESDF (azerty) via capslock ou ctrl-droit et altgr.
<pre>
partial alphanumeric_keys modifier_keys
xkb_keymap {
xkb_keycodes  { include "evdev+aliases(azerty)" };
xkb_types    { include "complete" };
xkb_compat    { include "complete" };
xkb_geometry  { include "pc(pc105)" };
        xkb_symbols "frkkn2" {
                name[Group1]= "France - Bepo, ergonomic, Dvorak way (vkkn.2.0)";
                include "pc"
include "inet(media_common)"
include "compose(menu)"
include "shift(breaks_caps)"
               
                key <TLDE> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ dollar, period, endash, paragraphg,                dollar                  ] }; // $ . – ¶
                key <AE01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark,            1,1,1,1                  ] }; // " 1 — „
                key <AE02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ less, 2, guillemotleft, leftdoublequotemark,        2,2,2,2                  ] }; // < 2 « “
                key <AE03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ greater, 3, guillemotright, rightdoublequotemark,  3,3,3,3                  ] }; // > 3 » ”
                key <AE04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, lessthanequal,          parenleft, bracketleft  ] }; // ( 4 [ ≤
                key <AE05> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, greaterthanequal,      parenright, bracketright ] }; // ) 5 ] ≥
                key <AE06> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ dollar, 6, asciicircum,                            dollar                  ] }; // $ 6 ^
                key <AE07> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ numbersign, 7, plusminus, notsign,                  numbersign              ] }; // # 7 ± ¬
                key <AE08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ at, 8, U2212, onequarter,                          at                      ] }; // @ 8 − ¼
                key <AE09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ plus, 9, division, onehalf,                        plus                    ] }; // + 9 ÷ ½
                key <AE10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters,              asterisk                ] }; // * 0 × ¾
                key <AE11> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ equal, degree, notequal, minutes,                  equal                    ] }; // = ° ≠ ′
                key <AE12> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ percent, grave, U2030, seconds,                    percent                  ] }; // % ` ‰ ″
                key <AD01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ b, B, bar, brokenbar,                              4                        ] }; // b B | ¦
                key <AD02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, dead_acute, dead_doubleacute,      5                        ] }; // é É ´ ˝
                key <AD03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ p, P, ampersand, section,                          6,Up,Up,6                ] }; // p P & §
                key <AD04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ o, O, slash, slash,                                slash                    ] }; // o O / /
                key <AD05> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, backslash, grave,                  semicolon                ] }; // è È \ `
                key <AD06> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ w, W, VoidSymbol, dead_caron                                                ] }; // w W  ˇ
                key <AD07> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ v, V, dead_circumflex                                                        ] }; // v V ^
                key <AD08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ d, D, eth, ETH                                                              ] }; // d D ð Ð
                key <AD09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ l, L, UFDD0                                                                  ] }; // l L /
                key <AD10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ j, J, U0133, U0132                                                          ] }; // j J ij IJ
                key <AD11> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ z, Z, schwa, SCHWA                                                          ] }; // z Z ə Ə
                key <AD12> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ thorn, THORN, dead_cedilla                                                  ] }; // þ Þ ¸
                key <AC01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ a, A, minus, minus,                                7,7,7,7                  ] }; // a A - -
                key <AC02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ u, U, ugrave, Ugrave,                              8,Left,Left,8            ] }; // u U ù Ù
                key <AC03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ i, I, dead_diaeresis, dead_abovedot,                9,Down,Down,9            ] }; // i I ¨ ˙
                key <AC04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ e, E, ecircumflex, Ecircumflex,                    0,Right,Right,0          ] }; // e E ê Ê
                key <AC05> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ comma, semicolon, rightsinglequotemark, dead_horn,  comma                    ] }; // , ; ’ ̛
                key <AC06> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ c, C, copyright, U017F                                                      ] }; // c C © ſ
                key <AC07> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ t, T, ccedilla, Ccedilla                                                    ] }; // t T ç Ç
                key <AC08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ s, S, ssharp, U1E9E                                                          ] }; // s S ß ẞ
                key <AC09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ r, R, registered, trademark                                                  ] }; // r R ® ™
                key <AC10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ n, N, dead_tilde                                                            ] }; // n N ~
                key <AC11> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ m, M, dead_macron, masculine                                                ] }; // m M ¯ º
                key <BKSL> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ exclam, exclamdown, EuroSign                                                ] }; // ! ¡ €
                key <LSGT> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ ecircumflex, Ecircumflex, slash                                              ] }; // ê Ê /
                key <AB01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ agrave, Agrave, dead_grave                                                  ] }; // à À `
                key <AB02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft, leftsinglequotemark,              quotedbl                ] }; // y Y { ‘
                key <AB03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ x, X, braceright, rightsinglequotemark,            colon                    ] }; // x X } ’
                key <AB04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ period, colon, ellipsis, periodcentered,            period                  ] }; // . : … ·
                key <AB05> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ apostrophe, question, questiondown, dead_hook,      apostrophe              ] }; // ' ? ¿ ̉
                key <AB06> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ k, K, asciitilde, U2328                                                      ] }; // k K ~ ⌨
                key <AB07> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ q, Q, dead_abovering, dead_belowdot                                          ] }; // q Q ˚ ̣
                key <AB08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ g, G, UFDD2, UFDD2,                                XF86Cut                  ] }; // g G µ
                key <AB09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ h, H, dagger, doubledagger,                        XF86Copy                ] }; // h H † ‡
                key <AB10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, ordfeminine,                    XF86Paste                ] }; // f F ˛ ª
                key <SPCE> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ space, nobreakspace, underscore, U202F,            space                    ] }; //    _  
                include "level3(ralt_switch)"
                include "level5(rctrl_switch)"
include "level5(caps_switch)"
                include "inet(evdev)"
        };
};
</pre>

Dernière version du 20 janvier 2021 à 11:36

Cartella rossa.jpg
BÉPO-intl
Méthodologie.png
   

Le bépo «international». Exemples d’adaptations du bépo :

Premier Jet

Mes anciennes idées pour le bépo-intl

Deuxième jet

But

  • Accessibilité de W K < > # $ - \ / [ ] ~
  • Un maximum de caractères de programmation en altgr-main_gauche
  • Accès aux . et : de la même façon que les chiffres pour taper les adresses IPv4 et IPv6
  • Supprimer la touche Ê tout en gardant le Ê accessible

Premières idées

  • Déplacement de æ et œ en # voir utilisation d'un "dead_e" ou suppression totale grâce à compose.
  • J'hésite pour mettre les chiffres en accès direct. J'utilise le capslock pour taper des IPv4. Je peux mettre : en altgr-.
  • Inversion </« et >/»
  • Inversion W et ^
  • Inversion K et ' pour les claviers décalés (et non pour le TMx, à voir).
  • Déplacement du dead_grave (??) en altgr-À
  • Ê en altgr-E
  • Touches en altgr ainsi libérées : O ([) È (]) A (-)
  • À en altgr-A ?
  • Ç en altgr-, ou altgr-T

Réalisation 1.0


# bepo_intl kkn-1.0

# key           direct        shift                altgr          altgr+shift

# First row
0!TLDE          dollar       period               endash            paragraph
1!AE01        quotedbl            1               emdash   doublelowquotemark
1!AE02            less            2        guillemotleft  leftdoublequotemark
1!AE03         greater            3       guillemotright rightdoublequotemark
1!AE04       parenleft            4          bracketleft        lessthanequal
1!AE05      parenright            5         bracketright     greaterthanequal
1!AE06          dollar            6          asciicircum
1!AE07      numbersign            7            plusminus              notsign
1!AE08              at            8            moinsmath           onequarter
1!AE09            plus            9             division              onehalf
1!AE10        asterisk            0             multiply        threequarters
0!AE11           equal       degree             notequal              minutes
0!AE12         percent        grave             permille              seconds

# Second row
1!AD01               b            B                  bar            brokenbar
1!AD02          eacute       Eacute           dead_acute     dead_doubleacute
1!AD03               p            P            ampersand              section
2!AD04               o            O                slash                     
1!AD05          egrave       Egrave            backslash                grave
#0!AD06 dead_circumflex       exclam           exclamdown
0!AD06               w            W	      dead_caron
1!AD07               v            V      dead_circumflex
2!AD08               d            D                  eth                  ETH
1!AD09               l            L          dead_stroke
2!AD10               j            J                   ij                   IJ
2!AD11               z            Z                schwa                SCHWA
1!AD12           thorn        THORN         dead_cedilla                     

# Third row
2!AC01               a            A                minus                     
2!AC02               u            U               ugrave               Ugrave
1!AC03               i            I       dead_diaeresis        dead_abovedot
1!AC04               e            E          ecircumflex          Ecircumflex
0!AC05           comma    semicolon rightsinglequotemark            dead_horn
1!AC06               c            C            copyright                U017F
2!AC07               t            T             ccedilla             Ccedilla
2!AC08               s            S               ssharp                U1E9E
1!AC09               r            R           registered            trademark
1!AC10               n            N           dead_tilde
1!AC11               m            M          dead_macron            masculine
1!BKSL          exclam   exclamdown             EuroSign       	dead_currency

# Fourth row
1!LSGT     ecircumflex  Ecircumflex                slash
1!AB01          agrave       Agrave           dead_grave		grave
1!AB02               y            Y            braceleft  leftsinglequotemark
1!AB03               x            X           braceright rightsinglequotemark
0!AB04          period        colon             ellipsis       periodcentered
0!AB05      apostrophe     question         questiondown            dead_hook
1!AB06               k            K           asciitilde                U2328
1!AB07               q            Q       dead_abovering        dead_belowdot
1!AB08               g            G           dead_greek
1!AB09               h            H               dagger         doubledagger
1!AB10               f            F          dead_ogonek          ordfeminine
0!SPCE           space nobreakspace           underscore           narrownbsp

0w!KPDL         period       period

# EOF

Script d'installation v1

J'ai trouvé un script permettant d'installer simplement sa disposition personnalisée sous linux (source : http://code.google.com/p/pts-mini-gpl/source/browse/trunk/pts-magyar/us.pts_magyar.sh ). Il est assez facile à modifier pour l'adapter à son usage. Je l'ai tester sous debian sid et squeeze.

Il faut relancer le script après chaque mise à jour du paquet xkb-data (debian) ou équivalent.

Le but de ce script est surtout d'avoir une bonne intégration au système (sélecteur de disposition). Le fichier /usr/share/X11/symbols/frkkn devenant alors une roue de secours non-intégrée (mise à jour de xkb-data ou autre problème).

#! /bin/bash --
#
# frkkn.xkb_install.sh : Script d'installation du layout frkkn bépo-intl v1
# 
# Basé sur le script :
# us.pts_magyar.sh: Script to install the pts_magyar layout for X11 (X.Org)
# by pts@fazekas.hu at Sat Jun 12 22:37:08 CEST 2010
#
# This script hash been tested and found working on Ubuntu Karmic and Ubuntu
# Lucid.

if test "$EUID" = 0; then SUDO=; else SUDO=sudo; fi

exec $SUDO bash /dev/stdin "$@" <<'ENDSUDO'

set -ex

perl -pi -0777 -e \
    's@^// BEGIN frkkn\s.*?\n// END frkkn[ \t]*\n@@mgs' \
    /usr/share/X11/xkb/symbols/fr
cat >>/usr/share/X11/xkb/symbols/fr <<'END'
// BEGIN frkkn
//
// us.pts_magyar: pts_magyar layout, append to /usr/share/X11/xkb/symbols/us
// by pts@fazekas.hu at Wed Jul 23 21:39:45 CEST 2008
//
// Register on Hardy: sudo bash: echo '  pts_magyar      us: pts magyar' >>/usr/share/X11/xkb/rules/xorg.lst
// Test: setxkbmap 'us(pts_magyar),hu'
// Test: setxkbmap 'us(pts_magyar),hu' -print | xkbcomp - $DISPLAY
//
// Register on Ubuntu Karmic:
// (strace -e open -o key.log gnome-keyboard-properties) reports evdev.lst and evdev.xml.
// $ sudo bash: echo '  pts_magyar      us: pts magyar' >>/usr/share/X11/xkb/rules/evdev.lst
// ?$ sudo bash: echo '  pts_magyar      us: pts magyar' >>/usr/share/X11/xkb/rules/base.lst
// * Add this a bit above <name>euro</name> in /usr/share/X11/xkb/rules/evdev.xml
//        <variant>
//          <configItem>
//            <name>pts_magyar</name>
//            <description>pts magyar</description>
//          </configItem>
//        </variant>
// * ?Ditto for base.xml
// * ?Ditto for xfree86.xml
// * ?Ditto for base.xml

partial alphanumeric_keys modifier_keys
xkb_symbols "frkkn" {

	name[Group1]= "France - Bepo, ergonomic, Dvorak way (vkkn.1.0)";

	key <TLDE> { type[group1] = "FOUR_LEVEL", [ dollar, period, endash, paragraph ] }; // $ . – ¶
	key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1 — „
	key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ less, 2, guillemotleft, leftdoublequotemark ] }; // < 2 « “
	key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ greater, 3, guillemotright, rightdoublequotemark ] }; // > 3 » ”
	key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, lessthanequal ] }; // ( 4 [ ≤
	key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, greaterthanequal ] }; // ) 5 ] ≥
	key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ dollar, 6, asciicircum ] }; // $ 6 ^
	key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ numbersign, 7, plusminus, notsign ] }; // # 7 ± ¬
	key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 8, U2212, onequarter ] }; // @ 8 − ¼
	key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 9, division, onehalf ] }; // + 9 ÷ ½
	key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0 × ¾
	key <AE11> { type[group1] = "FOUR_LEVEL", [ equal, degree, notequal, minutes ] }; // = ° ≠ ′
	key <AE12> { type[group1] = "FOUR_LEVEL", [ percent, grave, U2030, seconds ] }; // % ` ‰ ″

	key <AD01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ b, B, bar, brokenbar ] }; // b B | ¦
	key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, dead_acute, dead_doubleacute ] }; // é É ´ ˝
	key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ p, P, ampersand, section ] }; // p P & §
	key <AD04> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ o, O, slash ] }; // o O /
	key <AD05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, backslash, grave ] }; // è È \ `
	key <AD06> { type[group1] = "FOUR_LEVEL", [ w, W, VoidSymbol, dead_caron ] }; // w W   ˇ
	key <AD07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ v, V, dead_circumflex ] }; // v V ^
	key <AD08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ d, D, eth, ETH ] }; // d D ð Ð
	key <AD09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ l, L, UFDD0 ] }; // l L /
	key <AD10> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ j, J, U0133, U0132 ] }; // j J ij IJ
	key <AD11> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ z, Z, schwa, SCHWA ] }; // z Z ə Ə
	key <AD12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ thorn, THORN, dead_cedilla ] }; // þ Þ ¸

	key <AC01> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ a, A, minus ] }; // a A -
	key <AC02> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ u, U, ugrave, Ugrave ] }; // u U ù Ù
	key <AC03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ¨ ˙
	key <AC04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ e, E, ecircumflex, Ecircumflex ] }; // e E ê Ê
	key <AC05> { type[group1] = "FOUR_LEVEL", [ comma, semicolon, rightsinglequotemark, dead_horn ] }; // , ; ’ ̛
	key <AC06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ c, C, copyright, U017F ] }; // c C © ſ
	key <AC07> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ t, T, ccedilla, Ccedilla ] }; // t T ç Ç
	key <AC08> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ s, S, ssharp, U1E9E ] }; // s S ß ẞ
	key <AC09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ r, R, registered, trademark ] }; // r R ® ™
	key <AC10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ n, N, dead_tilde ] }; // n N ~
	key <AC11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ m, M, dead_macron, masculine ] }; // m M ¯ º
	key <BKSL> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ exclam, exclamdown, EuroSign ] }; // ! ¡ €

	key <LSGT> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ecircumflex, Ecircumflex, slash ] }; // ê Ê /
	key <AB01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ agrave, Agrave, dead_grave ] }; // à À `
	key <AB02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘
	key <AB03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ x, X, braceright, rightsinglequotemark ] }; // x X } ’
	key <AB04> { type[group1] = "FOUR_LEVEL", [ period, colon, ellipsis, periodcentered ] }; // . : … ·
	key <AB05> { type[group1] = "FOUR_LEVEL", [ apostrophe, question, questiondown, dead_hook ] }; // ' ? ¿ ̉
	key <AB06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ k, K, asciitilde, U2328 ] }; // k K ~ ⌨
	key <AB07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ q, Q, dead_abovering, dead_belowdot ] }; // q Q ˚ ̣
	key <AB08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ g, G, UFDD2 ] }; // g G µ
	key <AB09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ h, H, dagger, doubledagger ] }; // h H † ‡
	key <AB10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, ordfeminine ] }; // f F ˛ ª
	key <SPCE> { type[group1] = "FOUR_LEVEL", [ space, nobreakspace, underscore, U202F ] }; //     _  


	include "level3(ralt_switch)"
};
// END frkkn
END

# evdev.lst is enough for Ubuntu Lucid.
# for F in /tmp/rules/{base,evdev,xorg,xfree86}.lst; do
for F in /usr/share/X11/xkb/rules/{base,evdev}.lst; do
  if test -f "$F"; then
    perl -pi -e '$_="" if /\bfrkkn\b/' "$F"
    # After /^! variant\n/
    perl -pi -0777 -e 's@^(  bepo_latin9[ \t]*fr: .*)@$1\n  frkkn fr: Bepo, frkkn variant@gm' "$F"
  fi
done

# evdev.xml is enough for Ubuntu Lucid.
# for F in /tmp/rules/{base,evdev,xorg,xfree86}.xml; do
for F in /usr/share/X11/xkb/rules/{base,evdev}.xml; do
  if test -f "$F"; then
    perl -pi -0777 -e 's@^[ \t]*<variant>\s*<configItem>\s*<name>frkkn</name>.*?</variant>[ \t]*@@gsm' "$F"
    perl -pi -0777 -e 's@^([ \t]*<variant>\s*<configItem>\s*<name>bepo_latin9</name>.*?</variant>)[ \t]*\n@$1\n        <variant>\n          <configItem>\n            <name>frkkn</name>\n            <description>bepo, frkkn variant</description>\n          </configItem>\n        </variant>\n@gsm' "$F"
  fi
done
ENDSUDO

Réalisation 0.9

Fr-dvorak-bepo-kkn.0.1.png

Bientôt, Fichier pour configGenerator, pkl, drivers X.org et autre disponible.

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔════════╗
│ #  │ 1  │ 2  │ 3  │ 4  │ 5  ║ 6  │ 7  │ 8  │ 9  │ 0  │ °  │ `  ║        ║
│ $  │ " —│ < «│ > »│ ( [│ ) ]║ $  │ #  │ @  │ +  │ *  │ =  │ %  ║ <--    ║
╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦═════╣
║  |<-  ║ B  │ É  │ P  │ O  │ È  ║ W  │ V  │ D  │ L  │ J  │ Z  │    ║   | ║
║  ->|  ║   |│    │   &│   /│   \║  ˆ │    │    │    │    │    │    ║ <-' ║
╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗    ║
║        ║ A  │ U  │ I  │ E  │ ;  ║ C  │ T  │ S  │ R  │ N  │ M  │ ¡  ║    ║
║  CAPS  ║   -│   ù│   ¨│   ê│ ,  ║    │   ç│    │    │    │    │ ! ¤║    ║
╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩════╣
║   ^  ║ Ê  │ À  │ Y  │ X  │ :  │ ?  ║ K  │ Q  │ G  │ H  │ F  ║     ^     ║
║   |  ║    │   `│   {│   }│ . …│ '  ║   ~│    │    │    │    ║     |     ║
╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦═════╣
║       ║      ║     ║ Espace insécable          ║     ║      ║     ║     ║
║ Ctrl  ║ WinG ║ Alt ║ Espace            _       ║AltGr║ WinD ║WinM ║Ctrl ║
╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩═════╝

Bepoew-kkn.png

partial alphanumeric_keys
xkb_symbols "bepokkn" {

    include "level3(ralt_switch)"
    include "keypad(oss)"
    include "inet(media_common)"
    include "compose(menu)"
    include "shift(breaks_caps)"

    name[Group1]= "France - Bepo, ergonomic, Kkn, Dvorak way";

    // First row
    key <TLDE> { [          dollar,   numbersign,        endash,       paragraph ] }; // $ # – ¶
    key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [        quotedbl,            1,         emdash, doublelowquotemark ] }; // " 1 — „
    key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [   guillemotleft,            2,           less,  leftdoublequotemark ] }; // « 2 < “
    key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [  guillemotright,            3,        greater, rightdoublequotemark ] }; // » 3 > ”
    key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [       parenleft,            4,    bracketleft,      lessthanequal ] }; // ( 4 [ ≤
    key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [      parenright,            5,   bracketright,   greaterthanequal ] }; // ) 5 ] ≥
    key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [              at,            6,    asciicircum                 ] }; // @ 6 ^
    key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [            plus,            7,      plusminus,        notsign ] }; // + 7 ± ¬
    key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [           minus,            8,          U2212,     onequarter ] }; // - 8 − ¼
    key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [           slash,            9,       division,        onehalf ] }; // / 9 ÷ ½
    key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [        asterisk,            0,       multiply,  threequarters ] }; // * 0 × ¾
    key <AE11> { [           equal,       degree,       notequal,        minutes ] }; // = ° ≠ ′
    key <AE12> { [         percent,        grave,          U2030,        seconds ] }; // % ` ‰ ″

    // Second row
    key <AD01> { [               b,            B,            bar,      brokenbar ] }; // b B | ¦
    key <AD02> { [          eacute,       Eacute,     dead_acute, dead_doubleacute ] }; // é É ˊ ˝
    key <AD03> { [               p,            P,      ampersand,        section ] }; // p P & §
    key <AD04> { [               o,            O,             oe,             OE ] }; // o O œ Œ
    key <AD05> { [          egrave,       Egrave,     dead_grave,          grave ] }; // è È ` `
    key <AD06> { [ dead_circumflex,       exclam,     exclamdown                 ] }; // ^ ! ¡
    key <AD07> { [               v,            V,     dead_caron                 ] }; // v V ˇ
    key <AD08> { [               d,            D,            eth,            ETH ] }; // d D ð Ð
    key <AD09> { [               l,            L,          UFDD0                 ] }; // l L /
    key <AD10> { [               j,            J,          U0133,          U0132 ] }; // j J ij IJ
    key <AD11> { [               z,            Z,          schwa,          SCHWA ] }; // z Z ə Ə
    key <AD12> { [               w,            W,     dead_breve                 ] }; // w W ̆

    // Third row
    key <AC01> { [               a,            A,             ae,             AE ] }; // a A æ Æ
    key <AC02> { [               u,            U,         ugrave,         Ugrave ] }; // u U ù Ù
    key <AC03> { [               i,            I, dead_diaeresis,  dead_abovedot ] }; // i I ̈ ˙
    key <AC04> { [               e,            E,       EuroSign,          UFDD1 ] }; // e E € ¤
    key <AC05> { [           comma,    semicolon, rightsinglequotemark, dead_horn ] }; // , ; ’ ̛
    key <AC06> { [               c,            C,      copyright,          U017f ] }; // c C © ſ
    key <AC07> { [               t,            T,          thorn,          THORN ] }; // t T þ Þ
    key <AC08> { [               s,            S,         ssharp,          U1E9E ] }; // s S ß ẞ
    key <AC09> { [               r,            R,     registered,      trademark ] }; // r R ® ™
    key <AC10> { [               n,            N,     dead_tilde                 ] }; // n N ~
    key <AC11> { [               m,            M,    dead_macron,      masculine ] }; // m M ̄ º
    key <BKSL> { [        ccedilla,     Ccedilla,   dead_cedilla,          UFDD3 ] }; // ç Ç ¸ ,

    // Fourth row
    key <LSGT> { [     ecircumflex,  Ecircumflex,          slash                 ] }; // ê Ê /
    key <AB01> { [          agrave,       Agrave,      backslash                 ] }; // à À \
    key <AB02> { [               y,            Y,      braceleft, leftsinglequotemark  ] }; // y Y { ‘
    key <AB03> { [               x,            X,     braceright, rightsinglequotemark ] }; // x X } ’
    key <AB04> { [          period,        colon,       ellipsis, periodcentered ] }; // . : … ·
    key <AB05> { [               k,            K,     asciitilde                 ] }; // k, K, ~
    key <AB06> { [      apostrophe,     question,   questiondown,      dead_hook ] }; // ' ? ¿ ̉
    key <AB07> { [               q,            Q, dead_abovering,  dead_belowdot ] }; // q Q ˚ ̣
    key <AB08> { [               g,            G,          UFDD2                 ] }; // g G µ
    key <AB09> { [               h,            H,         dagger,   doubledagger ] }; // h H † ‡
    key <AB10> { [               f,            F,    dead_ogonek,    ordfeminine ] }; // f F ̨ ª

    key <SPCE> { [           space, nobreakspace,     underscore,          U202F ] }; // ␣ (espace insécable) _ (espace insécable fin)

// inversion </« et >/»
    key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ less, 2, guillemotleft, leftdoublequotemark ] }; // < 2 « “
    key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ greater, 3, guillemotright, rightdoublequotemark ] }; // > 3 » ”

// $ et # en 6 et 7
    key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ dollar, 6, asciicircum ] }; // $ 6 ^
    key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ numbersign, 7, plusminus, notsign ] }; // # 7 ± ¬

// @ et + en 8 et 9
    key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 8, U2212, onequarter ] }; // @ 8 − ¼
    key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 9, division, onehalf ] }; // + / 9 ÷ ½


// slash et backslash en O et È
    key <AD04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ o, O, slash ] }; // o O / ===
    key <AD05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, backslash ] }; // è È \ ===


// W en ^, ^ mort en altgr-W
    key <AD06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ w, W, dead_circumflex ] }; // w W ^	
// à voir
    key <AD12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ thorn, THORN, dead_cedilla, UFDD3 ] }; // þ Þ ¸ ,

// - en altgr-A
    key <AC01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ a, A, minus ] }; // a A -

// Ê en E
    key <AC04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ e, E, ecircumflex, Ecircumflex ] }; // e E ê Ê
	
// Ç en altgr-T
    key <AC07> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ t, T, ccedilla, Ccedilla ] }; // t T ç Ç

// déplacements ^ en Ç et ajout du signe monétaire en altgr
//key <BKSL> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ dead_circumflex, exclam, UFDD1, exclamdown ] }; // ^ ! ¤ ¡
    key <BKSL> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ exclam, exclamdown, UFDD1, dead_circumflex ] }; // ! ¡ ¤ ^

// accent grave mort en à
    key <AB01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ agrave, Agrave, dead_grave, grave ] }; // à À ` `

// inversion K et '
    key <AB05> { type[group1] = "FOUR_LEVEL", [ apostrophe, question, questiondown, dead_hook ] }; // ' ? ¿ 
    key <AB06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ k, K, asciitilde ] }; // k K ~


// à replacer :
// EuroSign, UFDD1 € ¤
// oe, OE  œ Œ
// ae, AE  æ Æ
// 
// place vide : TLDE et shift-TLDE 
// modifs à faire : AD12
};

J'ai créé un fichier frkkn dans /usr/share/X11/symbols dans le but de ne pas dépendre des nouvelles mises à jour tout en profitant. La modification est alors aussi trés facilement recopiable sur d'autres systèmes.

Retour

  • Je ne rencontre pas beaucoup de problème avec cette disposition. Un retour à la place d'origine du K et de ' peut être possible.
  • Je remarque que je n'utilise par l'annulaire gauche ( index => X, majeur => Y et auriculaire pour Ê et À ). Je pensais donc pour résoudre se problème et me préparer à taper sur un TMx et comme je n'utilise plus la touche Ê de faire un décalage : À sur Ê, Y sur À, X sur Y, . sur X et ' sur . . Cela supprimerai totalement la touche K du bépo d'origine pour un clavier décalé.
  • J'utilise la version officiel du bépo sur Windows. Je n'ai pas encore trouvé le temps de modifier les drivers. Je ne rencontre aucun problème de passer du bépo à mon bépoèw. Au pire une faute lorsque je tappe pour la première fois une touche qui différe mais qui permet le plus souvent de se rendre compte de la disposition utilisé. C'est pourquoi, je ne suis pas contre que chacun fasse une version modifiée du bépo tant que l'on puisse avoir toujours accès au bépo officiel. Je ne pense pas qu'un bépo anglais et programmation soit vraiment nécessaire ou alors qu'un version très légerement modifiée si l'on peut toujours revenir à un bépo officiel facilement.
  • Je pense peut être modifier la rangé des touches numériques sur le TMx la décalant vers la gauche pour obtenir un alignement plus proche d'un clavier normal et pour ne pas trop éloigner les touches = et %. La touche TILDE reprendrenant la place de la touche %.
  • Je viens de placer . et 0 en touche ². Cela me facilitera peut-être l'écriture d'adresse IP ou de nombres.
  • J'ai recrée ma disposition avec ConfigGenerator. Je dispose maintenant de ma disposition sous windows et linux. Je metterais à disposition les drivers linux et le pkl pour windows une fois que j'aurai regroupé ma disposition et la version officiel. Je ne pense pas faire de version spécial TMx. Je mis adapte assez bien et je ne vois pas de problème particulier.

Titre du lien

Version 2020

J'utilise maintenant le compositeur (sorte de windows manager pour wayland) Sway sur linux qui permet d'inclure directement un fichier .xkb dans sa configuration.

J'ai surtout ajouté l'utilisation de 8 niveaux de touches permettant d'avoir un clavier numérique sous la main gauche utilisant les mêmes touches 1 2 3 et disposant des principaux séparateurs de nombres à proximité (.,:;).

J'essaye le passage au niveau 5 avec CAPSLOCK. C'est sympa et cette touche devient utilisable au moins.

partial alphanumeric_keys modifier_keys

xkb_keymap {
	xkb_keycodes  { include "evdev+aliases(azerty)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete"	};
	xkb_geometry  { include "pc(pc105)"	};


        xkb_symbols "frkkn2" {

                name[Group1]= "France - Bepo, ergonomic, Dvorak way (vkkn.2.0)";

                include "pc"
                include "inet(media_common)"
                include "compose(menu)"
                include "shift(breaks_caps)"
                
                key <TLDE> { type[group1] = "FOUR_LEVEL",                 [ dollar, period, endash, paragraph                                           ] }; // $ . – ¶
                key <AE01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark,            1,1,1,1                 ] }; // " 1 — „
                key <AE02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ less, 2, guillemotleft, leftdoublequotemark,        2,2,2,2                 ] }; // < 2 « “
                key <AE03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ greater, 3, guillemotright, rightdoublequotemark,   3,3,3,3                 ] }; // > 3 » ”
                key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ parenleft, 4, bracketleft, lessthanequal                                    ] }; // ( 4 [ ≤
                key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ parenright, 5, bracketright, greaterthanequal                               ] }; // ) 5 ] ≥
                key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ dollar, 6, asciicircum                                                      ] }; // $ 6 ^
                key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ numbersign, 7, plusminus, notsign                                           ] }; // # 7 ± ¬
                key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ at, 8, U2212, onequarter                                                    ] }; // @ 8 − ¼
                key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ plus, 9, division, onehalf                                                  ] }; // + 9 ÷ ½
                key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ asterisk, 0, multiply, threequarters                                        ] }; // * 0 × ¾
                key <AE11> { type[group1] = "FOUR_LEVEL",                 [ equal, degree, notequal, minutes                                            ] }; // = ° ≠ ′
                key <AE12> { type[group1] = "FOUR_LEVEL",                 [ percent, grave, U2030, seconds                                              ] }; // % ` ‰ ″

                key <AD01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ b, B, bar, brokenbar,                               4                       ] }; // b B | ¦
                key <AD02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, dead_acute, dead_doubleacute,       5                       ] }; // é É ´ ˝
                key <AD03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ p, P, ampersand, section,                           6,Up,Up,6                ] }; // p P & §
                key <AD04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ o, O, slash, slash,                                 slash                   ] }; // o O / /
                key <AD05> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, backslash, grave,                   semicolon               ] }; // è È \ `
                key <AD06> { type[group1] = "FOUR_LEVEL",                 [ w, W, VoidSymbol, dead_caron                                                ] }; // w W   ˇ
                key <AD07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ v, V, dead_circumflex                                                       ] }; // v V ^
                key <AD08> { type[group1] = "FOUR_LEVEL_ALPHABETIC",      [ d, D, eth, ETH                                                              ] }; // d D ð Ð
                key <AD09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ l, L, UFDD0                                                                 ] }; // l L /
                key <AD10> { type[group1] = "FOUR_LEVEL_ALPHABETIC",      [ j, J, U0133, U0132                                                          ] }; // j J ij IJ
                key <AD11> { type[group1] = "FOUR_LEVEL_ALPHABETIC",      [ z, Z, schwa, SCHWA                                                          ] }; // z Z ə Ə
                key <AD12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ thorn, THORN, dead_cedilla                                                  ] }; // þ Þ ¸

                key <AC01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ a, A, minus, minus,                                 7,7,7,7                 ] }; // a A - -
                key <AC02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ u, U, ugrave, Ugrave,                               8,Left,Left,8              ] }; // u U ù Ù
                key <AC03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ i, I, dead_diaeresis, dead_abovedot,                9,Down,Down,9              ] }; // i I ¨ ˙
                key <AC04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ e, E, ecircumflex, Ecircumflex,                     0,Right,Right,0             ] }; // e E ê Ê
                key <AC05> { type[group1] = "FOUR_LEVEL",                 [ comma, semicolon, rightsinglequotemark, dead_horn                           ] }; // , ; ’ ̛
                key <AC06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ c, C, copyright, U017F                                                      ] }; // c C © ſ
                key <AC07> { type[group1] = "FOUR_LEVEL_ALPHABETIC",      [ t, T, ccedilla, Ccedilla                                                    ] }; // t T ç Ç
                key <AC08> { type[group1] = "FOUR_LEVEL_ALPHABETIC",      [ s, S, ssharp, U1E9E                                                         ] }; // s S ß ẞ
                key <AC09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ r, R, registered, trademark                                                 ] }; // r R ® ™
                key <AC10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ n, N, dead_tilde                                                            ] }; // n N ~
                key <AC11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ m, M, dead_macron, masculine                                                ] }; // m M ¯ º
                key <BKSL> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ exclam, exclamdown, EuroSign                                                ] }; // ! ¡ €

                key <LSGT> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ ecircumflex, Ecircumflex, slash                                             ] }; // ê Ê /
                key <AB01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ agrave, Agrave, dead_grave                                                  ] }; // à À `
                key <AB02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft, leftsinglequotemark,                quotedbl               ] }; // y Y { ‘
                key <AB03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ x, X, braceright, rightsinglequotemark,              colon                  ] }; // x X } ’
                key <AB04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ period, colon, ellipsis, periodcentered,             period                 ] }; // . : … ·
                key <AB05> { type[group1] = "FOUR_LEVEL",                 [ apostrophe, question, questiondown, dead_hook                               ] }; // ' ? ¿ ̉
                key <AB06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ k, K, asciitilde, U2328                                                     ] }; // k K ~ ⌨
                key <AB07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",  [ q, Q, dead_abovering, dead_belowdot                                         ] }; // q Q ˚ ̣
                key <AB08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ g, G, UFDD2, UFDD2,                                 XF86Cut                 ] }; // g G µ
                key <AB09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ h, H, dagger, doubledagger,                         XF86Copy                ] }; // h H † ‡
                key <AB10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, ordfeminine,                     XF86Paste               ] }; // f F ˛ ª
                key <SPCE> { type[group1] = "FOUR_LEVEL",                 [ space, nobreakspace, underscore, U202F                                      ] }; //     _  


                include "level3(ralt_switch)"
                include "level5(rctrl_switch)"
                include "level5(caps_switch)"

                include "inet(evdev)"
        };
};

Version 2020 2

- Clavier numérique sous 123AZEQSD (azerty) via capslock ou ctrl-droit.
- Fléche sous ESDF (azerty) via capslock ou ctrl-droit et altgr.
partial alphanumeric_keys modifier_keys

xkb_keymap {
	xkb_keycodes  { include "evdev+aliases(azerty)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete"	};
	xkb_geometry  { include "pc(pc105)"	};


        xkb_symbols "frkkn2" {

                name[Group1]= "France - Bepo, ergonomic, Dvorak way (vkkn.2.0)";

                include "pc"
		include "inet(media_common)"
		include "compose(menu)"
		include "shift(breaks_caps)"
                
                key <TLDE> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ dollar, period, endash, paragraphg,                 dollar                   ] }; // $ . – ¶
                key <AE01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark,            1,1,1,1                  ] }; // " 1 — „
                key <AE02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ less, 2, guillemotleft, leftdoublequotemark,        2,2,2,2                  ] }; // < 2 « “
                key <AE03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ greater, 3, guillemotright, rightdoublequotemark,   3,3,3,3                  ] }; // > 3 » ”
                key <AE04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, lessthanequal,           parenleft, bracketleft   ] }; // ( 4 [ ≤
                key <AE05> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, greaterthanequal,      parenright, bracketright ] }; // ) 5 ] ≥
                key <AE06> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ dollar, 6, asciicircum,                             dollar                   ] }; // $ 6 ^
                key <AE07> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ numbersign, 7, plusminus, notsign,                  numbersign               ] }; // # 7 ± ¬
                key <AE08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ at, 8, U2212, onequarter,                           at                       ] }; // @ 8 − ¼
                key <AE09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ plus, 9, division, onehalf,                         plus                     ] }; // + 9 ÷ ½
                key <AE10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters,               asterisk                 ] }; // * 0 × ¾
                key <AE11> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ equal, degree, notequal, minutes,                   equal                    ] }; // = ° ≠ ′
                key <AE12> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ percent, grave, U2030, seconds,                     percent                  ] }; // % ` ‰ ″

                key <AD01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ b, B, bar, brokenbar,                               4                        ] }; // b B | ¦
                key <AD02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, dead_acute, dead_doubleacute,       5                        ] }; // é É ´ ˝
                key <AD03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ p, P, ampersand, section,                           6,Up,Up,6                ] }; // p P & §
                key <AD04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ o, O, slash, slash,                                 slash                    ] }; // o O / /
                key <AD05> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, backslash, grave,                   semicolon                ] }; // è È \ `
                key <AD06> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ w, W, VoidSymbol, dead_caron                                                 ] }; // w W   ˇ
                key <AD07> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ v, V, dead_circumflex                                                        ] }; // v V ^
                key <AD08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ d, D, eth, ETH                                                               ] }; // d D ð Ð
                key <AD09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ l, L, UFDD0                                                                  ] }; // l L /
                key <AD10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ j, J, U0133, U0132                                                           ] }; // j J ij IJ
                key <AD11> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ z, Z, schwa, SCHWA                                                           ] }; // z Z ə Ə
                key <AD12> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ thorn, THORN, dead_cedilla                                                   ] }; // þ Þ ¸

                key <AC01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ a, A, minus, minus,                                 7,7,7,7                  ] }; // a A - -
                key <AC02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ u, U, ugrave, Ugrave,                               8,Left,Left,8            ] }; // u U ù Ù
                key <AC03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ i, I, dead_diaeresis, dead_abovedot,                9,Down,Down,9            ] }; // i I ¨ ˙
                key <AC04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ e, E, ecircumflex, Ecircumflex,                     0,Right,Right,0          ] }; // e E ê Ê
                key <AC05> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ comma, semicolon, rightsinglequotemark, dead_horn,  comma                    ] }; // , ; ’ ̛
                key <AC06> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ c, C, copyright, U017F                                                       ] }; // c C © ſ
                key <AC07> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ t, T, ccedilla, Ccedilla                                                     ] }; // t T ç Ç
                key <AC08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ s, S, ssharp, U1E9E                                                          ] }; // s S ß ẞ
                key <AC09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ r, R, registered, trademark                                                  ] }; // r R ® ™
                key <AC10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ n, N, dead_tilde                                                             ] }; // n N ~
                key <AC11> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ m, M, dead_macron, masculine                                                 ] }; // m M ¯ º
                key <BKSL> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ exclam, exclamdown, EuroSign                                                 ] }; // ! ¡ €

                key <LSGT> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ ecircumflex, Ecircumflex, slash                                              ] }; // ê Ê /
                key <AB01> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ agrave, Agrave, dead_grave                                                   ] }; // à À `
                key <AB02> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft, leftsinglequotemark,               quotedbl                 ] }; // y Y { ‘
                key <AB03> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ x, X, braceright, rightsinglequotemark,             colon                    ] }; // x X } ’
                key <AB04> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ period, colon, ellipsis, periodcentered,            period                   ] }; // . : … ·
                key <AB05> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ apostrophe, question, questiondown, dead_hook,      apostrophe               ] }; // ' ? ¿ ̉
                key <AB06> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ k, K, asciitilde, U2328                                                      ] }; // k K ~ ⌨
                key <AB07> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ q, Q, dead_abovering, dead_belowdot                                          ] }; // q Q ˚ ̣
                key <AB08> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ g, G, UFDD2, UFDD2,                                 XF86Cut                  ] }; // g G µ
                key <AB09> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ h, H, dagger, doubledagger,                         XF86Copy                 ] }; // h H † ‡
                key <AB10> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, ordfeminine,                     XF86Paste                ] }; // f F ˛ ª
                key <SPCE> { type[group1] = "EIGHT_LEVEL_SEMIALPHABETIC", [ space, nobreakspace, underscore, U202F,             space                    ] }; //     _  


                include "level3(ralt_switch)"
                include "level5(rctrl_switch)"
		include "level5(caps_switch)"

                include "inet(evdev)"
        };
};