1// Hellenic keyboard map for X.org
2//
3// Original version:
4//   Kostas Gewrgiou <gewrgiou@imbc.gr>
5// Heavily modified and maintained by:
6//   Vasilis Vasaitis <vvas@hal.csd.auth.gr>
7// Originally converted to single group form by:
8//   Ivan Pascal <pascal@info.tsu.ru>
9// Final modifications for proper support of
10//   the Hellenic language by:
11//   Web Dolphins® <foo@foofootus.eu>
12
13
14default  partial alphanumeric_keys alternate_group
15xkb_symbols "basic" {
16	include "gr(simple)"
17
18	name[Group1] = "Greek";
19
20	include "eurosign(e)"
21	include "eurosign(5)"
22	include "kpdl(comma)"
23	include "level3(ralt_switch)"
24
25	key <AB01> { [       NoSymbol,       NoSymbol,          U037D,          U03FF ] };
26	key <AB02> { [       NoSymbol,       NoSymbol,     rightarrow,      leftarrow ] };
27	key <AB03> { [       NoSymbol,       NoSymbol,      copyright                 ] };
28	key <AB04> { [       NoSymbol,       NoSymbol,          U03D6                 ] };
29	key <AB05> { [       NoSymbol,       NoSymbol,          U03D0                 ] };
30	key <AB06> { [       NoSymbol,       NoSymbol,          U0374,          U0375 ] };
31	key <AB07> { [       NoSymbol,       NoSymbol,          U03FB,          U03FA ] };
32	key <AB08> { [       NoSymbol,       NoSymbol,  guillemotleft                 ] };
33	key <AB09> { [       NoSymbol,       NoSymbol, guillemotright, periodcentered ] };
34	key <AC03> { [       NoSymbol,       NoSymbol,      downarrow,        uparrow ] };
35	key <AC04> { [       NoSymbol,       NoSymbol,          U03D5,      Greek_PHI ] };
36	key <AC05> { [       NoSymbol,       NoSymbol,          U03DD,          U03DC ] };
37	key <AC07> { [       NoSymbol,       NoSymbol,          U037C,          U03FE ] };
38	key <AC08> { [       NoSymbol,       NoSymbol,          U03DF,          U03DE ] };
39	key <AC09> { [       NoSymbol,       NoSymbol,          U03F2,          U03F9 ] };
40	key <AC10> { [       NoSymbol,       NoSymbol,     dead_acute,     dead_psili ] };
41	key <AC11> { [       NoSymbol,       NoSymbol,     dead_grave,     dead_dasia ] };
42	key <AD01> { [       NoSymbol,       NoSymbol, periodcentered                 ] };
43	key <AD02> { [       NoSymbol,       NoSymbol,          U03DB,          U03DA ] };
44	key <AD04> { [       NoSymbol,       NoSymbol,     registered,          U03F1 ] };
45	key <AD06> { [       NoSymbol,       NoSymbol,          U03D2,          U03D2 ] };
46	key <AD07> { [       NoSymbol,       NoSymbol,          U03D1,          U03F4 ] };
47	key <AD08> { [       NoSymbol,       NoSymbol,          U037B,          U03FD ] };
48	key <AD10> { [       NoSymbol,       NoSymbol,          U03E1,          U03E0 ] };
49	key <AD11> { [       NoSymbol,       NoSymbol,     dead_tilde,    dead_macron ] };
50	key <AD12> { [       NoSymbol,       NoSymbol,      dead_iota,     dead_breve ] };
51	key <AE01> { [       NoSymbol,       NoSymbol,       NoSymbol,    onesuperior ] };
52	key <AE02> { [       NoSymbol,       NoSymbol,        onehalf,    twosuperior ] };
53	key <AE03> { [       NoSymbol,       NoSymbol,       sterling,  threesuperior ] };
54	key <AE04> { [       NoSymbol,       NoSymbol,     onequarter,  threequarters ] };
55	key <AE06> { [       NoSymbol,       NoSymbol,          U03F0                 ] };
56	key <AE07> { [       NoSymbol,       NoSymbol,          U03D7,          U03CF ] };
57	key <AE08> { [       NoSymbol,       NoSymbol,          U20AF                 ] };
58	key <AE10> { [       NoSymbol,       NoSymbol,         degree                 ] };
59	key <AE11> { [       NoSymbol,       NoSymbol,      plusminus                 ] };
60};
61
62partial alphanumeric_keys alternate_group
63xkb_symbols "simple" {
64
65    include "gr(bare)"
66
67    name[Group1] = "Greek (simple)";
68
69    key <TLDE> { [        grave,  asciitilde ] }; // ` ~
70    key <AE01> { [            1,      exclam ] }; // 1 !
71    key <AE02> { [            2,          at ] }; // 2 @
72    key <AE03> { [            3,  numbersign ] }; // 3 #
73    key <AE04> { [            4,      dollar ] }; // 4 $
74    key <AE05> { [            5,     percent ] }; // 5 %
75    key <AE06> { [            6, asciicircum ] }; // 6 ^
76    key <AE07> { [            7,   ampersand ] }; // 7 &
77    key <AE08> { [            8,    asterisk ] }; // 8 *
78    key <AE09> { [            9,   parenleft ] }; // 9 (
79    key <AE10> { [            0,  parenright ] }; // 0 )
80    key <AE11> { [        minus,  underscore ] }; // - _
81    key <AE12> { [        equal,        plus ] }; // = +
82
83    key <AD11> { [  bracketleft,   braceleft ] }; // [ {
84    key <AD12> { [ bracketright,  braceright ] }; // ] }
85
86    key <AC11> { [   apostrophe,    quotedbl ] }; // ' "
87
88    key <AB08> { [        comma,        less ] }; // , <
89    key <AB09> { [       period,     greater ] }; // . >
90    key <AB10> { [        slash,    question ] }; // / ?
91    key <BKSL> { [    backslash,         bar ] }; // \ |
92
93    include "kpdl(comma)"
94};
95
96hidden partial alphanumeric_keys alternate_group
97xkb_symbols "bare" {
98
99    key <AD01> { [             semicolon,          colon ] }; // ; :
100    key <AD02> { [ Greek_finalsmallsigma,    Greek_SIGMA ] }; // ς Σ
101    key <AD03> { [         Greek_epsilon,  Greek_EPSILON ] }; // ε Ε
102    key <AD04> { [             Greek_rho,      Greek_RHO ] }; // ρ Ρ
103    key <AD05> { [             Greek_tau,      Greek_TAU ] }; // τ Τ
104    key <AD06> { [         Greek_upsilon,  Greek_UPSILON ] }; // υ Υ
105    key <AD07> { [           Greek_theta,    Greek_THETA ] }; // θ Θ
106    key <AD08> { [            Greek_iota,     Greek_IOTA ] }; // ι Ι
107    key <AD09> { [         Greek_omicron,  Greek_OMICRON ] }; // ο Ο
108    key <AD10> { [              Greek_pi,       Greek_PI ] }; // π Π
109
110    key <AC01> { [           Greek_alpha,    Greek_ALPHA ] }; // α Α
111    key <AC02> { [           Greek_sigma,    Greek_SIGMA ] }; // σ Σ
112    key <AC03> { [           Greek_delta,    Greek_DELTA ] }; // δ Δ
113    key <AC04> { [             Greek_phi,      Greek_PHI ] }; // φ Φ
114    key <AC05> { [           Greek_gamma,    Greek_GAMMA ] }; // γ Γ
115    key <AC06> { [             Greek_eta,      Greek_ETA ] }; // η Η
116    key <AC07> { [              Greek_xi,       Greek_XI ] }; // ξ Ξ
117    key <AC08> { [           Greek_kappa,    Greek_KAPPA ] }; // κ Κ
118    key <AC09> { [           Greek_lamda,    Greek_LAMDA ] }; // λ Λ
119    key <AC10> { [            dead_acute, dead_diaeresis ] }; // ´ ¨
120
121    key <AB01> { [            Greek_zeta,     Greek_ZETA ] }; // ζ Ζ
122    key <AB02> { [             Greek_chi,      Greek_CHI ] }; // χ Χ
123    key <AB03> { [             Greek_psi,      Greek_PSI ] }; // ψ Ψ
124    key <AB04> { [           Greek_omega,    Greek_OMEGA ] }; // ω Ω
125    key <AB05> { [            Greek_beta,     Greek_BETA ] }; // β Β
126    key <AB06> { [              Greek_nu,       Greek_NU ] }; // ν Ν
127    key <AB07> { [              Greek_mu,       Greek_MU ] }; // μ Μ
128
129    key <LSGT> { [         guillemotleft, guillemotright ] }; // « »
130};
131
132// ===========================================================================================
133// Greek - Extended                                                                          |
134// ===========================================================================================
135//
136// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━━┓
137// │ ~   │ !   │ @   │ #   │ $   │ %   │ ^   │ &   │ *   │ (   │ )   │ _   │ +   ┃Backspace  ┃
138// │ `   │ 1   │ 2   │ 3 £ │ 4   │ 5 € │ 6   │ 7   │ 8   │ 9   │ 0 ° │ - ± │ =   ┃           ┃
139// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━━━┫
140// ┃       ┃ :   │ Σ   │ Ε   │ Ρ   │ Τ   │ Υ   │ Θ   │ Ι   │ Ο   │ Π   │ {   │ }   ┃Enter    ┃
141// ┃Tab    ┃ ; · │ ς   │ ε € │ ρ ® │ τ   │ υ   │ θ   │ ι   │ ο   │ π   │ [   │ ]   ┃         ┃
142// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓        ┃
143// ┃Caps    ┃ Α   │ Σ   │ Δ   │ Φ   │ Γ   │ Η   │ Ξ   │ Κ   │ Λ   │ ¨   │ "   │ |   ┃        ┃
144// ┃Lock    ┃ α   │ σ   │ δ   │ φ   │ γ   │ η   │ ξ   │ κ   │ λ   │ ´   │ '   │ \   ┃        ┃
145// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━━━┫
146// ┃       ┃ »   │ Ζ   │ Χ   │ Ψ   │ Ω   │ Β   │ Ν   │ Μ   │ <   │ >   │ ?   ┃               ┃
147// ┃Shift  ┃ «   │ ζ   │ χ   │ ψ © │ ω   │ β   │ ν   │ μ   │ , « │ . » │ /   ┃Shift          ┃
148// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴──┲━━┷━━━━┳┷━━━━━┻┳━━━━━━━┳━━━━━━┫
149// ┃       ┃       ┃       ┃                                  ┃       ┃       ┃       ┃      ┃
150// ┃Ctrl   ┃Meta   ┃Alt    ┃              Space               ┃AltGr  ┃Meta   ┃Menu   ┃Ctrl  ┃
151// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹──────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━┛
152
153partial alphanumeric_keys alternate_group
154xkb_symbols "extended" {
155
156    include "gr(simple)"
157
158    name[Group1] = "Greek (extended)";
159
160    key.type[Group1] = "THREE_LEVEL";
161
162    key <TLDE> { [ NoSymbol, NoSymbol,  U2015 ] }; // ―
163    key <AB01> { [ NoSymbol, NoSymbol,  U00A7 ] }; // §
164    key <AE02> { [ NoSymbol, NoSymbol,  U00B2 ] }; // ²
165    key <AE03> { [ NoSymbol, NoSymbol,  U00B3 ] }; // ³
166    // for adding cubic sign £ symbol must move (like e.g. AE04 )
167    key <AE04> { [ NoSymbol, NoSymbol,       sterling ] }; // £
168    key <AD06> { [ NoSymbol, NoSymbol,       U00A5 ] }; // ¥
169    key <AE10> { [ NoSymbol, NoSymbol,         degree ] }; // °
170    key <AE11> { [ NoSymbol, NoSymbol,      plusminus ] }; // ±
171
172    key <AD01> { [ NoSymbol, NoSymbol, periodcentered ] }; // ·
173    key <AD04> { [ NoSymbol, NoSymbol,     registered ] }; // ®
174
175    key <AB03> { [ NoSymbol, NoSymbol,      copyright ] }; // ©
176    key <AB08> { [ NoSymbol, NoSymbol,  guillemotleft ] }; // «
177    key <AB09> { [ NoSymbol, NoSymbol, guillemotright ] }; // »
178
179    include "level3(ralt_switch)"
180    include "eurosign(5)"
181    include "eurosign(e)"
182};
183
184partial alphanumeric_keys alternate_group
185xkb_symbols "polytonic" {
186
187    include "gr(extended)"
188
189    name[Group1] = "Greek (polytonic)";
190
191    key.type[Group1] = "THREE_LEVEL";
192
193    key <AD11> { [ dead_tilde, dead_diaeresis, dead_macron ] }; // ~ ¨ ¯
194    key <AD12> { [  dead_iota,     VoidSymbol,  dead_breve ] }; // ͺ   ˘
195    key <AE05> { type[Group1]="FOUR_LEVEL",
196        [ 5,   percent,    U2030,   U2031 ] }; // ‰ ‱
197    key <AC02> { type[Group1]="FOUR_LEVEL",
198        [ Greek_sigma,    Greek_SIGMA,  U03DB,  U03DA ] }; // Ϛ ϛ STIGMATA
199    key <AC04> { type[Group1]="FOUR_LEVEL",
200        [ Greek_phi,    Greek_PHI,  U03DD,  U03DC ] }; //  ϝ Ϝ 
201    key <AD02> { type[Group1]="FOUR_LEVEL",
202        [ Greek_finalsmallsigma,    Greek_SIGMA, U03D9,  U03D8 ] }; // ϙ Ϙ 
203    key <AC07> { type[Group1]="FOUR_LEVEL",
204        [ Greek_xi,    Greek_XI, U03F3,  U037F ] }; // ϳ Ϳ
205    key <AD10> { type[Group1]="FOUR_LEVEL",
206        [ Greek_pi,    Greek_PI, U03D6,  U03D5 ] }; // ϖ ϕ
207    key <AB05> { type[Group1]="FOUR_LEVEL",
208        [ Greek_beta,    Greek_BETA, U03E1,  U03E0 ] }; // ϡ Ϡ
209    
210    key <AC10> { [ dead_acute, dead_psili  ] }; // ´ ̓ 
211    key <AC11> { type[Group1]="FOUR_LEVEL",
212                 [ dead_grave, dead_dasia, apostrophe, quotedbl  ] };
213                  
214    key <AC08> { type[Group1]="FOUR_LEVEL",
215                [ Greek_kappa, Greek_KAPPA,    U03D7,  U03CF ] };
216                 // κ Κ GREEK KAI SYMBOL
217};
218
219partial alphanumeric_keys alternate_group
220xkb_symbols "nodeadkeys" {
221
222    include "gr(simple)"
223
224    name[Group1] = "Greek (no dead keys)";
225
226    key <AC10> { [ semicolon, colon ] }; // ; :
227};
228
229// Greek layout rearranged as Colemak
230
231partial alphanumeric_keys alternate_group
232xkb_symbols "colemak" {
233
234    include "gr(basic)"
235
236    name[Group1] = "Greek (Colemak)";
237
238    key <AD01> { [             semicolon,          colon, periodcentered             ] };
239    key <AD02> { [ Greek_finalsmallsigma,    Greek_SIGMA,          U03DB,      U03DA ] };
240    key <AD03> { [             Greek_phi,      Greek_PHI,          U03D5             ] };
241    key <AD04> { [              Greek_pi,       Greek_PI,          U03E1,      U03E0 ] };
242    key <AD05> { [           Greek_gamma,    Greek_GAMMA,          U03DD,      U03DC ] };
243    key <AD06> { [              Greek_xi,       Greek_XI,          U037C,      U03FE ] };
244    key <AD07> { [           Greek_lamda,    Greek_LAMDA,          U03F2,      U03F9 ] };
245    key <AD08> { [           Greek_theta,    Greek_THETA,          U03D1,      U03F4 ] };
246    key <AD09> { [         Greek_upsilon,  Greek_UPSILON,          U03D2,      U03D2 ] };
247    key <AD10> { [            dead_acute, dead_diaeresis,     dead_acute, dead_psili ] };
248
249    key <AC01> { [           Greek_alpha,    Greek_ALPHA                             ] };
250    key <AC02> { [             Greek_rho,      Greek_RHO,     registered,      U03F1 ] };
251    key <AC03> { [           Greek_sigma,    Greek_SIGMA                             ] };
252    key <AC04> { [             Greek_tau,      Greek_TAU                             ] };
253    key <AC05> { [           Greek_delta,    Greek_DELTA,      downarrow,    uparrow ] };
254    key <AC06> { [             Greek_eta,      Greek_ETA                             ] };
255    key <AC07> { [              Greek_nu,       Greek_NU,          U0374,      U0375 ] };
256    key <AC08> { [         Greek_epsilon,  Greek_EPSILON,       EuroSign             ] };
257    key <AC09> { [            Greek_iota,     Greek_IOTA,          U037B,      U03FD ] };
258    key <AC10> { [         Greek_omicron,  Greek_OMICRON                             ] };
259
260    key <AB01> { [            Greek_zeta,     Greek_ZETA,          U037D,      U03FF ] };
261    key <AB02> { [             Greek_chi,      Greek_CHI,     rightarrow,  leftarrow ] };
262    key <AB03> { [             Greek_psi,      Greek_PSI,      copyright             ] };
263    key <AB04> { [           Greek_omega,    Greek_OMEGA,          U03D6             ] };
264    key <AB05> { [            Greek_beta,     Greek_BETA,          U03D0             ] };
265    key <AB06> { [           Greek_kappa,    Greek_KAPPA,          U03DF,      U03DE ] };
266    key <AB07> { [              Greek_mu,       Greek_MU,          U03FB,      U03FA ] };
267
268    key <CAPS> { [             BackSpace,      BackSpace,      BackSpace,  BackSpace ] };
269};
270
271// EXTRAS:
272
273partial alphanumeric_keys
274	xkb_symbols "sun_type6" {
275	include "sun_vndr/gr(sun_type6)"
276};
277