partial alphanumeric_keys xkb_symbols "qwerty-fr" { include "us(basic)" include "level3(ralt_switch)" include "keypad(oss)" name[Group1]= "US keyboard with french symbols - AltGr combination"; key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 1, exclam, onesuperior, exclamdown ] }; key { [ 2, at, twosuperior, dead_doubleacute ] }; key { [ 3, numbersign, ecircumflex, Ecircumflex ] }; key { [ 4, dollar, EuroSign, dead_currency ] }; // FIXME: dead_currency has a different mapping than the one we want for qwerty-fr. Need to define a custom dead key instead. See Windows layout for dead key definition. key { [ 5, percent, dead_macron, dead_abovedot ] }; key { [ 6, asciicircum, dead_circumflex, dead_caron ] }; key { [ 7, ampersand, ucircumflex, Ucircumflex ] }; key { [ 8, asterisk, icircumflex, Icircumflex ] }; key { [ 9, parenleft, ocircumflex, Ocircumflex ] }; key { [ 0, parenright, oslash, Oslash ] }; key { [ minus, underscore, endash, emdash ] }; key { [ equal, plus, notequal, approxeq ] }; key { [ q, Q, acircumflex, Acircumflex ] }; key { [ w, W, eacute, Eacute ] }; key { [ e, E, egrave, Egrave ] }; key { [ r, R, registered, copyright ] }; key { [ t, T, thorn, THORN ] }; key { [ y, Y, dead_invertedbreve, dead_breve ] }; key { [ u, U, ugrave, Ugrave ] }; key { [ i, I, igrave, Igrave ] }; key { [ o, O, ograve, Ograve ] }; key { [ p, P, oe, OE ] }; key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; key { [ bracketright, braceright, guillemotright, rightdoublequotemark ] }; key { [ a, A, agrave, Agrave ] }; key { [ s, S, ae, AE ] }; key { [ d, D, ediaeresis, Ediaeresis ] }; key { [ f, F, VoidSymbol, VoidSymbol ] }; key { [ g, G, dead_greek, VoidSymbol ] }; // FIXME: dead_greek has a different mapping than the one we want for qwerty-fr. Need to define a custom dead key instead. See Windows layout for dead key definition. key { [ h, H, ydiaeresis, Ydiaeresis ] }; key { [ j, J, udiaeresis, Udiaeresis ] }; key { [ k, K, idiaeresis, Idiaeresis ] }; key { [ l, L, odiaeresis, Odiaeresis ] }; key { [ semicolon, colon, dead_acute, dead_abovering ] }; key { [ apostrophe, quotedbl, dead_grave, dead_diaeresis ] }; key { [ backslash, bar, VoidSymbol, doublelowquotemark ] }; // „ key { [ less, greater, lessthanequal, greaterthanequal ] }; key { [ z, Z, adiaeresis, Adiaeresis ] }; key { [ x, X, multiply, division ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ v, V, VoidSymbol, VoidSymbol ] }; key { [ b, B, ssharp, U1E9E ] }; // ß, ẞ (capital) key { [ n, N, ntilde, Ntilde ] }; key { [ m, M, VoidSymbol, VoidSymbol ] }; key { [ comma, less, dead_cedilla, dead_ogonek ] }; key { [ period, greater, periodcentered, ellipsis ] }; // ., >, ·, … key { [ slash, question, rightsinglequotemark, questiondown ] }; // /, ?, ’, ¿ key { [ space, space, nobreakspace, 0x100202F ] }; // espace insécable fine };