/usr/share/X11/xkb/symbols
Edit: /usr/share/X11/xkb/symbols/fr (98808B)
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 "Sundeadkeys" {
// Modifies the basic French layout to use the Sun dead keys
include "fr(basic)"
key { [dead_circumflex, dead_diaeresis ] };
key { [comma, question, dead_acute, dead_doubleacute ] };
};
partial alphanumeric_keys
xkb_symbols "sundeadkeys" {
include "fr(Sundeadkeys)"
name[Group1]="French (with Sun dead keys)";
};
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_Sundeadkeys" {
// Modifies the basic fr(oss) layout to use the Sun dead keys
include "fr(oss)"
key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ยน ยฒ ยณ ยธ
key { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ฬ ฬ ห
key { [ ugrave, percent, dead_acute, Ugrave ] }; // รน % ' ร
key { [ asterisk, mu, dead_grave, dead_macron ] }; // * ยต ` ฬ
};
partial alphanumeric_keys
xkb_symbols "oss_sundeadkeys" {
include "fr(oss_Sundeadkeys)"
name[Group1]="French (alt., with Sun dead keys)";
};
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_Sundeadkeys" {
// Modifies the basic fr-latin9 layout to use the Sun dead keys
include "fr(latin9)"
key { [ ampersand, 1, dead_acute, periodcentered ] };
key { [ egrave, 7, dead_grave, Egrave ] };
key { [ dead_circumflex, dead_diaeresis, dead_tilde, apostrophe ] };
};
partial alphanumeric_keys
xkb_symbols "latin9_sundeadkeys" {
include "fr(latin9_Sundeadkeys)"
name[Group1]="French (legacy, alt., with Sun dead keys)";
};
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 ฤฒ โ Z ฦ โ W โEntrรฉe โ
// โTab โน โ b | โ รฉ ห โ p & โ o ล โ รจ ` โ ห ยก โ v ห โ d รฐ โ l / โ j ฤณ โ 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, ergonomic, Dvorak way)";
// 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 ฤณ ฤฒ
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, ergonomic, Dvorak way, 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