1default partial alphanumeric_keys
2xkb_symbols "ipa" {
3
4      name[Group1]="International Phonetic Alphabet";      // also serves extIPA and orientalistic conversions
5      key.type[Group1]="EIGHT_LEVEL";
6
7//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\
8    key <TLDE> {[    grave, asciitilde,      minutes,               seconds,                U2053,                   NoSymbol,                U2015, asciicircum ]};   // ` ~ ′ ″ SwungDash QuotDash ^
9    key <AE01> {[        1,     exclam,      onesuperior,           exclamdown,             U02E5,                   U030B,                   NoSymbol, NoSymbol ]};   // 1 ! ¹ ¡ ˥ ̋◌┎────┒
10    key <AE02> {[        2,   quotedbl,      twosuperior,           oneeighth,              U02E6,                   U0301,                   U25CB,    U20DD    ]};   // 2 " ² ⅛ ˦ ́◌┃○ ⃝ ┃
11    key <AE03> {[        3,    section,      threesuperior,         sterling,               U02E7,                   U0304,                   NoSymbol, U0348    ]};   // 3 § ³ £ ˧ ̄◌┖─┒◌͆ ┃
12    key <AE04> {[        4,     dollar,      onequarter,            currency,               U02E8,                   U0300,                   NoSymbol, U032A    ]};   // 4 $ ¼ ¤ ˨ ̀◌  ┃̪◌ ┃
13    key <AE05> {[        5,    percent,      U0331,                 threeeighths,           U02E9,                   U030F,                   NoSymbol, U0347    ]};   // 5 % ̱◌ ⅜ ˩ ̏◌  ┃◌͇ ┃
14    key <AE06> {[        6,  ampersand,      U032E,                 fiveeighths,            U0323,                   U0311,                   NoSymbol, U02EC    ]};   // 6 & ̮◌ ⅝ ̣◌ ̑◌  ┃ˬ ┃
15    key <AE07> {[        7,      slash,      braceleft,             seveneighths,           U0307,                   U0313,                   NoSymbol, U02ED    ]};   // 7 / { ⅞ ̇◌ ̓◌  ┃˭ ┃  Disordered
16    key <AE08> {[        8,  parenleft,      bracketleft,           U2E28,                  U27E8,                   U032D,                   U27EA,    U0354    ]};   // 8 ( [ ⸨ ⟨ ̭◌ ⟪┃◌͔┃  Speech
17    key <AE09> {[        9, parenright,      bracketright,          U2E29,                  U27E9,                   NoSymbol,                U27EB,    U0355    ]};   // 9 ) ] ⸩ ⟩   ⟫┃◌͕┃
18    key <AE10> {[        0,      equal,      braceright,            degree,                 U02BE,                   notequal,                U2248,    U034E    ]};   // 0 = } ° ʾ ≠ ≈┃◌͎ ┃
19                                                                                                                                                                       //              ┃  ┃
20    key <AE11> {[    U0294,   question,      backslash,             questiondown,           U0295,                   U02A1,                   U02A2,    U0362    ]};   // ʔ ? \ ¿ ʕ ʡ ʢ┃◌‌͢◌┃
21                                                                                                                                                                       //          ┎───┚  ┃
22    key <AE12> {[    U2197,      U2198,      UA71C,                 UA71B,                  U02BF,                   asterisk,                U2193,    U2191    ]};   // ↗ ↘ ꜜ ꜛ ʿ┃* ↓ ↑ ┃
23//─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────//──────────┸──────┸───────────────\\
24    key <AD01> {[        q,      U025C,      at,                    Greek_OMEGA,            U02DE,                   NoSymbol,                U20BD,    Q        ]};   // q ɜ @ Ω ˞   ₽ Q
25    key <AD02> {[        w,      U028D,      U0270,                 NoSymbol,               U026F,                   NoSymbol,                U031D,    W        ]};   // w ʍ ɰ   ɯ   ̝◌ W
26    key <AD03> {[        e,      schwa,      U025B,                 U025C,                  U0258,                   NoSymbol,                EuroSign, E        ]};   // e ə ɛ ɜ ɘ   € E
27    key <AD04> {[        r,      U027E,      U0281,                 U0280,                  U0279,                   U027B,                   U027D,    R        ]};   // r ɾ ʁ ʀ ɹ ɻ ɽ R
28    key <AD05> {[        t,Greek_theta,      U0288,                 NoSymbol,               U01C0,                   U01C1,                   U01C2,    T        ]};   // t θ ʈ   ǀ ǁ ǂ T
29    key <AD06> {[        z,      U0292,      U0291,                 U0293,                  U0290,                   U026E,                   U261C,    Z        ]};   // z ʒ ʑ ʓ ʐ ɮ ☜ Z
30    key <AD07> {[        u,      U028A,      U0289,                 U028C,                  U025E,                   U02AA,                   U261D,    U        ]};   // u ʊ ʉ ʌ ɞ ʪ ☝ U
31    key <AD08> {[        i,      U026A,      U0268,                 U0264,                  U0275,                   U02AB,                   U261F,    I        ]};   // i ɪ ɨ ɤ ɵ ʫ ☟ I
32    key <AD09> {[        o,      U0254,      oslash,                oe,                     U032A,                   U025E,                   U261E,    O        ]};   // o ɔ ø œ ̪◌ ɞ ☞ O
33    key <AD10> {[        p,      U0303,      U031F,                 U2038,                  U033A,                   NoSymbol,                U1D513,   P        ]};   // p ̃◌ ̟◌ ‸ ̻̺◌   ��  P
34                                                                                                                                                                       //              ┎─┒
35    key <AD11> {[    U02E4,      U0330,      U0308,                 U033D,                  U033B,                   U02C0,                   U02C1,    U02AC    ]};   // ˤ ̰◌ ̈◌ ̽◌ ̻◌ ˀ ˁ┃ʬ┃
36    key <AD12> {[    U02D0,      U02D1,      U0320,                 U0304,                  U033C,                   NoSymbol,                NoSymbol, U02AD    ]};   // ː ˑ ̠◌ ̄◌ ̼◌    ┃ʭ┃
37//─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────//──────────────┸─┸────────────────\\
38    key <AC01> {[        a,      U0251,      ae,                    U0252,                  U0250,                   U0276,                   U031E,    A        ]};   // a ɑ æ ɒ ɐ ɶ ̞◌ A
39    key <AC02> {[        s,      U0283,      NoSymbol,              U0286,                  U0282,                   U031C,                   U0318,    S        ]};   // s ʃ   ʆ ʂ ̜◌ ̘◌ S
40    key <AC03> {[        d,        eth,      U0256,                 U0257,                  U1D91,                   U0339,                   U0319,    D        ]};   // d ð ɖ ɗ ᶑ ̹◌ ̙◌ D
41                                                                                                                                                                       //            ┎─┒
42    key <AC04> {[        f,      U0278,      NoSymbol,              NoSymbol,               NoSymbol,                NoSymbol,                U02A9,    F        ]};   // f ɸ        ┃ʩ┃F
43                                                                                                                                                                       //            ┖─┚
44    key <AC05> {[        g,      U0263,      U0262,                 U0260,                  U029B,                   U0261,                   U20B8,    G        ]};   // g ɣ ɢ ɠ ʛ ɡ ₸ G
45    key <AC06> {[        h,      U0266,      U0267,                 U029C,                  hstroke,                 NoSymbol,                U20B4,    H        ]};   // h ɦ ɧ ʜ ħ   ₴ H
46    key <AC07> {[        j,      U029D,      U025F,                 U0284,                  NoSymbol,                NoSymbol,                NoSymbol, J        ]};   // j ʝ ɟ ʄ       J
47    key <AC08> {[        k,      U02B0,      U02B1,                 U029E,                  NoSymbol,                UA78E,                   U2113,    K        ]};   // k ʰ ʱ ʞ   ꞎ ℓ K
48    key <AC09> {[        l,      U028E,      U026B,                 U026C,                  U029F,                   U026D,                   U027A,    L        ]};   // l ʎ ɫ ɬ ʟ ɭ ɺ L
49                                                                                                                                                                       //            ┎────┒
50    key <AC10> {[    U02B2,      U02B7,      U02E0,                 U02B8,                  U207F,                   U02E1,                   U034C,    U034D    ]};   // ʲ ʷ ˠ ʸ ⁿ ˡ┃◌͌ ◌͍ ┃  Disordered
51    key <AC11> {[    U032F,      U0325,      U032C,                 U030C,                  U031A,                   U0327,                   U034B,    U0348    ]};   // ̯◌ ̥◌ ̬◌ ̌◌◌̚ ̧◌┃◌͋ ◌͈ ┃  Speech
52    key <BKSL> {[    U0329,      U02C8,      U02CC,                 U0306,                  U02BC,                   U0328,                   U034A,    U0349    ]};   // ̩◌ ˈ ˌ ̆◌ ʼ ̨◌┃◌͊ ◌‌͉┃
53//─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────//────────────┸────┸───────────────\\
54    key <LSGT> {[      bar,      U2016,      U203F,                 U035C,                  U0361,                   NoSymbol,                NoSymbol, NoSymbol ]};   // | ‖ ‿ ◌͜◌ ◌͡◌
55    key <AB01> {[        y,      U028F,      guillemotright,        U203A,                  U0265,                   NoSymbol,                U0287,    Y        ]};   // y ʏ » › ɥ   ʇ Y
56    key <AB02> {[        x,  Greek_chi,      guillemotleft,         U2039,                  UA725,                   UA724,                   U0297,    X        ]};   // x χ « ‹ ꜥ Ꜥ ʗ X
57    key <AB03> {[        c,   ccedilla,      U0255,                 U023C,                  UA723,                   UA722,                   U0296,    C        ]};   // c ç ɕ ȼ ꜣ Ꜣ ʖ C
58    key <AB04> {[        v,      U028B,      U2C71,                 U0274,                  doublelowquotemark,      singlelowquotemark,      NoSymbol, V        ]};   // v ʋ ⱱ ɴ „ ‚   V
59    key <AB05> {[        b, Greek_beta,      U0299,                 U0253,                  leftdoublequotemark,     leftsinglequotemark,     U0298,    B        ]};   // b β ʙ ɓ “ ‘ ʘ B
60    key <AB06> {[        n,        eng,      U0272,                 U0273,                  rightdoublequotemark,    rightsinglequotemark,    U01C3,    N        ]};   // n ŋ ɲ ɳ ” ’ ǃ N
61    key <AB07> {[        m,      U0271,      mu,                    U22C5,                  U0298,                   U01C3,                   U20BC,    M        ]};   // m ɱ µ ⋅ ʘ ǃ ₼ M
62    key <AB08> {[    comma,  semicolon,      periodcentered,        multiply,               U2020,                   U2021,                   NoSymbol, NoSymbol ]};   // , ; · × † ‡
63    key <AB09> {[   period,      colon,      ellipsis,              division,               enfilledcircbullet,      NoSymbol,                NoSymbol, NoSymbol ]};   // . : … ÷ •
64    key <AB10> {[    minus, underscore,      endash,                emdash,                 U2011,                   U00AD,                   U2010,    U2212    ]};   // - _ – — NoBrHyphen SHy Hy Minus
65//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\
66                                                                                                              //│\\
67// Makes <KPDL> return comma instead of dot, as the comma is decimal separator outside the English dominions  //��\\
68                include "kpdl(comma)"                                                                         //│\\
69                                                                                                              //│\\
70// Maps Right Alt for reaching the third level                                                                //��\\
71                include "level3(ralt_switch)"                                                                 //│\\
72                                                                                                              //│\\
73// Maps <CAPS> for reaching the fifth level                                                                   //��\\
74                include "level5(caps_switch)"                                                                 //│\\
75                                                                                                              //��\\
76// Offers pressing both shift keys for capslock                                                               //│\\
77                include "shift(both_shiftlock)"                                                               //│\\��
78                                                                                                              //│\│╱��
79//──────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─┘˝˝
80
81// Note about a bug in XKB: One has to set lv5:rwin_switch_lock or one of the other level 5 locks for the caps switch to work!
82// https://bugs.freedesktop.org/show_bug.cgi?id=102189
83};
84
85partial alphanumeric_keys
86xkb_symbols "qwerty" {
87    include "trans(ipa)"
88
89    name[Group1] = "International Phonetic Alphabet (QWERTY)";
90
91    key <AB01> {[        z,      U0292,      U0291,                 U0293,                  U0290,                   U026E,                   U261C,    Z        ]};   // z ʒ ʑ ʓ ʐ ɮ ☜ Z
92    key <AD06> {[        y,      U028F,      guillemotright,        U203A,                  U0265,                   NoSymbol,                U0287,    Y        ]};   // y ʏ » › ɥ   ʇ Y
93};
94