1// Common Latin alphabet layout
2
3default partial
4xkb_symbols "basic" {
5
6    key <AE01>	{ [         1,     exclam,  onesuperior,   exclamdown ]	};
7    key <AE02>	{ [         2,         at,  twosuperior,    oneeighth ]	};
8    key <AE03>	{ [         3, numbersign, threesuperior,    sterling ]	};
9    key <AE04>	{ [         4,     dollar,   onequarter,       dollar ]	};
10    key <AE05>	{ [         5,    percent,      onehalf, threeeighths ]	};
11    key <AE06>	{ [         6, asciicircum, threequarters, fiveeighths ] };
12    key <AE07>	{ [         7,  ampersand,    braceleft, seveneighths ]	};
13    key <AE08>	{ [         8,   asterisk,  bracketleft,    trademark ]	};
14    key <AE09>	{ [         9,  parenleft, bracketright,    plusminus ]	};
15    key <AE10>	{ [         0, parenright,   braceright,       degree ]	};
16    key <AE11>	{ [     minus, underscore,    backslash, questiondown ]	};
17    key <AE12>	{ [     equal,       plus, dead_cedilla,  dead_ogonek ]	};
18
19    key <AD01>	{ [         q,          Q,           at,  Greek_OMEGA ]	};
20    key <AD02>	{ [         w,          W,        U017F,      section ]	};
21    key <AD03>	{ [         e,          E,            e,            E ]	};
22    key <AD04>	{ [         r,          R,    paragraph,   registered ]	};
23    key <AD05>	{ [         t,          T,       tslash,       Tslash ]	};
24    key <AD06>	{ [         y,          Y,    leftarrow,          yen ]	};
25    key <AD07>	{ [         u,          U,    downarrow,      uparrow ]	};
26    key <AD08>	{ [         i,          I,   rightarrow,     idotless ]	};
27    key <AD09>	{ [         o,          O,       oslash,     Ooblique ]	};
28    key <AD10>	{ [         p,          P,        thorn,        THORN ]	};
29    key <AD11>	{ [bracketleft,  braceleft, dead_diaeresis, dead_abovering ] };
30    key <AD12>	{ [bracketright, braceright, dead_tilde,  dead_macron ]	};
31
32    key <AC01>	{ [         a,          A,           ae,           AE ]	};
33    key <AC02>	{ [         s,          S,       ssharp,        U1E9E ]	};
34    key <AC03>	{ [         d,          D,          eth,          ETH ]	};
35    key <AC04>	{ [         f,          F,      dstroke,  ordfeminine ]	};
36    key <AC05>	{ [         g,          G,          eng,          ENG ]	};
37    key <AC06>	{ [         h,          H,      hstroke,      Hstroke ]	};
38    key <AC07>	{ [         j,          J,    dead_hook,    dead_horn ] };
39    key <AC08>	{ [         k,          K,          kra,    ampersand ]	};
40    key <AC09>	{ [         l,          L,      lstroke,      Lstroke ]	};
41    key <AC10>	{ [ semicolon,    colon, dead_acute, dead_doubleacute ]	};
42    key <AC11>	{ [apostrophe, quotedbl, dead_circumflex,  dead_caron ]	};
43    key <TLDE>	{ [     grave, asciitilde,      notsign,      notsign ]	};
44
45    key <BKSL>	{ [ backslash,        bar,   dead_grave,   dead_breve ]	};
46    key <AB01>	{ [         z,          Z, guillemotleft,       U2039 ]	};
47    key <AB02>	{ [         x,          X, guillemotright,      U203A ]	};
48    key <AB03>	{ [         c,          C,         cent,    copyright ]	};
49    key <AB04>	{ [         v,          V,   doublelowquotemark, singlelowquotemark ]	};
50    key <AB05>	{ [         b,          B,  leftdoublequotemark, leftsinglequotemark ] };
51    key <AB06>	{ [         n,          N, rightdoublequotemark, rightsinglequotemark ]	};
52    key <AB07>	{ [         m,          M,           mu,    masculine ]	};
53    key <AB08>	{ [     comma,       less, horizconnector,   multiply ]	};
54    key <AB09>	{ [    period,    greater, periodcentered,   division ]	};
55    key <AB10>	{ [     slash,   question, dead_belowdot, dead_abovedot ] };
56};
57
58// Northern Europe ( Danish, Finnish, Norwegian, Swedish) common layout
59
60partial
61xkb_symbols "type2" {
62
63    include "latin"
64
65    key <AE01>	{ [         1,     exclam,   exclamdown,  onesuperior ]	};
66    key <AE02>	{ [         2,   quotedbl,           at,  twosuperior ]	};
67    key <AE03>	{ [         3, numbersign,     sterling, threesuperior]	};
68    key <AE04>	{ [         4,   currency,       dollar,   onequarter ]	};
69    key <AE05>	{ [         5,    percent,      onehalf,         cent ]	};
70    key <AE06>	{ [         6,  ampersand,          yen,  fiveeighths ]	};
71    key <AE07>	{ [         7,      slash,    braceleft,     division ]	};
72    key <AE08>	{ [         8,  parenleft,  bracketleft, guillemotleft]	};
73    key <AE09>	{ [         9, parenright, bracketright, guillemotright] };
74    key <AE10>	{ [         0,      equal,   braceright,       degree ]	};
75
76    key <AD03>	{ [         e,          E,     EuroSign,         cent ]	};
77    key <AD04>	{ [         r,          R,   registered,   registered ]	};
78    key <AD05>	{ [         t,          T,        thorn,        THORN ]	};
79    key <AD09>	{ [         o,          O,           oe,           OE ]	};
80    key <AD11>	{ [     aring,  Aring, dead_diaeresis, dead_abovering ]	};
81    key <AD12>	{ [dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ] };
82
83    key <AC01>	{ [         a,          A,  ordfeminine,    masculine ]	};
84
85    key <AB03>	{ [         c,          C,    copyright,    copyright ]	};
86    key <AB08>	{ [     comma,  semicolon, dead_cedilla,  dead_ogonek ]	};
87    key <AB09>	{ [    period,   colon, periodcentered, dead_abovedot ]	};
88    key <AB10>	{ [     minus, underscore, dead_belowdot, dead_abovedot ] };
89};
90
91// Slavic Latin ( Albanian, Croatian, Polish, Slovene, Yugoslav)
92// common layout
93
94partial
95xkb_symbols "type3" {
96
97    include "latin"
98
99    key <AD01>	{ [         q,          Q,    backslash,  Greek_OMEGA ]	};
100    key <AD02>	{ [         w,          W,          bar,      section ]	};
101    key <AD06>	{ [         z,          Z,    leftarrow,          yen ]	};
102
103    key <AC04>	{ [         f,          F,  bracketleft,  ordfeminine ]	};
104    key <AC05>	{ [         g,          G, bracketright,          ENG ]	};
105    key <AC08>	{ [         k,          K,      lstroke,    ampersand ]	};
106
107    key <AB01>	{ [         y,          Y, guillemotleft,       U2039 ]	};
108    key <AB04>	{ [         v,          V,           at,        grave ]	};
109    key <AB05>	{ [         b,          B,    braceleft,   apostrophe ]	};
110    key <AB06>	{ [         n,          N,   braceright,   braceright ]	};
111    key <AB07>	{ [         m,          M,      section,    masculine ]	};
112    key <AB08>	{ [     comma,  semicolon,         less,     multiply ]	};
113    key <AB09>	{ [    period,      colon,      greater,     division ]	};
114};
115
116// Another common Latin layout
117// (German, Estonian, Spanish, Icelandic, Italian, Latin American, Portuguese)
118
119partial
120xkb_symbols "type4" {
121
122    include "latin"
123
124    key <AE02>	{ [         2,   quotedbl,           at,    oneeighth ]	};
125    key <AE06>	{ [         6,  ampersand,      notsign,  fiveeighths ]	};
126    key <AE07>	{ [         7,      slash,    braceleft, seveneighths ]	};
127    key <AE08>	{ [         8,  parenleft,  bracketleft,    trademark ]	};
128    key <AE09>	{ [         9, parenright, bracketright,    plusminus ]	};
129    key <AE10>	{ [         0,      equal,   braceright,       degree ]	};
130
131    key <AD03>	{ [         e,          E,     EuroSign,         cent ]	};
132
133    key <AB08>	{ [   comma,  semicolon, horizconnector,     multiply ]	};
134    key <AB09>	{ [  period,      colon, periodcentered,     division ]	};
135    key <AB10>	{ [   minus, underscore, dead_belowdot, dead_abovedot ]	};
136};
137
138partial
139xkb_symbols "nodeadkeys" {
140
141    key <AE12>	{ [     equal,       plus,     cedilla,        ogonek ]	};
142    key <AD11>	{ [bracketleft,  braceleft,  diaeresis,        degree ]	};
143    key <AD12>	{ [bracketright, braceright, asciitilde,       macron ]	};
144    key <AC10>	{ [ semicolon,      colon,       acute,   doubleacute ]	};
145    key <AC11>	{ [apostrophe,   quotedbl, asciicircum,         caron ]	};
146    key <BKSL>	{ [ backslash,        bar,       grave,         breve ]	};
147    key <AB10>	{ [     slash,   question, dead_belowdot,    abovedot ]	};
148};
149
150partial
151xkb_symbols "type2_nodeadkeys" {
152
153    include "latin(nodeadkeys)"
154
155    key <AD11>	{ [     aring,      Aring,   diaeresis,        degree ]	};
156    key <AD12>	{ [ diaeresis, asciicircum, asciitilde,         caron ]	};
157    key <AB08>	{ [     comma,  semicolon,     cedilla,        ogonek ]	};
158    key <AB09>	{ [    period,   colon, periodcentered,      abovedot ]	};
159    key <AB10>	{ [   minus, underscore, dead_belowdot,      abovedot ]	};
160};
161
162partial
163xkb_symbols "type3_nodeadkeys" {
164
165    include "latin(nodeadkeys)"
166};
167
168partial
169xkb_symbols "type4_nodeadkeys" {
170
171    include "latin(nodeadkeys)"
172
173    key <AB10>	{ [   minus, underscore, dead_belowdot,      abovedot ]	};
174};
175
176// Added 2008.03.05 by Marcin Woliński
177// See http://marcinwolinski.pl/keyboard/ for a description.
178// Used by pl(intl)
179//
180// ┌─────┐
181// │ 2 4 │   2 = Shift,  4 = Level3 + Shift
182// │ 1 3 │   1 = Normal, 3 = Level3
183// └─────┘
184// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
185// │ ~ ~ │ ! ' │ @ " │ # ˝ │ $ ¸ │ % ˇ │ ^ ^ │ & ˘ │ * ̇  │ ( ̣  │ ) ° │ _ ¯ │ + ˛ ┃ ⌫ Back- ┃
186// │ ` ` │ 1 ¡ │ 2 © │ 3 • │ 4 § │ 5 € │ 6 ¢ │ 7 − │ 8 × │ 9 ÷ │ 0 ° │ - – │ = — ┃  space  ┃
187// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
188// ┃       ┃ Q   │ W   │ E   │ R   │ T   │ Y   │ U   │ I   │ O   │ P   │ { « │ } » ┃ Enter ┃
189// ┃Tab ↹  ┃ q   │ w   │ e   │ r   │ t   │ y   │ u   │ i   │ o   │ p   │ [ ‹ │ ] › ┃   ⏎   ┃
190// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
191// ┃        ┃ A   │ S   │ D   │ F   │ G   │ H   │ J   │ K   │ L   │ : “ │ " ” │ | ¶ ┃      ┃
192// ┃Caps ⇬  ┃ a   │ s   │ d   │ f   │ g   │ h   │ j   │ k   │ l   │ ; ‘ │ ' ’ │ \   ┃      ┃
193// ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
194// ┃             │ Z   │ X   │ C   │ V   │ B   │ N   │ M   │ < „ │ > · │ ? ¿ ┃             ┃
195// ┃Shift ⇧      │ z   │ x   │ c   │ v   │ b   │ n   │ m   │ , ‚ │ . … │ / ⁄ ┃Shift ⇧      ┃
196// ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
197// ┃       ┃       ┃       ┃ ␣                               ⍽ ┃       ┃       ┃       ┃
198// ┃Ctrl   ┃Meta   ┃Alt    ┃ ␣           Space               ⍽ ┃AltGr ⇮┃Menu   ┃Ctrl   ┃
199// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
200
201partial
202xkb_symbols "intl" {
203
204    key <TLDE>	{ [     grave,  asciitilde, dead_grave,       dead_tilde ]	};
205    key <AE01>	{ [         1,      exclam, exclamdown,       dead_acute ]	};
206    key <AE02>	{ [         2,          at,  copyright,   dead_diaeresis ]	};
207    key <AE03>	{ [         3,  numbersign,      U2022, dead_doubleacute ]	}; // U+2022 is bullet (the name bullet does not work)
208    key <AE04>	{ [         4,      dollar,    section,     dead_cedilla ]	};
209    key <AE05>	{ [         5,     percent,   EuroSign,       dead_caron ]	};
210    key <AE06>	{ [         6, asciicircum,       cent,  dead_circumflex ]	};
211    key <AE07>	{ [         7,   ampersand,      U2212,       dead_breve ]	}; // U+2212 is MINUS SIGN
212    key <AE08>	{ [         8,    asterisk,   multiply,    dead_abovedot ]	};
213    key <AE09>	{ [         9,   parenleft,   division,    dead_belowdot ]	};
214    key <AE10>	{ [         0,  parenright,     degree,   dead_abovering ]	};
215    key <AE11>	{ [     minus,  underscore,     endash,      dead_macron ]	};
216    key <AE12>	{ [     equal,        plus,     emdash,      dead_ogonek ]	};
217
218    key <AD01>	{ [         q,          Q ]	};
219    key <AD02>	{ [         w,          W ]	};
220    key <AD03>	{ [         e,          E ]	};
221    key <AD04>	{ [         r,          R ]	};
222    key <AD05>	{ [         t,          T ]	};
223    key <AD06>	{ [         y,          Y ]	};
224    key <AD07>	{ [         u,          U ]	};
225    key <AD08>	{ [         i,          I ]	};
226    key <AD09>	{ [         o,          O ]	};
227    key <AD10>	{ [         p,          P ]	};
228    key <AD11>	{ [bracketleft,   braceleft,  U2039, guillemotleft ]    };
229    key <AD12>	{ [bracketright, braceright, U203A, guillemotright ]	};
230
231    key <AC01>	{ [         a,          A ]	};
232    key <AC02>	{ [         s,          S ]	};
233    key <AC03>	{ [         d,          D ]	};
234    key <AC04>	{ [         f,          F ]	};
235    key <AC05>	{ [         g,          G ]	};
236    key <AC06>	{ [         h,          H ]	};
237    key <AC07>	{ [         j,          J ]	};
238    key <AC08>	{ [         k,          K ]	};
239    key <AC09>	{ [         l,          L ]	};
240    key <AC10>	{ [ semicolon,      colon,  leftsinglequotemark,  leftdoublequotemark  ]  };
241    key <AC11>	{ [apostrophe,   quotedbl, rightsinglequotemark, rightdoublequotemark  ]  };
242
243    key <BKSL>	{ [ backslash,        bar, 	NoSymbol, paragraph ] };
244    key <AB01>	{ [         z,          Z ]	};
245    key <AB02>	{ [         x,          X ]	};
246    key <AB03>	{ [         c,          C ]	};
247    key <AB04>	{ [         v,          V ]	};
248    key <AB05>	{ [         b,          B ]     };
249    key <AB06>	{ [         n,          N ]	};
250    key <AB07>	{ [         m,          M ]	};
251    key <AB08>	{ [     comma,       less, singlelowquotemark, doublelowquotemark ]	};
252    key <AB09>	{ [    period,    greater, ellipsis, periodcentered ]	};
253    key <AB10>	{ [     slash,   question, U2044,  questiondown ]     };  // U+2044 is FRACTION SLASH
254};
255