level5 revision bfd7cbc1
1// these variants assign various XKB keycodes to ISO_Level5_Shift so that 2// the third shift level can be reached 3// 4 5// using the level(switch) map, the right Control key temporarily 6// chooses the fifth shift level (until it is released). 7partial modifier_keys 8xkb_symbols "rctrl_switch" { 9 key <RCTL> { 10 type[Group1]="ONE_LEVEL", 11 symbols[Group1] = [ ISO_Level5_Shift ] 12 }; 13 modifier_map Mod3 { ISO_Level5_Shift }; 14}; 15 16partial modifier_keys 17xkb_symbols "lsgt_switch" { 18 key <LSGT> { 19 type[Group1]="ONE_LEVEL", 20 symbols[Group1] = [ ISO_Level5_Shift ] 21 }; 22 modifier_map Mod3 { ISO_Level5_Shift }; 23}; 24 25partial modifier_keys 26xkb_symbols "ralt_switch" { 27 key <RALT> { 28 type[Group1]="ONE_LEVEL", 29 symbols[Group1] = [ ISO_Level5_Shift ] 30 }; 31 modifier_map Mod3 { ISO_Level5_Shift }; 32}; 33 34 35// The following modifier keys are used to switch to the third shift and to set a 36// corresponding lock, implemented as NumLock. 37 38partial modifier_keys 39xkb_symbols "lock" { 40 // This adds the definitions needed to create a level5-lock behaviour, using 41 // the real modifier NumLock as a lock indicator. 42 // See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK 43 // See also: compat/level5(level5_lock) 44 key.type[Group1] = "ONE_LEVEL"; 45 46 replace key <MDSW> { 47 vmods = LevelFive, 48 symbols[Group1] = [ ISO_Level5_Shift ], 49 actions[Group1] = [ SetMods(modifiers=LevelFive) ] 50 }; 51 modifier_map Mod3 { <MDSW> }; 52 53 replace key <HYPR> { 54 vmods = NumLock, 55 symbols[Group1] = [ NoSymbol ], 56 actions[Group1] = [ SetMods(modifiers=NumLock) ] 57 }; 58 modifier_map Mod2 { <HYPR> }; 59}; 60 61partial modifier_keys 62xkb_symbols "lsgt_switch_lock" { 63 64 include "level5(lock)" 65 66 key <LSGT> { 67 type[Group1] = "EIGHT_LEVEL", 68 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 ] 69 }; 70}; 71 72partial modifier_keys 73xkb_symbols "lwin_switch_lock" { 74 75 include "level5(lock)" 76 77 key <LWIN> { 78 type[Group1] = "EIGHT_LEVEL", 79 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 ] 80 }; 81}; 82 83partial modifier_keys 84xkb_symbols "ralt_switch_lock" { 85 86 include "level5(lock)" 87 88 key <RALT> { 89 type[Group1] = "EIGHT_LEVEL", 90 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 ] 91 }; 92}; 93 94partial modifier_keys 95xkb_symbols "rwin_switch_lock" { 96 97 include "level5(lock)" 98 99 key <RWIN> { 100 type[Group1] = "EIGHT_LEVEL", 101 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 ] 102 }; 103}; 104 105partial modifier_keys 106xkb_symbols "lsgt_switch_lock_cancel" { 107 108 include "level5(lock)" 109 110 key <LSGT> { 111 type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 112 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 ] 113 }; 114}; 115 116partial modifier_keys 117xkb_symbols "lwin_switch_lock_cancel" { 118 119 include "level5(lock)" 120 121 key <LWIN> { 122 type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 123 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 ] 124 }; 125}; 126 127partial modifier_keys 128xkb_symbols "ralt_switch_lock_cancel" { 129 130 include "level5(lock)" 131 132 key <RALT> { 133 type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 134 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 ] 135 }; 136}; 137 138partial modifier_keys 139xkb_symbols "rwin_switch_lock_cancel" { 140 141 include "level5(lock)" 142 143 key <RWIN> { 144 type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", 145 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 ] 146 }; 147}; 148