table of content          about         contact

bikin keyboard sendiri



biarpun keyboard yang sehari-hari aku pake mengikuti standar usa namun dalam hati sebenarnya nggak rela, yaudah bikin layout sendiri aja, eh maksudku bukan bikin sih, cuma modifikasi dari /usr/share/X11/xkb/symbol/us
  1. sudo cp /usr/share/X11/xkb/symbol/us /usr/share/X11/xkb/symbol/id
    terus edit file /usr/share/X11/xkb/symbol/id
    sudo nano /usr/share/X11/xkb/symbol/id
    ganti semua kode us dengan id dan USA (huruf besar) dengan ID (huruf besar, maaf anda harus pinter, di blog ini nggak menyediakan huruf besar, semua kecil melulu, kecuali non text/gambar)
    jadinya kurang lebih seperti ini :
    // $XKeyboardConfig$

    //
    // $XdotOrg: xc/programs/xkbcomp/symbols/us,v 1.1.4.3 2004/03/05 13:41:33 eich Exp $
    // $XFree86: xc/programs/xkbcomp/symbols/us,v 1.6 2003/10/31 14:32:05 pascal Exp $

    default
    partial alphanumeric_keys modifier_keys
    xkb_symbols "basic" {

    name[Group1]= "ID";

    // Alphanumeric section
    key <TLDE> { [ grave, asciitilde ] };
    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft ] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ minus, underscore ] };
    key <AE12> { [ equal, plus ] };

    key <AD01> { [ q, Q ] };
    key <AD02> { [ w, W ] };
    key <AD03> { [ e, E ] };
    key <AD04> { [ r, R ] };
    key <AD05> { [ t, T ] };
    key <AD06> { [ y, Y ] };
    key <AD07> { [ u, U ] };
    key <AD08> { [ i, I ] };
    key <AD09> { [ o, O ] };
    key <AD10> { [ p, P ] };
    key <AD11> { [ bracketleft, braceleft ] };
    key <AD12> { [ bracketright, braceright ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ d, D ] };
    key <AC04> { [ f, F ] };
    key <AC05> { [ g, G ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ j, J ] };
    key <AC08> { [ k, K ] };
    key <AC09> { [ l, L ] };
    key <AC10> { [ semicolon, colon ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ c, C ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ b, B ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ period, greater ] };
    key <AB10> { [ slash, question ] };

    key <BKSL> { [ backslash, bar ] };
    // End alphanumeric section
    };

    partial alphanumeric_keys
    xkb_symbols "euro" {

    name[Group1]= "ID - With EuroSign on 5";

    include "id(basic)"

    include "eurosign(5)"

    include "level3(ralt_switch)"
    };


    partial alphanumeric_keys
    xkb_symbols "intl" {

    name[Group1]= "ID - International (with dead keys)";

    include "id(basic)"

    // Alphanumeric section
    key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
    key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
    key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
    key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
    key <AE04> { [ 4, dollar, currency, sterling ] };
    key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
    key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
    key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
    key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ minus, underscore, yen, dead_belowdot ] };
    key <AE12> { [ equal, plus, multiply, division ] };

    key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
    key <AD02> { [ w, W, aring, Aring ] };
    key <AD03> { [ e, E, eacute, Eacute ] };
    key <AD04> { [ r, R, registered, registered ] };
    key <AD05> { [ t, T, thorn, THORN ] };
    key <AD06> { [ y, Y, udiaeresis, Udiaeresis ] };
    key <AD07> { [ u, U, uacute, Uacute ] };
    key <AD08> { [ i, I, iacute, Iacute ] };
    key <AD09> { [ o, O, oacute, Oacute ] };
    key <AD10> { [ p, P, odiaeresis, Odiaeresis ] };
    key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
    key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AC02> { [ s, S, ssharp, section ] };
    key <AC03> { [ d, D, eth, ETH ] };
    key <AC08> { [ k, K, oe, OE ] };

    key <AC09> { [ l, L, oslash, Ooblique ] };
    key <AC10> { [ semicolon, colon, paragraph, degree ] };
    key <AC11> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };

    key <AB01> { [ z, Z, ae, AE ] };
    key <AB03> { [ c, C, copyright, cent ] };
    key <AB06> { [ n, N, ntilde, Ntilde ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ comma, less, ccedilla, Ccedilla ] };
    key <AB09> { [ period, greater, dead_abovedot, dead_caron ] };
    key <AB10> { [ slash, question, questiondown, dead_hook ] };
    key <BKSL> { [ backslash, bar, notsign, brokenbar ] };

    include "level3(ralt_switch)"
    };

    // Based on symbols/us_intl keyboard map:
    // Dead-keys definition for a very simple US/ASCII layout.
    // by Conectiva (http://www.conectiva.com.br)
    // modified by Ricardo Y. Igarashi (iga@that.com.br)

    // Added the following deadkeys, to make it truly international:
    //
    // dead_macron: on AltGr-minus
    // dead_breve: on AltGr-parenleft
    // dead_abovedot: on AltGr-period
    // dead_abovering: on AltGr-0
    // dead_doubleacute: on AltGr-equal (as quotedbl is already used)
    // dead_caron: on AltGr-less (AltGr-shift-comma)
    // dead_cedilla: on AltGr-comma
    // dead_ogonek: on AltGr-semicolon
    // dead_belowdot: on AltGr-underscore (AltGr-shift-minus)
    // dead_hook: on AltGr-question
    // dead_horn: on AltGr-plus (AltGr-shift-equal)
    // dead_diaeresis: on AltGr-colon (Alt-shift-semicolon)
    //
    // those were already there:
    // dead_grave
    // dead_acute
    // dead_circumflex
    // dead_tilde
    // dead_diaeresis

    partial alphanumeric_keys
    xkb_symbols "alt-intl" {

    name[Group1]= "ID - Alternative international (former id_intl)";

    include "id"

    key <TLDE> { [ dead_grave, dead_tilde, grave, asciitilde ] };
    key <AE05> { [ 5, percent, EuroSign ] };
    key <AE06> { [ 6, dead_circumflex, asciicircum, asciicircum ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ minus, underscore, dead_macron, dead_belowdot ] };
    key <AE12> { [ equal, plus, dead_doubleacute, dead_horn ] };

    key <AD03> { [ e, E, EuroSign, cent ] };

    key <AC10> { [ semicolon, colon, dead_ogonek, dead_diaeresis ] };
    key <AC11> { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] };

    key <AB08> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AB09> { [ period, greater, dead_abovedot, dead_circumflex ] };
    key <AB10> { [ slash, question, dead_hook, dead_hook ] };

    include "level3(ralt_switch)"
    };

    // based on a keyboard map from an 'xkb/symbols/dk' file
    //
    // $XFree86: xc/programs/xkbcomp/symbols/dvorak,v 1.5 2004/01/03 16:35:07 herrb Exp $

    partial alphanumeric_keys
    xkb_symbols "dvorak" {

    name[Group1]= "ID - Dvorak";

    // Alphanumeric section

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };

    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft, dead_grave] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ bracketleft, braceleft ] };
    key <AE12> { [ bracketright, braceright, dead_tilde] };

    key <AD01> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
    key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
    key <AD04> { [ p, P ] };
    key <AD05> { [ y, Y ] };
    key <AD06> { [ f, F ] };
    key <AD07> { [ g, G ] };
    key <AD08> { [ c, C ] };
    key <AD09> { [ r, R ] };
    key <AD10> { [ l, L ] };
    key <AD11> { [ slash, question ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ o, O ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ u, U ] };
    key <AC05> { [ i, I ] };
    key <AC06> { [ d, D ] };
    key <AC07> { [ h, H ] };
    key <AC08> { [ t, T ] };
    key <AC09> { [ n, N ] };
    key <AC10> { [ s, S ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [ q, Q ] };
    key <AB03> { [ j, J ] };
    key <AB04> { [ k, K ] };
    key <AB05> { [ x, X ] };
    key <AB06> { [ b, B ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ w, W ] };
    key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z ] };

    key <BKSL> { [ backslash, bar ] };
    };

    // Dvorak international
    // Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net)
    // Based on information from http://www.poupinou.org/dvorak/index.html
    //
    // ` 1 2 3 4 5 6 7 8 9 0 [ ] \
    // €
    //
    // ' , . p y f g c r l / =
    // ä ê ë ü ç
    //
    // a o e u i d h t n s -
    // à ô é û î ß
    //
    // ; q j k x b m w v z
    // â ö è ù ï

    partial alphanumeric_keys
    xkb_symbols "dvorak-intl" {

    name[Group1]= "ID - Dvorak international";

    include "id(dvorak)"

    key <AE04> { [ 4, dollar, EuroSign ] };

    key <AD02> { [ comma, less, adiaeresis, dead_caron ] };
    key <AD03> { [ period, greater, ecircumflex, periodcentered ] };
    key <AD04> { [ p, P, ediaeresis, dead_cedilla ] };
    key <AD05> { [ y, Y, udiaeresis ] };
    key <AD08> { [ c, C, ccedilla, dead_abovedot ] };

    key <AC01> { [ a, A, agrave ] };
    key <AC02> { [ o, O, ocircumflex ] };
    key <AC03> { [ e, E, eacute ] };
    key <AC04> { [ u, U, ucircumflex ] };
    key <AC05> { [ i, I, icircumflex ] };
    key <AC10> { [ s, S, ssharp ] };

    key <AB01> { [ semicolon, colon, acircumflex ] };
    key <AB02> { [ q, Q, odiaeresis, dead_ogonek ] };
    key <AB03> { [ j, J, egrave, dead_doubleacute ] };
    key <AB04> { [ k, K, ugrave ] };
    key <AB05> { [ x, X, idiaeresis ] };

    include "level3(ralt_switch)"
    };

    // Left and right handed dvorak layouts
    // by sqweek <sqweek@gmail.com> 2006-01-30
    // Based on the corresponding layouts in the console-tools package.
    partial alphanumeric_keys
    xkb_symbols "dvorak-l" {

    include "id(dvorak)"
    name[Group1]= "ID - Left handed Dvorak";

    key <AE01> { [ bracketleft, braceleft ] };
    key <AE02> { [ bracketright, braceright ] };
    key <AE03> { [ slash, question ] };
    key <AE04> { [ p, P ] };
    key <AE05> { [ f, F ] };
    key <AE06> { [ m, M ] };
    key <AE07> { [ l, L ] };
    key <AE08> { [ j, J ] };
    key <AE09> { [ 4, dollar ] };
    key <AE10> { [ 3, numbersign ] };
    key <AE11> { [ 2, at ] };
    key <AE12> { [ 1, exclam ] };

    key <AD01> { [ semicolon, colon ] };
    key <AD02> { [ q, Q ] };
    key <AD03> { [ b, B ] };
    key <AD04> { [ y, Y ] };
    key <AD05> { [ u, U ] };
    key <AD06> { [ r, R ] };
    key <AD07> { [ s, S ] };
    key <AD08> { [ o, O ] };
    key <AD09> { [ period, greater ] };
    key <AD10> { [ 6, asciicircum ] };
    key <AD11> { [ 5, percent ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ minus, underscore ] };
    key <AC02> { [ k, K ] };
    key <AC03> { [ c, C ] };
    key <AC04> { [ d, D ] };
    key <AC05> { [ t, T ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ e, E ] };
    key <AC08> { [ a, A ] };
    key <AC09> { [ z, Z ] };
    key <AC10> { [ 8, asterisk ] };
    key <AC11> { [ 7, ampersand ] };

    key <AB01> { [ apostrophe, quotedbl ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ g, G ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ w, W ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ i, I ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ 0, parenright ] };
    key <AB10> { [ 9, parenleft ] };
    };

    partial alphanumeric_keys
    xkb_symbols "dvorak-r" {

    include "id(dvorak)"
    name[Group1]= "ID - Right handed Dvorak";

    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ j, J ] };
    key <AE06> { [ l, L ] };
    key <AE07> { [ m, M ] };
    key <AE08> { [ f, F ] };
    key <AE09> { [ p, P ] };
    key <AE10> { [ slash, question ] };
    key <AE11> { [ bracketleft, braceleft ] };
    key <AE12> { [ bracketright, braceright ] };

    key <AD01> { [ 5, percent ] };
    key <AD02> { [ 6, asciicircum ] };
    key <AD03> { [ q, Q ] };
    key <AD04> { [ period, greater ] };
    key <AD05> { [ o, O ] };
    key <AD06> { [ r, R ] };
    key <AD07> { [ s, S ] };
    key <AD08> { [ u, U ] };
    key <AD09> { [ y, Y ] };
    key <AD10> { [ b, B ] };
    key <AD11> { [ semicolon, colon ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ 7, ampersand ] };
    key <AC02> { [ 8, asterisk ] };
    key <AC03> { [ z, Z ] };
    key <AC04> { [ a, A ] };
    key <AC05> { [ e, E ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ t, T ] };
    key <AC08> { [ d, D ] };
    key <AC09> { [ c, C ] };
    key <AC10> { [ k, K ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ 9, parenleft ] };
    key <AB02> { [ 0, parenright ] };
    key <AB03> { [ x, X ] };
    key <AB04> { [ comma, less ] };
    key <AB05> { [ i, I ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ w, W ] };
    key <AB08> { [ v, V ] };
    key <AB09> { [ g, G ] };
    key <AB10> { [ apostrophe, quotedbl ] };
    };

    // Classic dvorak layout
    // by Piter Punk <piterpk@terra.com.br> - 2006-07-06
    // Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net
    // on xorg list.
    partial alphanumeric_keys
    xkb_symbols "dvorak-classic" {

    name[Group1]= "ID - Classic Dvorak";

    // Alphanumeric section

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };

    key <AE01> { [ bracketleft, braceleft ] };
    key <AE02> { [ 7, ampersand ] };
    key <AE03> { [ 5, percent ] };
    key <AE04> { [ 3, numbersign ] };
    key <AE05> { [ 1, exclam ] };
    key <AE06> { [ 9, parenleft, dead_grave] };
    key <AE07> { [ 0, parenright ] };
    key <AE08> { [ 2, at ] };
    key <AE09> { [ 4, dollar ] };
    key <AE10> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE11> { [ 8, asterisk ] };
    key <AE12> { [ bracketright, braceright, dead_tilde] };

    key <AD01> { [ slash, question ] };
    key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
    key <AD04> { [ p, P ] };
    key <AD05> { [ y, Y ] };
    key <AD06> { [ f, F ] };
    key <AD07> { [ g, G ] };
    key <AD08> { [ c, C ] };
    key <AD09> { [ r, R ] };
    key <AD10> { [ l, L ] };
    key <AD11> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ o, O ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ u, U ] };
    key <AC05> { [ i, I ] };
    key <AC06> { [ d, D ] };
    key <AC07> { [ h, H ] };
    key <AC08> { [ t, T ] };
    key <AC09> { [ n, N ] };
    key <AC10> { [ s, S ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [ q, Q ] };
    key <AB03> { [ j, J ] };
    key <AB04> { [ k, K ] };
    key <AB05> { [ x, X ] };
    key <AB06> { [ b, B ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ w, W ] };
    key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z ] };
    key <BKSL> { [ backslash, bar ] };
    };

    // Programmer Dvorak, by Roland Kaufmann <rlndkfmn at gmail dot com>
    // License: BSD, available at <http://www.kaufmann.no/roland/dvorak/license.html>
    // Main features: Numbers are in shift position (like French), symbols have been
    // placed in locations that give good hand-alternation and finger rolling with
    // symbols that usually follows, accented characters are possible for I18N.
    partial alphanumeric_keys
    xkb_symbols "dvp" {
    include "id(dvorak)"

    name[Group1] = "ID - Programmer Dvorak";

    // Unmodified Shift AltGr Shift+AltGr
    // symbols row, left side
    key <TLDE> { [ dollar, asciitilde, dead_tilde ] };
    key <AE01> { [ ampersand, percent ] };
    key <AE02> { [ bracketleft, 7, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE03> { [ braceleft, 5, cent ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE04> { [ braceright, 3, yen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE05> { [ parenleft, 1, EuroSign ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE06> { [ equal, 9, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };

    // symbols row, right side
    key <AE07> { [ asterisk, 0 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE08> { [ parenright, 2, onehalf ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE09> { [ plus, 4 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE10> { [ bracketright, 6 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE11> { [ exclam, 8, exclamdown ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE12> { [ numbersign, grave, dead_grave ] };
    key <BKSP> { [ BackSpace ] };

    // upper row, left side
    key <AD01> { [ semicolon, colon, dead_diaeresis ] };
    key <AD02> { [ comma, less, guillemotleft ] };
    key <AD03> { [ period, greater, guillemotright ] };
    key <AD04> { [ p, P, paragraph, section ] };
    key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };

    // upper row, right side
    key <AD08> { [ c, C, ccedilla, Ccedilla ] };
    key <AD09> { [ r, R, registered, trademark ] };
    key <AD11> { [ slash, question, questiondown ] };
    key <AD12> { [ at, asciicircum, dead_circumflex, dead_caron ] };

    // home row, left side
    key <AC01> { [ a, A, aring, Aring ] };
    key <AC02> { [ o, O, oslash, Ooblique ] };
    key <AC03> { [ e, E, ae, AE ] };
    key <AC04> { [ u, U, eacute, Eacute ] };

    // home row, right side
    key <AC06> { [ d, D, eth, ETH ] };
    key <AC07> { [ h, H, dead_acute ] };
    key <AC08> { [ t, T, thorn, THORN ] };
    key <AC09> { [ n, N, ntilde, Ntilde ] };
    key <AC10> { [ s, S, ssharp ] };
    key <AC11> { [ minus, underscore, hyphen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <BKSL> { [ backslash, bar ] };

    // lower row, left side
    key <AB01> { [ apostrophe, quotedbl, dead_acute ] };
    };

    // phonetic layout for Russian letters on an US keyboard
    // by Ivan Popov <pin@konvalo.org> 2005-07-17

    // level3 modifier is a shortcut to the "us" meaning of the keys where
    // we place cyrillic letters, handy for accessing the corresponding
    // punctuation marks.
    // It is important to have access to punctuation marks, and the rest of
    // alphabetical keys are added for being consequent so that the users
    // can expect the level3 modifier to give what the key label shows.

    partial alphanumeric_keys
    xkb_symbols "rus" {

    name[Group1]= "ID - Russian phonetic";

    include "id(basic)"

    key.type[group1]="FOUR_LEVEL_ALPHABETIC";

    key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
    key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
    key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
    key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
    key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
    key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
    key <TLDE> { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] };
    key <LatV> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
    key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
    key <LatI> { [ Cyrillic_i, Cyrillic_I ] };
    key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
    key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
    key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
    key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
    key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
    key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
    key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
    key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
    key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
    key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
    key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
    key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
    key <LatH> { [ Cyrillic_ha, Cyrillic_HA ] };
    key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
    key <AC10> { [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] };
    key <AD11> { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] };
    key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] };
    key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] };
    key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
    key <LatX> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
    key <BKSL> { [ Cyrillic_e, Cyrillic_E, backslash, bar ] };
    key <AC11> { [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] };
    key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };

    include "level3(ralt_switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "mac" {

    include "id(basic)"
    name[Group1]= "ID - Macintosh";
    key.type[group1]="FOUR_LEVEL";

    // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg
    key <LSGT> { [ section, plusminus, section, plusminus ] };
    key <TLDE> { [ grave, asciitilde, dead_grave, dead_horn ] };
    key <AE01> { [ 1, exclam, exclamdown, U2044 ] };
    key <AE02> { [ 2, at, trademark, EuroSign ] };
    key <AE03> { [ 3, numbersign, sterling, U2039 ] };
    key <AE04> { [ 4, dollar, cent, U203A ] };
    key <AE05> { [ 5, percent, infinity, UFB01 ] };
    key <AE06> { [ 6,asciicircum, section, UFB02 ] };
    key <AE07> { [ 7, ampersand, paragraph, doubledagger ] };
    key <AE08> { [ 8, asterisk, enfilledcircbullet, degree ] };
    key <AE09> { [ 9, parenleft, ordfeminine, periodcentered ] };
    key <AE10> { [ 0, parenright, masculine,singlelowquotemark] };
    key <AE11> { [ minus, underscore, endash, emdash ] };
    key <AE12> { [ equal, plus, notequal, plusminus ] };

    key <AD01> { [ q, Q, oe, OE ] };
    key <AD02> { [ w, W, U2211,doublelowquotemark] };
    key <AD03> { [ e, E, dead_acute, acute ] };
    key <AD04> { [ r, R, registered, U2030 ] };
    key <AD05> { [ t, T, dagger, dead_caron ] };
    key <AD06> { [ y, Y, yen, onequarter ] };
    key <AD07> { [ u, U, dead_diaeresis, diaeresis ] };
    key <AD08> { [ i, I, dead_circumflex, U02C6 ] };
    key <AD09> { [ o, O, oslash, Ooblique ] };
    key <AD10> { [ p, P, Greek_pi, U220F ] };
    key <AD11> { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] };
    key <AD12> { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] };
    key <BKSL> { [ backslash, bar, guillemotleft, guillemotright ] };

    key <AC01> { [ a, A, aring, Aring ] };
    key <AC02> { [ s, S, ssharp, dead_stroke ] };
    key <AC03> { [ d, D, partialderivative, eth ] };
    key <AC04> { [ f, F, function, dead_hook ] };
    key <AC05> { [ g, G, copyright, dead_doubleacute ] };
    key <AC06> { [ h, H, dead_abovedot, dead_belowdot ] };
    key <AC07> { [ j, J, U2206, onehalf ] };
    key <AC08> { [ k, K,dead_abovering, UF8FF ] };

    key <AC09> { [ l, L, notsign, THORN ] };
    key <AC10> { [ semicolon, colon, U2026, thorn ] };
    key <AC11> { [apostrophe, quotedbl, ae, AE ] };

    key <AB01> { [ z, Z, Greek_OMEGA, dead_cedilla ] };
    key <AB02> { [ x, X, U2248, dead_ogonek ] };
    // unclear whether "approxeq" is 2248 or 2245
    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB04> { [ v, V, squareroot, U25CA ] };
    key <AB05> { [ b, B, integral, idotless ] };
    key <AB06> { [ n, N, dead_tilde, U02DC ] };
    key <AB07> { [ m, M, mu, threequarters ] };
    key <AB08> { [ comma, less, lessthanequal, dead_macron ] };
    key <AB09> { [ period, greater, greaterthanequal, dead_breve ] };
    key <AB10> { [ slash, question, division, questiondown ] };

    include "level3(ralt_switch)"
    };

    // Colemak symbols for xkb on X.Org Server 7.x
    // 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.

    partial alphanumeric_keys
    xkb_symbols "colemak" {
    include "id"
    name[Group1]= "ID - Colemak";

    // Alphanumeric section
    key <TLDE> { [ grave, asciitilde, dead_tilde, asciitilde ] };
    key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
    key <AE02> { [ 2, at, masculine, twosuperior ] };
    key <AE03> { [ 3, numbersign, ordfeminine, threesuperior ] };
    key <AE04> { [ 4, dollar, cent, sterling ] };
    key <AE05> { [ 5, percent, EuroSign, yen ] };
    key <AE06> { [ 6, asciicircum, hstroke, Hstroke ] };
    key <AE07> { [ 7, ampersand, eth, ETH ] };
    key <AE08> { [ 8, asterisk, thorn, THORN ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, leftdoublequotemark ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, rightdoublequotemark ] };
    key <AE11> { [ minus, underscore, endash, emdash ] };
    key <AE12> { [ equal, plus, multiply, division ] };

    key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
    key <AD02> { [ w, W, aring, Aring ] };
    key <AD03> { [ f, F, atilde, Atilde ] };
    key <AD04> { [ p, P, oslash, Ooblique ] };
    key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
    key <AD06> { [ j, J, dstroke, Dstroke ] };
    key <AD07> { [ l, L, lstroke, Lstroke ] };
    key <AD08> { [ u, U, uacute, Uacute ] };
    key <AD09> { [ y, Y, udiaeresis, Udiaeresis ] };
    key <AD10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
    key <AD11> { [ bracketleft, braceleft, guillemotleft, 0x1002039 ] };
    key <AD12> { [ bracketright, braceright, guillemotright, 0x100203a ] };
    key <BKSL> { [ backslash, bar, asciitilde, asciitilde ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AC02> { [ r, R, dead_grave, asciitilde ] };
    key <AC03> { [ s, S, ssharp, asciitilde ] };
    key <AC04> { [ t, T, dead_acute, dead_doubleacute ] };
    key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
    key <AC06> { [ h, H, dead_caron, asciitilde ] };
    key <AC07> { [ n, N, ntilde, Ntilde ] };
    key <AC08> { [ e, E, eacute, Eacute ] };
    key <AC09> { [ i, I, iacute, Iacute ] };
    key <AC10> { [ o, O, oacute, Oacute ] };
    key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] };

    key <AB01> { [ z, Z, ae, AE ] };
    key <AB02> { [ x, X, dead_circumflex, asciitilde ] };
    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB04> { [ v, V, oe, OE ] };
    key <AB05> { [ b, B, dead_breve, asciitilde ] };
    key <AB06> { [ k, K, dead_abovering, asciitilde ] };
    key <AB07> { [ m, M, dead_macron, asciitilde ] };
    key <AB08> { [ comma, less, dead_cedilla, asciitilde ] };
    key <AB09> { [ period, greater, dead_abovedot, asciitilde ] };
    key <AB10> { [ slash, question, questiondown, asciitilde ] };

    key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] };
    key <LSGT> { [ minus, underscore, endash, emdash ] };
    key <SPCE> { [ space, space, space, nobreakspace ] };

    include "level3(ralt_switch)"
    };

    // I do NOT like dead-keys - the International keyboard as defined by Microsoft
    // doesn't fit my needs. Why use two keystrokes for all simple characters (eg '
    // and <space> generates a single ') just to have an é (eacute) in two strokes
    // as well? I type ' more often than é (eacute).
    //
    // This file works just like a regular keyboard, BUT has all dead-keys
    // accessible at level3 (through AltGr). An ë (ediaeresis) is now: AltGr+"
    // followed by an e. In other words, this keyboard is not international as long
    // as you leave the right Alt key alone.
    //
    // The original MS International keyboard was intended for Latin1 (iso8859-1).
    // With the introduction of iso8859-15, the (important) ligature oe (and OE)
    // became available. I added them next to ae. Because I write ediaeresis more
    // often than registered, I moved registered to be next to copyright and added
    // ediaeresis and idiaeresis. - Adriaan

    partial alphanumeric_keys
    xkb_symbols "altgr-intl" {

    name[Group1]= "ID - International (AltGr dead keys)";

    include "id(intl)"

    // five dead keys moved into level3:

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AC11> { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] };

    // diversions from the MS Intl keyboard:

    key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
    key <AD04> { [ r, R, ediaeresis, Ediaeresis ] };
    key <AC07> { [ j, J, idiaeresis, Idiaeresis ] };
    key <AB02> { [ x, X, oe, OE ] };
    key <AB04> { [ v, V, registered, registered ] };

    // onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys:

    key <AE06> { [ 6, asciicircum, dead_circumflex, onequarter ] };
    key <AE07> { [ 7, ampersand, dead_horn, onehalf ] };
    key <AE08> { [ 8, asterisk, dead_ogonek, threequarters ] };

    include "level3(ralt_switch)"
    };

    // Intel ClassmatePC Keyboard Layout
    // by Piter PUNK <piterpk@terra.com.br>
    //
    // The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl)
    // to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since
    // the keyboard doesn't have AltGr key. The EuroSign is engraved at 5 key.

    // classmate - us(basic)
    partial alphanumeric_keys
    xkb_symbols "classmate" {
    include "id(basic)"
    name[Group1]= "ID - ClassmatePC";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    include "eurosign(5)"
    include "level3(switch)"
    };

    // classmate-intl - us(intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-intl" {
    include "id(intl)"
    name[Group1]= "ID - ClassmatePC (International)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KP7> { [ KP_Home, KP_7,
    onehalf, dead_horn ] };
    key <KP8> { [ KP_Up, KP_8,
    threequarters, dead_ogonek ] };
    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KP4> { [ KP_Left, KP_4,
    uacute, Uacute ] };
    key <KP5> { [ KP_Begin, KP_5,
    iacute, Iacute ] };
    key <KP6> { [ KP_Right, KP_6,
    oacute, Oacute ] };
    key <KPSU> { [ KP_Subtract, KP_Subtract,
    odiaeresis, Odiaeresis ] };

    key <KP2> { [ KP_Down, KP_2,
    oe, OE ] };
    key <KP3> { [ KP_Next, KP_3,
    oslash, Ooblique ] };
    key <KPAD> { [ KP_Add, KP_Add,
    paragraph, degree ] };

    key <KP0> { [ KP_Insert, KP_0,
    mu, mu ] };
    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_caron ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    questiondown, dead_hook ] };

    include "level3(switch)"
    };

    // classmate-alt-intl - us(alt-intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-alt-intl" {
    include "us(alt-intl)"
    name[Group1]= "ID - ClassmatePC (Alternative international)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KPSU> { [ KP_Subtract, KP_Subtract ] };

    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KPAD> { [ KP_Add, KP_Add,
    dead_ogonek, dead_diaeresis ] };

    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_circumflex ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    dead_hook, dead_hook ] };

    include "level3(switch)"
    };

    // classmate-altgr-intl - us(altgr-intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-altgr-intl" {
    include "id(altgr-intl)"
    name[Group1]= "ID - ClassmatePC (International Fn+Alt dead-keys)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KP7> { [ KP_Home, KP_7,
    dead_horn, dead_horn ] };
    key <KP8> { [ KP_Up, KP_8,
    dead_ogonek, dead_ogonek ] };
    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KP4> { [ KP_Left, KP_4,
    uacute, Uacute ] };
    key <KP5> { [ KP_Begin, KP_5,
    iacute, Iacute ] };
    key <KP6> { [ KP_Right, KP_6,
    oacute, Oacute ] };
    key <KPSU> { [ KP_Subtract, KP_Subtract,
    odiaeresis, Odiaeresis ] };

    key <KP1> { [ KP_End, KP_1,
    idiaeresis, Idiaeresis ] };
    key <KP2> { [ KP_Down, KP_2,
    oe, OE ] };
    key <KP3> { [ KP_Next, KP_3,
    oslash, Ooblique ] };
    key <KPAD> { [ KP_Add, KP_Add,
    paragraph, degree ] };

    key <KP0> { [ KP_Insert, KP_0,
    mu, mu ] };
    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_caron ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    questiondown, dead_hook ] };

    include "level3(switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "olpc" {

    include "id(basic)"
    name[Group1]= "ID";

    // OLPC international US English keyboard layout.
    // It's a little different from the usual international layout.
    // See: http://wiki.laptop.org/go/Image:Keyboard_english.png

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AE01> { [ 1, exclam, exclamdown, exclamdown ] };
    key <AE02> { [ 2, at, notsign, notsign ] };
    key <AE03> { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave
    key <AE04> { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute
    key <AE05> { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above
    key <AE06> { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above
    key <AE07> { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above
    key <AE08> { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above
    key <AE09> { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above
    key <AE10> { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above
    key <AE11> { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above
    key <AE12> { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above

    key <AD01> { [ q, Q, Greek_omega, Greek_OMEGA ] };
    key <AD02> { [ w, W, oslash, Oslash ] };
    key <AD03> { [ e, E, oe, OE ] };
    key <AD04> { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla
    key <AD05> { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below
    key <AD06> { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below
    key <AD07> { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below
    key <AD08> { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below
    key <AD09> { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below
    key <AD10> { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below
    key <AD11> { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below
    key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below

    key <AC01> { [ a, A, ae, AE ] };
    key <AC02> { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp
    key <AC03> { [ d, D, eth, ETH ] };
    key <AC04> { [ f, F, thorn, THORN ] };
    key <AC06> { [ h, H, sterling, sterling ] };
    key <AC07> { [ j, J, EuroSign, EuroSign ] };
    key <AC10> { [ semicolon, colon, masculine, ordfeminine ] };
    key <AC11> { [ apostrophe, quotedbl, currency, currency ] };
    key <BKSL> { [ backslash, bar, section, section ] };

    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB06> { [ n, N, ntilde, Ntilde ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ comma, less, guillemotleft, guillemotleft ] };
    key <AB09> { [ period, greater, guillemotright, guillemotright ] };
    key <AB10> { [ slash, question, questiondown, questiondown ] };

    key <I219> { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] };

    include "level3(ralt_switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "olpc2" {
    include "id(olpc)"
    name[Group1]= "ID - Group toggle on multiply/divide key";
    include "group(olpc)"
    };

    // Based on Cherokee Nation Official Layout
    // http://www.cherokee.org/extras/downloads/font/Keyboard.htm

    partial alphanumeric_keys modifier_keys
    xkb_symbols "chr" {

    name[Group1]= "ID - Cherokee";
    key.type[group1]="ALPHABETIC";

    // Alphanumeric section
    key <TLDE> { [ grave, U13CA ] };
    key <AE01> { [ 1, U13B1 ] };
    key <AE02> { [ 2, U13C7 ] };
    key <AE03> { [ 3, U13E7 ] };
    key <AE04> { [ U13D9, U13B0 ] };
    key <AE05> { [ U13E6, U13B9 ] };
    key <AE06> { [ U13DC, U13DD ] };
    key <AE07> { [ U13CB, U13E1 ] };
    key <AE08> { [ U13D6, U13BA ] };
    key <AE09> { [ U13D2, parenleft ] };
    key <AE10> { [ U13C4, parenright ] };
    key <AE11> { [ U13BF, U13BC ] };
    key <AE12> { [ U13F3, U13BD ] };

    key <AD01> { [ U13AA, U13C6 ] };
    key <AD02> { [ U13B3, U13EB ] };
    key <AD03> { [ U13A1, U13E3 ] };
    key <AD04> { [ U13DB, U13CF ] };
    key <AD05> { [ U13D4, U13D8 ] };
    key <AD06> { [ U13EF, U13F2 ] };
    key <AD07> { [ U13A4, U13AD ] };
    key <AD08> { [ U13A2, U13F1 ] };
    key <AD09> { [ U13A3, U13EC ] };
    key <AD10> { [ U13C1, U13EA ] };
    key <AD11> { [ U13D5, U13D1 ] };
    key <AD12> { [ U13B6, U13E4 ] };
    key <BKSL> { [ U13E9, U13EE ] };

    key <AC01> { [ U13A0, U13CC ] };
    key <AC02> { [ U13CD, U13CE ] };
    key <AC03> { [ U13D7, U13D0 ] };
    key <AC04> { [ U13A9, U13C8 ] };
    key <AC05> { [ U13A6, U13E5 ] };
    key <AC06> { [ U13AF, U13B2 ] };
    key <AC07> { [ U13DA, U13AB ] };
    key <AC08> { [ U13B8, U13A7 ] };
    key <AC09> { [ U13B5, U13AE ] };
    key <AC10> { [ U13E8, U13E0 ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ U13AC, U13C3 ] };
    key <AB02> { [ U13F4, U13ED ] };
    key <AB03> { [ U13D3, U13DF ] };
    key <AB04> { [ U13A5, U13DE ] };
    key <AB05> { [ U13A8, U13F0 ] };
    key <AB06> { [ U13BE, U13BB ] };
    key <AB07> { [ U13C5, U13B7 ] };
    key <AB08> { [ comma, U13E2 ] };
    key <AB09> { [ period, U13B4 ] };
    key <AB10> { [ U13C2, U13C9 ] };

    // End alphanumeric section
    };

    // Serbian charecters added as third level symbols to US keyboard layout.

    partial alphanumeric_keys
    xkb_symbols "srp" {

    name[Group1]= "ID - Serbian";

    include "id"

    key <TLDE> { [ grave, asciitilde ] };
    key <AE06> { [ 6, dead_caron, asciicircum, asciicircum ] };
    key <AC09> { [ l, L, U1C9, U1C8 ] };
    key <AB06> { [ n, N, U1CC, U1CB ] };
    key <AB01> { [ z, Z, U1C6, U1C5 ] };
    key <AD03> { [ e, E, EuroSign, cent ] };
    key <AC03> { [ d, D, dstroke, Dstroke ] };
    key <AC11> { [ dead_acute, quotedbl, apostrophe, U315 ] };
    key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };

    include "level3(ralt_switch)"
    };

    setelah kelar simpan dengan [ctrl]+[o] dan keluar dengan [ctrl]+[x].
  2. edit file /usr/share/X11/xkb/rules/evdev.xml
    sudo nano /usr/share/X11/xkb/rules/evdev.xml
    cari baris <layout> di atas baris tersebut sisipkan
    <layout>
    <configItem>
    <name>id</name>
    <shortDescription>ID</shortDescription>
    <description>ID</description>
    <languageList><iso639Id>eng</iso639Id></languageList>
    </configItem>
    <variantList>
    <variant>
    <configItem>
    <name>chr</name>
    <description>Cherokee</description>
    <languageList><iso639Id>chr</iso639Id></languageList>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>euro</name>
    <description>With EuroSign on 5</description>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>intl</name>
    <description>International (with dead keys)</description>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>alt-intl</name>
    <description>Alternative international (former id_intl)</description>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>colemak</name>
    <description>Colemak</description>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>dvorak</name>
    <description>Dvorak</description>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>dvorak-intl</name>
    <description>Dvorak international</description>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>dvorak-l</name>
    <description>Left handed Dvorak</description>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>dvorak-r</name>
    <description>Right handed Dvorak</description>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>dvorak-classic</name>
    <description>Classic Dvorak</description>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>dvp</name>
    <description>Programmer Dvorak</description>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>rus</name>
    <description>Russian phonetic</description>
    <languageList><iso639Id>rus</iso639Id></languageList>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>mac</name>
    <description>Macintosh</description>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>altgr-intl</name>
    <description>International (AltGr dead keys)</description>
    <languageList><iso639Id>eng</iso639Id>
    <iso639Id>fra</iso639Id>
    <iso639Id>ger</iso639Id></languageList>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>olpc2</name>
    <description>Group toggle on multiply/divide key</description>
    </configItem>
    </variant>
    <variant>
    <configItem>
    <name>srp</name>
    <description>Serbian</description>
    <languageList><iso639Id>eng</iso639Id>
    <iso639Id>srp</iso639Id> </languageList>
    </configItem>
    </variant>
    </variantList>
    </layout>

    selesaikan dengan [ctrl]+[o] [ctrl]+[x]
  3. dari main menu >> preferences >> keyboard klik tab layouts, klik tombol add nah di window keyboard pilih indonesia, jika perlu tambahkan arab dan buang usa !
  4. jika ingin bendera muncul di tray kita bisa bikin icon flag sendiri (lihat gambar 1, paling atas tuh), kalo nggak mau repot install ini juga boleh. trus aktifkan dengan gconf2 ato gconf-editor.