default hidden partial modifier_keys xkb_symbols "capslock" { replace key { [ Caps_Lock ], type[group1] = "ONE_LEVEL" }; modifier_map Lock { Caps_Lock }; }; hidden partial modifier_keys xkb_symbols "shiftlock" { replace key { [ Shift_Lock ], type[group1] = "ONE_LEVEL" }; modifier_map Shift { Shift_Lock }; }; hidden partial modifier_keys xkb_symbols "swapescape" { key { [ Escape ], type[group1] = "ONE_LEVEL" }; key { [ Caps_Lock ] }; }; hidden partial modifier_keys xkb_symbols "escape" { key { [ Escape ], type[group1] = "ONE_LEVEL" }; }; hidden partial modifier_keys xkb_symbols "escape_shifted_capslock" { key { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Escape, Caps_Lock ], actions[Group1] = [ NoAction(), LockMods(modifiers = Lock) ] }; }; hidden partial modifier_keys xkb_symbols "escape_shifted_compose" { key { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Escape, Multi_key ], actions[Group1] = [ NoAction(), NoAction() ] }; }; hidden partial modifier_keys xkb_symbols "backspace" { key { [ BackSpace ], type[group1] = "ONE_LEVEL" }; }; hidden partial modifier_keys xkb_symbols "super" { key { [ Super_L ], type[group1] = "ONE_LEVEL" }; modifier_map Mod4 { }; }; hidden partial modifier_keys xkb_symbols "hyper" { key { [ Hyper_L ], type[group1] = "ONE_LEVEL" }; modifier_map Mod4 { }; }; hidden partial modifier_keys xkb_symbols "menu" { key { [ Menu ], type[group1] = "ONE_LEVEL" }; }; hidden partial modifier_keys xkb_symbols "numlock" { key { [ Num_Lock ], type[group1] = "ONE_LEVEL" }; }; // This changes the key to become a Control modifier, // but it will still produce the Caps_Lock keysym; this is // useful for apps that need to distinguish it from usual // Control_L and Control_R. hidden partial modifier_keys xkb_symbols "ctrl_modifier" { replace key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Caps_Lock ], actions[Group1] = [ SetMods(modifiers=Control) ] }; modifier_map Control { }; }; hidden partial modifier_keys xkb_symbols "none" { key { [ VoidSymbol ], type[group1] = "ONE_LEVEL" }; }; // For layouts having digits on the 2nd level on the digits row and key type // FOUR_LEVEL (e.g. fr(basic) and be(basic)), this makes CapsLock give the digits // by changing their key type to FOUR_LEVEL_SEMIALPHABETIC. Note that this has the // drawback that the uppercases À, È, É and Ç are no longer available, as those // layouts rely on internal capitalization rules for those letters. hidden partial alphanumeric_keys xkb_symbols "digits_row" { key.type[group1] = "FOUR_LEVEL_SEMIALPHABETIC"; // No symbol defined: we just want to change the key type key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; };