commit a9b9b92cc8673a2ce0ee6e2b067d0d0334e9d072
parent e44bb24817109e23a46402622a105a20ca576166
Author: Robert Russell <robert@rr3.xyz>
Date: Mon, 19 May 2025 19:23:00 -0700
Make progress on custom XKB keymap
Diffstat:
| M | keyboard/custom.xkb | | | 276 | +++++++++++++++++++++++++++++++++++++++++++++---------------------------------- |
1 file changed, 158 insertions(+), 118 deletions(-)
diff --git a/keyboard/custom.xkb b/keyboard/custom.xkb
@@ -191,21 +191,51 @@ xkb_keymap "custom" {
level_name[2] = "LEVEL2";
};
- type "LATIN_AND_GREEK" {
- modifiers = Shift + Mod3;
- map[Shift] = 2;
- map[Mod3] = 3;
- map[Shift+Mod3] = 4;
+ type "SPACE" {
+ modifiers = Mod3;
+ map[Mod3] = 2;
level_name[1] = "LEVEL1";
level_name[2] = "LEVEL2";
- level_name[3] = "LEVEL3";
- level_name[4] = "LEVEL4";
+ };
+
+ type "UNICODE" {
+ modifiers = Shift + Mod2 + Mod3 + Mod5;
+ map[Shift] = 2;
+ map[Mod2] = 3;
+ map[Mod2+Shift] = 4;
+ map[Mod3] = 5;
+ map[Mod3+Shift] = 6;
+ map[Mod3+Mod2] = 7;
+ map[Mod3+Mod2+Shift] = 8;
+ map[Mod5] = 9;
+ map[Mod5+Shift] = 10;
+ map[Mod5+Mod2] = 11;
+ map[Mod5+Mod2+Shift] = 12;
+ map[Mod5+Mod3] = 13;
+ map[Mod5+Mod3+Shift] = 14;
+ map[Mod5+Mod3+Mod2] = 15;
+ map[Mod5+Mod3+Mod2+Shift] = 16;
+ level_name[1] = "LEVEL01";
+ level_name[2] = "LEVEL02";
+ level_name[3] = "LEVEL03";
+ level_name[4] = "LEVEL04";
+ level_name[5] = "LEVEL05";
+ level_name[6] = "LEVEL06";
+ level_name[7] = "LEVEL07";
+ level_name[8] = "LEVEL08";
+ level_name[9] = "LEVEL09";
+ level_name[10] = "LEVEL10";
+ level_name[11] = "LEVEL11";
+ level_name[12] = "LEVEL12";
+ level_name[13] = "LEVEL13";
+ level_name[14] = "LEVEL14";
+ level_name[15] = "LEVEL15";
+ level_name[16] = "LEVEL16";
};
// Initialize remainder of all 32 types to dummy types to cope with
// the following bug:
// https://gitlab.freedesktop.org/xorg/xserver/-/issues/1376
- type "TYPE07" { level_name[1] = "LEVEL1"; };
type "TYPE08" { level_name[1] = "LEVEL1"; };
type "TYPE09" { level_name[1] = "LEVEL1"; };
type "TYPE10" { level_name[1] = "LEVEL1"; };
@@ -248,8 +278,8 @@ xkb_keymap "custom" {
modifier_map Lock { Caps_Lock };
modifier_map Control { Control_L, Control_R };
modifier_map Mod1 { Alt_L, Alt_R };
- modifier_map Mod2 { F14 };
- modifier_map Mod3 { F15 };
+ modifier_map Mod2 { F15 };
+ modifier_map Mod3 { F14 };
modifier_map Mod4 { Super_L, Super_R };
modifier_map Mod5 { F16 };
@@ -266,10 +296,8 @@ xkb_keymap "custom" {
key <LWIN> { [Super_L] };
key <RWIN> { [Super_R] };
- key.type = "TWO_LEVEL";
-
- key <F14> { symbols[1] = [NoSymbol], actions[1] = [SetMods(mods=Mod2)] };
- key <F15> { symbols[1] = [NoSymbol], actions[1] = [SetMods(mods=Mod3)] };
+ key <F14> { symbols[1] = [NoSymbol], actions[1] = [SetMods(mods=Mod3)] };
+ key <F15> { symbols[1] = [NoSymbol], actions[1] = [SetMods(mods=Mod2)] };
key <F16> { symbols[1] = [NoSymbol], actions[1] = [SetMods(mods=Mod5)] };
key.type = "ONE_LEVEL";
@@ -280,12 +308,9 @@ xkb_keymap "custom" {
key <ESC> { [Escape] };
key <BKSP> { [BackSpace] };
key <RTRN> { [Return] };
- key <SPCE> { [space] };
- key <UP> { [Up] };
- key <DOWN> { [Down] };
- key <LEFT> { [Left] };
- key <RGHT> { [Right] };
+ // key <TAB> { [Tab, ISO_Left_Tab] };
+ key <TAB> { [Tab ] };
key <HOME> { [Home] };
key <END> { [End] };
@@ -302,23 +327,10 @@ xkb_keymap "custom" {
key <MONU> { [XF86MonBrightnessUp] };
key.type = "TWO_LEVEL";
+ // TODO: should be alt instead of shift
- key <GRAV> { [grave, asciitilde] };
- key <HYPH> { [minus, underscore] };
- key <EQ> { [equal, plus] };
- key <LBRK> { [bracketleft, braceleft] };
- key <RBRK> { [bracketright, braceright] };
- key <BKSL> { [backslash, bar] };
- key <SEMI> { [semicolon, colon] };
- key <QUOT> { [apostrophe, quotedbl] };
- key <COMM> { [comma, less] };
- key <DOT> { [period, greater] };
- key <SLSH> { [slash, question] };
- // key <TAB> { [Tab, ISO_Left_Tab] };
- key <TAB> { [Tab, Tab] };
-
- key <PRSC> { [Print, Sys_Req] }; // TODO: should be alt instead of shift
- key <PAUS> { [Pause, Break] }; // TODO: ditto
+ key <PRSC> { [Print, Sys_Req] };
+ key <PAUS> { [Pause, Break] };
key.type = "FN_TTY";
@@ -358,86 +370,115 @@ xkb_keymap "custom" {
key <KPEQ> { [KP_Equal] };
key <KPEN> { [KP_Enter] };
- key.type = "TWO_LEVEL";
-
- key <1> { [1, exclam ] };
- key <2> { [2, at ] };
- key <3> { [3, numbersign ] };
- key <4> { [4, dollar ] };
- key <5> { [5, percent ] };
- key <6> { [6, asciicircum] };
- key <7> { [7, ampersand ] };
- key <8> { [8, asterisk ] };
- key <9> { [9, parenleft ] };
- key <0> { [0, parenright ] };
-
- key.type = "LATIN_AND_GREEK";
-
- key <a> { [a, A, Greek_alpha, Greek_ALPHA ] };
- key <b> { [b, B, Greek_beta, Greek_BETA ] };
- key <c> { [c, C, Greek_chi, Greek_CHI ] };
- key <d> { [d, D, Greek_delta, Greek_DELTA ] };
- key <e> { [e, E, Greek_epsilon, Greek_EPSILON] };
- key <f> { [f, F, Greek_phi, Greek_PHI ] };
- key <g> { [g, G, Greek_gamma, Greek_GAMMA ] };
- key <h> { [h, H, Greek_theta, Greek_THETA ] };
- key <i> { [i, I, Greek_iota, Greek_IOTA ] };
- key <j> { [j, J, Greek_eta, Greek_ETA ] };
- key <k> { [k, K, Greek_kappa, Greek_KAPPA ] };
- key <l> { [l, L, Greek_lamda, Greek_LAMDA ] };
- key <m> { [m, M, Greek_mu, Greek_MU ] };
- key <n> { [n, N, Greek_nu, Greek_NU ] };
- key <o> { [o, O, Greek_omicron, Greek_OMICRON] };
- key <p> { [p, P, Greek_pi, Greek_PI ] };
- key <q> { [q, Q, Greek_psi, Greek_PSI ] };
- key <r> { [r, R, Greek_rho, Greek_RHO ] };
- key <s> { [s, S, Greek_sigma, Greek_SIGMA ] };
- key <t> { [t, T, Greek_tau, Greek_TAU ] };
- key <u> { [u, U, NoSymbol, NoSymbol ] };
- key <v> { [v, V, NoSymbol, NoSymbol ] };
- key <w> { [w, W, Greek_omega, Greek_OMEGA ] };
- key <x> { [x, X, Greek_xi, Greek_XI ] };
- key <y> { [y, Y, Greek_upsilon, Greek_UPSILON] };
- key <z> { [z, Z, Greek_zeta, Greek_ZETA ] };
-
- // TODO: Subscripts and superscripts?
- //key <1> { [1, exclam, U01D7D9, NoSymbol] };
- //key <2> { [2, at, U01D7DA, NoSymbol] };
- //key <3> { [3, numbersign, U01D7DB, NoSymbol] };
- //key <4> { [4, dollar, U01D7DC, NoSymbol] };
- //key <5> { [5, percent, U01D7DD, NoSymbol] };
- //key <6> { [6, asciicircum, U01D7DE, NoSymbol] };
- //key <7> { [7, ampersand, U01D7DF, NoSymbol] };
- //key <8> { [8, asterisk, U01D7E0, NoSymbol] };
- //key <9> { [9, parenleft, U01D7E1, U002985 ] };
- //key <0> { [0, parenright, U01D7D8, U002986 ] };
-
- // TODO: Greek variants
- //key <a> { [a, A, U01D552, U01D538, U01D4B6, U01D49C, U01D51E, U01D504], [Greek_alpha, Greek_ALPHA ] };
- //key <b> { [b, B, U01D553, U01D539, U01D4B7, U00212C, U01D51F, U01D505], [Greek_beta, Greek_BETA ] };
- //key <c> { [c, C, U01D554, U002102, U01D4B8, U01D49E, U01D520, U00212D], [Greek_chi, Greek_CHI ] };
- //key <d> { [d, D, U01D555, U01D53B, U01D4B9, U01D49F, U01D521, U01D507], [Greek_delta, Greek_DELTA ] };
- //key <e> { [e, E, U01D556, U01D53C, U00212f, U002130, U01D522, U01D508], [Greek_epsilon, Greek_EPSILON] };
- //key <f> { [f, F, U01D557, U01D53D, U01D4BB, U002131, U01D523, U01D509], [Greek_phi, Greek_PHI ] };
- //key <g> { [g, G, U01D558, U01D53E, U00210A, U01D4A2, U01D524, U01D50A], [Greek_gamma, Greek_GAMMA ] };
- //key <h> { [h, H, U01D559, U00210D, U01D4BD, U00210B, U01D525, U00210C], [Greek_theta, Greek_THETA ] };
- //key <i> { [i, I, U01D55A, U01D540, U01D4BE, U002110, U01D526, U002111], [Greek_iota, Greek_IOTA ] };
- //key <j> { [j, J, U01D55B, U01D541, U01D4BF, U01D4A5, U01D527, U01D50D], [Greek_eta, Greek_ETA ] };
- //key <k> { [k, K, U01D55C, U01D542, U01D4C0, U01D4A6, U01D528, U01D50E], [Greek_kappa, Greek_KAPPA ] };
- //key <l> { [l, L, U01D55D, U01D543, U01D4C1, U002112, U01D529, U01D50F], [Greek_lamda, Greek_LAMDA ] };
- //key <m> { [m, M, U01D55E, U01D544, U01D4C2, U002133, U01D52A, U01D510], [Greek_mu, Greek_MU ] };
- //key <n> { [n, N, U01D55F, U002115, U01D4C3, U01D4A9, U01D52B, U01D511], [Greek_nu, Greek_NU ] };
- //key <o> { [o, O, U01D560, U01D546, U002134, U01D4AA, U01D52C, U01D512], [Greek_omicron, Greek_OMICRON] };
- //key <p> { [p, P, U01D561, U002119, U01D4C5, U01D4AB, U01D52D, U01D513], [Greek_pi, Greek_PI ] };
- //key <q> { [q, Q, U01D562, U00211A, U01D4C6, U01D4AC, U01D52E, U01D514], [Greek_psi, Greek_PSI ] };
- //key <r> { [r, R, U01D563, U00211D, U01D4C7, U00211B, U01D52F, U00211C], [Greek_rho, Greek_RHO ] };
- //key <s> { [s, S, U01D564, U01D54A, U01D4C8, U01D4AE, U01D530, U01D516], [Greek_sigma, Greek_SIGMA ] };
- //key <t> { [t, T, U01D565, U01D54B, U01D4C9, U01D4AF, U01D531, U01D517], [Greek_tau, Greek_TAU ] };
- //key <u> { [u, U, U01D566, U01D54C, U01D4CA, U01D4B0, U01D532, U01D518], [NoSymbol, NoSymbol ] };
- //key <v> { [v, V, U01D567, U01D54D, U01D4CB, U01D4B1, U01D533, U01D519], [NoSymbol, NoSymbol ] };
- //key <w> { [w, W, U01D568, U01D54E, U01D4CC, U01D4B2, U01D534, U01D51A], [Greek_omega, Greek_OMEGA ] };
- //key <x> { [x, X, U01D569, U01D54F, U01D4CD, U01D4B3, U01D535, U01D51B], [Greek_xi, Greek_XI ] };
- //key <y> { [y, Y, U01D56A, U01D550, U01D4CE, U01D4B4, U01D536, U01D51C], [Greek_upsilon, Greek_UPSILON] };
- //key <z> { [z, Z, U01D56B, U002124, U01D4CF, U01D4B5, U01D537, U002128], [Greek_zeta, Greek_ZETA ] };
+ // black spade: 2660
+ // white heart: 2661
+ // white diamond: 2662
+ // black club: 2663
+ // white spade: 2664
+ // black heart: 2665
+ // black diamond: 2666
+ // white club: 2667
+
+ // flat: 266d
+ // natural: 266e
+ // sharp: 266f
+
+ // not: 00ac
+ // del: 2202
+ // empty set: 2205
+ // delta/increment: 2206
+ // nabla/decrement: 2207
+ // qed: 220e
+ // minus: 2212
+ // sqrt: 221a
+ // prop: 221d
+ // inf: 221e
+ // pipe: 2223
+ // not pipe: 2224
+ // pipe pipe: 2225
+ // not pipe pipe: 2226
+ // and: 2227
+ // or: 2228
+ // cap: 2229
+ // cup: 222a
+ // int: 222b
+ // tilde: 223c
+ // not tilde: 2241
+ // tilde line: 2243
+ // not tilde line: 2244
+ // tilde line line: 2245
+ // not tilde line line: 2247
+ // tilde tilde: 2248
+ // not tilde tilde: 2249
+ // colon eq: 2254
+ // eq colon: 2255
+ // not eq: 2260
+ // eq line: 2261
+ // not eq line: 2262
+ // leq: 2264
+ // geq: 2265
+
+ // TODO: Assign keys to important symbols from this table (I already
+ // briefly went through the others):
+ // https://en.wikipedia.org/wiki/Mathematical_operators_and_symbols_in_Unicode#Mathematical_Operators_block
+
+ key.type = "SPACE";
+
+ key <SPCE> { [space, U2423] };
+
+ key.type = "UNICODE";
+
+ // ---- ---L --R- --RL -C-- -C-L -CR- -CRL F--- F--L F-R- F-RL FC-- FC-L FCR- FCRL
+ key <UP> { [Up, Up, NoSymbol, NoSymbol, U02191, U021D1, NoSymbol, NoSymbol, U021A5, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <DOWN> { [Down, Down, NoSymbol, NoSymbol, U02193, U021D3, NoSymbol, NoSymbol, U021A7, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <LEFT> { [Left, Left, NoSymbol, NoSymbol, U02190, U021D0, NoSymbol, NoSymbol, U021A4, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <RGHT> { [Right, Right, NoSymbol, NoSymbol, U02192, U021D2, NoSymbol, NoSymbol, U021A6, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <GRAV> { [grave, asciitilde, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <HYPH> { [minus, underscore, NoSymbol, NoSymbol, U000B1, U02213, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <EQ> { [equal, plus, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <LBRK> { [bracketleft, braceleft, NoSymbol, NoSymbol, U027E8, U02039, NoSymbol, NoSymbol, U0230A, U02308, U027E6, U02983, U0231E, U0231C, NoSymbol, NoSymbol] };
+ key <RBRK> { [bracketright, braceright, NoSymbol, NoSymbol, U027E9, U0203A, NoSymbol, NoSymbol, U0230B, U02309, U027E7, U02984, U0231F, U0231D, NoSymbol, NoSymbol] };
+ key <BKSL> { [backslash, bar, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <SEMI> { [semicolon, colon, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <QUOT> { [apostrophe, quotedbl, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <COMM> { [comma, less, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <DOT> { [period, greater, NoSymbol, NoSymbol, U022C5, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <SLSH> { [slash, question, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <1> { [1, exclam, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U1D7D9, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <2> { [2, at, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U1D7DA, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <3> { [3, numbersign, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U1D7DB, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <4> { [4, dollar, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U1D7DC, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <5> { [5, percent, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U1D7DD, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <6> { [6, asciicircum, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U1D7DE, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <7> { [7, ampersand, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U1D7DF, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <8> { [8, asterisk, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U1D7E0, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <9> { [9, parenleft, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U1D7E1, U02985, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <0> { [0, parenright, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U1D7D8, U02986, NoSymbol, NoSymbol, NoSymbol, NoSymbol] };
+ key <a> { [a, A, Greek_alpha, Greek_ALPHA, U02200, NoSymbol, U1D4B6, U1D49C, NoSymbol, NoSymbol, U1D552, U1D538, NoSymbol, NoSymbol, U1D51E, U1D504] };
+ key <b> { [b, B, Greek_beta, Greek_BETA, NoSymbol, NoSymbol, U1D4B7, U0212C, NoSymbol, NoSymbol, U1D553, U1D539, NoSymbol, NoSymbol, U1D51F, U1D505] };
+ key <c> { [c, C, Greek_chi, Greek_CHI, U0220B, U0220C, U1D4B8, U1D49E, NoSymbol, NoSymbol, U1D554, U02102, NoSymbol, NoSymbol, U1D520, U0212D] };
+ key <d> { [d, D, Greek_delta, Greek_DELTA, U000F7, NoSymbol, U1D4B9, U1D49F, NoSymbol, NoSymbol, U1D555, U1D53B, NoSymbol, NoSymbol, U1D521, U1D507] };
+ key <e> { [e, E, Greek_epsilon, Greek_EPSILON, U02203, U02204, U0212F, U02130, NoSymbol, NoSymbol, U1D556, U1D53C, NoSymbol, NoSymbol, U1D522, U1D508] };
+ key <f> { [f, F, Greek_phi, Greek_PHI, NoSymbol, NoSymbol, U1D4BB, U02131, NoSymbol, NoSymbol, U1D557, U1D53D, NoSymbol, NoSymbol, U1D523, U1D509] };
+ key <g> { [g, G, Greek_gamma, Greek_GAMMA, NoSymbol, NoSymbol, U0210A, U1D4A2, NoSymbol, NoSymbol, U1D558, U1D53E, NoSymbol, NoSymbol, U1D524, U1D50A] };
+ key <h> { [h, H, Greek_theta, Greek_THETA, NoSymbol, NoSymbol, U1D4BD, U0210B, NoSymbol, NoSymbol, U1D559, U0210D, NoSymbol, NoSymbol, U1D525, U0210C] };
+ key <i> { [i, I, Greek_iota, Greek_IOTA, U02208, U02209, U1D4BE, U02110, NoSymbol, NoSymbol, U1D55A, U1D540, NoSymbol, NoSymbol, U1D526, U02111] };
+ key <j> { [j, J, Greek_eta, Greek_ETA, NoSymbol, NoSymbol, U1D4BF, U1D4A5, NoSymbol, NoSymbol, U1D55B, U1D541, NoSymbol, NoSymbol, U1D527, U1D50D] };
+ key <k> { [k, K, Greek_kappa, Greek_KAPPA, NoSymbol, NoSymbol, U1D4C0, U1D4A6, NoSymbol, NoSymbol, U1D55C, U1D542, NoSymbol, NoSymbol, U1D528, U1D50E] };
+ key <l> { [l, L, Greek_lamda, Greek_LAMDA, NoSymbol, NoSymbol, U1D4C1, U02112, NoSymbol, NoSymbol, U1D55D, U1D543, NoSymbol, NoSymbol, U1D529, U1D50F] };
+ key <m> { [m, M, Greek_mu, Greek_MU, NoSymbol, NoSymbol, U1D4C2, U02133, NoSymbol, NoSymbol, U1D55E, U1D544, NoSymbol, NoSymbol, U1D52A, U1D510] };
+ key <n> { [n, N, Greek_nu, Greek_NU, NoSymbol, NoSymbol, U1D4C3, U1D4A9, NoSymbol, NoSymbol, U1D55F, U02115, NoSymbol, NoSymbol, U1D52B, U1D511] };
+ key <o> { [o, O, Greek_omicron, Greek_OMICRON, U02218, U02219, U02134, U1D4AA, NoSymbol, NoSymbol, U1D560, U1D546, NoSymbol, NoSymbol, U1D52C, U1D512] };
+ key <p> { [p, P, Greek_pi, Greek_PI, U0220F, U02210, U1D4C5, U1D4AB, NoSymbol, NoSymbol, U1D561, U02119, NoSymbol, NoSymbol, U1D52D, U1D513] };
+ key <q> { [q, Q, Greek_psi, Greek_PSI, NoSymbol, NoSymbol, U1D4C6, U1D4AC, NoSymbol, NoSymbol, U1D562, U0211A, NoSymbol, NoSymbol, U1D52E, U1D514] };
+ key <r> { [r, R, Greek_rho, Greek_RHO, NoSymbol, NoSymbol, U1D4C7, U0211B, NoSymbol, NoSymbol, U1D563, U0211D, NoSymbol, NoSymbol, U1D52F, U0211C] };
+ key <s> { [s, S, Greek_sigma, Greek_SIGMA, U02211, NoSymbol, U1D4C8, U1D4AE, NoSymbol, NoSymbol, U1D564, U1D54A, NoSymbol, NoSymbol, U1D530, U1D516] };
+ key <t> { [t, T, Greek_tau, Greek_TAU, NoSymbol, NoSymbol, U1D4C9, U1D4AF, NoSymbol, NoSymbol, U1D565, U1D54B, NoSymbol, NoSymbol, U1D531, U1D517] };
+ key <u> { [u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U1D4CA, U1D4B0, NoSymbol, NoSymbol, U1D566, U1D54C, NoSymbol, NoSymbol, U1D532, U1D518] };
+ key <v> { [v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U1D4CB, U1D4B1, NoSymbol, NoSymbol, U1D567, U1D54D, NoSymbol, NoSymbol, U1D533, U1D519] };
+ key <w> { [w, W, Greek_omega, Greek_OMEGA, NoSymbol, NoSymbol, U1D4CC, U1D4B2, NoSymbol, NoSymbol, U1D568, U1D54E, NoSymbol, NoSymbol, U1D534, U1D51A] };
+ key <x> { [x, X, Greek_xi, Greek_XI, U000D7, NoSymbol, U1D4CD, U1D4B3, NoSymbol, NoSymbol, U1D569, U1D54F, NoSymbol, NoSymbol, U1D535, U1D51B] };
+ key <y> { [y, Y, Greek_upsilon, Greek_UPSILON, NoSymbol, NoSymbol, U1D4CE, U1D4B4, NoSymbol, NoSymbol, U1D56A, U1D550, NoSymbol, NoSymbol, U1D536, U1D51C] };
+ key <z> { [z, Z, Greek_zeta, Greek_ZETA, NoSymbol, NoSymbol, U1D4CF, U1D4B5, NoSymbol, NoSymbol, U1D56B, U02124, NoSymbol, NoSymbol, U1D537, U02128] };
};
-};
-\ No newline at end of file
+};