Sunday, May 4, 2008

International character without dead keys

For typing international characters the US-International keyboard layout is very convenient. The disadvantage is that the so called dead keys are very inconvenient for programming where a lot of keys ', `, " are used. Thus I created a variant which uses the second Alt as the US international but does not use the dead keys. This way I do not have to switch between standard US for programming and US international for internal text.

For any Unix with X you create this variant by adding to /usr/share/X11/xkb/symbols the following:

> partial alphanumeric_keys
> xkb_symbols "intl-nodeadkeys" {
>
> name[Group1]= "U.S. English - International (without dead keys)";
>
> include "us(basic)"
>
> // Alphanumeric section
> key { [ grave, asciitilde,dead_grave, dead_tilde ] };
> key { [ 1, exclam, exclamdown, onesuperior ] };
> key { [ 2, at, twosuperior, dead_doubleacute ] };
> key { [ 3, numbersign, threesuperior, dead_macron ] };
> key { [ 4, dollar, currency, sterling ] };
> key { [ 5, percent, EuroSign ] };
> key { [ 6, asciicircum, onequarter, dead_circumflex ] };
> key { [ 7, ampersand, onehalf, dead_horn ] };
> key { [ 8, asterisk, threequarters, dead_ogonek ] };
> key { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
> key { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
> key { [ minus, underscore, yen, dead_belowdot ] };
> key { [ equal, plus, multiply, division ] };
>
> key { [ q, Q, adiaeresis, Adiaeresis ] };
> key { [ w, W, aring, Aring ] };
> key { [ e, E, eacute, Eacute ] };
> key { [ r, R, registered, registered ] };
> key { [ t, T, thorn, THORN ] };
> key { [ y, Y, udiaeresis, Udiaeresis ] };
> key { [ u, U, uacute, Uacute ] };
> key { [ i, I, iacute, Iacute ] };
> key { [ o, O, oacute, Oacute ] };
> key { [ p, P, odiaeresis, Odiaeresis ] };
> key { [ bracketleft, braceleft, guillemotleft, guillemotleft ] };
> key { [bracketright, braceright, guillemotright,guillemotright ] };
>
> key { [ a, A, aacute, Aacute ] };
> key { [ s, S, ssharp, section ] };
> key { [ d, D, eth, ETH ] };
> key { [ k, K, oe, OE ] };
>
> key { [ l, L, oslash, Ooblique ] };
> key { [ semicolon, colon, paragraph, degree ] };
> key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
>
> key { [ z, Z, ae, AE ] };
> key { [ c, C, copyright, cent ] };
> key { [ n, N, ntilde, Ntilde ] };
> key { [ m, M, mu, mu ] };
> key { [ comma, less, ccedilla, Ccedilla ] };
> key { [ period, greater, dead_abovedot, dead_caron ] };
> key { [ slash, question, questiondown, dead_hook ] };
> key { [ backslash, bar, notsign, brokenbar ] };
>
> include "level3(ralt_switch)"
> };

No comments: