level5 revision 0412cded
1154daed1Smrg// these variants assign various XKB keycodes to ISO_Level5_Shift so that 2154daed1Smrg// the third shift level can be reached 3154daed1Smrg// 4154daed1Smrg 50412cdedSmrg// Ensure a mapping to a real modifier for LevelFive 60412cdedSmrgpartial modifier_keys 70412cdedSmrgxkb_symbols "modifier_mapping" { 80412cdedSmrg key.type[Group1] = "ONE_LEVEL"; 90412cdedSmrg 100412cdedSmrg replace key <MDSW> { 110412cdedSmrg symbols[Group1] = [ ISO_Level5_Shift ] 120412cdedSmrg }; 130412cdedSmrg modifier_map Mod3 { <MDSW> }; 140412cdedSmrg}; 150412cdedSmrg 16154daed1Smrg// using the level(switch) map, the right Control key temporarily 17154daed1Smrg// chooses the fifth shift level (until it is released). 18154daed1Smrgpartial modifier_keys 19154daed1Smrgxkb_symbols "rctrl_switch" { 20154daed1Smrg key <RCTL> { 21154daed1Smrg type[Group1]="ONE_LEVEL", 225a35480eSmrg symbols[Group1] = [ ISO_Level5_Shift ] 23154daed1Smrg }; 240412cdedSmrg include "level5(modifier_mapping)" 25154daed1Smrg}; 26c067fea9Sghen 27c067fea9Sghenpartial modifier_keys 28c067fea9Sghenxkb_symbols "lsgt_switch" { 29c067fea9Sghen key <LSGT> { 30c067fea9Sghen type[Group1]="ONE_LEVEL", 31c067fea9Sghen symbols[Group1] = [ ISO_Level5_Shift ] 32c067fea9Sghen }; 330412cdedSmrg include "level5(modifier_mapping)" 34c067fea9Sghen}; 35c067fea9Sghen 36c067fea9Sghenpartial modifier_keys 37c067fea9Sghenxkb_symbols "ralt_switch" { 38c067fea9Sghen key <RALT> { 39c067fea9Sghen type[Group1]="ONE_LEVEL", 40c067fea9Sghen symbols[Group1] = [ ISO_Level5_Shift ] 41c067fea9Sghen }; 420412cdedSmrg include "level5(modifier_mapping)" 43c067fea9Sghen}; 44c067fea9Sghen 45c067fea9Sghen 46c067fea9Sghen// The following modifier keys are used to switch to the third shift and to set a 47c067fea9Sghen// corresponding lock, implemented as NumLock. 48c067fea9Sghen 49c067fea9Sghenpartial modifier_keys 50c067fea9Sghenxkb_symbols "lock" { 51c067fea9Sghen // This adds the definitions needed to create a level5-lock behaviour, using 52c067fea9Sghen // the real modifier NumLock as a lock indicator. 53c067fea9Sghen // See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK 54c067fea9Sghen // See also: compat/level5(level5_lock) 55c067fea9Sghen key.type[Group1] = "ONE_LEVEL"; 56c067fea9Sghen 570412cdedSmrg include "level5(modifier_mapping)" 58c067fea9Sghen 59c067fea9Sghen replace key <HYPR> { 60c067fea9Sghen vmods = NumLock, 61c067fea9Sghen symbols[Group1] = [ NoSymbol ], 62c067fea9Sghen actions[Group1] = [ SetMods(modifiers=NumLock) ] 63c067fea9Sghen }; 64c067fea9Sghen modifier_map Mod2 { <HYPR> }; 65c067fea9Sghen}; 66c067fea9Sghen 67c067fea9Sghenpartial modifier_keys 68c067fea9Sghenxkb_symbols "lsgt_switch_lock" { 69c067fea9Sghen 70c067fea9Sghen include "level5(lock)" 71c067fea9Sghen 72c067fea9Sghen key <LSGT> { 73c067fea9Sghen type[Group1] = "EIGHT_LEVEL", 74c067fea9Sghen 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 ] 75c067fea9Sghen }; 76c067fea9Sghen}; 77c067fea9Sghen 78c067fea9Sghenpartial modifier_keys 79c067fea9Sghenxkb_symbols "lwin_switch_lock" { 80c067fea9Sghen 81c067fea9Sghen include "level5(lock)" 82c067fea9Sghen 83c067fea9Sghen key <LWIN> { 84c067fea9Sghen type[Group1] = "EIGHT_LEVEL", 85c067fea9Sghen 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 ] 86c067fea9Sghen }; 87c067fea9Sghen}; 88c067fea9Sghen 89c067fea9Sghenpartial modifier_keys 90c067fea9Sghenxkb_symbols "ralt_switch_lock" { 91c067fea9Sghen 92c067fea9Sghen include "level5(lock)" 93c067fea9Sghen 94c067fea9Sghen key <RALT> { 95c067fea9Sghen type[Group1] = "EIGHT_LEVEL", 96c067fea9Sghen 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 ] 97c067fea9Sghen }; 98c067fea9Sghen}; 99c067fea9Sghen 100c067fea9Sghenpartial modifier_keys 101c067fea9Sghenxkb_symbols "rwin_switch_lock" { 102c067fea9Sghen 103c067fea9Sghen include "level5(lock)" 104c067fea9Sghen 105c067fea9Sghen key <RWIN> { 106c067fea9Sghen type[Group1] = "EIGHT_LEVEL", 107c067fea9Sghen 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 ] 108c067fea9Sghen }; 109c067fea9Sghen}; 110c067fea9Sghen 111c067fea9Sghenpartial modifier_keys 112c067fea9Sghenxkb_symbols "lsgt_switch_lock_cancel" { 113c067fea9Sghen 114c067fea9Sghen include "level5(lock)" 115c067fea9Sghen 116c067fea9Sghen key <LSGT> { 117c067fea9Sghen type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 118c067fea9Sghen 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 ] 119c067fea9Sghen }; 120c067fea9Sghen}; 121c067fea9Sghen 122c067fea9Sghenpartial modifier_keys 123c067fea9Sghenxkb_symbols "lwin_switch_lock_cancel" { 124c067fea9Sghen 125c067fea9Sghen include "level5(lock)" 126c067fea9Sghen 127c067fea9Sghen key <LWIN> { 128c067fea9Sghen type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 129c067fea9Sghen 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 ] 130c067fea9Sghen }; 131c067fea9Sghen}; 132c067fea9Sghen 133c067fea9Sghenpartial modifier_keys 134c067fea9Sghenxkb_symbols "ralt_switch_lock_cancel" { 135c067fea9Sghen 136c067fea9Sghen include "level5(lock)" 137c067fea9Sghen 138c067fea9Sghen key <RALT> { 139c067fea9Sghen type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 140c067fea9Sghen 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 ] 141c067fea9Sghen }; 142c067fea9Sghen}; 143c067fea9Sghen 144c067fea9Sghenpartial modifier_keys 145c067fea9Sghenxkb_symbols "rwin_switch_lock_cancel" { 146c067fea9Sghen 147c067fea9Sghen include "level5(lock)" 148c067fea9Sghen 149c067fea9Sghen key <RWIN> { 150c067fea9Sghen type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 151c067fea9Sghen 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 ] 152c067fea9Sghen }; 153c067fea9Sghen}; 154