// these variants assign various XKB keycodes to ISO_Level5_Shift so that // the third shift level can be reached // // using the level(switch) map, the right Control key temporarily // chooses the fifth shift level (until it is released). partial modifier_keys xkb_symbols "rctrl_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] }; modifier_map Mod3 { ISO_Level5_Shift }; }; partial modifier_keys xkb_symbols "lsgt_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] }; modifier_map Mod3 { ISO_Level5_Shift }; }; partial modifier_keys xkb_symbols "ralt_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] }; modifier_map Mod3 { ISO_Level5_Shift }; }; // The following modifier keys are used to switch to the third shift and to set a // corresponding lock, implemented as NumLock. partial modifier_keys xkb_symbols "lock" { // This adds the definitions needed to create a level5-lock behaviour, using // the real modifier NumLock as a lock indicator. // See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK // See also: compat/level5(level5_lock) key.type[Group1] = "ONE_LEVEL"; replace key { vmods = LevelFive, symbols[Group1] = [ ISO_Level5_Shift ], actions[Group1] = [ SetMods(modifiers=LevelFive) ] }; modifier_map Mod3 { }; replace key { vmods = NumLock, symbols[Group1] = [ NoSymbol ], actions[Group1] = [ SetMods(modifiers=NumLock) ] }; modifier_map Mod2 { }; }; partial modifier_keys xkb_symbols "lsgt_switch_lock" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "lwin_switch_lock" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "ralt_switch_lock" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "rwin_switch_lock" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "lsgt_switch_lock_cancel" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "lwin_switch_lock_cancel" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "ralt_switch_lock_cancel" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "rwin_switch_lock_cancel" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; };