/usr/share/X11/xkb/symbols
NameSizeModeActions
digital_vndr/-0755rm
fujitsu_vndr/-0755rm
hp_vndr/-0755rm
jolla_vndr/-0755rm
macintosh_vndr/-0755rm
nec_vndr/-0755rm
nokia_vndr/-0755rm
sgi_vndr/-0755rm
sharp_vndr/-0755rm
sony_vndr/-0755rm
sun_vndr/-0755rm
xfree68_vndr/-0755rm
af233840644editdlrm
al61570644editdlrm
altwin36700644editdlrm
am102840644editdlrm
apl521760644editdlrm
ara335990644editdlrm
at3580644editdlrm
au1780644editdlrm
az37840644editdlrm
ba6570644editdlrm
bd42890644editdlrm
be111010644editdlrm
bg234140644editdlrm
br167780644editdlrm
brai25100644editdlrm
bt45970644editdlrm
bw9960644editdlrm
by33430644editdlrm
ca214340644editdlrm
capslock20000644editdlrm
cd40380644editdlrm
ch72690644editdlrm
cm337870644editdlrm
cn373430644editdlrm
compose23030644editdlrm
ctrl39640644editdlrm
cz241860644editdlrm
de956480644editdlrm
dk24620644editdlrm
dz126970644editdlrm
ee41410644editdlrm
eg20610644editdlrm
empty1000644editdlrm
epo75980644editdlrm
es98590644editdlrm
et31330644editdlrm
eu52680644editdlrm
eurosign6290644editdlrm
fi248930644editdlrm
fo19890644editdlrm
fr969730644editdlrm
gb99140644editdlrm
ge129750644editdlrm
gh65610644editdlrm
gn21910644editdlrm
gr143370644editdlrm
group119810644editdlrm
hr25480644editdlrm
hu234570644editdlrm
id85300644editdlrm
ie202760644editdlrm
il166250644editdlrm
in1153060644editdlrm
inet788330644editdlrm
iq6410644editdlrm
ir124330644editdlrm
is131340644editdlrm
it174790644editdlrm
jp84610644editdlrm
jv34520644editdlrm
ke75480644editdlrm
keypad237580644editdlrm
kg60780644editdlrm
kh49950644editdlrm
kpdl33980644editdlrm
kr11680644editdlrm
kz163980644editdlrm
la55620644editdlrm
latam138110644editdlrm
latin146340644editdlrm
level22740644editdlrm
level365550644editdlrm
level547390644editdlrm
lk81980644editdlrm
lt235160644editdlrm
lv192800644editdlrm
ma125100644editdlrm
Makefile.in297610644editdlrm
mao5930644editdlrm
md51150644editdlrm
me17480644editdlrm
mk30700644editdlrm
ml33250644editdlrm
mm59120644editdlrm
mn42740644editdlrm
mt90920644editdlrm
mv26690644editdlrm
my68710644editdlrm
nbsp44060644editdlrm
ng62680644editdlrm
nl67220644editdlrm
no117160644editdlrm
np67490644editdlrm
olpc9300644editdlrm
parens3890644editdlrm
pc23880644editdlrm
ph759790644editdlrm
pk271510644editdlrm
pl271100644editdlrm
pt118330644editdlrm
ro116930644editdlrm
rs153630644editdlrm
ru679910644editdlrm
rupeesign1310644editdlrm
se169930644editdlrm
shift22400644editdlrm
si5900644editdlrm
sk68580644editdlrm
sn22190644editdlrm
srvr_ctrl23300644editdlrm
sy70760644editdlrm
terminate1990644editdlrm
tg48210644editdlrm
th103370644editdlrm
tj103870644editdlrm
tm14790644editdlrm
tr265770644editdlrm
trans160500644editdlrm
tw33050644editdlrm
typo45220644editdlrm
tz34280644editdlrm
ua160860644editdlrm
us1075050644editdlrm
uz41250644editdlrm
vn61530644editdlrm
za21080644editdlrm
Edit: /usr/share/X11/xkb/symbols/fr (96973B)
default partial alphanumeric_keys xkb_symbols "basic" { include "latin" name[Group1]="French"; key { [ ampersand, 1, onesuperior, exclamdown ] }; key { [ eacute, 2, asciitilde, oneeighth ] }; key { [ quotedbl, 3, numbersign, sterling ] }; key { [apostrophe, 4, braceleft, dollar ] }; key { [ parenleft, 5, bracketleft, threeeighths ] }; key { [ minus, 6, bar, fiveeighths ] }; key { [ egrave, 7, grave, seveneighths ] }; key { [underscore, 8, backslash, trademark ] }; key { [ ccedilla, 9, asciicircum, plusminus ] }; key { [ agrave, 0, at, degree ] }; key { [parenright, degree, bracketright, questiondown ] }; key { [ equal, plus, braceright, dead_ogonek ] }; key { [ a, A, ae, AE ] }; key { [ z, Z, guillemotleft, less ] }; key { [ e, E, EuroSign, cent ] }; key { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] }; key { [ dollar, sterling, currency, dead_macron ] }; key { [ q, Q, at, Greek_OMEGA ] }; key { [ m, M, mu, masculine ] }; key { [ ugrave, percent, dead_circumflex, dead_caron] }; key { [twosuperior, asciitilde, notsign, notsign ] }; key { [ asterisk, mu, dead_grave, dead_breve ] }; key { [ w, W, lstroke, Lstroke ] }; key { [ comma, question, dead_acute, dead_doubleacute ] }; key { [ semicolon, period, horizconnector, multiply ] }; key { [ colon, slash, periodcentered, division ] }; key { [ exclam, section, dead_belowdot, dead_abovedot ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "olpc" { // Contact: Sayamindu Dasgupta include "fr(basic)" name[Group1]="French"; key { [ less, greater ] }; key { [ dead_circumflex, dead_diaeresis, notsign, dead_abovering ] }; key { [ semicolon, period, underscore, multiply ] }; key { [ twosuperior, asciitilde, VoidSymbol, VoidSymbol ] }; // Some keys only have the Shift+AltGr character printed on them (alongside // the unmodified one). Make such keys shift-invariant so that the printed // value is achieved by pressing AltGr or Shift+AltGr. key { [ x, X, guillemotright, guillemotright ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ z, Z, guillemotleft, guillemotleft ] }; }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // Modifies the basic French layout to eliminate all dead keys include "fr(basic)" name[Group1]="French (no dead keys)"; key { [ equal, plus, braceright, ogonek ] }; key { [asciicircum, diaeresis ] }; key { [ dollar, sterling, currency, macron ] }; key { [ ugrave, percent, asciicircum, caron ] }; key { [ asterisk, mu, grave, breve ] }; key { [ comma, question, acute, doubleacute ] }; key { [ exclam, section, dead_belowdot, abovedot ] }; }; // Unicode French derivative // Loose refactoring of the historic Linux French keyboard layout // // Copyright © 2006-2008 Nicolas Mailhot // // Credits (fr-latin1, fr-latin0, fr-latin9) // © 199x-1996 René Cougnenc ✝ // © 1997-2002 Guylhem Aznar // © 2003-2006 Nicolas Mailhot // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ // │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ £ Ø ┃Entrée ┃ // ┃Tab ↹ ┃ a æ │ z â │ e € │ r ê │ t þ │ y ÿ │ u û │ i î │ o œ │ p ô │ ^ ~ │ $ ø ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ Q Ä │ S „ │ D Ë │ F ‚ │ G ¥ │ H Ð │ J Ü │ K Ï │ L Ŀ │ M Ö │ % Ù │ µ ̄ ┃ ┃ // ┃Maj ⇬ ┃ q ä │ s ß │ d ë │ f ‘ │ g ’ │ h ð │ j ü │ k ï │ l ŀ │ m ö │ ù ' │ * ` ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃ ┃ // ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "oss" { include "latin" include "level3(ralt_switch)" include "nbsp(level4n)" include "keypad(oss)" name[Group1]="French (alt.)"; // First row key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸ key { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨ key { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É key { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘ key { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin) key { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin) key { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable) key { [ egrave, 7, grave, Egrave ] }; // è 7 ` È key { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™ key { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç key { [ agrave, 0, at, Agrave ] }; // à 0 @ À key { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠ key { [ equal, plus, braceright, plusminus ] }; // = + } ± // Second row key { [ a, A, ae, AE ] }; // a A æ Æ key { [ z, Z, acircumflex, Acircumflex ] }; // z Z â  key { [ e, E, EuroSign, cent ] }; // e E € ¢ key { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê key { [ t, T, thorn, THORN ] }; // t T þ Þ key { [ y, Y, ydiaeresis, Ydiaeresis ] }; // y Y ÿ Ÿ key { [ u, U, ucircumflex, Ucircumflex ] }; // u U û Û key { [ i, I, icircumflex, Icircumflex ] }; // i I î Î key { [ o, O, oe, OE ] }; // o O œ Œ key { [ p, P, ocircumflex, Ocircumflex ] }; // p P ô Ô key { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚ key { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø // Third row key { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä key { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „ key { [ d, D, ediaeresis, Ediaeresis ] }; // d D ë Ë key { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F ‘ ‚ key { [ g, G, rightsinglequotemark, yen ] }; // g G ’ ¥ key { [ h, H, eth, ETH ] }; // h H ð Ð key { [ j, J, udiaeresis, Udiaeresis ] }; // j J ü Ü key { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï key { [ l, L, 0x1000140, 0x100013F ] }; // l L ŀ Ŀ key { [ m, M, odiaeresis, Odiaeresis ] }; // m M ö Ö key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ // Fourth row key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ key { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “ key { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ” key { [ c, C, copyright, registered ] }; // c C © ® key { [ v, V, 0x100202F, leftarrow ] }; // v V ⍽ ← (espace fine insécable) key { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑ key { [ n, N, notsign, rightarrow ] }; // n N ¬ → key { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ … key { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅ key { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕ key { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ − }; partial alphanumeric_keys xkb_symbols "oss_latin9" { // Restricts the fr(oss) layout to latin9 symbols include "fr(oss)" include "keypad(oss_latin9)" name[Group1]="French (alt., Latin-9 only)"; // First row key { [ ampersand, 1, dead_caron, dead_cedilla ] }; // & 1 ˇ ¸ key { [ quotedbl, 3, numbersign, dead_tilde ] }; // " 3 # ~ key { [ apostrophe, 4, braceleft, underscore ] }; // ' 4 { _ key { [ parenleft, 5, bracketleft, minus ] }; // ( 5 [ - key { [ minus, 6, bar, minus ] }; // - 6 | - key { [ underscore, 8, backslash, backslash ] }; // _ 8 \ \ key { [ parenright, degree, bracketright, equal ] }; // ) ° ] = // Third row key { [ s, S, ssharp, guillemotleft ] }; // s S ß « key { [ f, F, apostrophe, apostrophe ] }; // f F ' ' key { [ g, G, apostrophe, yen ] }; // g G ' ¥ key { [ l, L, periodcentered, periodcentered ] }; // l L · · key { [ asterisk, mu, dead_grave, dead_circumflex ] }; // * µ ` ^ // Fourth row key { [ less, greater, less, greater ] }; // < > < > key { [ w, W, guillemotleft, guillemotleft ] }; // w W « « key { [ x, X, guillemotright, guillemotright ] }; // x X » » key { [ v, V, nobreakspace, less ] }; // v V ⍽ < (espace insécable) key { [ b, B, minus, asciicircum ] }; // b B - ^ key { [ n, N, notsign, greater ] }; // n N ¬ > key { [ comma, question, questiondown, period ] }; // , ? ¿ . key { [ semicolon, period, multiply, periodcentered ] }; // ; . × · key { [ colon, slash, division, slash ] }; // : / ÷ / key { [ exclam, section, exclamdown, minus ] }; // ! § ¡ - }; partial alphanumeric_keys xkb_symbols "oss_nodeadkeys" { // Modifies the basic fr(oss) layout to eliminate all dead keys include "fr(oss)" name[Group1]="French (alt., no dead keys)"; key { [ twosuperior, threesuperior, onesuperior, cedilla ] }; // ² ³ ¹ ¸ key { [ ampersand, 1, caron, ogonek ] }; // & 1 ˇ ̨ key { [ quotedbl, 3, numbersign, breve ] }; // " 3 # ˘ key { [ asciicircum, diaeresis, asciitilde, Aring ] }; // ^ ̈ ̃ Å key { [ ugrave, percent, acute, Ugrave ] }; // ù % ' Ù key { [ asterisk, mu, grave, macron ] }; // * µ ` ̄ }; // Historic Linux French keyboard layout (fr-latin9) // Copyright (c) 199x, 2002 Rene Cougnenc (original work) // Guylhem Aznar (maintainer) // Nicolas Mailhot // (XFree86 submission) // // This layout has long been distributed and refined outside official channels. // To this day it remains more feature-rich and popular than the 'fr' layout. // // This layout is derived from an original version by Guylhem Aznar. // The original version is always available from: // http://en.tldp.org/HOWTO/Francophones-HOWTO.html // and is distributed under a GPL license. // // The author has given permission for this derived version to be distributed // under the standard XFree86 license. He would like all changes to this // version to be sent to him at , so he can sync // the identically named linux console map (kbd, linux-console) and his // out-of-tree GPL version. // // Now follows the keyboard design description in French. // (If you can't read it you probably have no business changing this file anyway:) // // Les accents circonflexes des principales voyelles sont obtenus avec // la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift. // // ____ _________ _____________ _______ // | S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause | // | s a| s = normal, a = AltGr | Exec | | Halte | // ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ // ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ // | œ "| 1 ·| 2 É| 3 ,| 4 '| 5 "| 6 || 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + °| <-- | // | Œ "| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | // ======================================================================== // | |<- | A ä| Z Å| E ¢| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| $ ë| , | // | ->| | a â| z å| e €| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ê| <-' | // ===================================================================¬ | // | | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥| | // | MAJ | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³| | // ======================================================================== // | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ | // | | | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| | | // ======================================================================== // | | | | | | | | | // | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl | // ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ // // // Si les touches mortes fonctionnent, utiliser les accents dits // « morts », i.e. fonctionnant comme l'accent circonflexe & le // tréma des machines à écrire ; sont disponibles : // // (^) : accent circonflexe, // Shift+(^) : tréma, // Shift+AltGr+(^) : tilde, // AltGr+(1) : accent aigu, // AltGr+(7) : accent grave // // Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma // sur les vielles machines à écrire : // // AltGr+(1) puis e : é // AltGr+(1) puis E : É // partial alphanumeric_keys xkb_symbols "latin9" { include "latin" include "nbsp(level3)" name[Group1]="French (legacy, alt.)"; key { [ oe, OE, leftdoublequotemark, rightdoublequotemark ] }; key { [ ampersand, 1, dead_acute, periodcentered ] }; key { [ eacute, 2, asciitilde, Eacute ] }; key { [ quotedbl, 3, numbersign, cedilla ] }; key { [ apostrophe, 4, braceleft, acute ] }; key { [ parenleft, 5, bracketleft, diaeresis ] }; key { [ minus, 6, bar, brokenbar ] }; key { [ egrave, 7, dead_grave, Egrave ] }; key { [ underscore, 8, backslash, macron ] }; key { [ ccedilla, 9, asciicircum, Ccedilla ] }; key { [ agrave, 0, at, Agrave ] }; key { [ parenright, degree, bracketright, ydiaeresis ] }; key { [ equal, plus, braceright, dead_abovering ] }; key { [ a, A, acircumflex, adiaeresis ] }; key { [ z, Z, aring, Aring ] }; key { [ e, E, EuroSign, cent ] }; key { [ r, R, ccedilla, Ccedilla ] }; key { [ t, T, thorn, THORN ] }; key { [ y, Y, yacute, Yacute ] }; key { [ u, U, ucircumflex, udiaeresis ] }; key { [ i, I, icircumflex, idiaeresis ] }; key { [ o, O, ocircumflex, odiaeresis ] }; key { [ p, P, paragraph, grave ] }; key { [ dead_circumflex, dead_diaeresis, dead_tilde, apostrophe ] }; key { [ dollar, sterling, ecircumflex, ediaeresis ] }; key { [ q, Q, Acircumflex, Adiaeresis ] }; key { [ s, S, oslash, Ooblique ] }; key { [ d, D, Ecircumflex, Ediaeresis ] }; key { [ f, F, plusminus, ordfeminine ] }; key { [ g, G, ae, AE ] }; key { [ h, H, eth, ETH ] }; key { [ j, J, Ucircumflex, Udiaeresis ] }; key { [ k, K, Icircumflex, Idiaeresis ] }; key { [ l, L, Ocircumflex, Odiaeresis ] }; key { [ m, M, onesuperior, masculine ] }; key { [ ugrave, percent, twosuperior, Ugrave ] }; key { [ asterisk, mu, threesuperior, yen ] }; key { [ less, greater, bar ] }; key { [ w, W, guillemotleft ] }; key { [ x, X, guillemotright ] }; key { [ c, C, copyright ] }; key { [ v, V, registered ] }; key { [ b, B, ssharp, U1E9E ] }; key { [ n, N, notsign ] }; key { [ comma, question, questiondown ] }; key { [ semicolon, period, multiply ] }; key { [ colon, slash, division ] }; key { [ exclam, section, exclamdown ] }; // French uses a comma as decimal separator, but keyboards are labeled with a period // Will take effect when KP_Decimal is mapped to the locale decimal separator key { [ KP_Delete, KP_Decimal, KP_Delete, KP_Decimal ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "latin9_nodeadkeys" { // Modifies the basic fr-latin9 layout to eliminate all dead keys include "fr(latin9)" name[Group1]="French (legacy, alt., no dead keys)"; key { [ ampersand, 1, apostrophe, periodcentered ] }; key { [ egrave, 7, grave, Egrave ] }; key { [ equal, plus, braceright ] }; key { [ asciicircum, diaeresis, asciitilde, apostrophe ] }; }; // 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. // XOrg integration (1.0rc2 version) in 2008 // by Frédéric Boiteux // // 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 ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "bepo" { include "level3(ralt_switch)" include "keypad(oss)" name[Group1]= "French (BEPO)"; // First row key { [ dollar, numbersign, endash, paragraph ] }; // $ # – ¶ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1 — „ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, leftdoublequotemark ] }; // « 2 < “ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, rightdoublequotemark ] }; // » 3 > ” key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, lessthanequal ] }; // ( 4 [ ≤ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, greaterthanequal ] }; // ) 5 ] ≥ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum ] }; // @ 6 ^ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ] }; // + 7 ± ¬ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ] }; // - 8 − ¼ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, onehalf ] }; // / 9 ÷ ½ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0 × ¾ key { [ equal, degree, notequal, minutes ] }; // = ° ≠ ′ key { [ percent, grave, permille, seconds ] }; // % ` ‰ ″ // Second row key { [ b, B, bar, brokenbar ] }; // b B | ¦ key { [ eacute, Eacute, dead_acute, dead_doubleacute ] }; // é É ˊ ˝ key { [ p, P, ampersand, section ] }; // p P & § key { [ o, O, oe, OE ] }; // o O œ Œ key { [ egrave, Egrave, dead_grave, grave ] }; // è È ` ` key { [ dead_circumflex, exclam, exclamdown ] }; // ^ ! ¡ key { [ v, V, dead_caron ] }; // v V ˇ key { [ d, D, eth, ETH ] }; // d D ð Ð key { [ l, L, dead_stroke ] }; // l L / key { [ j, J, U0133, U0132 ] }; // j J ij IJ key { [ z, Z, schwa, SCHWA ] }; // z Z ə Ə key { [ w, W, dead_breve ] }; // w W ̆ // Third row key { [ a, A, ae, AE ] }; // a A æ Æ key { [ u, U, ugrave, Ugrave ] }; // u U ù Ù key { [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ̈ ˙ key { [ e, E, EuroSign, dead_currency ] }; // e E € ¤ key { [ comma, semicolon, rightsinglequotemark, dead_horn ] }; // , ; ’ ̛ key { [ c, C, copyright, U017F ] }; // c C © ſ key { [ t, T, thorn, THORN ] }; // t T þ Þ key { [ s, S, ssharp, U1E9E ] }; // s S ß ẞ key { [ r, R, registered, trademark ] }; // r R ® ™ key { [ n, N, dead_tilde ] }; // n N ~ key { [ m, M, dead_macron, masculine ] }; // m M ̄ º key { [ ccedilla, Ccedilla, dead_cedilla, dead_belowcomma ] }; // ç Ç ¸ , // Fourth row key { [ ecircumflex, Ecircumflex, slash ] }; // ê Ê / key { [ agrave, Agrave, backslash ] }; // à À \ key { [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘ key { [ x, X, braceright, rightsinglequotemark ] }; // x X } ’ key { [ period, colon, ellipsis, periodcentered ] }; // . : … · key { [ k, K, asciitilde ] }; // k K ~ key { [ apostrophe, question, questiondown, dead_hook ] }; // ' ? ¿ ̉ key { [ q, Q, dead_abovering, dead_belowdot ] }; // q Q ˚ ̣ key { [ g, G, dead_greek ] }; // g G µ key { [ h, H, dagger, doubledagger ] }; // h H † ‡ key { [ f, F, dead_ogonek, ordfeminine ] }; // f F ̨ ª key { [ space, nobreakspace, underscore, U202F ] }; // ␣ (espace insécable) _ (espace insécable fin) }; partial alphanumeric_keys xkb_symbols "bepo_latin9" { // Restricts the fr(bepo) layout to latin9 symbols include "fr(bepo)" include "keypad(oss_latin9)" name[Group1]="French (BEPO, Latin-9 only)"; key { [ dollar, numbersign, dollar, paragraph ] }; // $ # $ ¶ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1 ] }; // " 1 key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less ] }; // « 2 < key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater ] }; // » 3 > key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft ] }; // ( 4 [ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright ] }; // ) 5 ] key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, minus, onequarter ] }; // - 8 - ¼ key { [ equal, degree ] }; // = ° key { [ percent, grave ] }; // % ` key { [ b, B, bar ] }; // b B | key { [ eacute, Eacute, dead_acute ] }; // é É ˊ key { [ j, J ] }; // j J key { [ z, Z ] }; // z Z key { [ w, W ] }; // w W key { [ i, I, dead_diaeresis ] }; // i I ̈ key { [ comma, semicolon, comma, dead_horn ] }; // , ; , ̛ key { [ c, C, copyright ] }; // c C © key { [ s, S, ssharp, U1E9E ] }; // s S ß ẞ key { [ r, R, registered ] }; // r R ® key { [ m, M, macron, masculine ] }; // m M ̄ º key { [ y, Y, braceleft ] }; // y Y { key { [ x, X, braceright ] }; // x X } key { [ period, colon ] }; // . : key { [ h, H ] }; // h H key { [ f, F, f, ordfeminine ] }; // f F ª // Note : on a besoin de redéfinir les niveaux 3 et 4, // donc nbsp(level2) ne suffit pas ! key { [ space, nobreakspace, underscore, nobreakspace ] }; // ␣ (espace insécable) _ (espace insécable) }; // Version 1.1rc2 of the Bépo keyboard layout, // normalized by the AFNOR NF Z71‐300 norm. // // Layout: https://bepo.fr/wiki/Version_1.1rc2 // Normalization: https://normalisation.afnor.org/actualites/faq-clavier-francais/ // // ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗ // │ # ¶│ 1 „│ 2 “│ 3 ”│ 4 ⩽│ 5 ⩾║ 6 │ 7 ¬│ 8 ¼│ 9 ½│ 0 ¾│ ° ′│ ` ″║ ║ // │ $ –│ " —│ « <│ » >│ ( [│ ) ]║ @ ^│ + ±│ - −│ / ÷│ * ×│ = ≠│ % ‰║ <-- ║ // ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣ // ║ |<- ║ B _│ É │ P §│ O Œ│ È `║ ! │ V │ D │ L £│ J │ Z │ W ║ | ║ // ║ ->| ║ b |│ é ´│ p &│ o œ│ è `║ ˆ ¡│ v ˇ│ d ∞│ l /│ j │ z ―│ w ║ <-' ║ // ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗ ║ // ║ ║ A Æ│ U Ù│ I ˙│ E ¤│ ; ,║ C ©│ T ™│ S ſ│ R ®│ N │ M │ Ç ©║ ║ // ║ CAPS ║ a æ│ u ù│ i ¨│ e €│ , '║ c ¸│ t ᵉ│ s ß│ r ˘│ n ~│ m ¯│ ç ║ ║ // ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣ // ║ ^ ║ Ê ^│ À ‚│ Y ‘│ X ’│ : ·│ K ‑║ ? ̉ │ Q ̛│ G †│ H ‡│ F ║ ^ ║ // ║ | ║ ê /│ à \│ y {│ x }│ . …│ k ~║ ’ ¿│ q °│ g µ│ h ̣ │ f ˛║ | ║ // ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣ // ║ ║ ║ ║ Fine insécable Insécable ║ ║ ║ ║ ║ // ║ Ctrl ║ WinG ║ Alt ║ Espace _ ║AltGr║ WinD ║WinM ║ Ctrl ║ // ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝ partial alphanumeric_keys xkb_symbols "bepo_afnor" { name[Group1]= "French (BEPO, AFNOR)"; include "pc(pc105)" key { type[group1] = "FOUR_LEVEL", [ dollar, numbersign, endash, paragraph ] }; // $ # – ¶ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1 — „ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, leftdoublequotemark ] }; // « 2 < “ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, rightdoublequotemark ] }; // » 3 > ” key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, U2A7D ] }; // ( 4 [ ⩽ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, U2A7E ] }; // ) 5 ] ⩾ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum, U262D ] }; // @ 6 ^ ☭ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ] }; // + 7 ± ¬ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ] }; // - 8 − ¼ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, onehalf ] }; // / 9 ÷ ½ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0 × ¾ key { type[group1] = "FOUR_LEVEL", [ equal, degree, notequal, minutes ] }; // = ° ≠ ′ key { type[group1] = "FOUR_LEVEL", [ percent, grave, U2030, seconds ] }; // % ` ‰ ″ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ b, B, bar, underscore ] }; // b B | _ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, dead_acute, heart ] }; // é É ´ ♥ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ p, P, ampersand, section ] }; // p P & § key { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ o, O, oe, OE ] }; // o O œ Œ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, dead_grave, grave ] }; // è È ` ` key { type[group1] = "FOUR_LEVEL", [ dead_circumflex, exclam, exclamdown, U2620 ] }; // ^ ! ¡ ☠ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ v, V, dead_caron, U2622 ] }; // v V ˇ ☢ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ d, D, UFDD7, U2623 ] }; // d D ∞ ☣ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ l, L, dead_stroke, sterling ] }; // l L / £ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ j, J, U262E, U262F ] }; // j J ☮ ☯ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ z, Z, UFDD8, U2619 ] }; // z Z ― ☙ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ w, W, U269C, U267F ] }; // w W ⚜ ♿ key { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ a, A, ae, AE ] }; // a A æ Æ key { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ u, U, ugrave, Ugrave ] }; // u U ù Ù key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ¨ ˙ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ e, E, EuroSign, dead_currency ] }; // e E € ¤ key { type[group1] = "FOUR_LEVEL", [ comma, semicolon, apostrophe, dead_belowcomma ] }; // , ; ' , key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ c, C, dead_cedilla, copyright ] }; // c C ¸ © key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ t, T, UFDD5, trademark ] }; // t T ᵉ ™ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ s, S, UFDD4, U017F ] }; // s S ß ſ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ r, R, dead_breve, registered ] }; // r R ˘ ® key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ n, N, dead_tilde, U2693 ] }; // n N ~ ⚓ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ m, M, dead_macron, U26FD ] }; // m M ¯ ⛽ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ccedilla, Ccedilla, U2708, U1F12F ] }; // ç Ç ✈ 🄯 key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ecircumflex, Ecircumflex, slash, asciicircum ] }; // ê Ê / ^ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ agrave, Agrave, backslash, singlelowquotemark ] }; // à À \ ‚ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ x, X, braceright, rightsinglequotemark ] }; // x X } ’ key { type[group1] = "FOUR_LEVEL", [ period, colon, ellipsis, periodcentered ] }; // . : … · key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ k, K, asciitilde, U2011 ] }; // k K ~ ‑ key { type[group1] = "FOUR_LEVEL", [ rightsinglequotemark, question, questiondown, dead_hook ] }; // ’ ? ¿ ̉ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ q, Q, dead_abovering, dead_horn ] }; // q Q ˚ ̛ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ g, G, dead_greek, dagger ] }; // g G µ † key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ h, H, dead_belowdot, doubledagger ] }; // h H ̣ ‡ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, U26C4 ] }; // f F ˛ ⛄ key { type[group1] = "FOUR_LEVEL", [ space, U202F, underscore, nobreakspace ] }; //   _ include "level3(ralt_switch)" }; // Author : Francis Leboutte, http://www.algo.be/ergo/dvorak-fr.html // thanks to Fabien Cazenave for his help // Licence : X11 // Version : 0.3 // Base layer + dead AltGr key (`): // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ // │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃ // │ _ │ = │ / ± │ - ¼ │ è ½ │ \ ¾ │ ^ │ ( │ ` ` │ ) │ " │ [ │ ] ┃ ⌫ ┃ // ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ // ┃ ┃ ? Æ │ < │ > │ G │ ! │ H │ V │ C Ç │ M │ K │ Z │ & ┃ ┃ // ┃ ↹ ┃ : æ │ ' $ │ é É │ g € │ . ° │ h │ v │ c ç │ m µ │ k │ z │ ¨ ┃ ┃ // ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃ // ┃ ┃ O Ò │ A À │ U Ù │ E È │ B │ F │ S │ T │ N │ D │ W │ # ┃ ┃ // ┃ ⇬ ┃ o ò │ a à │ u ù │ e è │ b │ f │ s « │ t │ n » │ d │ w │ ~ ┃ ┃ // ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫ // ┃ ┃ ç Ç │ | Œ │ Q │ @ │ I Ì │ Y │ X │ R │ L │ P │ J ┃ ┃ // ┃ ⇧ ┃ à À │ ; œ │ q { │ , } │ i ì │ y £ │ x │ r º │ l │ p § │ j ┃ ⇧ ┃ // ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫ // ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃ // ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // Notice the specific Caps_Lock layer: // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ // │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃ // │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ ┃ // ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ // ┃ ┃ │ < │ > │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ↹ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ⇬ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫ // ┃ ┃ / │ - │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ⇧ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ⇧ ┃ // ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫ // ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃ // ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys modifier_keys xkb_symbols "dvorak" { name[Group1]="French (Dvorak)"; // First row key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ underscore, asterisk ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ equal, 1 ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 2, plusminus ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 3, onequarter ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, 4, onehalf ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ backslash, 5, threequarters ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ dead_circumflex, 6 ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 7 ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ISO_Level3_Latch, 8, grave ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 9 ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 0 ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketleft, plus ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketright, percent ] }; // Second row key { [ colon, question, ae, AE ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ apostrophe, less, dollar ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, greater, Eacute ] }; key { [ g, G, EuroSign ] }; key { [ period, exclam, degree ] }; key { [ h, H ] }; key { [ v, V ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ m, M, mu ] }; key { [ k, K ] }; key { [ z, Z ] }; key { [ dead_diaeresis, ampersand ] }; // Third row key { [ o, O, ograve, Ograve ] }; key { [ a, A, agrave, Agrave ] }; key { [ u, U, ugrave, Ugrave ] }; key { [ e, E, egrave, Egrave ] }; key { [ b, B ] }; key { [ f, F ] }; key { [ s, S, guillemotleft ] }; key { [ t, T ] }; key { [ n, N, guillemotright ] }; key { [ d, D ] }; key { [ w, W ] }; key { [ asciitilde, numbersign ] }; // Fourth row key { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ agrave, ccedilla, Agrave, Ccedilla, slash ] }; key { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ semicolon, bar, oe, OE, minus ] }; key { [ q, Q, braceleft ] }; key { [ comma, at, braceright ] }; key { [ i, I, igrave, Igrave ] }; key { [ y, Y, sterling ] }; key { [ x, X ] }; key { [ r, R, masculine ] }; key { [ l, L ] }; key { [ p, P, section ] }; key { [ j, J ] }; key { [ space, space, nobreakspace, nobreakspace ] }; }; // C'WHERTY: Breton keyboard. Ar c'hlavier brezhoneg. // Copyright © 2009 Dominique Pellé // Version: 0.1 // // ┌─────┐ // │ S A │ S = Reol = Shift, A = ArErl + Pennlizherenn = AltGr + Shift // │ s a │ s = normal, a = ArErl = AltGr // └─────┘ // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ $ Γ │ 1 Δ │ 2 Θ │ 3 Λ │ 4 Ξ │ 5 Π │ 6 Σ │ 7 Φ │ 8 Ψ │ 9 Ç │ 0 Ω │ ° ß │ + ¬ ┃ ⌫ Souzañ┃ // │ ² ˙ │ & ¯ │ é ´ │ " # │ ' { │ ( [ │ - | │ è ` │ - \ │ ç ± │ à @ │ ) ] │ = } ┃ ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃Toalenn┃ C'h │ W ω │ E ε │ R ρ │ T τ │ Y ψ │ U υ │ I ι │ O OE│ P π │ ¨ ¥ │ * £ ┃Enankañ┃ // ┃ ↹ ┃ c'h │ w │ e € │ r │ t │ y │ u │ i ı │ o oe│ p │ ^ « │ / » ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃Prenn ┃ A Æ │ S σ │ D δ │ F φ │ G γ │ H η │ J ς │ K κ │ L λ │ M μ │ Ù ® │ ! ¡ ┃ ┃ // ┃Pennli ⇬┃ a æ │ s │ d $ │ f │ g │ h │ j │ k │ l │ m │ ù ŭ │ ? ¿ ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ Q θ │ Z ζ │ X ξ │ C χ │ V │ B β │ N ν │ CH │ Ñ │ : © │ ; ┃ ┃ // ┃Shift ⇧┃ q < │ z > │ x │ c ¢ │ v │ b │ n │ ch │ ñ │ . │ , ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ⍽ Espace insécable ␣ ┃ ┃ ┃ ┃ // ┃Reol ┃Meta ┃Erl ┃ ␣ Espace ␣ ┃ArErl ⇮┃Menu ┃Reol ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "bre" { include "keypad(oss)" name[Group1]= "French (Breton)"; // First row key { [ twosuperior, dead_tilde, dead_abovedot, Greek_GAMMA ] }; key { [ ampersand, 1, dead_macron, Greek_DELTA ] }; key { [ eacute, 2, dead_acute, Greek_THETA ] }; key { [ quotedbl, 3, numbersign, Greek_LAMDA ] }; key { [ apostrophe, 4, braceleft, Greek_XI ] }; key { [ parenleft, 5, bracketleft, Greek_PI ] }; key { [ minus, 6, bar, Greek_SIGMA ] }; key { [ egrave, 7, dead_grave, Greek_PHI ] }; key { [ underscore, 8, backslash, Greek_PSI ] }; key { [ ccedilla, 9, plusminus, Ccedilla ] }; key { [ agrave, 0, at, Greek_OMEGA ] }; key { [ parenright, dead_abovering, bracketright, ssharp ] }; key { [ equal, plus, braceright, notsign ] }; // Second row // Handling the C'H key correctly requires an inputmethod (XIM) // See https://bugs.freedesktop.org/show_bug.cgi?id=19506 // key { [ trigraph_c_h, trigraph_C_h, trigraph_C_H, Greek_alpha ] }; key { [ UF8FD, UF8FE, UF8FF, Greek_alpha ] }; key { [ w, W, Greek_omega, Greek_omega ] }; key { [ e, E, EuroSign, Greek_epsilon ] }; key { [ r, R, Greek_rho, Greek_rho ] }; key { [ t, T, Greek_tau, Greek_tau ] }; key { [ y, Y, Greek_psi, Greek_psi ] }; key { [ u, U, Greek_upsilon, Greek_upsilon ] }; key { [ i, I, idotless, Greek_iota ] }; key { [ o, O, oe, OE ] }; key { [ p, P, Greek_pi, Greek_pi ] }; key { [ dead_circumflex, dead_diaeresis, guillemotleft, yen ] }; key { [ slash, asterisk, guillemotright, sterling ] }; // Third row key { [ a, A, ae, AE ] }; key { [ s, S, Greek_sigma, Greek_sigma ] }; key { [ d, D, dollar, Greek_delta ] }; key { [ f, F, Greek_phi, Greek_phi ] }; key { [ g, G, Greek_gamma, Greek_gamma ] }; key { [ h, H, Greek_eta, Greek_eta ] }; key { [ j, J, Greek_finalsmallsigma, Greek_finalsmallsigma ] }; key { [ k, K, Greek_kappa, Greek_kappa ] }; key { [ l, L, Greek_lamda, Greek_lambda ] }; key { [ m, M, Greek_mu, Greek_mu ] }; key { [ ugrave, Ugrave, ubreve, registered ] }; key { [ question, exclam, questiondown, exclamdown ] }; // Fourth row key { [ q, Q, less, Greek_theta ] }; key { [ z, Z, greater, Greek_zeta ] }; key { [ x, X, Greek_xi, Greek_xi ] }; key { [ c, C, cent, Greek_chi ] }; key { [ v, V ] }; key { [ b, B, Greek_beta, Greek_beta ] }; key { [ n, N, Greek_nu, Greek_nu ] }; // Handling the CH key correctly requires an inputmethod (XIM) // See https://bugs.freedesktop.org/show_bug.cgi?id=19506 // key { [ digraph_ch, digraph_Ch, digraph_CH, Greek_omicron ] }; key { [ UF8FA, UF8FB, UF8FC, Greek_omicron ] }; key { [ ntilde, Ntilde ] }; key { [ period, colon, section, copyright ] }; key { [ comma, semicolon, percent ] }; key { [ space, nobreakspace, space, nobreakspace ] }; include "level3(ralt_switch)" }; // Occitan layout // Author : 2009 Thomas Metz // Derived from the layout defined at http://www.panoccitan.org // Version: 0.1 // Differences from OSS French keyboard : // - add á, í, ò, ó et ú, Á, Í, Ò, Ó, Ú, ñ, Ñ // - change position of æ, ü, î, û, œ, ô, ö, ï, â, ë // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ // │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ A Á │ Z Æ │ E ¢ │ R Ê │ T Ë │ Y Û │ U Ú │ I Í │ O Ó │ P Ò │ ¨ Œ │ £ Ø ┃Entrée ┃ // ┃Tab ↹ ┃ a á │ z æ │ e € │ r ê │ t ë │ y û │ u ú │ i í │ o ó │ p ò │ ^ œ │ $ ø ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ Q Ä │ S „ │ D  │ F ‚ │ G ¥ │ H Ü │ J Î │ K Ï │ L Ô │ M Ö │ % Ù │ µ ̄ ┃ ┃ // ┃Maj ⇬ ┃ q ä │ s ß │ d â │ f ‘ │ g ’ │ h ü │ j î │ k ï │ l ô │ m ö │ ù ' │ * ` ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N Ñ │ ? … │ . . │ / ∕ │ § − ┃ ┃ // ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v → │ b ↓ │ n ñ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "oci" { include "fr(oss)" name[Group1]= "Occitan"; key { [ a, A, aacute, Aacute ] }; // a A á Á key { [ z, Z, ae, AE ] }; // z Z æ Æ key { [ t, T, ediaeresis, Ediaeresis ] }; // t T ë Ë key { [ y, Y, ucircumflex, Ucircumflex ] }; // y Y û Û key { [ u, U, uacute, Uacute ] }; // u U ú Ú key { [ i, I, iacute, Iacute ] }; // i I í Í key { [ o, O, oacute, Oacute ] }; // o O ó Ó key { [ p, P, ograve, Ograve ] }; // p P ò Ò key { [ dead_circumflex, dead_diaeresis, oe, OE ] }; // ^ ̈ ̃ œ Œ key { [ d, D, acircumflex, Acircumflex ] }; // d D â  key { [ h, H, udiaeresis, Udiaeresis ] }; // h H ü Ü key { [ j, J, icircumflex, Icircumflex ] }; // j J î Î key { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï key { [ l, L, ocircumflex, Ocircumflex ] }; // l L ô Ô key { [ v, V, rightarrow, leftarrow ] }; // v V → ← key { [ n, N, ntilde, Ntilde ] }; // n N ñ Ñ }; // Marc.Shapiro@inria.fr 19-sep-1998 // modifications : Etienne Herlent june 2000 // adapted to the new input layer : // Martin Costabel 3-jan-2001 // adapted for Latin9 alphabet (ISO-8859-15): // Etienne Herlent march 2005 // This map is an almost-complete mapping of the standard French // MacIntosh keyboard under Xwindows. I tried to remain as faithful // as possible to the Mac meaning of each key. I did this entirely by // hand and by intuition, relying on the Clavier (Keyboard?) Desktop // Accessory for the Mac meaning of keys, and on reading keysymdef.h // to intuit the corresponding X names. Lacking proper documentation, // I may have made some mistakes. // Entries marked CHECK are particularly uncertain // Entries marked MISSING mark Mac characters for which I was unable // to find a corresponding keysym. (Some for sure don't: e.g. the // Apple mark and the oe/OE character; others I may have simply not // found.) // Copied from macintosh_vndr/fr partial alphanumeric_keys xkb_symbols "mac" { name[Group1]= "French (Macintosh)"; key { [ at, numbersign, periodcentered, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9 key { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple key { [ eacute, 2, ediaeresis, Eacute ] }; key { [ quotedbl, 3, VoidSymbol, VoidSymbol ] }; // CHECK all quotemarks key { [ apostrophe, 4, VoidSymbol, VoidSymbol ] }; key { [ parenleft, 5, braceleft, bracketleft ] }; // CHECK section key { [ section, 6, paragraph, aring ] }; key { [ egrave, 7, guillemotleft, guillemotright ] }; key { [ exclam, 8, exclamdown, Ucircumflex ] }; key { [ ccedilla, 9, Ccedilla, Aacute ] }; key { [ agrave, 0, oslash, VoidSymbol ] }; // MISSING: Oslash key { [ parenright, degree, braceright, bracketright ] }; key { [ minus, underscore, emdash, endash ] }; // CHECK dashes key { [ a, A, ae, AE ] }; key { [ z, Z, Acircumflex, Aring ] }; key { [ e, E, ecircumflex, Ecircumflex ] }; key { [ r, R, registered, currency ] }; key { [ t, T, VoidSymbol, VoidSymbol ] }; key { [ y, Y, Uacute, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9 key { [ u, U, VoidSymbol, ordfeminine ] }; // MISSING: ordmasculine? key { [ i, I, icircumflex, idiaeresis ] }; key { [ o, O, oe, OE ] }; // MISSING: oe, OE lacking in Latin1; eherlent ok in Latin9 key { [ p, P, VoidSymbol, VoidSymbol ] }; key { [dead_circumflex,dead_diaeresis, ocircumflex, Ocircumflex ] }; key { [ dollar, asterisk, EuroSign, yen ] }; // eherlent : EuroSign in Latin9 key { [ q, Q, acircumflex, Agrave ] }; key { [ s, S, Ograve, VoidSymbol ] }; key { [ d, D, VoidSymbol, VoidSymbol ] }; key { [ f, F, VoidSymbol, periodcentered ] }; // MISSING: oblong script f?? key { [ g, G, VoidSymbol, VoidSymbol ] }; // MISSING: kerned fi, fl key { [ h, H, Igrave, Icircumflex ] }; key { [ j, J, Idiaeresis, Iacute ] }; key { [ k, K, Egrave, Ediaeresis ] }; key { [ l, L, notsign, bar ] }; key { [ m, M, mu, Oacute ] }; key { [ ugrave,percent, Ugrave, ucircumflex ] }; // MISSING: per-mille key { [ dead_grave, sterling, at, numbersign ] }; key { [ less, greater, VoidSymbol, VoidSymbol ] }; key { [ w, W, VoidSymbol, VoidSymbol ] }; // MISSING: half-guillemot (single angle bracket) key { [ x, X, VoidSymbol, VoidSymbol ] }; // CHECK similarequal; MISSING: extra-slanted slash key { [ c, C, copyright, cent ] }; key { [ v, V, diamond, leftradical ] }; // CHECK diamond, leftradical key { [ b, B, ssharp, U1E9E ] }; // CHECK: Greek_beta or ssharp?; MISSING: oblong script s key { [ n, N, dead_tilde, asciitilde ] }; key { [ comma, question, VoidSymbol, questiondown ] }; key { [ semicolon, period, VoidSymbol, periodcentered ] }; key { [ colon, slash, division, backslash ] }; key { [ equal, plus, VoidSymbol, plusminus ] }; key { [ space, space, nobreakspace, nobreakspace ] }; key { [ comma,KP_Decimal ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "geo" { include "ge(basic)" name[Group1]= "Georgian (France, AZERTY Tskapo)"; key { [ exclam, noSymbol ] }; key { [ 0x0100201e, 1 ] }; key { [ 0x01002116, 2 ] }; key { [ percent, 3 ] }; key { [ parenleft, 4 ] }; key { [ colon, 5 ] }; key { [ semicolon, 6 ] }; key { [ question, 7 ] }; key { [ 0x01002116, 8 ] }; key { [ degree, 9 ] }; key { [ parenright, 0 ] }; key { [ minus, underscore, 0x01002014 ] }; key { [ less, greater ] }; key { [ Georgian_an, 0x010010fa ] }; key { [ Georgian_zen, Z ] }; key { [ Georgian_en, E, Georgian_he ] }; key { [ Georgian_rae, 0x010000ae ] }; key { [ Georgian_tar, T ] }; key { [ Georgian_qar, 0x010010f8 ] }; key { [ Georgian_un, U ] }; key { [ Georgian_in, Georgian_hie ] }; key { [ Georgian_on, O ] }; key { [ Georgian_par, P ] }; key { [ Georgian_tan, T ] }; key { [ Georgian_jil, Z ] }; key { [ Georgian_khar, Q ] }; key { [ Georgian_san, S ] }; key { [ Georgian_don, D ] }; key { [ Georgian_phar, Georgian_fi ] }; key { [ Georgian_gan, 0x010010f9 ] }; key { [ Georgian_hae, Georgian_hoe ] }; key { [ Georgian_jhan, 0x010010f7 ] }; key { [ Georgian_kan, K ] }; key { [ Georgian_las, L ] }; key { [ Georgian_man, M ] }; key { [ Georgian_zhar, J ] }; key { [ Georgian_chin, 0x010000a9 ] }; key { [ guillemotleft, guillemotright ] }; key { [ Georgian_cil, W ] }; key { [ Georgian_xan, Georgian_har ] }; key { [ Georgian_can, 0x010000a9 ] }; key { [ Georgian_vin, Georgian_we ] }; key { [ Georgian_ban, B ] }; key { [ Georgian_nar, 0x010010fc ] }; key { [ comma, 0x01002014 ] }; key { [ Georgian_shin, S ] }; key { [ Georgian_ghan, noSymbol ] }; key { [ Georgian_char, noSymbol ] }; }; // US keyboard made French // // Copyright (C) 2018, Florent Gallaire partial alphanumeric_keys xkb_symbols "us" { include "us(basic)" name[Group1]= "French (US)"; key { [ grave, asciitilde, dead_grave ] }; key { [ 6,asciicircum,dead_circumflex ] }; key { [ z, Z, acircumflex, Acircumflex ] }; // â  key { [ c, C, ccedilla, Ccedilla ] }; // ç Ç key { [ a, A, agrave, Agrave ] }; // à À key { [ s, S, ae, AE ] }; // æ Æ key { [ d, D, ecircumflex, Ecircumflex ] }; // ê Ê key { [ f, F, ediaeresis, Ediaeresis ] }; // ë Ë key { [ h, H, udiaeresis, Udiaeresis ] }; // ü Ü key { [ j, J, ucircumflex, Ucircumflex ] }; // û Û key { [ k, K, icircumflex, Icircumflex ] }; // î Î key { [apostrophe, quotedbl,dead_diaeresis, degree ] }; key { [ e, E, eacute, Eacute ] }; // é É key { [ r, R, egrave, Egrave ] }; // è È key { [ y, Y, ydiaeresis, Ydiaeresis ] }; // ÿ Ÿ key { [ u, U, ugrave, Ugrave ] }; // ù Ù key { [ i, I, idiaeresis, Idiaeresis ] }; // ï Ï key { [ o, O, ocircumflex, Ocircumflex ] }; // ô Ô key { [ p, P, oe, OE ] }; // œ Œ key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; // « “ key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; // » ” key { [ 4, dollar, EuroSign, currency ] }; // € ¤ include "level3(ralt_switch)" include "eurosign(5)" }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/fr(sun_type6)" }; partial alphanumeric_keys xkb_symbols "azerty" { name[Group1]="French (AZERTY)"; include "level3(ralt_switch)" // French AZERTY-Keyboard layout // Author : 2015, Mats Blakstad // Based on the layout at https://en.wikipedia.org/wiki/File:KB_France.svg // LAYOUT OVERVIEW // ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ // | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ° | + | <-- | // | ² | & | é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | // ======================================================================== // | |<- | A | Z | E | R | T | Y | U | I | O | P | ¨ | $ | , | // | ->| | a | z | e €| r | t | y | u | i | o | p | ^ | £ ¤| <-' | // ===================================================================¬ | // | | Q | S | D | F | G | H | J | K | L | M | % | µ | | // | MAJ | q | s | d | f | g | h | j | k | l | m | ù | * | | // ======================================================================== // | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ | // | | | < | w | x | c | v | b | n | , | ; | : | ! | | | // ======================================================================== // | | | | | | | | | // | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl | // ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ // First row key { [ twosuperior ] }; key { [ ampersand, 1 ] }; key { [ eacute, 2, asciitilde ] }; key { [ quotedbl, 3, numbersign ] }; key { [ apostrophe, 4, braceleft ] }; key { [ parenleft, 5, bracketleft ] }; key { [ minus, 6, bar ] }; key { [ egrave, 7, grave ] }; key { [ underscore, 8, backslash ] }; key { [ ccedilla, 9, asciicircum ] }; key { [ agrave, 0, at ] }; key { [ parenright, degree, bracketright ] }; key { [ equal, plus, braceright ] }; // Second row key { [ a, A ] }; key { [ z, Z ] }; key { [ e, E, EuroSign ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ dead_circumflex,dead_diaeresis ] }; key { [ dollar, sterling, currency ] }; // Third row key { [ q, Q ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ m, M ] }; key { [ ugrave, percent ] }; key { [ asterisk, mu ] }; // Fourth row key { [ less, greater ] }; key { [ w, W ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ comma, question ] }; key { [ semicolon, period ] }; key { [ colon, slash ] }; key { [ exclam, section ] }; }; // US keyboard made French (with dead keys, alternative) // // Copyright (C) 2018, Florent Gallaire partial alphanumeric_keys xkb_symbols "us-alt" { include "us(basic)" name[Group1]= "French (US with dead keys, alt.)"; key { [ c, C, ccedilla, Ccedilla ] }; // ç Ç key { [ a, A, ae, AE ] }; // æ Æ key { [dead_diaeresis, quotedbl, apostrophe ] }; key { [ e, E, eacute, Eacute ] }; // é É key { [ o, O, oe, OE ] }; // œ Œ key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; // « “ key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; // » ” key { [dead_grave, asciitilde, grave ] }; key { [dead_circumflex, asciicircum, 6 ] }; key { [ 4, dollar, EuroSign, currency ] }; // € ¤ include "level3(ralt_switch)" include "eurosign(5)" }; // For physically modified US keyboard (Q <-> A, W <-> Z and ; <-> M) // // Copyright (C) 2018, Florent Gallaire partial alphanumeric_keys xkb_symbols "us-azerty" { include "us" name[Group1]= "French (US, AZERTY)"; key { [ w, W, guillemotleft, leftdoublequotemark ] }; // « “ key { [ x, X,guillemotright,rightdoublequotemark ] }; // » ” key { [ semicolon, colon ] }; key { [ q, Q ] }; key { [ m, M ] }; key { [apostrophe, quotedbl, ugrave, Ugrave ] }; // ù Ù key { [ a, A, ae, AE ] }; // æ Æ key { [ z, Z ] }; key { [ o, O, oe, OE ] }; // œ Œ key { [bracketleft, braceleft,dead_circumflex, dead_diaeresis ] }; key { [ grave, asciitilde, dead_grave ] }; key { [ 2, at, eacute, Eacute ] }; // é É key { [ 4, dollar, currency ] }; // ¤ key { [ 6,asciicircum,dead_circumflex ] }; key { [ 7, ampersand, egrave, Egrave ] }; // è È key { [ 9, parenleft, ccedilla, Ccedilla ] }; // ç Ç key { [ 0, parenright, agrave, Agrave ] }; // à À include "eurosign(e)" include "level3(ralt_switch)" }; // Unicode French standardized new azerty // Defined by the French national organization for standardization (AFNOR) in norm NF Z71-300 (http://norme-azerty.fr/) // // Credits // © 2019 Cimbali // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ # ̑ │ 1 À │ 2 É │ 3 È │ 4 Ê │ 5 ̋ │ 6 ̏ │ 7 │ 8 — │ 9 ‹ │ 0 › │ " ˚ │ ¨ ┃ ⌫ Retour┃ // │ @ ̆̆̆ ̆│ à § │ é ́ │ è ̀ │ ê & │ ( [ │ ) ] │ ‘ ̄̄ │ ’ _ │ « “ │ » ” │ ' ° │ ̂ ̌̌̌ ┃ arrière┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ A Æ │ Z │ E │ R │ T ™ │ Y │ U Ù │ I ̣ │ O Œ │ P ‰ │ – ‑ │ ± ‡ ┃Entrée ┃ // ┃Tab ↹ ┃ a æ │ z £ │ e € │ r ® │ t { │ y } │ u ù │ i ̇ │ o œ │ p % │ - − │ + † ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ Q │ S ẞ │ D │ F │ G │ H ̱ │ J │ K │ L │ M │ \ √ │ ½ ¼ ┃ ┃ // ┃Maj ⇬ ┃ q θ │ s ß │ d $ │ f ¤ │ g µ │ h │ j │ k ̷ │ l | │ m ∞ │ / ÷ │ * × ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ > ≥ │ W Ʒ │ X │ C Ç │ V ˛ │ B │ N │ ? │ ! ̦ │ … │ = ≠ ┃ ┃ // ┃Shift ⇧┃ < ≤ │ w ʒ │ x © │ c ç │ v ¸ │ b ̵ │ n ~ │ . ¿ │ , ¡ │ : · │ ; ≃ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "afnor" { include "latin" include "level3(ralt_switch)" include "nbsp(level3n)" include "keypad(oss)" name[Group1]="French (AZERTY, AFNOR)"; // First row key { [ at, numbersign, dead_breve, dead_invertedbreve ] }; // @ # ̑ ̆̆̆ // key { [ agrave, 1, section, Agrave ] }; // à 1 § À key { [ eacute, 2, dead_acute, Eacute ] }; // é 2 ́ É key { [ egrave, 3, dead_grave, Egrave ] }; // è 3 ̀ È key { [ ecircumflex, 4, ampersand, Ecircumflex ] }; // ê 4 & Ê key { [ parenleft, 5, bracketleft, dead_doubleacute ] }; // ( 5 [ key { [ parenright, 6, bracketright, dead_doublegrave ] }; // ) 6 ] key { [ leftsinglequotemark, 7, dead_macron, VoidSymbol ] }; // ‘ 7 key { [rightsinglequotemark, 8, underscore, emdash ] }; // ’ 8 _ — key { [ guillemotleft, 9, leftdoublequotemark, VoidSymbol ] }; // « 9 “ ‹ key { [ guillemotright, 0, rightdoublequotemark, VoidSymbol ] }; // » 0 ” › key { [ apostrophe, quotedbl, degree, dead_abovering ] }; // ' " ° key { [ dead_circumflex, dead_diaeresis, dead_caron, VoidSymbol ] }; // ̂ ¨ ̌̌̌ // // Second row key { [ a, A, ae, AE ] }; // a A æ Æ key { [ z, Z, sterling, VoidSymbol ] }; // z Z £ key { [ e, E, EuroSign, VoidSymbol ] }; // e E € key { [ r, R, registered, VoidSymbol ] }; // r R ® key { [ t, T, braceleft, trademark ] }; // t T { ™ key { [ y, Y, braceright, VoidSymbol ] }; // y Y } key { [ u, U, ugrave, Ugrave ] }; // u U ù Ù key { [ i, I, dead_abovedot, dead_belowdot ] }; // i I ̇ ̣ // key { [ o, O, oe, OE ] }; // o O œ Œ key { [ p, P, percent, permille ] }; // p P % ‰ key { [ minus, endash, 0x1002212, 0x1002011 ] }; // - – − ‑ // signe moins (minus sign), trait d'union insécable (non-breaking hyphen) key { [ plus, plusminus, dagger, doubledagger ] }; // + ± † ‡ // Third row key { [ q, Q, Greek_theta, VoidSymbol ] }; // q Q θ key { [ s, S, ssharp, 0x1001E9E ] }; // s S ß ẞ // lettre majuscule latine S dur (latin capital letter sharp s) key { [ d, D, dollar, VoidSymbol ] }; // d D $ key { [ f, F, dead_currency, VoidSymbol ] }; // f F ¤ key { [ g, G, dead_greek, VoidSymbol ] }; // g G µ key { [ h, H, VoidSymbol, dead_belowmacron ] }; // h H ̱ // Missing dead key for other european keys (ªəƏþÞıݺſðÐƞȠijIJ) key { [ j, J, VoidSymbol, VoidSymbol ] }; // j J key { [ k, K, dead_longsolidusoverlay, VoidSymbol ] }; // k K ̷ // key { [ l, L, bar, VoidSymbol ] }; // l L | key { [ m, M, infinity, VoidSymbol ] }; // m M ∞ key { [ slash, backslash, division, radical ] }; // / \ ÷ √ key { [ asterisk, onehalf, multiply, onequarter ] }; // * ½ × ¼ // Fourth row key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ key { [ w, W, ezh, EZH ] }; // w W ʒ Ʒ key { [ x, X, copyright, VoidSymbol ] }; // x X © key { [ c, C, ccedilla, Ccedilla ] }; // c C ç Ç key { [ v, V, dead_cedilla, dead_ogonek ] }; // v V ̧ ̨ // key { [ b, B, dead_stroke, VoidSymbol ] }; // b B ̵ // key { [ n, N, dead_tilde, VoidSymbol ] }; // n N ~ key { [ period, question, questiondown, VoidSymbol ] }; // . ? ¿ key { [ comma, exclam, exclamdown, dead_belowcomma ] }; // , ! ¡ ̦ // key { [ colon, ellipsis, periodcentered, VoidSymbol ] }; // : … · key { [ semicolon, equal, similarequal, notequal ] }; // ; = ≃ ≠ };