Re: [PATCH] Add new i386 azerty afnor keymap

Maxence <[email protected]> Tue, 1 Apr 2025 21:51:47 +0200
Newsgroups dev.linux.lists.kbd
Message-ID <CAJRFJRE3S9i2wP0eK2HJQD7aj7uirb=tEFO=jL7XKqEbnQR_tA@mail.gmail.com>
--0000000000009fc91b0631bcde29
Content-Type: multipart/alternative; boundary="0000000000009fc91a0631bcde27"

--0000000000009fc91a0631bcde27
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hello,

Here's the patch with the DCO.

Have a good day,

Maxence LUPION


Le mar. 1 avr. 2025 =C3=A0 12:40, Alexey Gladkov <[email protected]> a =C3=
=A9crit :

> On Fri, Mar 28, 2025 at 08:23:54PM +0100, Maxence wrote:
> > Hello,
> >
> > Here's a new patch adding azerty afnor keymap. We have checked against
> the
> > X11 keymap version.
> > All keys have been implemented, except shift altgr h for
> dead_belowmacron,
> > being unavailable.
> >
> > Have a good day,
> >
> > Maxence LUPION
>
> > From 8819c3045157cabee13592245311db6298fae2da Mon Sep 17 00:00:00 2001
> > From: maxencelupion <[email protected]>
> > Date: Fri, 28 Mar 2025 18:32:02 +0100
> > Subject: [PATCH] Add new i386 azerty afnor keymap
> >
> > Keymap implementation can be found here https://norme-azerty.fr/
> > Implemented from
> https://github.com/Djyp/azerty_afnor/blob/master/Disposition/fr_azerty_af=
nor
>
> Ok. Make sense.
>
> But kbd uses DCO. Please follow the instructions:
>
>
> https://github.com/legionus/kbd/blob/master/docs/process/howto-contribute=
.md#sending-patches
>
> > ---
> >  data/keymaps/i386/azerty/fr-afnor.map | 160 ++++++++++++++++++++++++++
> >  1 file changed, 160 insertions(+)
> >  create mode 100644 data/keymaps/i386/azerty/fr-afnor.map
> >
> > diff --git a/data/keymaps/i386/azerty/fr-afnor.map
> b/data/keymaps/i386/azerty/fr-afnor.map
> > new file mode 100644
> > index 0000000..0bc14b2
> > --- /dev/null
> > +++ b/data/keymaps/i386/azerty/fr-afnor.map
> > @@ -0,0 +1,160 @@
> > +# AZERTY AFNOR - The new azerty
> > +# https://norme-azerty.fr/
> > +# Copyright =C5=A0 2025 Maxence Lupion <[email protected]>
> > +
> > +include "linux-with-alt-and-altgr"
> > +include "azerty-layout"
> > +keymaps 0-15
> > +
> > +keycode 1 =3D Escape Escape
> > +keycode 14 =3D Delete Delete
> > +keycode 15 =3D Tab Tab
> > +keycode 28 =3D Return
> > +keycode 29 =3D Control
> > +keycode 42 =3D Shift
> > +keycode 54 =3D Shift
> > +keycode 56 =3D Alt
> > +keycode 58 =3D Caps_Lock
> > +keycode 97 =3D Control
> > +
> > +# First row
> > +
> > +keycode 41 =3D at numbersign
> > +     AltGr keycode 41 =3D dead_breve
> > +     Shift AltGr keycode 41 =3D dead_invertedbreve
> > +keycode 2 =3D +agrave one
> > +     AltGr keycode 2 =3D section
> > +     Shift AltGr keycode 2 =3D +Agrave
> > +keycode 3 =3D +eacute two
> > +     AltGr keycode 3 =3D dead_acute
> > +     Shift AltGr keycode 3 =3D +Eacute
> > +keycode 4 =3D +egrave three
> > +     AltGr keycode 4 =3D dead_grave
> > +     Shift AltGr keycode 4 =3D +Egrave
> > +keycode 5 =3D +ecircumflex four
> > +     AltGr keycode 5 =3D ampersand
> > +     Shift AltGr keycode 5 =3D +Ecircumflex
> > +keycode 6 =3D parenleft five
> > +     AltGr keycode 6 =3D bracketleft
> > +     Shift AltGr keycode 6 =3D dead_doubleacute
> > +keycode 7 =3D parenright +six
> > +     AltGr keycode 7 =3D bracketright
> > +     Shift AltGr keycode 7 =3D dead_doublegrave
> > +keycode 8 =3D U+2018 seven
> > +     Alt Shift keycode 8 =3D Meta_seven
> > +     AltGr keycode 8 =3D dead_macron
> > +keycode 9 =3D U+2019 eight
> > +     AltGr keycode 9 =3D underscore
> > +     Shift AltGr keycode 9 =3D emdash
> > +keycode 10 =3D guillemotleft nine
> > +     AltGr keycode 10 =3D U+201C
> > +     Shift AltGr keycode 10 =3D U+2039
> > +keycode 11 =3D guillemotright zero
> > +     AltGr keycode 11 =3D U+201D
> > +     Shift AltGr keycode 11 =3D U+203A
> > +keycode 12 =3D apostrophe quotedbl
> > +     AltGr keycode 12 =3D degree
> > +     Shift AltGr keycode 12 =3D dead_abovering
> > +keycode 13 =3D dead_circumflex
> > +     AltGr keycode 13 =3D dead_diaeresis
> > +     Shift AltGr keycode 13 =3D dead_caron
> > +
> > +# Second row
> > +
> > +keycode 16 =3D a
> > +     AltGr keycode 16 =3D ae
> > +     Shift AltGr keycode 16 =3D AE
> > +keycode 17 =3D z
> > +     AltGr keycode 17 =3D sterling
> > +keycode 18 =3D e
> > +     AltGr keycode 18 =3D U+20AC
> > +keycode 19 =3D r
> > +     AltGr keycode 19 =3D registered
> > +keycode 20 =3D t
> > +     AltGr keycode 20 =3D braceleft
> > +     Shift AltGr keycode 20 =3D trademark
> > +keycode 21 =3D y
> > +     AltGr keycode 21 =3D braceright
> > +keycode 22 =3D u
> > +     AltGr keycode 22 =3D +ugrave
> > +     Shift AltGr keycode 22 =3D +Ugrave
> > +keycode 23 =3D i
> > +     AltGr keycode 23 =3D dead_abovedot
> > +     Shift AltGr keycode 23 =3D dead_belowdot
> > +keycode 24 =3D o
> > +     AltGr keycode 24 =3D +oe
> > +     Shift AltGr keycode 24 =3D +OE
> > +keycode 25 =3D p
> > +     AltGr keycode 25 =3D percent
> > +     Shift AltGr keycode 25 =3D permille
> > +keycode 26 =3D minus endash
> > +     AltGr keycode 26 =3D U+2212
> > +     Shift AltGr keycode 26 =3D U+2011
> > +keycode 27 =3D plus plusminus
> > +     AltGr keycode 27 =3D dagger
> > +     Shift AltGr keycode 27 =3D doubledagger
> > +
> > +# Third row
> > +
> > +keycode 30 =3D q
> > +     AltGr keycode 30 =3D U+03B8
> > +     Shift AltGr keycode 30 =3D U+0398
> > +keycode 31 =3D s
> > +     AltGr keycode 31 =3D ssharp
> > +     Shift AltGr keycode 31 =3D U+1E9E
> > +keycode 32 =3D d
> > +     AltGr keycode 32 =3D dollar
> > +keycode 33 =3D f
> > +     AltGr keycode 33 =3D dead_currency
> > +keycode 34 =3D g
> > +     AltGr keycode 34 =3D dead_greek
> > +keycode 35 =3D h
> > +     # Shift AltGr dead_belowmacron not available
> > +keycode 36 =3D j
> > +keycode 37 =3D k
> > +     AltGr keycode 37 =3D dead_stroke
> > +keycode 38 =3D l
> > +     AltGr keycode 38 =3D bar
> > +keycode 39 =3D m
> > +     AltGr keycode 39 =3D U+221E
> > +keycode 40 =3D slash backslash
> > +     AltGr keycode 40 =3D division
> > +     Shift AltGr keycode 40 =3D U+221A
> > +keycode 43 =3D asterisk onehalf
> > +     AltGr keycode 43 =3D multiply
> > +     Shift AltGr keycode 43 =3D U+00BC
> > +
> > +# Fourth row
> > +
> > +keycode 86 =3D less greater
> > +     AltGr keycode 86 =3D U+2264
> > +     Shift AltGr keycode 86 =3D U+2265
> > +keycode 44 =3D w
> > +     AltGr keycode 44 =3D U+0292
> > +     Shift AltGr keycode 44 =3D U+01B7
> > +keycode 45 =3D x
> > +     AltGr keycode 45 =3D copyright
> > +keycode 46 =3D c
> > +     AltGr keycode 46 =3D U+00E7
> > +     Shift AltGr keycode 46 =3D U+00C7
> > +keycode 47 =3D v
> > +     AltGr keycode 47 =3D dead_cedilla
> > +     Shift AltGr keycode 47 =3D dead_ogonek
> > +keycode 48 =3D b
> > +     AltGr keycode 48 =3D dead_stroke
> > +keycode 49 =3D n
> > +     AltGr keycode 49 =3D dead_tilde
> > +keycode 50 =3D period question
> > +     AltGr keycode 50 =3D questiondown
> > +keycode 51 =3D comma exclam
> > +     AltGr keycode 51 =3D exclamdown
> > +     Shift AltGr keycode 51 =3D dead_belowcomma
> > +keycode 52 =3D colon ellipsis
> > +     AltGr keycode 52 =3D periodcentered
> > +keycode 53 =3D semicolon equal
> > +     AltGr keycode 53 =3D U+2243
> > +     Shift AltGr keycode 53 =3D U+2260
> > +
> > +# Spacebar
> > +keycode 57 =3D space space nobreakspace
> > +     Shift AltGr keycode 57 =3D U+202f
> > --
> > 2.49.0
> >
>
>
> --
> Rgrds, legion
>
>

--0000000000009fc91a0631bcde27
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div>Hello,</div><div><b=
r></div><div>Here&#39;s the patch with the DCO.</div><div><br></div><div>Ha=
ve a good day,</div><div><br></div><div>Maxence LUPION</div></div></div><br=
></div><br><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr=
" class=3D"gmail_attr">Le=C2=A0mar. 1 avr. 2025 =C3=A0=C2=A012:40, Alexey G=
ladkov &lt;<a href=3D"mailto:[email protected]">[email protected]</a>&gt; a=
 =C3=A9crit=C2=A0:<br></div><blockquote class=3D"gmail_quote" style=3D"marg=
in:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1e=
x">On Fri, Mar 28, 2025 at 08:23:54PM +0100, Maxence wrote:<br>
&gt; Hello,<br>
&gt; <br>
&gt; Here&#39;s a new patch adding azerty afnor keymap. We have checked aga=
inst the<br>
&gt; X11 keymap version.<br>
&gt; All keys have been implemented, except shift altgr h for dead_belowmac=
ron,<br>
&gt; being unavailable.<br>
&gt; <br>
&gt; Have a good day,<br>
&gt; <br>
&gt; Maxence LUPION<br>
<br>
&gt; From 8819c3045157cabee13592245311db6298fae2da Mon Sep 17 00:00:00 2001=
<br>
&gt; From: maxencelupion &lt;<a href=3D"mailto:[email protected]" t=
arget=3D"_blank">[email protected]</a>&gt;<br>
&gt; Date: Fri, 28 Mar 2025 18:32:02 +0100<br>
&gt; Subject: [PATCH] Add new i386 azerty afnor keymap<br>
&gt; <br>
&gt; Keymap implementation can be found here <a href=3D"https://norme-azert=
y.fr/" rel=3D"noreferrer" target=3D"_blank">https://norme-azerty.fr/</a><br=
>
&gt; Implemented from <a href=3D"https://github.com/Djyp/azerty_afnor/blob/=
master/Disposition/fr_azerty_afnor" rel=3D"noreferrer" target=3D"_blank">ht=
tps://github.com/Djyp/azerty_afnor/blob/master/Disposition/fr_azerty_afnor<=
/a><br>
<br>
Ok. Make sense.<br>
<br>
But kbd uses DCO. Please follow the instructions:<br>
<br>
<a href=3D"https://github.com/legionus/kbd/blob/master/docs/process/howto-c=
ontribute.md#sending-patches" rel=3D"noreferrer" target=3D"_blank">https://=
github.com/legionus/kbd/blob/master/docs/process/howto-contribute.md#sendin=
g-patches</a><br>
<br>
&gt; ---<br>
&gt;=C2=A0 data/keymaps/i386/azerty/fr-afnor.map | 160 ++++++++++++++++++++=
++++++<br>
&gt;=C2=A0 1 file changed, 160 insertions(+)<br>
&gt;=C2=A0 create mode 100644 data/keymaps/i386/azerty/fr-afnor.map<br>
&gt; <br>
&gt; diff --git a/data/keymaps/i386/azerty/fr-afnor.map b/data/keymaps/i386=
/azerty/fr-afnor.map<br>
&gt; new file mode 100644<br>
&gt; index 0000000..0bc14b2<br>
&gt; --- /dev/null<br>
&gt; +++ b/data/keymaps/i386/azerty/fr-afnor.map<br>
&gt; @@ -0,0 +1,160 @@<br>
&gt; +# AZERTY AFNOR - The new azerty<br>
&gt; +# <a href=3D"https://norme-azerty.fr/" rel=3D"noreferrer" target=3D"_=
blank">https://norme-azerty.fr/</a><br>
&gt; +# Copyright =C5=A0 2025 Maxence Lupion &lt;<a href=3D"mailto:maxencel=
[email protected]" target=3D"_blank">[email protected]</a>&gt;<br>
&gt; +<br>
&gt; +include &quot;linux-with-alt-and-altgr&quot;<br>
&gt; +include &quot;azerty-layout&quot;<br>
&gt; +keymaps 0-15<br>
&gt; +<br>
&gt; +keycode 1 =3D Escape Escape<br>
&gt; +keycode 14 =3D Delete Delete<br>
&gt; +keycode 15 =3D Tab Tab<br>
&gt; +keycode 28 =3D Return<br>
&gt; +keycode 29 =3D Control<br>
&gt; +keycode 42 =3D Shift<br>
&gt; +keycode 54 =3D Shift<br>
&gt; +keycode 56 =3D Alt<br>
&gt; +keycode 58 =3D Caps_Lock<br>
&gt; +keycode 97 =3D Control<br>
&gt; +<br>
&gt; +# First row<br>
&gt; +<br>
&gt; +keycode 41 =3D at numbersign<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 41 =3D dead_breve<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 41 =3D dead_invertedbreve<br>
&gt; +keycode 2 =3D +agrave one<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 2 =3D section<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 2 =3D +Agrave<br>
&gt; +keycode 3 =3D +eacute two<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 3 =3D dead_acute<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 3 =3D +Eacute<br>
&gt; +keycode 4 =3D +egrave three<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 4 =3D dead_grave<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 4 =3D +Egrave<br>
&gt; +keycode 5 =3D +ecircumflex four<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 5 =3D ampersand<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 5 =3D +Ecircumflex<br>
&gt; +keycode 6 =3D parenleft five<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 6 =3D bracketleft<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 6 =3D dead_doubleacute<br>
&gt; +keycode 7 =3D parenright +six<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 7 =3D bracketright<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 7 =3D dead_doublegrave<br>
&gt; +keycode 8 =3D U+2018 seven<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Alt Shift keycode 8 =3D Meta_seven<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 8 =3D dead_macron<br>
&gt; +keycode 9 =3D U+2019 eight<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 9 =3D underscore<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 9 =3D emdash<br>
&gt; +keycode 10 =3D guillemotleft nine<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 10 =3D U+201C<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 10 =3D U+2039<br>
&gt; +keycode 11 =3D guillemotright zero<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 11 =3D U+201D<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 11 =3D U+203A<br>
&gt; +keycode 12 =3D apostrophe quotedbl<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 12 =3D degree<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 12 =3D dead_abovering<br>
&gt; +keycode 13 =3D dead_circumflex<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 13 =3D dead_diaeresis<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 13 =3D dead_caron<br>
&gt; +<br>
&gt; +# Second row<br>
&gt; +<br>
&gt; +keycode 16 =3D a<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 16 =3D ae<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 16 =3D AE<br>
&gt; +keycode 17 =3D z<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 17 =3D sterling<br>
&gt; +keycode 18 =3D e<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 18 =3D U+20AC<br>
&gt; +keycode 19 =3D r<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 19 =3D registered<br>
&gt; +keycode 20 =3D t<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 20 =3D braceleft<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 20 =3D trademark<br>
&gt; +keycode 21 =3D y<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 21 =3D braceright<br>
&gt; +keycode 22 =3D u<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 22 =3D +ugrave<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 22 =3D +Ugrave<br>
&gt; +keycode 23 =3D i<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 23 =3D dead_abovedot<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 23 =3D dead_belowdot<br>
&gt; +keycode 24 =3D o<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 24 =3D +oe<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 24 =3D +OE<br>
&gt; +keycode 25 =3D p<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 25 =3D percent<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 25 =3D permille<br>
&gt; +keycode 26 =3D minus endash<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 26 =3D U+2212<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 26 =3D U+2011<br>
&gt; +keycode 27 =3D plus plusminus<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 27 =3D dagger<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 27 =3D doubledagger<br>
&gt; +<br>
&gt; +# Third row<br>
&gt; +<br>
&gt; +keycode 30 =3D q<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 30 =3D U+03B8<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 30 =3D U+0398<br>
&gt; +keycode 31 =3D s<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 31 =3D ssharp<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 31 =3D U+1E9E<br>
&gt; +keycode 32 =3D d<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 32 =3D dollar<br>
&gt; +keycode 33 =3D f<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 33 =3D dead_currency<br>
&gt; +keycode 34 =3D g<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 34 =3D dead_greek<br>
&gt; +keycode 35 =3D h<br>
&gt; +=C2=A0 =C2=A0 =C2=A0# Shift AltGr dead_belowmacron not available<br>
&gt; +keycode 36 =3D j<br>
&gt; +keycode 37 =3D k<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 37 =3D dead_stroke<br>
&gt; +keycode 38 =3D l<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 38 =3D bar<br>
&gt; +keycode 39 =3D m<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 39 =3D U+221E<br>
&gt; +keycode 40 =3D slash backslash<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 40 =3D division<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 40 =3D U+221A<br>
&gt; +keycode 43 =3D asterisk onehalf<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 43 =3D multiply<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 43 =3D U+00BC<br>
&gt; +<br>
&gt; +# Fourth row<br>
&gt; +<br>
&gt; +keycode 86 =3D less greater<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 86 =3D U+2264<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 86 =3D U+2265<br>
&gt; +keycode 44 =3D w<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 44 =3D U+0292<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 44 =3D U+01B7<br>
&gt; +keycode 45 =3D x<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 45 =3D copyright<br>
&gt; +keycode 46 =3D c<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 46 =3D U+00E7<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 46 =3D U+00C7<br>
&gt; +keycode 47 =3D v<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 47 =3D dead_cedilla<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 47 =3D dead_ogonek<br>
&gt; +keycode 48 =3D b<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 48 =3D dead_stroke<br>
&gt; +keycode 49 =3D n<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 49 =3D dead_tilde<br>
&gt; +keycode 50 =3D period question<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 50 =3D questiondown<br>
&gt; +keycode 51 =3D comma exclam<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 51 =3D exclamdown<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 51 =3D dead_belowcomma<br>
&gt; +keycode 52 =3D colon ellipsis<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 52 =3D periodcentered<br>
&gt; +keycode 53 =3D semicolon equal<br>
&gt; +=C2=A0 =C2=A0 =C2=A0AltGr keycode 53 =3D U+2243<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 53 =3D U+2260<br>
&gt; +<br>
&gt; +# Spacebar<br>
&gt; +keycode 57 =3D space space nobreakspace<br>
&gt; +=C2=A0 =C2=A0 =C2=A0Shift AltGr keycode 57 =3D U+202f<br>
&gt; -- <br>
&gt; 2.49.0<br>
&gt; <br>
<br>
<br>
-- <br>
Rgrds, legion<br>
<br>
</blockquote></div>

--0000000000009fc91a0631bcde27--
--0000000000009fc91b0631bcde29
Content-Type: text/x-patch; charset="UTF-8"; 
	name="v2-0001-Add-new-i386-azerty-afnor-keymap.patch"
Content-Disposition: attachment; 
	filename="v2-0001-Add-new-i386-azerty-afnor-keymap.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_m8ywyuep0>
X-Attachment-Id: f_m8ywyuep0

RnJvbSA4MmQwZGZhN2IzMDM2MGI3NDAzMmJhMjVmNzZhODBlMWIzODVhOWNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBtYXhlbmNlbHVwaW9uIDxtYXhlbmNlLmx1cGlvbkBlcGl0ZWNo
LmV1PgpEYXRlOiBGcmksIDI4IE1hciAyMDI1IDE4OjMyOjAyICswMTAwClN1YmplY3Q6IFtQQVRD
SCB2Ml0gQWRkIG5ldyBpMzg2IGF6ZXJ0eSBhZm5vciBrZXltYXAKCktleW1hcCBpbXBsZW1lbnRh
dGlvbiBjYW4gYmUgZm91bmQgaGVyZSBodHRwczovL25vcm1lLWF6ZXJ0eS5mci8KSW1wbGVtZW50
ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vRGp5cC9hemVydHlfYWZub3IvYmxvYi9tYXN0ZXIv
RGlzcG9zaXRpb24vZnJfYXplcnR5X2Fmbm9yCgpTaWduZWQtb2ZmLWJ5OiBtYXhlbmNlbHVwaW9u
IDxtYXhlbmNlbHVwaW9uQGdtYWlsLmNvbT4KLS0tCiBkYXRhL2tleW1hcHMvaTM4Ni9hemVydHkv
ZnItYWZub3IubWFwIHwgMTYwICsrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hh
bmdlZCwgMTYwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkYXRhL2tleW1hcHMv
aTM4Ni9hemVydHkvZnItYWZub3IubWFwCgpkaWZmIC0tZ2l0IGEvZGF0YS9rZXltYXBzL2kzODYv
YXplcnR5L2ZyLWFmbm9yLm1hcCBiL2RhdGEva2V5bWFwcy9pMzg2L2F6ZXJ0eS9mci1hZm5vci5t
YXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJjMTRiMgotLS0gL2Rldi9u
dWxsCisrKyBiL2RhdGEva2V5bWFwcy9pMzg2L2F6ZXJ0eS9mci1hZm5vci5tYXAKQEAgLTAsMCAr
MSwxNjAgQEAKKyMgQVpFUlRZIEFGTk9SIC0gVGhlIG5ldyBhemVydHkKKyMgaHR0cHM6Ly9ub3Jt
ZS1hemVydHkuZnIvCisjIENvcHlyaWdodCDCqSAyMDI1IE1heGVuY2UgTHVwaW9uIDxtYXhlbmNl
bHVwaW9uQGdtYWlsLmNvbT4KKworaW5jbHVkZSAibGludXgtd2l0aC1hbHQtYW5kLWFsdGdyIgor
aW5jbHVkZSAiYXplcnR5LWxheW91dCIKK2tleW1hcHMgMC0xNQorCitrZXljb2RlIDEgPSBFc2Nh
cGUgRXNjYXBlCitrZXljb2RlIDE0ID0gRGVsZXRlIERlbGV0ZQora2V5Y29kZSAxNSA9IFRhYiBU
YWIKK2tleWNvZGUgMjggPSBSZXR1cm4KK2tleWNvZGUgMjkgPSBDb250cm9sCitrZXljb2RlIDQy
ID0gU2hpZnQKK2tleWNvZGUgNTQgPSBTaGlmdAora2V5Y29kZSA1NiA9IEFsdAora2V5Y29kZSA1
OCA9IENhcHNfTG9jawora2V5Y29kZSA5NyA9IENvbnRyb2wKKworIyBGaXJzdCByb3cKKwora2V5
Y29kZSA0MSA9IGF0IG51bWJlcnNpZ24KKwlBbHRHciBrZXljb2RlIDQxID0gZGVhZF9icmV2ZQor
CVNoaWZ0IEFsdEdyIGtleWNvZGUgNDEgPSBkZWFkX2ludmVydGVkYnJldmUKK2tleWNvZGUgMiA9
ICthZ3JhdmUgb25lCisJQWx0R3Iga2V5Y29kZSAyID0gc2VjdGlvbgorCVNoaWZ0IEFsdEdyIGtl
eWNvZGUgMiA9ICtBZ3JhdmUKK2tleWNvZGUgMyA9ICtlYWN1dGUgdHdvCisJQWx0R3Iga2V5Y29k
ZSAzID0gZGVhZF9hY3V0ZQorCVNoaWZ0IEFsdEdyIGtleWNvZGUgMyA9ICtFYWN1dGUKK2tleWNv
ZGUgNCA9ICtlZ3JhdmUgdGhyZWUKKwlBbHRHciBrZXljb2RlIDQgPSBkZWFkX2dyYXZlCisJU2hp
ZnQgQWx0R3Iga2V5Y29kZSA0ID0gK0VncmF2ZQora2V5Y29kZSA1ID0gK2VjaXJjdW1mbGV4IGZv
dXIKKwlBbHRHciBrZXljb2RlIDUgPSBhbXBlcnNhbmQKKwlTaGlmdCBBbHRHciBrZXljb2RlIDUg
PSArRWNpcmN1bWZsZXgKK2tleWNvZGUgNiA9IHBhcmVubGVmdCBmaXZlCisJQWx0R3Iga2V5Y29k
ZSA2ID0gYnJhY2tldGxlZnQKKwlTaGlmdCBBbHRHciBrZXljb2RlIDYgPSBkZWFkX2RvdWJsZWFj
dXRlCitrZXljb2RlIDcgPSBwYXJlbnJpZ2h0ICtzaXgKKwlBbHRHciBrZXljb2RlIDcgPSBicmFj
a2V0cmlnaHQKKwlTaGlmdCBBbHRHciBrZXljb2RlIDcgPSBkZWFkX2RvdWJsZWdyYXZlCitrZXlj
b2RlIDggPSBVKzIwMTggc2V2ZW4KKwlBbHQgU2hpZnQga2V5Y29kZSA4ID0gTWV0YV9zZXZlbgor
CUFsdEdyIGtleWNvZGUgOCA9IGRlYWRfbWFjcm9uCitrZXljb2RlIDkgPSBVKzIwMTkgZWlnaHQK
KwlBbHRHciBrZXljb2RlIDkgPSB1bmRlcnNjb3JlCisJU2hpZnQgQWx0R3Iga2V5Y29kZSA5ID0g
ZW1kYXNoCitrZXljb2RlIDEwID0gZ3VpbGxlbW90bGVmdCBuaW5lCisJQWx0R3Iga2V5Y29kZSAx
MCA9IFUrMjAxQworCVNoaWZ0IEFsdEdyIGtleWNvZGUgMTAgPSBVKzIwMzkKK2tleWNvZGUgMTEg
PSBndWlsbGVtb3RyaWdodCB6ZXJvCisJQWx0R3Iga2V5Y29kZSAxMSA9IFUrMjAxRAorCVNoaWZ0
IEFsdEdyIGtleWNvZGUgMTEgPSBVKzIwM0EKK2tleWNvZGUgMTIgPSBhcG9zdHJvcGhlIHF1b3Rl
ZGJsCisJQWx0R3Iga2V5Y29kZSAxMiA9IGRlZ3JlZQorCVNoaWZ0IEFsdEdyIGtleWNvZGUgMTIg
PSBkZWFkX2Fib3ZlcmluZwora2V5Y29kZSAxMyA9IGRlYWRfY2lyY3VtZmxleAorCUFsdEdyIGtl
eWNvZGUgMTMgPSBkZWFkX2RpYWVyZXNpcworCVNoaWZ0IEFsdEdyIGtleWNvZGUgMTMgPSBkZWFk
X2Nhcm9uCisKKyMgU2Vjb25kIHJvdworCitrZXljb2RlIDE2ID0gYQorCUFsdEdyIGtleWNvZGUg
MTYgPSBhZQorCVNoaWZ0IEFsdEdyIGtleWNvZGUgMTYgPSBBRQora2V5Y29kZSAxNyA9IHoKKwlB
bHRHciBrZXljb2RlIDE3ID0gc3RlcmxpbmcKK2tleWNvZGUgMTggPSBlCisJQWx0R3Iga2V5Y29k
ZSAxOCA9IFUrMjBBQwora2V5Y29kZSAxOSA9IHIKKwlBbHRHciBrZXljb2RlIDE5ID0gcmVnaXN0
ZXJlZAora2V5Y29kZSAyMCA9IHQKKwlBbHRHciBrZXljb2RlIDIwID0gYnJhY2VsZWZ0CisJU2hp
ZnQgQWx0R3Iga2V5Y29kZSAyMCA9IHRyYWRlbWFyawora2V5Y29kZSAyMSA9IHkKKwlBbHRHciBr
ZXljb2RlIDIxID0gYnJhY2VyaWdodAora2V5Y29kZSAyMiA9IHUKKwlBbHRHciBrZXljb2RlIDIy
ID0gK3VncmF2ZQorCVNoaWZ0IEFsdEdyIGtleWNvZGUgMjIgPSArVWdyYXZlCitrZXljb2RlIDIz
ID0gaQorCUFsdEdyIGtleWNvZGUgMjMgPSBkZWFkX2Fib3ZlZG90CisJU2hpZnQgQWx0R3Iga2V5
Y29kZSAyMyA9IGRlYWRfYmVsb3dkb3QKK2tleWNvZGUgMjQgPSBvCisJQWx0R3Iga2V5Y29kZSAy
NCA9ICtvZQorCVNoaWZ0IEFsdEdyIGtleWNvZGUgMjQgPSArT0UKK2tleWNvZGUgMjUgPSBwCisJ
QWx0R3Iga2V5Y29kZSAyNSA9IHBlcmNlbnQKKwlTaGlmdCBBbHRHciBrZXljb2RlIDI1ID0gcGVy
bWlsbGUKK2tleWNvZGUgMjYgPSBtaW51cyBlbmRhc2gKKwlBbHRHciBrZXljb2RlIDI2ID0gVSsy
MjEyCisJU2hpZnQgQWx0R3Iga2V5Y29kZSAyNiA9IFUrMjAxMQora2V5Y29kZSAyNyA9IHBsdXMg
cGx1c21pbnVzCisJQWx0R3Iga2V5Y29kZSAyNyA9IGRhZ2dlcgorCVNoaWZ0IEFsdEdyIGtleWNv
ZGUgMjcgPSBkb3VibGVkYWdnZXIKKworIyBUaGlyZCByb3cKKwora2V5Y29kZSAzMCA9IHEKKwlB
bHRHciBrZXljb2RlIDMwID0gVSswM0I4CisJU2hpZnQgQWx0R3Iga2V5Y29kZSAzMCA9IFUrMDM5
OAora2V5Y29kZSAzMSA9IHMKKwlBbHRHciBrZXljb2RlIDMxID0gc3NoYXJwCisJU2hpZnQgQWx0
R3Iga2V5Y29kZSAzMSA9IFUrMUU5RQora2V5Y29kZSAzMiA9IGQKKwlBbHRHciBrZXljb2RlIDMy
ID0gZG9sbGFyCitrZXljb2RlIDMzID0gZgorCUFsdEdyIGtleWNvZGUgMzMgPSBkZWFkX2N1cnJl
bmN5CitrZXljb2RlIDM0ID0gZworCUFsdEdyIGtleWNvZGUgMzQgPSBkZWFkX2dyZWVrCitrZXlj
b2RlIDM1ID0gaAorCSMgU2hpZnQgQWx0R3IgZGVhZF9iZWxvd21hY3JvbiBub3QgYXZhaWxhYmxl
CitrZXljb2RlIDM2ID0gagora2V5Y29kZSAzNyA9IGsKKwlBbHRHciBrZXljb2RlIDM3ID0gZGVh
ZF9zdHJva2UKK2tleWNvZGUgMzggPSBsCisJQWx0R3Iga2V5Y29kZSAzOCA9IGJhcgora2V5Y29k
ZSAzOSA9IG0KKwlBbHRHciBrZXljb2RlIDM5ID0gVSsyMjFFCitrZXljb2RlIDQwID0gc2xhc2gg
YmFja3NsYXNoCisJQWx0R3Iga2V5Y29kZSA0MCA9IGRpdmlzaW9uCisJU2hpZnQgQWx0R3Iga2V5
Y29kZSA0MCA9IFUrMjIxQQora2V5Y29kZSA0MyA9IGFzdGVyaXNrIG9uZWhhbGYKKwlBbHRHciBr
ZXljb2RlIDQzID0gbXVsdGlwbHkKKwlTaGlmdCBBbHRHciBrZXljb2RlIDQzID0gVSswMEJDCisK
KyMgRm91cnRoIHJvdworCitrZXljb2RlIDg2ID0gbGVzcyBncmVhdGVyCisJQWx0R3Iga2V5Y29k
ZSA4NiA9IFUrMjI2NAorCVNoaWZ0IEFsdEdyIGtleWNvZGUgODYgPSBVKzIyNjUKK2tleWNvZGUg
NDQgPSB3CisJQWx0R3Iga2V5Y29kZSA0NCA9IFUrMDI5MgorCVNoaWZ0IEFsdEdyIGtleWNvZGUg
NDQgPSBVKzAxQjcKK2tleWNvZGUgNDUgPSB4CisJQWx0R3Iga2V5Y29kZSA0NSA9IGNvcHlyaWdo
dAora2V5Y29kZSA0NiA9IGMKKwlBbHRHciBrZXljb2RlIDQ2ID0gVSswMEU3CisJU2hpZnQgQWx0
R3Iga2V5Y29kZSA0NiA9IFUrMDBDNwora2V5Y29kZSA0NyA9IHYKKwlBbHRHciBrZXljb2RlIDQ3
ID0gZGVhZF9jZWRpbGxhCisJU2hpZnQgQWx0R3Iga2V5Y29kZSA0NyA9IGRlYWRfb2dvbmVrCitr
ZXljb2RlIDQ4ID0gYgorCUFsdEdyIGtleWNvZGUgNDggPSBkZWFkX3N0cm9rZQora2V5Y29kZSA0
OSA9IG4KKwlBbHRHciBrZXljb2RlIDQ5ID0gZGVhZF90aWxkZQora2V5Y29kZSA1MCA9IHBlcmlv
ZCBxdWVzdGlvbgorCUFsdEdyIGtleWNvZGUgNTAgPSBxdWVzdGlvbmRvd24KK2tleWNvZGUgNTEg
PSBjb21tYSBleGNsYW0KKwlBbHRHciBrZXljb2RlIDUxID0gZXhjbGFtZG93bgorCVNoaWZ0IEFs
dEdyIGtleWNvZGUgNTEgPSBkZWFkX2JlbG93Y29tbWEKK2tleWNvZGUgNTIgPSBjb2xvbiBlbGxp
cHNpcworCUFsdEdyIGtleWNvZGUgNTIgPSBwZXJpb2RjZW50ZXJlZAora2V5Y29kZSA1MyA9IHNl
bWljb2xvbiBlcXVhbAorCUFsdEdyIGtleWNvZGUgNTMgPSBVKzIyNDMKKwlTaGlmdCBBbHRHciBr
ZXljb2RlIDUzID0gVSsyMjYwCisKKyMgU3BhY2ViYXIKK2tleWNvZGUgNTcgPSBzcGFjZSBzcGFj
ZSBub2JyZWFrc3BhY2UKKwlTaGlmdCBBbHRHciBrZXljb2RlIDU3ID0gVSsyMDJmCi0tIAoyLjQ5
LjAKCg==
--0000000000009fc91b0631bcde29--