// Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.

partial default alphanumeric_keys
xkb_symbols "sgd" {

   // French layout that uses an extra set of levels to define CapsLock
   // behaviour rather than putting on the shift state

    key.type[Group1]="SIX_LEVEL_NUMERIC"; // This is defined in the types/sgd file.
    name[Group1]="French (Numeric)";

    key <AE01>  { [ ampersand,          1,  onesuperior,   exclamdown,          1,  ampersand  ] };
    key <AE02>  { [    eacute,          2,   dead_tilde,    oneeighth,          2,     Eacute  ] };
    key <AE03>  { [  quotedbl,          3,   numbersign,     sterling,          3,   quotedbl  ] };
    key <AE04>  { [apostrophe,          4,    braceleft,       dollar,          4,  apostrophe ] };
    key <AE05>  { [ parenleft,          5,  bracketleft, threeeighths,          5,   parenleft ] };
    key <AE06>  { [     minus,          6,          bar,  fiveeighths,          6,       minus ] };
    key <AE07>  { [    egrave,          7,   dead_grave, seveneighths,          7,      Egrave ] };
    key <AE08>  { [underscore,          8,    backslash,    trademark,          8,  underscore ] };
    key <AE09>  { [  ccedilla,          9,  asciicircum,    plusminus,          9,    Ccedilla ] };
    key <AE10>  { [    agrave,          0,           at,       degree,          0,      Agrave ] };
    key <AE11>  { [parenright,     degree, bracketright, questiondown,     degree,  parenright ] };
    key <AE12>  { [     equal,       plus,   braceright,  dead_ogonek,       plus,       equal ] };
    key <AD01>  { [         a,          A,           ae,           AE,          A,           a ] };
    key <AD02>  { [         z,          Z, guillemotleft,        less,          Z,           z ] };
    key <AD03>  { [         e,          E,     EuroSign,         cent,          E,           e ] };
    key <AD04>  { [         r,          R,    paragraph,   registered,          R,           r ] };
    key <AD05>  { [         t,          T,       tslash,       Tslash,          T,           t ] };
    key <AD06>  { [         y,          Y,    leftarrow,          yen,          Y,           y ] };
    key <AD07>  { [         u,          U,    downarrow,      uparrow,          U,           u ] };
    key <AD08>  { [         i,          I,   rightarrow,     idotless,          I,           i ] };
    key <AD09>  { [         o,          O,       oslash,     Ooblique,          O,           o ] };
    key <AD10>  { [         p,          P,        thorn,        THORN,          P,           p ] };
    key <AD11>  { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering, dead_diaeresis, dead_circumflex ] };
    key <AD12>  { [    dollar,   sterling,     currency,  dead_macron,    sterling,     dollar ] };

    key <AC01>  { [         q,          Q,           at,  Greek_OMEGA,          Q,           q ] };
    key <AC02>  { [         s,          S,       ssharp,      section,          S,           s ] };
    key <AC03>  { [         d,          D,          eth,          ETH,          D,           d ] };
    key <AC04>  { [         f,          F,      dstroke,  ordfeminine,          F,           f ] };
    key <AC05>  { [         g,          G,          eng,          ENG,          G,           g ] };
    key <AC06>  { [         h,          H,      hstroke,      Hstroke,          H,           h ] };
    key <AC07>  { [         j,          J,    dead_hook,    dead_horn,          J,           j ] };
    key <AC08>  { [         k,          K,          kra,    ampersand,          K,           k ] };
    key <AC09>  { [         l,          L,      lstroke,      Lstroke,          L,           l ] };
    key <AC10>  { [         m,          M,           mu,    masculine,          M,           m ] };
    key <AC11>  { [    ugrave,    percent, dead_circumflex, dead_caron,   percent,      Ugrave ] };
    key <TLDE>  { [twosuperior, asciitilde,     notsign,      notsign, asciitilde, twosuperior ] };

    key <BKSL>  { [  asterisk,         mu,   dead_grave,   dead_breve,         mu,    asterisk ] };
    key <AB01>  { [         w,          W,      lstroke,      Lstroke,          W,           w ] };
    key <AB02>  { [         x,          X, guillemotright,    greater,          X,           x ] };
    key <AB03>  { [         c,          C,         cent,    copyright,          C,           c ] };
    key <AB04>  { [         v,          V, leftdoublequotemark, leftsinglequotemark, V, v ]   };
    key <AB05>  { [         b,          B, rightdoublequotemark, rightsinglequotemark, B, b ] };
    key <AB06>  { [         n,          N,            n,            N,          N,           n ] };
    key <AB07>  { [     comma,   question,   dead_acute, dead_doubleacute, question,     comma ] };
    key <AB08>  { [ semicolon,     period, horizconnector,   multiply,     period,   semicolon ] };
    key <AB09>  { [     colon,      slash, periodcentered,   division,      slash,       colon ] };
    key <AB10>  { [    exclam,    section, dead_belowdot, dead_abovedot,  section,      exclam ] };

    include "level3(ralt_switch)"

};

xkb_symbols "sgd_legacy" {

    name[group1]="French (Legacy AltGr)";

    include "sgd_vndr/sgd(legacy_common)"

    key <AE01> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [       ampersand,               1,  onesuperior,      exclamdown,     1, ampersand ],
        symbols[Group2]= [     onesuperior,     exclamdown ]
    };
    key <AE02> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [          eacute,               2,      dead_tilde,       oneeighth,      2,        Eacute ],
        symbols[Group2]= [      dead_tilde,       oneeighth ]
    };
    key <AE03> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [        quotedbl,               3,      numbersign,        sterling,      3,        quotedbl ],
        symbols[Group2]= [      numbersign,        sterling ]
    };
    key <AE04> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [      apostrophe,               4,       braceleft,          dollar,       4,        apostrophe ],
        symbols[Group2]= [       braceleft,          dollar ]
    };
    key <AE05> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [       parenleft,               5,     bracketleft,    threeeighths,     5,        parenleft ],
        symbols[Group2]= [     bracketleft,    threeeighths ]
    };
    key <AE06> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [           minus,               6,             bar,     fiveeighths,             6,       minus ],
        symbols[Group2]= [             bar,     fiveeighths ]
    };
    key <AE07> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [          egrave,               7,           dead_grave,    seveneighths,           7,        Egrave ],
        symbols[Group2]= [      dead_grave,    seveneighths ]
    };
    key <AE08> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [      underscore,               8,       backslash,       trademark,       8,        underscore ],
        symbols[Group2]= [       backslash,       trademark ]
    };
    key <AE09> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [        ccedilla,               9,     asciicircum,       plusminus,     9,        Ccedilla ],
        symbols[Group2]= [     asciicircum,       plusminus ]
    };
    key <AE10> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [          agrave,               0,              at,          degree,              0,        Agrave ],
        symbols[Group2]= [              at,          degree ]
    };
    key <AE11> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [      parenright,          degree,    bracketright,    questiondown,    degree,        parenright ],
        symbols[Group2]= [    bracketright,    questiondown ]
    };
    key <AE12> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [           equal,            plus,      braceright,     dead_ogonek,      plus,        equal ],
        symbols[Group2]= [      braceright,     dead_ogonek ]
    };
    key <AD01> {
        type[group1]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               a,               A,              ae,        AE ],
        symbols[Group2]= [              ae,            AE ]
    };
    key <AD02> {
        type[group1]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               z,               Z,   guillemotleft,        less ],
        symbols[Group2]= [   guillemotleft,            less ]
    };
    key <AD03> {
        type[group1]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               e,               E,        EuroSign,        cent ],
        symbols[Group2]= [        EuroSign,            cent ]
    };
    key <AD04> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               r,               R,       paragraph,        registered ],
        symbols[Group2]= [       paragraph,      registered ]
    };
    key <AD05> {
        type[group1]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               t,               T,          tslash,        Tslash ],
        symbols[Group2]= [          tslash,          Tslash ]
    };
    key <AD06> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               y,               Y,       leftarrow,        yen ],
        symbols[Group2]= [       leftarrow,             yen ]
    };
    key <AD07> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               u,               U,       downarrow,        uparrow ],
        symbols[Group2]= [       downarrow,         uparrow ]
    };
    key <AD08> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               i,               I,      rightarrow,        idotless ],
        symbols[Group2]= [      rightarrow,        idotless ]
    };
    key <AD09> {
        type[group1]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               o,               O,          oslash,        Oslash ],
        symbols[Group2]= [          oslash,          Oslash ]
    };
    key <AD10> {
        type[group1]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               p,               P,           thorn,        THORN ],
        symbols[Group2]= [           thorn,           THORN ]
    };
    key <AD11> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [ dead_circumflex,  dead_diaeresis,  dead_diaeresis,  dead_abovering,  dead_diaeresis, dead_circumflex ],
        symbols[Group2]= [  dead_diaeresis,  dead_abovering ]
    };
    key <AD12> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [          dollar,        sterling,        currency,     dead_macron,        sterling,        dollar ],
        symbols[Group2]= [        currency,     dead_macron ]
    };
    key <AC01> {
        type[group1]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               q,               Q,              at,        Greek_OMEGA ],
        symbols[Group2]= [              at,     Greek_OMEGA ]
    };
    key <AC02> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               s,               S,          ssharp,        section ],
        symbols[Group2]= [          ssharp,         section ]
    };
    key <AC03> {
        type[group1]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               d,               D,             eth,        ETH ],
        symbols[Group2]= [             eth,             ETH ]
    };
    key <AC04> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               f,               F,         dstroke,        ordfeminine ],
        symbols[Group2]= [         dstroke,     ordfeminine ]
    };
    key <AC05> {
        type[group1]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               g,               G,             eng,        ENG ],
        symbols[Group2]= [             eng,             ENG ]
    };
    key <AC06> {
        type[group1]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               h,               H,         hstroke,        Hstroke ],
        symbols[Group2]= [         hstroke,         Hstroke ]
    };
    key <AC07> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               j,               J,       dead_hook,        dead_horn ],
        symbols[Group2]= [       dead_hook,       dead_horn ]
    };
    key <AC08> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               k,               K,             kra,        ampersand ],
        symbols[Group2]= [             kra,       ampersand ]
    };
    key <AC09> {
        type[group1]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               l,               L,         lstroke,        Lstroke ],
        symbols[Group2]= [         lstroke,         Lstroke ]
    };
    key <AC10> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               m,               M,              mu,        masculine ],
        symbols[Group2]= [              mu,       masculine ]
    };
    key <AC11> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [          ugrave,         percent, dead_circumflex,      dead_caron, percent,        Ugrave ],
        symbols[Group2]= [ dead_circumflex,      dead_caron ]
    };
    key <TLDE> {
        type[group1]= "FOUR_LEVEL",
        symbols[Group1]= [     twosuperior,      asciitilde,         notsign,        notsign ],
        symbols[Group2]= [         notsign,         notsign ]
    };
    key <BKSL> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [        asterisk,              mu,      dead_grave,      dead_breve,      mu,        asterisk ],
        symbols[Group2]= [      dead_grave,      dead_breve ]
    };
    key <AB01> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               w,               W,         lstroke,        Lstroke ],
        symbols[Group2]= [         lstroke,         Lstroke ]
    };
    key <AB02> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               x,               X,  guillemotright,        greater ],
        symbols[Group2]= [  guillemotright,         greater ]
    };
    key <AB03> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               c,               C,            cent,        copyright ],
        symbols[Group2]= [            cent,       copyright ]
    };
    key <AB04> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               v,               V, leftdoublequotemark,        leftsinglequotemark ],
        symbols[Group2]= [ leftdoublequotemark, leftsinglequotemark ]
    };
    key <AB05> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               b,               B, rightdoublequotemark,        rightsinglequotemark ],
        symbols[Group2]= [ rightdoublequotemark, rightsinglequotemark ]
    };
    key <AB06> {
        type[group1]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               n,               N,               n,        N ],
        symbols[Group2]= [               n,               N ]
    };
    key <AB07> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [           comma,        question,      dead_acute,        dead_doubleacute ],
        symbols[Group2]= [      dead_acute, dead_doubleacute ]
    };
    key <AB08> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [       semicolon,          period,   horizconnector,        multiply,  period,        semicolon ],
        symbols[Group2]= [  horizconnector,        multiply ]
    };
    key <AB09> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [           colon,           slash,  periodcentered,        division,  slash,        colon ],
        symbols[Group2]= [  periodcentered,        division ]
    };
    key <AB10> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [          exclam,         section, dead_belowdot,   dead_abovedot,   section,        exclam ],
        symbols[Group2]= [   dead_belowdot,   dead_abovedot ]
    };
    key <LSGT> {
        type[group1]= "FOUR_LEVEL",
        symbols[Group1]= [            less,         greater,             bar,        brokenbar ],
        symbols[Group2]= [             bar,       brokenbar ]
    };
    include "sgd_vndr/sgd(legacy_modifiers)"
};

xkb_symbols "sgd_legacy_nodeadkeys" {

    name[group1]="French (Legacy AltGr, eliminate dead keys)";

    include "sgd_vndr/sgd(legacy_common)"
    include "sgd_vndr/fr(sgd_legacy)"

    key <AE02> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [  eacute,               2,      asciitilde, oneeighth,      2,        Eacute ],
        symbols[Group2]= [  asciitilde,       oneeighth ]
    };

    key <AE07> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [  egrave,               7,     grave,    seveneighths,           7,        Egrave ],
        symbols[Group2]= [  grave,    seveneighths ]
    };

    key <AE12> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [  equal,            plus,      braceright, ogonek,      plus,        equal ],
        symbols[Group2]= [  braceright,     ogonek ]
    };

    key <AD11> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [  asciicircum,  quotedbl,  diaeresis,  U02DA,  quotedbl, asciicircum ],
        symbols[Group2]= [  diaeresis,  U02DA ]
    };

    key <AD12> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [  dollar,        sterling,        currency, U0304,        sterling,        dollar ],
        symbols[Group2]= [  currency,     U0304 ]
    };

    key <AC07> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [  j,               J,       U0309, U031B ],
        symbols[Group2]= [  U0309,       U031B ]
    };

    key <AC11> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [  ugrave,         percent, U0302, U030C, percent,        Ugrave ],
        symbols[Group2]= [  U0302,      U030C ]
    };

    key <BKSL> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [  asterisk,    mu,      U0300, U02D8,      mu,      asterisk ],
        symbols[Group2]= [  U0300,      U02D8 ]
    };

    key <AB07> {
        type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [  comma,        question,    U0301, U02DD ],
        symbols[Group2]= [  U0301, U02DD ]
    };

    key <AB10> {
        type[group1]= "SIX_LEVEL_NUMERIC",
        symbols[Group1]= [  exclam,         section, U0323,   U02D9,   section,        exclam ],
        symbols[Group2]= [  U0323,   U02D9 ]
    };

};
