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