level5 revision 9ea7388f
1428d7b3dSmrg// These partial variants assign ISO_Level5_Shift to various XKB keycodes 2428d7b3dSmrg// so that the fifth shift level can be reached. 3428d7b3dSmrg 4428d7b3dSmrg// The right Ctrl key (while pressed) chooses the fifth shift level. 5428d7b3dSmrgpartial modifier_keys 6428d7b3dSmrgxkb_symbols "rctrl_switch" { 7428d7b3dSmrg key <RCTL> { 8428d7b3dSmrg type[Group1]="ONE_LEVEL", 9428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift ] 10428d7b3dSmrg }; 11428d7b3dSmrg include "level5(modifier_mapping)" 12428d7b3dSmrg}; 13428d7b3dSmrg 14428d7b3dSmrg// The Less/Greater key (while pressed) chooses the fifth shift level. 15428d7b3dSmrgpartial modifier_keys 16428d7b3dSmrgxkb_symbols "lsgt_switch" { 17428d7b3dSmrg key <LSGT> { 18428d7b3dSmrg type[Group1]="ONE_LEVEL", 19428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift ] 20428d7b3dSmrg }; 21428d7b3dSmrg include "level5(modifier_mapping)" 22428d7b3dSmrg}; 23428d7b3dSmrg 24428d7b3dSmrg// The right Alt key (while pressed) chooses the fifth shift level. 25428d7b3dSmrgpartial modifier_keys 26428d7b3dSmrgxkb_symbols "ralt_switch" { 27428d7b3dSmrg key <RALT> { 28428d7b3dSmrg type[Group1]="ONE_LEVEL", 29428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift ] 30428d7b3dSmrg }; 31428d7b3dSmrg include "level5(modifier_mapping)" 32428d7b3dSmrg}; 33428d7b3dSmrg 34428d7b3dSmrg// The CapsLock key (while pressed) chooses the fifth shift level. 35428d7b3dSmrgpartial modifier_keys 36428d7b3dSmrgxkb_symbols "caps_switch" { 37428d7b3dSmrg key <CAPS> { 38428d7b3dSmrg type[Group1]="ONE_LEVEL", 39428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift ] 40428d7b3dSmrg }; 41428d7b3dSmrg include "level5(modifier_mapping)" 42428d7b3dSmrg}; 43428d7b3dSmrg 44428d7b3dSmrg// Ensure a mapping to a real modifier for LevelFive. 45428d7b3dSmrgpartial modifier_keys 46428d7b3dSmrgxkb_symbols "modifier_mapping" { 47428d7b3dSmrg replace key <MDSW> { 48428d7b3dSmrg type[Group1] = "ONE_LEVEL", 49428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift ] 50428d7b3dSmrg }; 51428d7b3dSmrg modifier_map Mod3 { <MDSW> }; 52428d7b3dSmrg}; 53428d7b3dSmrg 54428d7b3dSmrg 55428d7b3dSmrg// This adds the definitions needed to create a level5-lock behaviour, using 56428d7b3dSmrg// the real modifier NumLock as a lock indicator. 57428d7b3dSmrg// See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK 58428d7b3dSmrg// See also: compat/level5(level5_lock) 59428d7b3dSmrgpartial modifier_keys 60428d7b3dSmrgxkb_symbols "lock" { 61428d7b3dSmrg key.type[Group1] = "ONE_LEVEL"; 62428d7b3dSmrg include "level5(modifier_mapping)" 63428d7b3dSmrg replace key <HYPR> { 64428d7b3dSmrg vmods = NumLock, 65428d7b3dSmrg symbols[Group1] = [ NoSymbol ], 66428d7b3dSmrg actions[Group1] = [ SetMods(modifiers=NumLock) ] 67428d7b3dSmrg }; 68428d7b3dSmrg modifier_map Mod2 { <HYPR> }; 69428d7b3dSmrg}; 70428d7b3dSmrg 71428d7b3dSmrg// The following modifier keys are used to switch to the third shift level 72428d7b3dSmrg// and to set a corresponding lock, implemented as NumLock. 73428d7b3dSmrg 74428d7b3dSmrgpartial modifier_keys 75428d7b3dSmrgxkb_symbols "lsgt_switch_lock" { 76428d7b3dSmrg include "level5(lock)" 77428d7b3dSmrg key <LSGT> { 78428d7b3dSmrg type[Group1] = "EIGHT_LEVEL", 79428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 80428d7b3dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 81428d7b3dSmrg }; 82428d7b3dSmrg}; 83428d7b3dSmrg 84428d7b3dSmrgpartial modifier_keys 85428d7b3dSmrgxkb_symbols "lwin_switch_lock" { 86428d7b3dSmrg include "level5(lock)" 87428d7b3dSmrg key <LWIN> { 88428d7b3dSmrg type[Group1] = "EIGHT_LEVEL", 89428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 90428d7b3dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 91428d7b3dSmrg }; 92428d7b3dSmrg}; 93428d7b3dSmrg 94428d7b3dSmrgpartial modifier_keys 95428d7b3dSmrgxkb_symbols "ralt_switch_lock" { 96428d7b3dSmrg include "level5(lock)" 97428d7b3dSmrg key <RALT> { 98428d7b3dSmrg type[Group1] = "EIGHT_LEVEL", 99428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 100428d7b3dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 101428d7b3dSmrg }; 102428d7b3dSmrg}; 103428d7b3dSmrg 104428d7b3dSmrgpartial modifier_keys 105428d7b3dSmrgxkb_symbols "rwin_switch_lock" { 106428d7b3dSmrg include "level5(lock)" 107428d7b3dSmrg key <RWIN> { 108428d7b3dSmrg type[Group1] = "EIGHT_LEVEL", 109428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 110428d7b3dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 111428d7b3dSmrg }; 112428d7b3dSmrg}; 113428d7b3dSmrg 114428d7b3dSmrgpartial modifier_keys 115428d7b3dSmrgxkb_symbols "lsgt_switch_lock_cancel" { 116428d7b3dSmrg include "level5(lock)" 117428d7b3dSmrg key <LSGT> { 118428d7b3dSmrg type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 119428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 120428d7b3dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 121428d7b3dSmrg }; 122428d7b3dSmrg}; 123428d7b3dSmrg 124428d7b3dSmrgpartial modifier_keys 125428d7b3dSmrgxkb_symbols "lwin_switch_lock_cancel" { 126428d7b3dSmrg include "level5(lock)" 127428d7b3dSmrg key <LWIN> { 128428d7b3dSmrg type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 129428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 130428d7b3dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 131428d7b3dSmrg }; 132428d7b3dSmrg}; 133428d7b3dSmrg 134428d7b3dSmrgpartial modifier_keys 135428d7b3dSmrgxkb_symbols "ralt_switch_lock_cancel" { 136428d7b3dSmrg include "level5(lock)" 137428d7b3dSmrg key <RALT> { 138428d7b3dSmrg type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 139428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 140428d7b3dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 141428d7b3dSmrg }; 142428d7b3dSmrg}; 143428d7b3dSmrg 144428d7b3dSmrgpartial modifier_keys 145428d7b3dSmrgxkb_symbols "rwin_switch_lock_cancel" { 146428d7b3dSmrg include "level5(lock)" 147428d7b3dSmrg key <RWIN> { 148428d7b3dSmrg type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 149428d7b3dSmrg symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, 150428d7b3dSmrg ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] 151428d7b3dSmrg }; 152428d7b3dSmrg}; 153428d7b3dSmrg