1// 17 May 2003 Modified by Sebastiano Vigna (vigna@dsi.unimi.it)
2// 03 December 2017 - Added it(intl) and it(scn), please refer to
3//                    Cadèmia Siciliana <l10n@cademiasiciliana.org>
4// 18 July 2018 - Fixed inconsistent 'ì' and 'ù' in it(intl)
5//                Alessandro Pellegrini <pellegrini@dis.uniroma1.it>
6// 28 February 2017 - Added it(fur), please refer to
7//                Fabio Tomat <f.t.public@gmail.com>
8
9default partial alphanumeric_keys
10xkb_symbols "basic" {
11
12    include "latin(type4)"
13
14    name[Group1]="Italian";
15
16    key <TLDE>	{ [ backslash,        bar,      notsign,    brokenbar ]	};
17
18    key <AE02>	{ [         2,   quotedbl,  twosuperior, dead_doubleacute ] };
19    key <AE03>	{ [         3,   sterling,threesuperior,   dead_tilde ]	};
20    key <AE04>	{ [         4,     dollar,   onequarter,    oneeighth ] };
21
22    key <AE10>	{ [         0,      equal,   braceright,  dead_ogonek ] };
23    key <AE11>	{ [apostrophe,   question,        grave, questiondown ]	};
24    key <AE12>	{ [    igrave, asciicircum,  asciitilde, dead_circumflex ] };
25
26    key <AD11>	{ [    egrave,     eacute,  bracketleft,    braceleft ]	};
27    key <AD12>	{ [      plus,   asterisk, bracketright,   braceright ]	};
28
29    key <AC10>	{ [    ograve,   ccedilla,           at, dead_cedilla ] };
30    key <AC11>	{ [    agrave,     degree,   numbersign, dead_abovering ] };
31
32    key <AB04>	{ [         v,          V, leftdoublequotemark, leftsinglequotemark ]	};
33    key <AB05>	{ [         b,          B, rightdoublequotemark, rightsinglequotemark ] };
34    key <AB06>	{ [         n,          N,       ntilde,       Ntilde ]	};
35    key <AB08>	{ [     comma,  semicolon,   dead_acute,     multiply ]	};
36    key <AB09>	{ [    period,      colon,periodcentered, dead_diaeresis ] };
37    key <AB10>	{ [     minus, underscore,  dead_macron,     division ] };
38
39    key <BKSL>	{ [    ugrave,    section,   dead_grave,   dead_breve ]	};
40
41    key <LSGT>	{ [      less,    greater,guillemotleft,guillemotright] };
42
43    include "level3(ralt_switch)"
44};
45
46partial alphanumeric_keys
47xkb_symbols "nodeadkeys" {
48
49    // Modifies the basic italian layout to eliminate all dead keys
50
51    include "it(basic)"
52
53    name[Group1]="Italian (no dead keys)";
54
55    key <AE02>	{ [         2,   quotedbl,  twosuperior,  doubleacute ] };
56    key <AE03>	{ [         3,   sterling,threesuperior,   asciitilde ]	};
57
58    key <AE10>	{ [         0,       equal,  braceright,       ogonek ]	};
59    key <AE12>	{ [    igrave, asciicircum,  asciitilde,  asciicircum ] };
60
61    key <AC10>	{ [    ograve,   ccedilla,           at,      cedilla ] };
62    key <AC11>	{ [    agrave,     degree,   numbersign,       degree ] };
63
64    key <AB08>	{ [     comma,  semicolon,        acute,     multiply ]	};
65    key <AB09>	{ [    period,      colon,periodcentered,   diaeresis ] };
66    key <AB10>	{ [     minus, underscore,       macron,     division ] };
67
68    key <BKSL>	{ [    ugrave,    section,        grave,        breve ]	};
69};
70
71partial alphanumeric_keys
72xkb_symbols "winkeys" {
73
74   include "it(basic)"
75   name[Group1]="Italian (Windows)";
76   include "eurosign(5)"
77};
78
79// Copied from macintosh_vndr/it
80partial alphanumeric_keys
81xkb_symbols "mac" {
82
83    name[Group1]= "Italian (Macintosh)";
84
85    key <LSGT> {	[        less,  greater   	]	};
86    key <TLDE> {        [        at,    numbersign,    periodcentered              ]	};
87    key <AE01> {	[   ampersand,    1, guillemotleft,guillemotright	]	};
88    key <AE02> {	[    quotedbl,    2 		]	};
89    key <AE03> {	[  apostrophe,    3         	]	};
90    key <AE04> {	[   parenleft,    4,    braceleft,    bracketleft	]	};
91    key <AE05> {	[    ccedilla,    5,     Ccedilla,    Iacute	]	};
92    key <AE06> {	[      egrave,    6,    paragraph,    periodcentered]	};
93    key <AE07> {	[  parenright,    7,   braceright,	  bracketright	]	};
94    key <AE08> {	[    sterling,    8,   infinity			]	};
95    key <AE09> {	[      agrave,    9,        acute,    Ocircumflex	]	};
96    key <AE10> {	[      eacute,    0,        grave,    Oacute	]	};
97    key <AE11> {	[       minus,    underscore	]	};
98    key <AE12> {	[       equal, 	  plus,     notequal,    plusminus	]	};
99
100    key <AD01> {	[           q,  Q 		]	};
101    key <AD02> {	[	    z,  Z		]	};
102    key <AD03> {	[	    e,  E,	EuroSign	]	};
103    key <AD04> {	[	    r,  R,   registered			] 	};
104    key <AD05> {	[	    t,  T		]	};
105    key <AD06> {	[	    y,  Y,       Uacute,	ydiaeresis      ] 	};
106    key <AD07> {	[	    u,  U		]	};
107    key <AD08> {	[	    i,  I,  icircumflex,	idiaeresis      ] 	};
108    key <AD09> {	[	    o,  O		]	};
109    key <AD10> {	[	    p,  P		]	};
110    key <AD11> {	[      igrave,  asciicircum     ]	};
111    key <AD12> {	[      dollar,	asterisk        ]	};
112    key <BKSL> {	[     section,  degree,           at,  numbersign      ]	};
113
114    key <AC01> {	[	  a,	A,      aring,   Aring		] 	};
115    key <AC02> {	[	  s,	S,     ssharp,	 U1E9E		]	};
116    key <AC03> {	[	  d,	D		]	};
117    key <AC04> {	[	  f,	F		]	};
118    key <AC05> {	[	  g,	G		]	};
119    key <AC06> {	[	  h,	H,     Igrave,    Icircumflex     ]	};
120    key <AC07> {	[	  j,	J,  Idiaeresis,   Iacute          ]	};
121    key <AC08> {	[	  k,	K,     Egrave,    Ediaeresis      ]	};
122    key <AC09> {	[	  l,	L,     ssharp,    bar		]	};
123    key <AC10> {	[         m,	M,         mu,    Oacute		]	};
124    key <AC11> {	[    ugrave,	percent,         ae,    AE		]	};
125
126    key <AB01> {	[	  w,	W 		]	};
127    key <AB02> {	[	  x,	X		]	};
128    key <AB03> {	[	  c,	C,  copyright,    copyright	]	};
129    key <AB04> {	[	  v,	V		]	};
130    key <AB05> {	[	  b,	B		]	};
131    key <AB06> {	[	  n,	N,  dead_tilde                    ]       };
132    key <AB07> {	[     comma,	question,          questiondown		]	};
133    key <AB08> {	[ semicolon,	period          ]	};
134    key <AB09> {	[     colon,	slash,        bar,    backslash	]	};
135    key <AB10> {	[    ograve,	exclam,     exclamdown			]	};
136
137    include "kpdl(dot)"
138    include "level3(ralt_switch)"
139};
140
141// Used by Georgian people in Italy,
142// contributed by Vladimer Sichinava
143partial alphanumeric_keys
144xkb_symbols "geo" {
145    include "it"
146    include "ge(basic)"
147    name[Group1]= "Georgian (Italy)";
148
149    key <TLDE> { [ backslash, bar, notsign, brokenbar ] };
150    key <AE01> { [ 1, exclam, onesuperior ] };
151    key <AE02> { [ 2, quotedbl, twosuperior, dead_doubleacute ] };
152    key <AE03> { [ 3, sterling, threesuperior, dead_tilde ] };
153    key <AE04> { [ 4, dollar, onequarter, oneeighth ] };
154    key <AE05> { [ 5, percent, onehalf ] };
155    key <AE06> { [ 6, ampersand ] };
156    key <AE07> { [ 7, slash, braceleft ] };
157    key <AE08> { [ 8, parenleft, bracketleft ] };
158    key <AE09> { [ 9, parenright ] };
159    key <AE10> { [ 0, equal, braceright, dead_ogonek ] };
160    key <AE11> { [ apostrophe, question, grave, questiondown ] };
161    key <AE12> { [ igrave, asciicircum, asciitilde, dead_circumflex ] };
162
163    key <AD03> { [ 0x010010d4, E, EuroSign ] };
164    key <AD11> { [ egrave, eacute, bracketleft, braceleft ] };
165    key <AD12> { [ plus, asterisk, bracketright, braceright ] };
166
167    key <AC10> { [ ograve, ccedilla, at, dead_cedilla ] };
168    key <AC11> { [ agrave, degree, numbersign, degree ] };
169    key <BKSL> { [ ugrave, section, dead_grave, dead_breve ] };
170    key <LSGT> { [ less, greater ] };
171
172    key <AB08> { [ comma, semicolon ] };
173    key <AB09> { [ period, colon ] };
174    key <AB10> { [ minus, underscore ] };
175};
176
177// OLPC Section
178xkb_symbols "olpc" {
179
180    include "it(basic)"
181
182    key <AE12> { [ igrave,  asciicircum,    asciitilde,     dead_tilde ] };
183    key <BKSL> { [ ugrave,      section,        Egrave,     dead_breve ] };
184    key <I219> { [ less,        greater, guillemotleft, guillemotright ] };
185};
186
187partial alphanumeric_keys modifier_keys
188xkb_symbols "us" {
189
190    include "us(basic)"
191
192    name[Group1]= "Italian (US)";
193
194    key <TLDE> { [     grave, asciitilde,    dead_grave,       dead_tilde ] };
195    key <AE01> { [         1,     exclam,   onesuperior                   ] };
196    key <AE02> { [         2,         at,   twosuperior                   ] };
197    key <AE03> { [         3, numbersign, threesuperior                   ] };
198    key <AE06> { [         6,asciicircum,dead_circumflex                  ] };
199    key <AE10> { [         0, parenright,        degree                   ] };
200    key <AE11> { [     minus, underscore,   dead_macron                   ] };
201
202    key <AD03> { [         e,          E,        egrave,           Egrave ] };
203    key <AD04> { [         r,          R,    registered                   ] };
204    key <AD07> { [         u,          U,        ugrave,           Ugrave ] };
205    key <AD08> { [         i,          I,        igrave,           Igrave ] };
206    key <AD09> { [         o,          O,        ograve,           Ograve ] };
207
208    key <AC01> { [         a,          A,        agrave,           Agrave ] };
209    key <AC03> { [         d,          D,        eacute,           Eacute ] };
210    key <AC07> { [         j,          J,        uacute,           Uacute ] };
211    key <AC08> { [         k,          K,        iacute,           Iacute ] };
212    key <AC09> { [         l,          L,        oacute,           Oacute ] };
213    key <AC10> { [ semicolon,      colon,dead_diaeresis,   dead_diaeresis ] };
214    key <AC11> { [apostrophe,   quotedbl,    dead_acute                   ] };
215
216    key <AB01> { [         z,          Z,        aacute,           Aacute ] };
217    key <AB03> { [         c,          C,     copyright                   ] };
218    key <AB06> { [         n,          N,        ntilde,           Ntilde ] };
219    key <AB08> { [     comma,       less,   guillemotleft                 ] };
220    key <AB09> { [    period,    greater,  guillemotright                 ] };
221
222    include "level3(ralt_switch)"
223    include "eurosign(5)"
224};
225
226partial alphanumeric_keys
227xkb_symbols "ibm" {
228
229    // Modifies the basic italian layout to match IBM 142 variant
230
231    include "us"
232
233    name[Group1]="Italian (IBM 142)";
234
235    key <TLDE>	{ [ backslash,        bar                             ] };
236
237    key <AE02>	{ [         2,   quotedbl                             ] };
238    key <AE03>	{ [         3,   sterling,   numbersign               ] };
239    key <AE06>	{ [         6,  ampersand                             ] };
240    key <AE07>	{ [         7,      slash,    braceleft               ] };
241    key <AE08>	{ [         8,  parenleft,  bracketleft               ] };
242    key <AE09>	{ [         9, parenright, bracketright               ] };
243    key <AE10>	{ [         0,      equal,   braceright               ] };
244    key <AE11>	{ [apostrophe,   question                             ] };
245    key <AE12>	{ [    igrave, asciicircum                            ] };
246
247    key <AD01>	{ [         q,           Q,          at               ] };
248    key <AD03>	{ [         e,           E,    EuroSign               ] };
249    key <AD11>	{ [    egrave,     eacute                             ] };
250    key <AD12>	{ [      plus,   asterisk,   asciitilde               ] };
251
252    key <AC10>	{ [    ograve,   ccedilla                             ] };
253    key <AC11>	{ [    agrave,     degree                             ] };
254
255    key <AB08>	{ [     comma,  semicolon                             ] };
256    key <AB09>	{ [    period,      colon                             ] };
257    key <AB10>	{ [     minus, underscore                             ] };
258
259    key <BKSL>	{ [    ugrave,    section,       grave                ] };
260
261    key <LSGT>	{ [      less,    greater                             ] };
262
263    include "level3(ralt_switch)"
264    include "kpdl(comma)"
265};
266
267
268partial alphanumeric_keys
269	xkb_symbols "fur" {
270	include "it(basic)"
271	include "latin(type4)"
272	include "level3(ralt_switch)"
273	name[Group1] = "Friulian (Italy)";
274
275
276
277    key <TLDE>	{ [ backslash,        bar,      notsign,    brokenbar ]	};
278
279    key <AE02>	{ [         2,   quotedbl,  twosuperior, dead_doubleacute ] };
280    key <AE03>	{ [         3,   sterling,threesuperior,        U1D49 ]	};
281    key <AE04>	{ [         4,     dollar,   onequarter,    oneeighth ] };
282    key <AE05>	{ [         5,    percent,     EuroSign,      onehalf ] };
283
284    key <AE10>	{ [         0,      equal,   braceright,  dead_ogonek ] };
285    key <AE11>	{ [apostrophe,   question,        grave, questiondown ]	};
286    key <AE12>	{ [    igrave, asciicircum,  asciitilde, dead_circumflex ] };
287
288    key <AD03> { [          e,          E,  ecircumflex,  Ecircumflex ] };
289    key <AD05> { [          t,          T,        U1D57,        U1D40 ] };
290    key <AD07> { [          u,          U,  ucircumflex,     NoSymbol ] };
291    key <AD08> { [          i,          I,  icircumflex,  Icircumflex ] };
292    key <AD09> { [          o,          O,  ocircumflex,  Ocircumflex ] };
293    key <AD11>	{ [    egrave,     eacute,  bracketleft,    braceleft ]	};
294    key <AD12>	{ [      plus,   asterisk, bracketright,   braceright ]	};
295    key <AC01>  { [         a,          A,  acircumflex,  Acircumflex ] };
296    key <AC04>  { [         f,          F,        U1DA0,        U00AA ] };
297    key <AC10>	{ [    ograve,   ccedilla,           at, dead_cedilla ] };
298    key <AC11>	{ [    agrave,     degree,   numbersign, dead_abovering ] };
299
300    key <AB03>	{ [         c,          C,       U1D9C,       U00A9  ]	};
301    key <AB06>	{ [         n,          N,       U207F,       Ntilde ]	};
302    key <AB07>	{ [         m,		M,       U1D50,       U00B5  ]	};
303    key <AB08>	{ [     comma,  semicolon,   dead_acute,     multiply ]	};
304    key <AB09>	{ [    period,      colon,periodcentered, dead_diaeresis ] };
305    key <AB10>	{ [     minus, underscore,  dead_macron,     division ] };
306
307    key <BKSL>	{ [    ugrave,    section,   dead_grave,   dead_breve ]	};
308
309    key <LSGT>	{ [      less,    greater,guillemotleft,guillemotright] };
310};
311
312// EXTRAS:
313
314partial alphanumeric_keys
315	xkb_symbols "sun_type6" {
316	include "sun_vndr/it(sun_type6)"
317};
318
319partial alphanumeric_keys
320xkb_symbols "lld" {
321    include "it(basic)"
322    name[Group1] = "Italian (Ladin)";
323
324    key <AD08> { [ i, I, idiaeresis, Idiaeresis ] };
325    key <AD10> { [ p, P, ediaeresis, Ediaeresis ] };
326
327    key <AC01> { [ a, A, aacute, Aacute ] };
328    key <AC02> { [ s, S, sacute, Sacute ] };
329
330    key <AB03> { [ c, C, cacute, Cacute ] };
331};
332
333partial alphanumeric_keys
334xkb_symbols "intl" {
335    include "it(basic)"
336    name[Group1] = "Italian (intl., with dead keys)";
337
338    key <AE12> { [ igrave, asciicircum,  asciitilde, dead_circumflex ] };
339
340    key <AD03> { [      e,           E,    EuroSign,           U0259 ] };
341
342    key <AC11> { [ agrave,      degree,  numbersign,           U1D58 ] };
343    key <AC06> { [      h,           H,       U1E25,           U1E24 ] };
344    key <AC04> { [      f,           F,       U0111,           U0110 ] };
345    key <AC03> { [      d,           D,       U1E0D,           U1E0C ] };
346
347    key <AB02> { [      x,           X,       U03C7,           U03A7 ] };
348    key <AB01> { [      z,           Z                               ] };
349
350    key <BKSL> { [ ugrave,     section,  dead_grave,      dead_breve ] };
351};
352
353partial alphanumeric_keys
354xkb_symbols "scn" {
355    include "it(basic)"
356    name[Group1] = "Sicilian";
357
358    key <AE12> { [ iacute, asciicircum,  asciitilde, dead_circumflex ] };
359
360    key <AD09> { [      o,           O, ocircumflex,     Ocircumflex ] };
361    key <AD08> { [      i,           I, icircumflex,     Icircumflex ] };
362    key <AD07> { [      u,           U, ucircumflex,     Ucircumflex ] };
363    key <AD04> { [      r,           R,  ediaeresis,      Ediaeresis ] };
364    key <AD03> { [      e,           E,    EuroSign,     ecircumflex ] };
365
366    key <AC11> { [ agrave,      degree,  numbersign,           U1D58 ] };
367    key <AC04> { [      f,           F,       U0111,           U0110 ] };
368    key <AC03> { [      d,           D,       U1E0D,           U1E0C ] };
369    key <AC02> { [      s,           S,      scaron,          Scaron ] };
370    key <AC01> { [      a,           A, acircumflex,     Acircumflex ] };
371
372    // In our Windows layout, there is no ©, but Ç. Since this character
373    // is available via CapsLock, I decided to keep © in place, as the
374    // Italian layout.
375    key <AB03> { [      c,           C,    ccedilla,       copyright ] };
376    key <AB02> { [      x,           X,       U03C7,           U03A7 ] };
377
378    // Replaced dead_grave by ugrave, since it's common to write mixed
379    // Sicilian - Italian (where we replaced ugrave with uacute)
380    key <BKSL> { [ uacute,     section,      ugrave,      dead_breve ] };
381};
382
383// layout for Italian Dvorak
384// based on https://web.archive.org/web/20170331132815/http://idvorak.altervista.org/
385
386partial alphanumeric_keys
387xkb_symbols "dvorak" {
388    include "it(basic)"
389    name[Group1]= "Italian (Dvorak)";
390
391    key <AD01> { [ agrave, degree, numbersign ] };
392    key <AD02> { [ comma, semicolon ] };
393    key <AD03> { [ period, colon ] };
394    key <AD04> { [ p, P ] };
395    key <AD05> { [ y, Y ] };
396    key <AD06> { [ f, F ] };
397    key <AD07> { [ g, G ] };
398    key <AD08> { [ c, C ] };
399    key <AD09> { [ r, R ] };
400    key <AD10> { [ l, L ] };
401    key <AD11> { [ egrave, eacute, bracketleft ] };
402    key <AD12> { [ plus, asterisk, bracketright ] };
403
404    key <AC01> { [ a, A ] };
405    key <AC02> { [ o, O ] };
406    key <AC03> { [ e, E ] };
407    key <AC04> { [ u, U ] };
408    key <AC05> { [ i, I ] };
409    key <AC06> { [ d, D ] };
410    key <AC07> { [ h, H ] };
411    key <AC08> { [ t, T ] };
412    key <AC09> { [ n, N ] };
413    key <AC10> { [ s, S ] };
414    key <AC11> { [ minus, underscore ] };
415    key <AC12> { [ ugrave, section ] };
416
417    key <AB01> { [ ograve, ccedilla, at ] };
418    key <AB02> { [ q, Q ] } ;
419    key <AB03> { [ j, J ] };
420    key <AB04> { [ k, K ] };
421    key <AB05> { [ x, X ] };
422    key <AB06> { [ b, B ] };
423    key <AB07> { [ m, M ] };
424    key <AB08> { [ w, W ] };
425    key <AB09> { [ v, V ] };
426    key <AB10> { [ z, Z ] };
427};
428