partial alphanumeric_keys modifier_keys keypad_keys xkb_symbols "kou" { include "de(koy_base)" key.type[Group1] = "EIGHT_LEVEL_WITH_LEVEL5_LOCK"; // level 4: replace numero sign by heavy check mark (key 3) key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, U2714, NoSymbol, NoSymbol, NoSymbol ] }; // level 4: use unused place for heavy ballot X (key 4) key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, U2718, NoSymbol, NoSymbol, NoSymbol ] }; // level 4: replace middle dot on key 5 with WHITE MEDIUM STAR key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, U2B50, NoSymbol, NoSymbol, NoSymbol ] }; // level 4: move middle dot "·" from key 5 to key 7 (replacing the currency sign "¤") key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, periodcentered, NoSymbol, NoSymbol, NoSymbol ] }; // move comma and endash to QWERTZ-C key key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_WITH_LEVEL5_LOCK"; // move f and ssharp keys to new positions, replace at by rightarrow; level4: replace period with semicolon key { [ f, F, ampersand, Greek_phi, KP_Add, KP_Add, Greek_PHI, NoSymbol ] }; key { [ ssharp, U1E9E, rightarrow, Greek_finalsmallsigma, semicolon, KP_Decimal, jot, NoSymbol ] }; // rotate x, q, z, j and v key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; key { [ v, V, NoSymbol, radical, NoSymbol, NoSymbol, multiply, NoSymbol ] }; // swap u, y and ä (and comma, but not here) key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; // swap b, d and p key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; // level3: replace long s by Euro sign key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; // level3: put braces ({, }) in upper row key { symbols[Group1] = [ NoSymbol, NoSymbol, braceleft, NoSymbol, Up, NoSymbol, NoSymbol, NoSymbol ], actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), RedirectKey(key=), NoAction(), NoAction(), NoAction() ]}; key { [ NoSymbol, NoSymbol, braceright, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; // level3: swap underscore and percent key { [ NoSymbol, NoSymbol, percent, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, underscore, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; // level3: replace … by @ key { [ NoSymbol, NoSymbol, at, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; // level3: rearrangement of the home row key { symbols[Group1] = [ NoSymbol, NoSymbol, bar, NoSymbol, Home, Home, NoSymbol, NoSymbol ], actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), RedirectKey(key=), RedirectKey(key=), NoAction(), NoAction() ]}; key { symbols[Group1] = [ NoSymbol, NoSymbol, grave, NoSymbol, Left, Left, NoSymbol, NoSymbol ], actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), RedirectKey(key=), RedirectKey(key=), NoAction(), NoAction() ]}; key { symbols[Group1] = [ NoSymbol, NoSymbol, parenleft, NoSymbol, Down, Down, NoSymbol, NoSymbol ], actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), RedirectKey(key=), RedirectKey(key=), NoAction(), NoAction() ]}; key { symbols[Group1] = [ NoSymbol, NoSymbol, parenright, NoSymbol, Right, Right, NoSymbol, NoSymbol ], actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), RedirectKey(key=), RedirectKey(key=), NoAction(), NoAction() ]}; key { [ NoSymbol, NoSymbol, slash, NoSymbol, 4, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, colon, NoSymbol, 5, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, underscore, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; // level3: rearrangement of the bottom row key { [ NoSymbol, NoSymbol, bracketleft, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, bracketright, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, dollar, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, quotedbl, NoSymbol, 1, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, apostrophe, NoSymbol, 2, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, backslash, NoSymbol, 3, NoSymbol, NoSymbol, NoSymbol ] }; // level 4: rotate page down, backspace and delete key { symbols[Group1] = [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Next, Next, NoSymbol, NoSymbol ], actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), RedirectKey(key=), RedirectKey(key=), NoAction(), NoAction() ]}; key { symbols[Group1] = [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, BackSpace, BackSpace, NoSymbol, NoSymbol ], actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), RedirectKey(key=), RedirectKey(key=), NoAction(), NoAction() ]}; key { symbols[Group1] = [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Delete, Delete, NoSymbol, NoSymbol ], actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), RedirectKey(key=), RedirectKey(key=), NoAction(), NoAction() ]}; // level4: rotate escape, insert and return; replace undo with thumbs up sign key { symbols[Group1] = [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Insert, Insert, NoSymbol, NoSymbol ], actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), RedirectKey(key=), RedirectKey(key=), NoAction(), NoAction() ]}; key { symbols[Group1] = [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Return, Return, NoSymbol, NoSymbol ], actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), RedirectKey(key=), RedirectKey(key=), NoAction(), NoAction() ]}; key { symbols[Group1] = [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Escape, Escape, NoSymbol, NoSymbol ], actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), RedirectKey(key=), RedirectKey(key=), NoAction(), NoAction() ]}; key { [NoSymbol, NoSymbol, NoSymbol, NoSymbol, underscore, Undo, NoSymbol, NoSymbol ]}; // level4: swap . and ; // key BKSL was already changed above // key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, semicolon, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, period, KP_Decimal, NoSymbol, NoSymbol ] }; // level4: replace ¡ by : key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, colon, NoSymbol, NoSymbol, NoSymbol ] }; // level4: replace ¿ by - key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, minus, NoSymbol, NoSymbol, NoSymbol ] }; // level4: replace : by _ key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, 0, NoSymbol, NoSymbol, NoSymbol ] }; name[Group1]= "German (KOU)"; include "shift(both_capslock)" include "level3(caps_switch)" // use quote key (a-umlaut on German keyboards) as Mod3 switch include "level3(quote_switch)" include "level5(lsgt_switch_lock)" include "level5(ralt_switch_lock)" }; partial alphanumeric_keys xkb_symbols "vou" { include "de(kou)" key { [ k, K, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ l, L, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ h, H, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ c, C, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; name[Group1]= "German (VOU)"; include "shift(both_capslock)" include "level3(caps_switch)" // use quote key (a-umlaut on German keyboards) as Mod3 switch include "level3(quote_switch)" include "level5(lsgt_switch_lock)" include "level5(ralt_switch_lock)" };