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