level5 revision 2ab00627
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 }; 110412cdedSmrg include "level5(modifier_mapping)" 12154daed1Smrg}; 13c067fea9Sghen 14797b363dSmrg// The Less/Greater key (while pressed) chooses the fifth shift level. 15c067fea9Sghenpartial modifier_keys 16c067fea9Sghenxkb_symbols "lsgt_switch" { 17c067fea9Sghen key <LSGT> { 18c067fea9Sghen type[Group1]="ONE_LEVEL", 19c067fea9Sghen symbols[Group1] = [ ISO_Level5_Shift ] 20797b363dSmrg }; 210412cdedSmrg include "level5(modifier_mapping)" 22c067fea9Sghen}; 23c067fea9Sghen 24797b363dSmrg// The right Alt key (while pressed) chooses the fifth shift level. 25c067fea9Sghenpartial modifier_keys 26c067fea9Sghenxkb_symbols "ralt_switch" { 27c067fea9Sghen key <RALT> { 28c067fea9Sghen type[Group1]="ONE_LEVEL", 29c067fea9Sghen symbols[Group1] = [ ISO_Level5_Shift ] 30797b363dSmrg }; 310412cdedSmrg include "level5(modifier_mapping)" 32c067fea9Sghen}; 33c067fea9Sghen 342ab00627Smrg// The CapsLock key (while pressed) chooses the fifth shift level. 352ab00627Smrgpartial modifier_keys 362ab00627Smrgxkb_symbols "caps_switch" { 372ab00627Smrg key <CAPS> { 382ab00627Smrg type[Group1]="ONE_LEVEL", 392ab00627Smrg symbols[Group1] = [ ISO_Level5_Shift ] 402ab00627Smrg }; 412ab00627Smrg include "level5(modifier_mapping)" 422ab00627Smrg}; 432ab00627Smrg 44797b363dSmrg// Ensure a mapping to a real modifier for LevelFive. 45797b363dSmrgpartial modifier_keys 46797b363dSmrgxkb_symbols "modifier_mapping" { 47797b363dSmrg replace key <MDSW> { 48797b363dSmrg type[Group1] = "ONE_LEVEL", 49797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift ] 50797b363dSmrg }; 51797b363dSmrg modifier_map Mod3 { <MDSW> }; 52797b363dSmrg}; 53c067fea9Sghen 54c067fea9Sghen 55797b363dSmrg// This adds the definitions needed to create a level5-lock behaviour, using 56797b363dSmrg// the real modifier NumLock as a lock indicator. 57797b363dSmrg// See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK 58797b363dSmrg// See also: compat/level5(level5_lock) 59c067fea9Sghenpartial modifier_keys 60c067fea9Sghenxkb_symbols "lock" { 61c067fea9Sghen key.type[Group1] = "ONE_LEVEL"; 620412cdedSmrg include "level5(modifier_mapping)" 63c067fea9Sghen replace key <HYPR> { 64c067fea9Sghen vmods = NumLock, 65c067fea9Sghen symbols[Group1] = [ NoSymbol ], 66c067fea9Sghen actions[Group1] = [ SetMods(modifiers=NumLock) ] 67c067fea9Sghen }; 68c067fea9Sghen modifier_map Mod2 { <HYPR> }; 69c067fea9Sghen}; 70c067fea9Sghen 71797b363dSmrg// The following modifier keys are used to switch to the third shift level 72797b363dSmrg// and to set a corresponding lock, implemented as NumLock. 73797b363dSmrg 74c067fea9Sghenpartial modifier_keys 75c067fea9Sghenxkb_symbols "lsgt_switch_lock" { 76c067fea9Sghen include "level5(lock)" 77c067fea9Sghen key <LSGT> { 78c067fea9Sghen type[Group1] = "EIGHT_LEVEL", 79797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 80797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 81c067fea9Sghen }; 82c067fea9Sghen}; 83c067fea9Sghen 84c067fea9Sghenpartial modifier_keys 85c067fea9Sghenxkb_symbols "lwin_switch_lock" { 86c067fea9Sghen include "level5(lock)" 87c067fea9Sghen key <LWIN> { 88c067fea9Sghen type[Group1] = "EIGHT_LEVEL", 89797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 90797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 91c067fea9Sghen }; 92c067fea9Sghen}; 93c067fea9Sghen 94c067fea9Sghenpartial modifier_keys 95c067fea9Sghenxkb_symbols "ralt_switch_lock" { 96c067fea9Sghen include "level5(lock)" 97c067fea9Sghen key <RALT> { 98c067fea9Sghen type[Group1] = "EIGHT_LEVEL", 99797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 100797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 101c067fea9Sghen }; 102c067fea9Sghen}; 103c067fea9Sghen 104c067fea9Sghenpartial modifier_keys 105c067fea9Sghenxkb_symbols "rwin_switch_lock" { 106c067fea9Sghen include "level5(lock)" 107c067fea9Sghen key <RWIN> { 108c067fea9Sghen type[Group1] = "EIGHT_LEVEL", 109797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 110797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 111c067fea9Sghen }; 112c067fea9Sghen}; 113c067fea9Sghen 114c067fea9Sghenpartial modifier_keys 115c067fea9Sghenxkb_symbols "lsgt_switch_lock_cancel" { 116c067fea9Sghen include "level5(lock)" 117c067fea9Sghen key <LSGT> { 118c067fea9Sghen type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 119797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 120797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 121c067fea9Sghen }; 122c067fea9Sghen}; 123c067fea9Sghen 124c067fea9Sghenpartial modifier_keys 125c067fea9Sghenxkb_symbols "lwin_switch_lock_cancel" { 126c067fea9Sghen include "level5(lock)" 127c067fea9Sghen key <LWIN> { 128c067fea9Sghen type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 129797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 130797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 131c067fea9Sghen }; 132c067fea9Sghen}; 133c067fea9Sghen 134c067fea9Sghenpartial modifier_keys 135c067fea9Sghenxkb_symbols "ralt_switch_lock_cancel" { 136c067fea9Sghen include "level5(lock)" 137c067fea9Sghen key <RALT> { 138c067fea9Sghen type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 139797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 140797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 141c067fea9Sghen }; 142c067fea9Sghen}; 143c067fea9Sghen 144c067fea9Sghenpartial modifier_keys 145c067fea9Sghenxkb_symbols "rwin_switch_lock_cancel" { 146c067fea9Sghen include "level5(lock)" 147c067fea9Sghen key <RWIN> { 148c067fea9Sghen type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 149797b363dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 150797b363dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 151c067fea9Sghen }; 152c067fea9Sghen}; 153