1797b363dSmrg// These partial variants assign ISO_Level5_Shift to various XKB keycodes 2797b363dSmrg// so that the fifth shift level can be reached. 3154daed1Smrg 4797b363dSmrg// The right Ctrl key (while pressed) chooses the fifth shift level. 5154daed1Smrgpartial modifier_keys 6154daed1Smrgxkb_symbols "rctrl_switch" { 7154daed1Smrg key <RCTL> { 8154daed1Smrg type[Group1]="ONE_LEVEL", 95a35480eSmrg symbols[Group1] = [ ISO_Level5_Shift ] 10797b363dSmrg }; 11154daed1Smrg}; 12c067fea9Sghen 13797b363dSmrg// The Less/Greater key (while pressed) chooses the fifth shift level. 14c067fea9Sghenpartial modifier_keys 15c067fea9Sghenxkb_symbols "lsgt_switch" { 16c067fea9Sghen key <LSGT> { 17c067fea9Sghen type[Group1]="ONE_LEVEL", 18c067fea9Sghen symbols[Group1] = [ ISO_Level5_Shift ] 19797b363dSmrg }; 20c067fea9Sghen}; 21c067fea9Sghen 22797b363dSmrg// The right Alt key (while pressed) chooses the fifth shift level. 23c067fea9Sghenpartial modifier_keys 24c067fea9Sghenxkb_symbols "ralt_switch" { 25c067fea9Sghen key <RALT> { 26c067fea9Sghen type[Group1]="ONE_LEVEL", 27c067fea9Sghen symbols[Group1] = [ ISO_Level5_Shift ] 28797b363dSmrg }; 29c067fea9Sghen}; 30c067fea9Sghen 312ab00627Smrg// The CapsLock key (while pressed) chooses the fifth shift level. 322ab00627Smrgpartial modifier_keys 332ab00627Smrgxkb_symbols "caps_switch" { 342ab00627Smrg key <CAPS> { 352ab00627Smrg type[Group1]="ONE_LEVEL", 362ab00627Smrg symbols[Group1] = [ ISO_Level5_Shift ] 372ab00627Smrg }; 382ab00627Smrg}; 392ab00627Smrg 4046185892Smrg// The Menu key (while pressed) chooses the fifth shift level. 41797b363dSmrgpartial modifier_keys 4246185892Smrgxkb_symbols "menu_switch" { 4346185892Smrg key <MENU> { 4446185892Smrg type[Group1]="ONE_LEVEL", 45797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift ] 46797b363dSmrg }; 47797b363dSmrg}; 48c067fea9Sghen 4946185892Smrg// This adds the definitions needed to create a level5-locking behaviour, 5046185892Smrg// using the virtual modifier NumLock (mapped to Mod2) as lock indicator. 5146185892Smrg// See also types/level5 (EIGHT_LEVEL_LEVEL_FIVE_LOCK) and compat/level5 (level5_lock). 52c067fea9Sghenpartial modifier_keys 53c067fea9Sghenxkb_symbols "lock" { 54c067fea9Sghen replace key <HYPR> { 55c067fea9Sghen vmods = NumLock, 5646185892Smrg type[Group1] = "ONE_LEVEL", 57c067fea9Sghen symbols[Group1] = [ NoSymbol ], 58c067fea9Sghen actions[Group1] = [ SetMods(modifiers=NumLock) ] 59c067fea9Sghen }; 60c067fea9Sghen modifier_map Mod2 { <HYPR> }; 61c067fea9Sghen}; 62c067fea9Sghen 63797b363dSmrg// The following modifier keys are used to switch to the third shift level 64797b363dSmrg// and to set a corresponding lock, implemented as NumLock. 65797b363dSmrg 66c067fea9Sghenpartial modifier_keys 67c067fea9Sghenxkb_symbols "lsgt_switch_lock" { 68c067fea9Sghen include "level5(lock)" 69c067fea9Sghen key <LSGT> { 70c067fea9Sghen type[Group1] = "EIGHT_LEVEL", 71797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 72797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 73c067fea9Sghen }; 74c067fea9Sghen}; 75c067fea9Sghen 76c067fea9Sghenpartial modifier_keys 77c067fea9Sghenxkb_symbols "lwin_switch_lock" { 78c067fea9Sghen include "level5(lock)" 79c067fea9Sghen key <LWIN> { 80c067fea9Sghen type[Group1] = "EIGHT_LEVEL", 81797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 82797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 83c067fea9Sghen }; 84c067fea9Sghen}; 85c067fea9Sghen 86c067fea9Sghenpartial modifier_keys 87c067fea9Sghenxkb_symbols "ralt_switch_lock" { 88c067fea9Sghen include "level5(lock)" 89c067fea9Sghen key <RALT> { 90c067fea9Sghen type[Group1] = "EIGHT_LEVEL", 91797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 92797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 93c067fea9Sghen }; 94c067fea9Sghen}; 95c067fea9Sghen 96c067fea9Sghenpartial modifier_keys 97c067fea9Sghenxkb_symbols "rwin_switch_lock" { 98c067fea9Sghen include "level5(lock)" 99c067fea9Sghen key <RWIN> { 100c067fea9Sghen type[Group1] = "EIGHT_LEVEL", 101797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 102797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 103c067fea9Sghen }; 104c067fea9Sghen}; 105c067fea9Sghen 106c067fea9Sghenpartial modifier_keys 107c067fea9Sghenxkb_symbols "lsgt_switch_lock_cancel" { 108c067fea9Sghen include "level5(lock)" 109c067fea9Sghen key <LSGT> { 110c067fea9Sghen type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 111797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 112797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 113c067fea9Sghen }; 114c067fea9Sghen}; 115c067fea9Sghen 116c067fea9Sghenpartial modifier_keys 117c067fea9Sghenxkb_symbols "lwin_switch_lock_cancel" { 118c067fea9Sghen include "level5(lock)" 119c067fea9Sghen key <LWIN> { 120c067fea9Sghen type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 121797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 122797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 123c067fea9Sghen }; 124c067fea9Sghen}; 125c067fea9Sghen 126c067fea9Sghenpartial modifier_keys 127c067fea9Sghenxkb_symbols "ralt_switch_lock_cancel" { 128c067fea9Sghen include "level5(lock)" 129c067fea9Sghen key <RALT> { 130c067fea9Sghen type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 131797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 132797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 133c067fea9Sghen }; 134c067fea9Sghen}; 135c067fea9Sghen 136c067fea9Sghenpartial modifier_keys 137c067fea9Sghenxkb_symbols "rwin_switch_lock_cancel" { 138c067fea9Sghen include "level5(lock)" 139c067fea9Sghen key <RWIN> { 140c067fea9Sghen type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 141797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 142797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 143c067fea9Sghen }; 144c067fea9Sghen}; 145