include common

# Bépo : Improved ergonomic french keymap using Dvorak method.
# Built by community on 'Dvorak Fr / Bépo' :
# see http://www.clavier-dvorak.org/wiki/ to join and help.
#
# Bépo layout (1.0rc2 version) for a pc105 keyboard (french) :
# ┌────┐
# │ S A│   S = Shift,  A = AltGr + Shift
# │ s a│   s = normal, a = AltGr
# └────┘
#
# ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
# │ # ¶ │ 1 „ │ 2 “ │ 3 ” │ 4 ≤ │ 5 ≥ │ 6   │ 7 ¬ │ 8 ¼ │ 9 ½ │ 0 ¾ │ ° ′ │ ` ″ ┃ ⌫ Retour┃
# │ $ – │ " — │ « < │ » > │ ( [ │ ) ] │ @ ^ │ + ± │ - − │ / ÷ │ * × │ = ≠ │ % ‰ ┃  arrière┃
# ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
# ┃       ┃ B ¦ │ É ˝ │ P § │ O Œ │ È ` │ !   │ V   │ D Ð │ L   │ J IJ │ Z Ə │ W   ┃Entrée ┃
# ┃Tab ↹  ┃ b | │ é ˊ │ p & │ o œ │ è ` │ ˆ ¡ │ v ˇ │ d ð │ l / │ j ij │ z ə │ w ̆ ┃   ⏎   ┃
# ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
# ┃        ┃ A Æ │ U Ù │ I ˙ │ E ¤ │ ; ̛ │ C ſ │ T Þ │ S ẞ │ R ™ │ N   │ M º │ Ç , ┃      ┃
# ┃Maj ⇬   ┃ a æ │ u ù │ i ̈ │ e € │ , ’ │ c © │ t þ │ s ß │ r ® │ n ˜ │ m ¯ │ ç ¸ ┃      ┃
# ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
# ┃       ┃ Ê   │ À   │ Y ‘ │ X ’ │ : · │ K   │ ? ̉ │ Q ̣ │ G   │ H ‡ │ F ª ┃             ┃
# ┃Shift ⇧┃ ê / │ à \ │ y { │ x } │ . … │ k ~ │ ' ¿ │ q ˚ │ g µ │ h † │ f ˛ ┃Shift ⇧      ┃
# ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
# ┃       ┃       ┃       ┃ Espace inséc.   Espace inséc. fin ┃       ┃       ┃       ┃
# ┃Ctrl   ┃Meta   ┃Alt    ┃ ␣ (Espace)      _               ␣ ┃AltGr ⇮┃Menu   ┃Ctrl   ┃
# ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛


# First row
## keycode  41 = dollar numbersign       U+2013  U+00b6
dollar        0x29
numbersign    0x29  shift
U2013         0x29        altgr
U00b6         0x29  shift altgr

## keycode   2 = +quotedbl +one          U+2014  U+201e
quotedbl      0x2
one           0x2  shift
U2014         0x2        altgr
U201e         0x2  shift altgr

## keycode   3 = +guillemotleft  +two     less    U+201c
guillemotleft  0x3
two           0x3  shift
less          0x3        altgr
U201c         0x3  shift altgr

## keycode   4 = +guillemotright +three  greater U+201d
guillemotright  0x4
three         0x4  shift
greater       0x4        altgr
U201d         0x4  shift altgr

## keycode   5 = +parenleft +four        bracketleft  U+2264
parenleft     0x5
four          0x5  shift
bracketleft   0x5        altgr
U2264         0x5  shift altgr

## keycode   6 = +parenright +five       bracketright  U+2265
parenright    0x6
five          0x6  shift
bracketright  0x6        altgr
U2265         0x6  shift altgr

## keycode   7 = +at       +six          asciicircum
at            0x7
six           0x7  shift
asciicircum   0x7        altgr

## keycode   8 = +plus     +seven        U+00b1  U+00ac
plus          0x8
seven         0x8  shift
U00b1         0x8        altgr
U00ac         0x8  shift altgr

## keycode   9 = +minus    +eight        U+2212  U+00bc
minus         0x9
eight         0x9  shift
U2212         0x9        altgr
U00bc         0x9  shift altgr

## keycode  10 = +slash    +nine         U+00f7  U+00bd
slash         0xa
nine          0xa  shift
U00f7         0xa        altgr
U00bd         0xa  shift altgr

## keycode  11 = +asterisk +zero         U+00d7  U+00be
asterisk      0xb
zero          0xb  shift
U00d7         0xb        altgr
U00be         0xb  shift altgr

## keycode  12 = equal     U+00b0        U+2260  U+2032
equal         0xc
U00b0         0xc  shift
U2260         0xc        altgr
U2032         0xc  shift altgr

## keycode  13 = percent   grave         U+2030  U+2033
percent       0xd
grave         0xd  shift
U2030         0xd        altgr
U2033         0xd  shift altgr


# Second row

# simplified letter definitions notation :
## keycode 16 = b
b             0x10  addupper
## keycode 18 = p
p             0x12  addupper
## keycode 19 = o
o             0x13  addupper
## keycode 22 = v
v             0x16  addupper
## keycode 23 = d
d             0x17  addupper
## keycode 24 = l
l             0x18  addupper
## keycode 25 = j
j             0x19  addupper
## keycode 26 = z
z             0x1a  addupper
## keycode 27 = w
w             0x1b  addupper

# then, add specific definitions
##                    AltGr keycode  16 = bar
bar           0x10        altgr
##              Shift AltGr keycode  16 = brokenbar
brokenbar     0x10  shift altgr

## keycode 17 = +eacute +Eacute dead_acute
eacute        0x11
Eacute        0x11  shift
dead_acute    0x11        altgr

##                    AltGr keycode  18 = ampersand
ampersand     0x12        altgr
##              Shift AltGr keycode  18 = U+00a7
U00a7         0x12  shift altgr

##                    AltGr keycode  19 = +U+0153
U+0153        0x13        altgr
##              Shift AltGr keycode  19 = +U+0152
U+0152        0x13  shift altgr

## keycode 20 = +egrave +Egrave dead_grave grave # no Meta !
egrave        0x14
Egrave        0x14  shift
dead_grave    0x14        altgr

## keycode 21 = dead_circumflex exclam exclamdown
dead_circumflex  0x15
exclam        0x15  shift
exclamdown    0x15        altgr

##                    AltGr keycode  22 = dead_caron
dead_caron    0x16        altgr

##                    AltGr keycode  23 = eth
eth           0x17        altgr
##              Shift AltGr keycode  23 = ETH
ETH           0x17  shift altgr

##                    AltGr keycode  25 = +U+0133
U+0133        0x19        altgr
##              Shift AltGr keycode  25 = +U+0132
U+0132        0x19  shift altgr

##                    AltGr keycode  26 = +U+0259
U+0259        0x1a        altgr
##              Shift AltGr keycode  26 = +U+018f
U+018f        0x1a  shift altgr



# Third row

# simplified letter definitions notation :
## keycode 30 = a
a             0x1e  addupper
## keycode 31 = u
u             0x1f  addupper
## keycode 32 = i
i             0x20  addupper
## keycode 33 = e
e             0x21  addupper
## keycode 35 = c
c             0x23  addupper
## keycode 36 = t
t             0x24  addupper
## keycode 37 = s
s             0x25  addupper
## keycode 38 = r
r             0x26  addupper
## keycode 39 = n
n             0x27  addupper
## keycode 40 = m
m             0x28  addupper

# then, add specific definitions
##                    AltGr keycode  30 = +ae
ae            0x1e        altgr
##              Shift AltGr keycode  30 = +AE
AE            0x1e  shift altgr

##                    AltGr keycode  31 = +ugrave
ugrave        0x1f        altgr
##              Shift AltGr keycode  31 = +Ugrave
Ugrave        0x1f  shift altgr

##                    AltGr keycode  32 = dead_diaeresis
dead_diaeresis  0x20        altgr


##                    AltGr keycode  33 = U+20ac
U20ac         0x21        altgr

## keycode 34 = comma semicolon U+2019 +U+031b
comma         0x22
semicolon     0x22  shift
U2019         0x22        altgr
U+031b        0x22  shift altgr

##                    AltGr keycode  35 = copyright
copyright     0x23        altgr
##              Shift AltGr keycode  35 = U+017f
U017f         0x23  shift altgr

##                    AltGr keycode  36 = +thorn
thorn         0x24        altgr
##              Shift AltGr keycode  36 = +THORN
THORN         0x24  shift altgr

##                    AltGr keycode  37 = +ssharp
ssharp        0x25        altgr
##              Shift AltGr keycode  37 = U+1e9e
U1e9e         0x25  shift altgr

##                    AltGr keycode  38 = registered
registered    0x26        altgr
##              Shift AltGr keycode  38 = U+2122
U2122         0x26  shift altgr

##                    AltGr keycode  39 = dead_tilde
dead_tilde    0x27        altgr

##              Shift AltGr keycode  40 = masculine
masculine     0x28  shift altgr

## keycode 43 = +ccedilla +Ccedilla dead_cedilla
ccedilla      0x2b
Ccedilla      0x2b  shift
dead_cedilla  0x2b        altgr


# Fourth row

# simplified letter definitions notation :
## keycode 45 = y
y             0x2d  addupper
## keycode 46 = x
x             0x2e  addupper
## keycode 48 = k
k             0x30  addupper
## keycode 50 = q
q             0x32  addupper
## keycode 51 = g
g             0x33  addupper
## keycode 52 = h
h             0x34  addupper
## keycode 53 = f
f             0x35  addupper

# then, add specific definitions
## keycode 86 = +ecircumflex +Ecircumflex slash slash
ecircumflex   0x56
Ecircumflex   0x56  shift

## keycode 44 = +agrave +Agrave backslash
agrave        0x2c
Agrave        0x2c  shift
backslash     0x2c        altgr

##                    AltGr keycode  45 = braceleft
braceleft     0x2d        altgr
##              Shift AltGr keycode  45 = U+2018
U2018         0x2d  shift altgr

##                    AltGr keycode  46 = braceright
braceright    0x2e        altgr

## keycode 47 = period colon U+2026 periodcentered
period        0x2f
colon         0x2f  shift
U2026         0x2f        altgr
periodcentered  0x2f  shift altgr

##                    AltGr keycode  48 = asciitilde
asciitilde    0x30        altgr
##              Shift AltGr keycode  48 = U+2328
U2328         0x30  shift altgr

## keycode 49 = apostrophe question questiondown +U+0309
apostrophe    0x31
question      0x31  shift
questiondown  0x31        altgr
U+0309        0x31  shift altgr

##                    AltGr keycode  51 = mu
mu            0x33        altgr

##                    AltGr keycode  52 = U+2020
U2020         0x34        altgr
##              Shift AltGr keycode  52 = U+2021
U2021         0x34  shift altgr

##              Shift AltGr keycode  53 = ordfeminine
ordfeminine   0x35  shift altgr



## keycode 57 = space nobreakspace underscore U+202f
space         0x39
nobreakspace  0x39  shift
underscore    0x39        altgr
U202f         0x39  shift altgr