// based on a keyboard map from an 'xkb/symbols/gb' file

default  partial alphanumeric_keys
xkb_symbols "basic" {

    // Describes the differences between a very simple en_US
    // keyboard and a very simple U.K. keyboard layout defined by
    // the SVR4 European Language Supplement and sometimes also
    // known as the IBM 166 layout.

    include "latin"

    name[Group1]="English (UK)";

    key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth ]	};
    key <AE03>	{ [         3,   sterling, threesuperior,    sterling ]	};
    key <AE04>	{ [         4,     dollar,     EuroSign,   onequarter ]	};

    key <AC11>	{ [apostrophe,         at, dead_circumflex, dead_caron]	};
    key <TLDE>	{ [     grave,    notsign,          bar,          bar ]	};

    key <BKSL>	{ [numbersign, asciitilde,   dead_grave,   dead_breve ]	};
    key <LSGT>	{ [ backslash,        bar,          bar,    brokenbar ]	};

    include "level3(ralt_switch_multikey)"
};

partial alphanumeric_keys
xkb_symbols "intl" { 

    // Describes the differences between a very simple en_US 
    // keyboard and a very simple U.K. keyboard layout with 
    // dead keys. By Phil Jones (philjones1@blueyonder.co.uk) 

    // Includes the following keys: 
    // dead_grave 
    // dead_acute 
    // dead_circumflex 
    // dead_tilde 
    // dead_diaeresis 

    include "latin" 

    name[Group1]="English (UK, intl., with dead keys)";

    key <AE02>  { [   2,  dead_diaeresis,      twosuperior,     onehalf ] };
    key <AE03>  { [   3,        sterling,    threesuperior,    onethird ] };
    key <AE04>  { [   4,          dollar,         EuroSign,  onequarter ] };
    key <AE06>  { [   6, dead_circumflex,         NoSymbol,    onesixth ] };

    key <AC11>  { [ dead_acute,         at,     apostrophe,         bar ] };
    key <TLDE>  { [ dead_grave,    notsign,            bar,         bar ] };

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

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "extd" {
    // Clone of the Microsoft "English (UK, Extended" layout, which
    // includes dead keys for: grave; diaeresis; circumflex; tilde; and
    // accute. It also enables direct access to accute characters using
    // the Multi_key (Alt Gr).
    //
    // Taken from...
    //    "Windows Keyboard Layouts"
    //    http://msdn.microsoft.com/en-us/goglobal/bb964651.aspx
    //
    // -- Jonathan Miles <jon@cybah.co.uk>

    include "latin"

    name[Group1]="English (UK, extended, with Win keys)";

    key <TLDE> { [ dead_grave,    notsign,       brokenbar,    NoSymbol ] };

    key <AE02> { [     2,        quotedbl,  dead_diaeresis,     onehalf ] };
    key <AE03> { [     3,        sterling,   threesuperior,    onethird ] };
    key <AE04> { [     4,          dollar,        EuroSign,  onequarter ] };
    key <AE06> { [     6,     asciicircum, dead_circumflex,    NoSymbol ] };

    key <AD02> { [   w,                 W,          wacute,      Wacute ] };
    key <AD03> { [   e,                 E,          eacute,      Eacute ] };
    key <AD06> { [   y,                 Y,          yacute,      Yacute ] };
    key <AD07> { [   u,                 U,          uacute,      Uacute ] };
    key <AD08> { [   i,                 I,          iacute,      Iacute ] };
    key <AD09> { [   o,                 O,          oacute,      Oacute ] };

    key <AC01> { [   a,                 A,          aacute,      Aacute ] };
    key <AC11> { [  apostrophe,         at,     dead_acute,    NoSymbol ] };

    key <AB03> { [   c,                 C,        ccedilla,    Ccedilla ] };

    key <BKSL>  { [ numbersign, asciitilde,     dead_tilde,    NoSymbol ] };
    key <LSGT>  { [  backslash,        bar,       NoSymbol,    NoSymbol ] };

    include "level3(ralt_switch)"
};

// Describe the differences between the US Colemak layout
// and a UK variant. By Andy Buckley (andy@insectnation.org)

partial alphanumeric_keys
xkb_symbols "colemak" {
    include "us(colemak)"

    name[Group1]="English (UK, Colemak)";

    key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth ]	};
    key <AE03>	{ [         3,   sterling, threesuperior,    sterling ]	};
    key <AE04>	{ [         4,     dollar,     EuroSign,   onequarter ]	};

    key <AC11>	{ [apostrophe,         at, dead_circumflex, dead_caron]	};
    key <TLDE>	{ [     grave,    notsign,          bar,          bar ]	};

    key <BKSL>	{ [numbersign, asciitilde,   dead_grave,   dead_breve ]	};
    key <LSGT>	{ [ backslash,        bar,          bar,    brokenbar ]	};

    include "level3(ralt_switch_multikey)"
};


// Dvorak (UK) keymap (by odaen) allowing the usage of
// the £ and ? key and swapping the @ and " keys.

partial alphanumeric_keys
xkb_symbols "dvorak" {
    include "us(dvorak-alt-intl)"

    name[Group1]="English (UK, Dvorak)";

    key <AD01> { [ apostrophe,	at		] };
    key <AE02> { [	    2,	quotedbl,  twosuperior,   NoSymbol	] };
    key <AE03> { [	    3,	sterling,  threesuperior, NoSymbol	] };
    key <BKSL> { [ numbersign,	asciitilde	] };
    key <LSGT> { [  backslash,	bar		] };
    key <TLDE> { [	grave,	notsign,   bar,           bar		] };
};

// Dvorak letter positions, but punctuation all in the normal UK positions.
partial alphanumeric_keys
xkb_symbols "dvorakukp" {
    include "gb(dvorak)"

    name[Group1]="English (UK, Dvorak, with UK punctuation)";

    key <AE11> {        [     minus,    underscore      ]       };
    key <AE12> {        [     equal,    plus            ]       };
    key <AD11> {        [ bracketleft,  braceleft       ]       };
    key <AD12> {        [ bracketright, braceright      ]       };
    key <AD01> {        [ slash,        question        ]       };
    key <AC11> {        [apostrophe,    at,         dead_circumflex, dead_caron] };
};

// Copied from macintosh_vndr/gb
partial alphanumeric_keys
xkb_symbols "mac" {

    // Describes the differences between a very simple en_US
    // keyboard and a very simple U.K. keyboard layout

    include "latin"

    name[Group1]= "English (UK, Macintosh)";

    key <AE02> {	[               2,              at,         EuroSign	]	};
    key <AE03> {	[               3,        sterling,       numbersign	]	};
    key <TLDE> {	[         section,       plusminus ]	};
    key <LSGT> {	[           grave,      asciitilde ]	};

    include "level3(ralt_switch)"
    include "level3(enter_switch)"
};


partial alphanumeric_keys
xkb_symbols "mac_intl" { 

    include "latin" 

    name[Group1]="English (UK, intl., Macintosh)";

    key <AE02>  { [   2,                       at,           EuroSign,    onehalf ] };
    key <AE03>  { [   3,                 sterling,        twosuperior,   onethird ] };
    key <AE04>  { [   4,                   dollar,      threesuperior, onequarter ] };
    key <AE06>  { [   6,          dead_circumflex,           NoSymbol,   onesixth ] };
    key <AD09>    { [   o,                        O,                 oe,       OE ] };

    key <AC11>  { [ dead_acute,    dead_diaeresis,     dead_diaeresis,        bar ] }; //dead_doubleacute
    key <TLDE>  { [ section,            plusminus,            notsign,    notsign ] }; //dead_grave

    key <BKSL>  { [ backslash,                bar,         numbersign,        bar ] };
    key <LSGT>  { [ dead_grave,        dead_tilde,          brokenbar,        bar ] };

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "pl" {

    // Polish layout based on British keyboard
    // Adopted 2016 by Aleksander Kowalski
    
    include "latin"
    
    name[Group1]="Polish (British keyboard)";

    key <AE02>{ [         2,   quotedbl,  twosuperior,    oneeighth ]};
    key <AE03>{ [         3,   sterling, threesuperior,    sterling ]};
    key <AE04>{ [         4,     dollar,     EuroSign,   onequarter ]};
    
    key <AC11>{ [apostrophe,         at, dead_circumflex, dead_caron]};
    key <TLDE>{ [     grave,    notsign,          bar,          bar ]};
    
    key <BKSL>{ [numbersign, asciitilde,   dead_grave,   dead_breve ]};
    key <LSGT>{ [ backslash,        bar,          bar,    brokenbar ]};
    
    key <AD01>  { [         q,          Q ] };
    key <AD02>  { [         w,          W ] };
    key <AD03>{ [         e,          E,      eogonek,      Eogonek ]   };
    key <AD09>  { [         o,          O,       oacute,       Oacute ] };
    
    key <AC01>  { [         a,          A,      aogonek,      Aogonek ] };
    key <AC02>  { [         s,          S,       sacute,       Sacute ] };
    key <AC04>  { [         f,          F ] };
    
    key <AB01>  { [         z,          Z,    zabovedot,    Zabovedot ] };
    key <AB02>  { [         x,          X,       zacute,       Zacute ] };
    key <AB03>  { [         c,          C,       cacute,       Cacute ] };
    key <AB06>  { [         n,          N,       nacute,       Nacute ] };
    
    
    include "level3(ralt_switch)"
};

// EXTRAS:

partial alphanumeric_keys
	xkb_symbols "sun_type6" {
	include "sun_vndr/gb(sun_type6)"
};
