// Copyright 2015: Fabien Viger // You may freely use this keyboard layout for any purpose, with or without // modifications. // // This keyboard layout is optimized for the following use case: // QWERTY keyboard; with AltGr-modified keys to help type in French, // and occasionally in Spanish and German: it's mostly about providing // the accentuated vowels. // In addition, there are some handy shortcuts for common symbols, where they'd // make the most sense. // // The reference version should be in http://fabien.viger.free.fr/keyboard // // TIPS for further tweaking: // - The descriptive names in the [..] part of the tables below come from // /usr/include/X11/keysymdef.h // - The key codes are in /usr/share/X11/xkb/keycodes/xfree86 // // INSTALL: // 1) Copy-paste the contents of that file (including this comment) in // /usr/share/X11/xkb/symbols/us and replace the existing section that // starts with xkb_symbols "intl". // 2) Run: sudo dpkg-reconfigure xkb-data // 3) In the "Text Entry" menu of your system preferences, select the layout // "English (US, international with dead keys)". If it was already selected, // you might need to remove it and add it back to refresh it. // If the layout still isn't applied, an X-session Log out should do the trick. partial alphanumeric_keys xkb_symbols "intl" { name[Group1]= "English (US, intl., with dead keys)"; key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 1, exclam, onesuperior, exclamdown ] }; key { [ 2, at, twosuperior, squareroot ] }; key { [ 3, numbersign, threesuperior, cuberoot ] }; key { [ 4, dollar, EuroSign, fourthroot ] }; key { [ 5, percent, U2200, U2203 ] }; key { [ 6, asciicircum,dead_circumflex, Greek_epsilon ] }; key { [ 7, ampersand, Greek_delta, Greek_DELTA ] }; key { [ 8, asterisk, infinity, multiply ] }; key { [ 9, parenleft, implies, ifonlyif ] }; key { [ 0, parenright, emptyset, degree ] }; key { [ minus, underscore, plusminus, U26A0 ] }; key { [ equal, plus, approxeq, notequal ] }; key { [ q, Q, acircumflex, Acircumflex ] }; key { [ w, W, adiaeresis, Adiaeresis ] }; key { [ e, E, eacute, Eacute ] }; key { [ r, R, egrave, Egrave ] }; key { [ t, T, union, intersection ] }; key { [ y, Y, elementof, includedin ] }; key { [ u, U, ugrave, Ugrave ] }; key { [ i, I, icircumflex, Icircumflex ] }; key { [ o, O, ocircumflex, Ocircumflex ] }; key { [ p, P, Greek_pi, Greek_PI ] }; key { [ bracketleft, braceleft, lowleftcorner, upleftcorner ] }; key { [ bracketright, braceright, lowrightcorner, uprightcorner ] }; key { [ a, A, agrave, Agrave ] }; key { [ s, S, ssharp, Greek_SIGMA ] }; key { [ d, D, ecircumflex, Ecircumflex ] }; key { [ f, F, ediaeresis, Ediaeresis ] }; key { [ g, G, U2194, U2195 ] }; key { [ h, H, ucircumflex, Ucircumflex ] }; key { [ j, J, udiaeresis, Udiaeresis ] }; key { [ k, K, idiaeresis, Idiaeresis ] }; key { [ l, L, oe, OE ] }; key { [ semicolon, colon, notsign, integral ] }; key { [apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; key { [ z, Z, aacute, Aacute ] }; key { [ x, X, ae, AE ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ v, V, leftarrow, downarrow ] }; key { [ b, B, rightarrow, uparrow ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ m, M, Greek_mu, Greek_MU ] }; key { [ comma, less, dead_cedilla, lessthanequal ] }; key { [ period, greater, kana_conjunctive, greaterthanequal ] }; key { [ slash, question, division, ellipsis ] }; key { [ backslash, bar, U2500, vertconnector ] }; key { [ backslash, bar, backslash, bar ] }; include "level3(ralt_switch)" };