xkb_keymap { xkb_keycodes "test" { minimum = 8; maximum = 255; = 49; = 10; = 11; = 12; = 13; = 14; = 15; = 16; = 17; = 18; = 19; = 20; = 21; = 22; = 23; = 24; = 25; = 26; = 27; = 28; = 29; = 30; = 31; = 32; = 33; = 34; = 35; = 51; = 36; = 66; = 38; = 39; = 40; = 41; = 42; = 43; = 44; = 45; = 46; = 47; = 48; alias = ; = 50; = 94; = 52; = 53; = 54; = 55; = 56; = 57; = 58; = 59; = 60; = 61; = 62; = 92; = 108; }; xkb_types "complete" { // Define >20 virtual modifiers. This lead to overcome the X11 limit of // 16 virtual modifiers. virtual_modifiers LevelThree = 0x00000100, ModA = 0x00000200, ModB = 0x00000400, ModC = 0x00000800, ModD = 0x00001000, ModE = 0x00002000, ModF = 0x00004000, ModG = 0x00008000, ModH = 0x00010000, ModI = 0x00020000, ModJ = 0x00040000, ModK = 0x00080000, ModL = 0x00100000, ModM = 0x00200000, ModN = 0x00400000, ModO = 0x00800000, ModP = 0x01000000, ModQ = 0x02000000, ModR = 0x04000000, ModS = 0x08000000, ModT = 0x10000000, ModU = 0x20000000, ModV = 0x40000000; type "ONE_LEVEL" { modifiers= none; level_name[Level1]= "Any"; }; type "TWO_LEVEL" { modifiers= Shift; map[Shift]= 2; level_name[1]= "Base"; level_name[2]= "Shift"; }; type "TEST" { modifiers= Shift + LevelThree + ModA + ModB + ModC + ModD + ModE + ModF + ModG + ModH + ModI + ModJ + ModK + ModL + ModM + ModN + ModO + ModP + ModQ + ModR + ModS + ModT + ModU + ModV; map[ModA]= 2; map[ModB]= 3; map[ModC]= 4; map[ModD]= 5; map[ModE]= 6; map[ModF]= 7; map[ModG]= 8; map[ModH]= 9; map[ModI]= 10; map[ModJ]= 11; map[ModK]= 12; map[ModL]= 13; map[ModM]= 14; map[ModN]= 15; map[ModO]= 16; map[ModP]= 17; map[ModQ]= 18; map[ModR]= 19; map[ModS]= 20; map[ModT]= 21; map[ModU]= 22; map[ModV]= 23; map[ModV+Shift]= 24; map[ModA+ModS]= 25; map[ModA+ModQ]= 26; map[LevelThree+ModA]= 27; map[LevelThree+ModA+ModS]= 28; map[ModA+ModB+ModC]= 29; level_name[1]= "1"; level_name[2]= "2"; level_name[3]= "3"; level_name[4]= "4"; level_name[5]= "5"; level_name[6]= "6"; level_name[7]= "7"; level_name[8]= "8"; level_name[9]= "9"; level_name[10]= "10"; level_name[11]= "11"; level_name[12]= "12"; level_name[13]= "13"; level_name[14]= "14"; level_name[15]= "15"; level_name[16]= "16"; level_name[17]= "17"; level_name[18]= "18"; level_name[19]= "19"; level_name[20]= "20"; level_name[21]= "21"; level_name[22]= "22"; level_name[23]= "23"; level_name[24]= "24"; level_name[25]= "25"; level_name[26]= "26"; level_name[27]= "27"; level_name[28]= "28"; level_name[29]= "29"; }; }; xkb_compatibility "complete" { virtual_modifiers LevelThree, ModA, ModB, ModC, ModD; interpret.useModMapMods= AnyLevel; interpret.repeat= False; interpret.locking= False; interpret Any+AnyOf(all) { action= SetMods(modifiers=modMapMods,clearLocks); }; interpret ISO_Level3_Shift+AnyOf(all) { virtualModifier= LevelThree; useModMapMods=level1; action= SetMods(modifiers=LevelThree,clearLocks); }; interpret a { action= SetMods(modifiers=ModA,clearLocks); }; interpret b { action= SetMods(modifiers=ModB,clearLocks); }; interpret c { action= SetMods(modifiers=ModC,clearLocks); }; interpret d { action= SetMods(modifiers=ModD,clearLocks); }; interpret e { action= SetMods(modifiers=ModE,clearLocks); }; interpret f { action= SetMods(modifiers=ModF,clearLocks); }; interpret g { action= SetMods(modifiers=ModG,clearLocks); }; interpret h { action= SetMods(modifiers=ModH,clearLocks); }; interpret i { action= SetMods(modifiers=ModI,clearLocks); }; interpret j { action= SetMods(modifiers=ModJ,clearLocks); }; interpret k { action= SetMods(modifiers=ModK,clearLocks); }; interpret l { action= SetMods(modifiers=ModL,clearLocks); }; interpret m { action= SetMods(modifiers=ModM,clearLocks); }; interpret n { action= SetMods(modifiers=ModN,clearLocks); }; interpret o { action= SetMods(modifiers=ModO,clearLocks); }; interpret p { action= SetMods(modifiers=ModP,clearLocks); }; interpret q { action= SetMods(modifiers=ModQ,clearLocks); }; interpret r { action= SetMods(modifiers=ModR,clearLocks); }; interpret s { action= SetMods(modifiers=ModS,clearLocks); }; interpret t { action= SetMods(modifiers=ModT,clearLocks); }; interpret u { action= SetMods(modifiers=ModU,clearLocks); }; interpret v { action= SetMods(modifiers=ModV,clearLocks); }; }; xkb_symbols { name[group1]="Test"; key { [Shift_L] }; key { [ISO_Level3_Shift] }; key { [ISO_Level3_Shift] }; modmap Shift { }; modmap Mod5 { , }; key {[ q, Q ]}; key {[ w, W ]}; key {[ e, E ]}; key {[ r, R ]}; key {[ t, T ]}; key {[ y, Y ]}; key {[ u, U ]}; key {[ i, I ]}; key {[ o, O ]}; key {[ p, P ]}; key {[ a, A ]}; key {[ s, S ]}; key {[ d, D ]}; key {[ f, F ]}; key {[ g, G ]}; key {[ h, H ]}; key {[ j, J ]}; key {[ k, K ]}; key {[ l, L ]}; key {[ z, Z ]}; key {[ x, X ]}; key {[ c, C ]}; key {[ v, V ]}; key {[ b, B ]}; key {[ n, N ]}; key {[ m, M ]}; key.type[1] = "TEST"; key { [ w, a, b, c, d, e, f, g, h, i, j, k, l, m, n , o, p, q, r, s, t, u, v, V, 1, 2, 3, 4, 5 ] }; }; };