1// Keyboard layouts for Great Britain.
2
3default partial alphanumeric_keys
4xkb_symbols "basic" {
5
6    // The basic UK layout, also known as the IBM 166 layout,
7    // but with the useless brokenbar pushed two levels up.
8
9    include "latin"
10
11    name[Group1]="English (UK)";
12
13    key <TLDE>	{ [     grave,    notsign,          bar,          bar ]	};
14    key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth ]	};
15    key <AE03>	{ [         3,   sterling, threesuperior,    sterling ]	};
16    key <AE04>	{ [         4,     dollar,     EuroSign,   onequarter ]	};
17
18    key <AC11>	{ [apostrophe,         at, dead_circumflex, dead_caron]	};
19    key <BKSL>	{ [numbersign, asciitilde,   dead_grave,   dead_breve ]	};
20
21    key <LSGT>	{ [ backslash,        bar,          bar,    brokenbar ]	};
22
23    include "level3(ralt_switch)"
24};
25
26partial alphanumeric_keys
27xkb_symbols "intl" {
28
29    // A UK layout but with five accents made into dead keys:
30    // grave, diaeresis, circumflex, acute, and tilde.
31    // By Phil Jones <philjones1 at blueyonder.co.uk>.
32
33    include "latin"
34
35    name[Group1]="English (UK, intl., with dead keys)";
36
37    key <TLDE>  { [ dead_grave,    notsign,            bar,         bar ] };
38    key <AE02>  { [   2,    dead_diaeresis,    twosuperior,     onehalf ] };
39    key <AE03>  { [   3,          sterling,  threesuperior,    onethird ] };
40    key <AE04>  { [   4,            dollar,       EuroSign,  onequarter ] };
41    key <AE06>  { [   6,   dead_circumflex,  threequarters,    onesixth ] };
42
43    key <AC11>  { [ dead_acute,         at,     apostrophe,         bar ] };
44    key <BKSL>  { [ numbersign, dead_tilde,            bar,         bar ] };
45
46    key <LSGT>  { [  backslash,        bar,            bar,         bar ] };
47    key <AB08>  { [      comma,       less,       ccedilla,    Ccedilla ] };
48
49    include "level3(ralt_switch)"
50};
51
52partial alphanumeric_keys
53xkb_symbols "extd" {
54    // Clone of the Microsoft "United Kingdom Extended" layout, which
55    // includes dead keys for: grave; diaeresis; circumflex; tilde; and
56    // accute. It also enables direct access to accute characters using
57    // the Multi_key (Alt Gr).
58    //
59    // Taken from...
60    //    "Windows Keyboard Layouts"
61    //    https://docs.microsoft.com/en-gb/globalization/windows-keyboard-layouts#U
62    //
63    // -- Jonathan Miles <jon@cybah.co.uk>
64
65    include "latin"
66
67    name[Group1]="English (UK, extended, Windows)";
68
69    key <TLDE> { [ dead_grave,    notsign,       brokenbar,    NoSymbol ] };
70    key <AE02> { [     2,        quotedbl,  dead_diaeresis,     onehalf ] };
71    key <AE03> { [     3,        sterling,   threesuperior,    onethird ] };
72    key <AE04> { [     4,          dollar,        EuroSign,  onequarter ] };
73    key <AE06> { [     6,     asciicircum, dead_circumflex,    NoSymbol ] };
74
75    key <AD02> { [   w,                 W,          wacute,      Wacute ] };
76    key <AD03> { [   e,                 E,          eacute,      Eacute ] };
77    key <AD06> { [   y,                 Y,          yacute,      Yacute ] };
78    key <AD07> { [   u,                 U,          uacute,      Uacute ] };
79    key <AD08> { [   i,                 I,          iacute,      Iacute ] };
80    key <AD09> { [   o,                 O,          oacute,      Oacute ] };
81    key <AD12> { [ bracketright, braceright,      NoSymbol,         bar ] };
82
83    key <AC01> { [   a,                 A,          aacute,      Aacute ] };
84    key <AC11> { [  apostrophe,         at,     dead_acute,      grave  ] };
85    key <BKSL>  { [ numbersign, asciitilde,     dead_tilde,    backslash ] };
86
87    key <LSGT>  { [  backslash,        bar,       NoSymbol,    NoSymbol ] };
88    key <AB03> { [   c,                 C,        ccedilla,    Ccedilla ] };
89
90    include "level3(ralt_switch)"
91};
92
93// Describe the differences between the US Colemak layout
94// and a UK variant. By Andy Buckley (andy@insectnation.org)
95
96partial alphanumeric_keys
97xkb_symbols "colemak" {
98    include "us(colemak)"
99
100    name[Group1]="English (UK, Colemak)";
101
102    key <TLDE>	{ [     grave,    notsign,          bar,   asciitilde ]	};
103    key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth ]	};
104    key <AE03>	{ [         3,   sterling, threesuperior,    sterling ]	};
105    key <AE04>	{ [         4,     dollar,     EuroSign,   onequarter ]	};
106
107    key <AC11>	{ [apostrophe,         at, dead_circumflex, dead_caron]	};
108    key <BKSL>	{ [numbersign, asciitilde,   dead_grave,   dead_breve ]	};
109
110    key <LSGT>	{ [ backslash,        bar,   asciitilde,    brokenbar ]	};
111
112    include "level3(ralt_switch)"
113};
114
115// Colemak-DH (ISO) layout, UK Variant, https://colemakmods.github.io/mod-dh/
116
117partial alphanumeric_keys
118xkb_symbols "colemak_dh" {
119    include "us(colemak_dh)"
120
121    name[Group1]="English (UK, Colemak-DH)";
122
123    key <TLDE>	{ [     grave,    notsign,          bar,   asciitilde ]	};
124    key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth ]	};
125    key <AE03>	{ [         3,   sterling, threesuperior,    sterling ]	};
126    key <AE04>	{ [         4,     dollar,     EuroSign,   onequarter ]	};
127
128    key <AC11>	{ [apostrophe,         at, dead_circumflex, dead_caron]	};
129    key <BKSL>	{ [numbersign, asciitilde,   dead_grave,   dead_breve ]	};
130
131    key <AB05>	{ [ backslash,        bar,   asciitilde,    brokenbar ]	};
132
133    include "level3(ralt_switch)"
134};
135
136
137// Dvorak (UK) keymap (by odaen) allowing the usage of
138// the £ and ? key and swapping the @ and " keys.
139
140partial alphanumeric_keys
141xkb_symbols "dvorak" {
142    include "us(dvorak-alt-intl)"
143
144    name[Group1]="English (UK, Dvorak)";
145
146    key <TLDE> { [	grave,	notsign,   bar,           bar		] };
147    key <AE02> { [	    2,	quotedbl,  twosuperior,   NoSymbol	] };
148    key <AE03> { [	    3,	sterling,  threesuperior, NoSymbol	] };
149    key <AD01> { [ apostrophe,	at		] };
150    key <BKSL> { [ numbersign,	asciitilde	] };
151    key <LSGT> { [  backslash,	bar		] };
152};
153
154// Dvorak letter positions, but punctuation all in the normal UK positions.
155
156partial alphanumeric_keys
157xkb_symbols "dvorakukp" {
158    include "gb(dvorak)"
159
160    name[Group1]="English (UK, Dvorak, with UK punctuation)";
161
162    key <AE11> {        [     minus,    underscore      ]       };
163    key <AE12> {        [     equal,    plus            ]       };
164    key <AD11> {        [ bracketleft,  braceleft       ]       };
165    key <AD12> {        [ bracketright, braceright      ]       };
166    key <AD01> {        [ slash,        question        ]       };
167    key <AC11> {        [apostrophe,    at,         dead_circumflex, dead_caron] };
168};
169
170partial alphanumeric_keys
171xkb_symbols "mac" {
172
173    include "latin"
174
175    name[Group1]= "English (UK, Macintosh)";
176
177    key <TLDE> {	[         section,       plusminus ]	};
178    key <AE02> {	[               2,              at,         EuroSign	]	};
179    key <AE03> {	[               3,        sterling,       numbersign	]	};
180    key <LSGT> {	[           grave,      asciitilde ]	};
181
182    include "level3(ralt_switch)"
183    include "level3(enter_switch)"
184};
185
186
187partial alphanumeric_keys
188xkb_symbols "mac_intl" { 
189
190    include "latin" 
191
192    name[Group1]="English (UK, Macintosh, intl.)";
193
194    key <TLDE>  { [ section,            plusminus,            notsign,    notsign ] }; //dead_grave
195    key <AE02>  { [   2,                       at,           EuroSign,    onehalf ] };
196    key <AE03>  { [   3,                 sterling,        twosuperior,   onethird ] };
197    key <AE04>  { [   4,                   dollar,      threesuperior, onequarter ] };
198    key <AE06>  { [   6,          dead_circumflex,           NoSymbol,   onesixth ] };
199    key <AD09>    { [   o,                        O,                 oe,       OE ] };
200
201    key <AC11>  { [ dead_acute,    dead_diaeresis,     dead_diaeresis,        bar ] }; //dead_doubleacute
202    key <BKSL>  { [ backslash,                bar,         numbersign,        bar ] };
203
204    key <LSGT>  { [ dead_grave,        dead_tilde,          brokenbar,        bar ] };
205
206    include "level3(ralt_switch)"
207};
208
209partial alphanumeric_keys
210xkb_symbols "pl" {
211
212    // Polish accented letters on upper levels of corresponding base letters.
213    // Idea from Wawrzyniec Niewodniczański, adapted by Aleksander Kowalski.
214
215    include "gb(basic)"
216
217    name[Group1]="Polish (British keyboard)";
218
219    key <AD03>  { [         e,          E,      eogonek,      Eogonek ] };
220    key <AD09>  { [         o,          O,       oacute,       Oacute ] };
221
222    key <AC01>  { [         a,          A,      aogonek,      Aogonek ] };
223    key <AC02>  { [         s,          S,       sacute,       Sacute ] };
224
225    key <AB01>  { [         z,          Z,    zabovedot,    Zabovedot ] };
226    key <AB02>  { [         x,          X,       zacute,       Zacute ] };
227    key <AB03>  { [         c,          C,       cacute,       Cacute ] };
228    key <AB06>  { [         n,          N,       nacute,       Nacute ] };
229};
230
231partial alphanumeric_keys
232xkb_symbols "gla" {
233
234    // Grave-accented letters on the upper levels of the relevant vowels.
235
236    include "gb(basic)"
237
238    name[Group1]="Scottish Gaelic";
239
240    key <AD03> { [   e,                 E,          egrave,      Egrave ] };
241    key <AD07> { [   u,                 U,          ugrave,      Ugrave ] };
242    key <AD08> { [   i,                 I,          igrave,      Igrave ] };
243    key <AD09> { [   o,                 O,          ograve,      Ograve ] };
244
245    key <AC01> { [   a,                 A,          agrave,      Agrave ] };
246};
247
248// EXTRAS:
249
250partial alphanumeric_keys
251	xkb_symbols "sun_type6" {
252	include "sun_vndr/gb(sun_type6)"
253};
254