// Icelandic keyboard layout, by Hrafnkell Eiriksson - hkelle@rhi.hi.is
// Fixes by Olafur Osvaldsson - oli@isnic.is - and Bjarni Ingi Gislason.

default partial alphanumeric_keys
xkb_symbols "basic" {

    include "latin(type4)"

    name[Group1]="Icelandic";

    key <TLDE>	{ [dead_abovering, dead_diaeresis, notsign,    hyphen ] };
    key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth ]	};
    key <AE04>	{ [         4,     dollar,   onequarter,     currency ]	};
    key <AE11>	{ [odiaeresis, Odiaeresis,    backslash, questiondown ]	};
    key <AE12>	{ [     minus, underscore, dead_cedilla,  dead_ogonek ]	};

    key <AD10>	{ [        p,           P,          bar,     Greek_pi ] };
    key <AD11>	{ [       eth,        ETH, dead_diaeresis, dead_abovering ] };
    key <AD12>	{ [apostrophe,   question,   asciitilde,  dead_macron ]	};

    key <AC03>	{ [         d,          D,  U201e,       U201c ] };
    key <AC10>	{ [        ae,         AE,  asciicircum, dead_doubleacute ] };
    key <AC11>	{ [dead_acute, dead_acute, dead_circumflex, dead_caron ] };
    key <BKSL>	{ [      plus,   asterisk,   grave,   dead_breve ]	};

    key <AB10>	{ [     thorn,      THORN, dead_belowdot, dead_abovedot ] };

    include "level3(ralt_switch)"
};

// Copied from macintosh_vndr/is.
// Copyright (C) 2004, 2006 Ævar Arnfjörð Bjarmason <avarab@gmail.com>
xkb_symbols "mac_legacy" {
    name[Group1]= "Icelandic (Macintosh, legacy)";

    key <TLDE> { [ sterling,   section,    UF8FF,        apostrophe ] }; // Apple logo
    key <AE01> { [ 1,          exclam,     exclamdown,   VoidSymbol ] };
    key <AE02> { [ 2,          quotedbl,   at,           VoidSymbol ] };
    key <AE03> { [ 3,          numbersign, U2122,        sterling   ] };
    key <AE04> { [ 4,          dollar,     U00A2,        EuroSign   ] };
    key <AE05> { [ 5,          percent,    U2030,        infinity   ] };
    key <AE06> { [ 6,          ampersand,  asciicircum,  U2044      ] };
    key <AE07> { [ 7,          slash,      backslash,    U00F7      ] };
    key <AE08> { [ 8,          parenleft,  bracketleft,  braceleft  ] };
    key <AE09> { [ 9,          parenright, bracketright, braceright ] };
    key <AE10> { [ 0,          equal,      U2260,        U2248      ] };
    key <AE11> { [ odiaeresis, Odiaeresis, oslash,       Ooblique   ] };
    key <AE12> { [ minus,      underscore, endash,       emdash     ] };

    key <AD01> { [ q,          Q,        paragraph,       VoidSymbol ] };
    key <AD02> { [ w,          W,        U2211,           VoidSymbol ] };
    key <AD03> { [ e,          E,        dead_grave,      VoidSymbol ] };
    key <AD04> { [ r,          R,        registered,      VoidSymbol ] };
    key <AD05> { [ t,          T,        degree,          VoidSymbol ] };
    key <AD06> { [ y,          Y,        yen,             VoidSymbol ] };
    key <AD07> { [ u,          U,        dead_diaeresis,  VoidSymbol ] };
    key <AD08> { [ i,          I,        U0131,           U00AA      ] };
    key <AD09> { [ o,          O,        dead_circumflex, U00BA      ] };
    key <AD10> { [ p,          P,        Greek_pi,        Greek_PI   ] };
    key <AD11> { [ eth,        Eth,      U201e,           U201c      ] };
    key <AD12> { [ apostrophe, question, questiondown,    U00B7      ] };

    key <AC01> { [ a,          A,                aring,     Aring      ] };
    key <AC02> { [ s,          S,                ssharp,    abovedot   ] };
    key <AC03> { [ d,          D,                U2202,     U2DA       ] };
    key <AC04> { [ f,          F,                U192,      macron     ] };
    key <AC05> { [ g,          G,                copyright, breve      ] };
    key <AC06> { [ h,          H,                bar,       VoidSymbol ] };
    key <AC07> { [ j,          J,                U2206,     U2dd       ] };
    key <AC08> { [ k,          K,                U00AC,     VoidSymbol ] };
    key <AC09> { [ l,          L,                U2026,     caron      ] };
    key <AC10> { [ ae,         AE,               oe,        OE         ] };
    key <AC11> { [ dead_acute, dead_diaeresis,   U201A,     U2018      ] };
    key <BKSL> { [ plus,       asterisk,         U2022,     plusminus  ] };

    key <LSGT> { [ less,   greater,   section,          UF8FF          ] }; // Apple logo
    key <AB01> { [ z,      Z,         U3A9,             VoidSymbol     ] };
    key <AB02> { [ x,      X,         asciitilde,       VoidSymbol     ] };
    key <AB03> { [ c,      C,         ccedilla,         Ccedilla       ] };
    key <AB04> { [ v,      V,         U221A,            U25CA          ] };
    key <AB05> { [ b,      B,         U222B,            VoidSymbol     ] };
    key <AB06> { [ n,      N,         dead_tilde,       VoidSymbol     ] };
    key <AB07> { [ m,      M,         U00B5,            VoidSymbol     ] };
    key <AB08> { [ comma,  semicolon, lessthanequal,    guillemotleft  ] };
    key <AB09> { [ period, colon,     greaterthanequal, guillemotright ] };
    key <AB10> { [ thorn,  Thorn,     U2019,            U201d          ] };

    include "level3(ralt_switch)"
};

// Layout for newer Apple laptop and Aluminium keyboards (A1243/A1255 and later).
// Copyright (C) 2013 Ævar Arnfjörð Bjarmason <avarab@gmail.com>
partial alphanumeric_keys
xkb_symbols "mac" {
    name[Group1]= "Icelandic (Macintosh)";

    key <TLDE> { [ degree, dead_diaeresis, oslash,       Ooblique    ] };
    key <AE01> { [ 1,          exclam,     exclamdown,   VoidSymbol  ] };
    key <AE02> { [ 2,          quotedbl,   at,           VoidSymbol  ] };
    key <AE03> { [ 3,          numbersign, trademark,    sterling    ] };
    key <AE04> { [ 4,          dollar,     cent,         EuroSign    ] };
    key <AE05> { [ 5,          percent,    U2030,        infinity    ] };
    key <AE06> { [ 6,          ampersand,  asciicircum,  U2044       ] };
    key <AE07> { [ 7,          slash,      braceleft,    division    ] };
    key <AE08> { [ 8,          parenleft,  bracketleft,  braceleft   ] };
    key <AE09> { [ 9,          parenright, bracketright, braceright  ] };
    key <AE10> { [ 0,          equal,      braceright,   approxeq    ] };
    key <AE11> { [ odiaeresis, Odiaeresis, backslash,    U2260       ] };
    key <AE12> { [ minus,      underscore, endash,       emdash      ] };

    key <AD01> { [ q,          Q,          U0040,              paragraph           ] };
    key <AD02> { [ w,          W,          U2211,              U00A7               ] };
    key <AD03> { [ e,          E,          U20AC,              U00BF               ] };
    key <AD04> { [ r,          R,          registered,         VoidSymbol          ] };
    key <AD05> { [ t,          T,          degree,             U2022               ] };
    key <AD06> { [ y,          Y,          yen,                VoidSymbol          ] };
    key <AD07> { [ u,          U,          dead_diaeresis,     VoidSymbol          ] };
    key <AD08> { [ i,          I,          idotless,           ordfeminine         ] };
    key <AD09> { [ o,          O,          dead_circumflex,    U00BA               ] };
    key <AD10> { [ p,          P,          Greek_pi,           Greek_PI            ] };
    key <AD11> { [ eth,        Eth,        doublelowquotemark, leftdoublequotemark ] };
    key <AD12> { [ apostrophe, question,   asciitilde,         periodcentered      ] };

    key <AC01> { [ a,          A,          aring,             Aring               ] };
    key <AC02> { [ s,          S,          ssharp,            abovedot            ] };
    key <AC03> { [ d,          D,          partialderivative, U02DA               ] };
    key <AC04> { [ f,          F,          function,          macron              ] };
    key <AC05> { [ g,          G,          copyright,         breve               ] };
    key <AC06> { [ h,          H,          bar,               U00B8               ] };
    key <AC07> { [ j,          J,          U2206,             doubleacute         ] };
    key <AC08> { [ k,          K,          notsign,           U2DB                ] };
    key <AC09> { [ l,          L,          ellipsis,          caron               ] };
    key <AC10> { [ ae,         AE,         oe,                OE                  ] };
    key <AC11> { [ dead_acute, dead_acute, asciicircum,       leftsinglequotemark ] };
    key <BKSL> { [ plus,       asterisk,   grave,             plusminus           ] };

    key <LSGT> { [ less,   greater,        bar,                  UF8FF                ] }; // Apple logo
    key <AB01> { [ z,      Z,              Greek_OMEGA,          VoidSymbol           ] };
    key <AB02> { [ x,      X,              asciitilde,           VoidSymbol           ] };
    key <AB03> { [ c,      C,              ccedilla,             Ccedilla             ] };
    key <AB04> { [ v,      V,              radical,              U25CA                ] };
    key <AB05> { [ b,      B,              integral,             VoidSymbol           ] };
    key <AB06> { [ n,      N,              dead_tilde,           VoidSymbol           ] };
    key <AB07> { [ m,      M,              mu,                   VoidSymbol           ] };
    key <AB08> { [ comma,  semicolon,      lessthanequal,        guillemotleft        ] };
    key <AB09> { [ period, colon,          greaterthanequal,     guillemotright       ] };
    key <AB10> { [ thorn,  Thorn,          rightsinglequotemark, rightdoublequotemark ] };

    include "level3(ralt_switch)"
};

// This is a modified version of the English Dvorak layout that allows
// you to type all Icelandic letters under X. It's not a full attempt at
// nationalizing the layout as e.g. the Norwegian, Swedish and French
// layouts which modify the primary keys of the basic Dvorak layout
// extensively.

// Rather it's a simple modification of 5 keys of the US Dvorak layout,
// it adds Germanic/Icelandic style quotation marks („“), eth (ðÐ), ae
// (æÆ), endash and emdash (–—), thorn (þÞ), EuroSign (€) and the German
// Sharp S (ßẞ). These keys aren't used in the US version, making the
// Icelandic version a superset of it.

// Maybe someone else will make a "full" attempt at an Icelandic layout
// but I was mostly interested in continuing to type English comfortably
// as a primary function while being able to type the full Icelandic
// alphabet as a secondary function.
//     -- Ævar Arnfjörð Bjarmason <avarab@gmail.com>

// Icelandic Dvorak
partial alphanumeric_keys
xkb_symbols "dvorak" {

    include "us(dvorak)"
    include "eurosign(4)"

    name[Group1]= "Icelandic (Dvorak)";

    key <AD11> { [      slash,  question,    U201e,   U201c   ] };
    key <AC02> { [       o,     O,           odiaeresis, Odiaeresis ] };
    key <AC06> { [       d,     D,           eth,     ETH     ] };
    key <AC10> { [       s,     S,           ae,      AE      ] };
    key <AC11> { [   minus,     underscore,  endash,  emdash  ] };
    key <AB10> { [       z,     Z,           thorn,   Thorn   ] };
    key <AB06> { [       b,     B,           ssharp,  U1E9E   ] };

    include "level3(ralt_switch)"
};

//  >>--> DreymaR (OEystein Bech-Aase, formerly Bech Gadmar), 2012-01: Additions to xkb/symbols/is
//  Colemak[eD]: National/locale Colemak "edition DreymaR" variants for Icelandic.
//  2006-01-01  Shai Coleman  http://colemak.com/  (Public Domain)  : The Colemak keyboard layout.
//  See the Big Bag section on Cmk[eD] locales: https://dreymar.colemak.org/variants.html#locales

//  The 'keep local symbols' variant keeps the national symbol and special letter setup.
partial alphanumeric_keys
xkb_symbols "cmk_ed_ks" {
    include "is(basic)"
    include "colemak(cmk_ed_letters)"
    name[Group1]= "Icelandic (Colemak[eD], keep local symbols)";

//  NOTE: Symbols on letter keys may be lost in cmk_ed_ks if they are not on Colemak[eD] letter keys.
//  EuroSign is often on 'E'. The latin(intl) and locale(winkeys) layout variants use '5'.
//  Colemak[eD] has EuroSign on 'E' and mu on '5'.
//    key <AE05> { [ NoSymbol, NoSymbol,       mu, onehalf ] };
//    key <AE05> { [ NoSymbol, NoSymbol, EuroSign, onehalf ] }; // onehalf is moved, threeeights is lost

    key <AD10>	{ [ ae, AE, asciicircum, dead_doubleacute ] }; // from <AC10>
};

//  The 'us' variant uses the US-type symbol key setup (recommended!) as it is nearly an intl. standard.
//  For Icelandic, necessary local letters are added to designated flexible spots in the layout.
//  For "writing" and "coding" subvariants, move the brackets between lv1-2 and lv3-4 as shown.
partial alphanumeric_keys
xkb_symbols "cmk_ed_us" {
    include "colemak(cmk_ed_letters)"
    include "symkeys(cmk_ed_symbols)"
    include "level3(ralt_switch)"
    name[Group1]= "Icelandic (Colemak[eD], unified symbols)";

//  Icelandic letters: Áá/Íí/Óó/Éé/Úú/Ýý 5.9% (1.8/1.6/1.0/0.7/0.6/0.2); Ðð 4.4%; Þþ 1.5%; Ææ 0.9%; Öö 0.8%.
//  Need a good dead_acute. Keep Ææ on AltGr+Aa; Þþ on AltGr+Tt may be replaced with Öö.

//    key <AD12> { [    dead_acute, dead_circumflex,      bracketright,          braceright ] }; //from <AC11>
//    key <LSGT> { [    odiaeresis,    Odiaeresis,              oslash,            Ooblique ] }; //from <AE11>

//    key <AD11> { [   bracketleft,     braceleft,                 eth,                 ETH ] };
//    key <AD12> { [  bracketright,    braceright,               thorn,               THORN ] };
    key <AD11> { [           eth,           ETH,         bracketleft,           braceleft ] }; //on <AD11>
    key <AD12> { [         thorn,         THORN,        bracketright,          braceright ] }; //from <AB10>
    key <LSGT> { [    dead_acute, dead_circumflex,           oslash,             Ooblique ] }; //from <AC11>
    key <AC04> { [             t,             T,          odiaeresis,          Odiaeresis ] }; //from <AE11>
    key <AC05> { [             d,             D,               aring,               Aring ] }; // keep Åå
//    key <AC06> { [             h,             H,                  ae,                  AE ] }; // keep æÆ
};
//  <--<< DreymaR: Additions to xkb/symbols/is
