1 // These partial variants assign ISO_Level3_Shift to various XKB keycodes 2 // so that the third shift level can be reached. 3 4 // The default behaviour: 5 // the right Alt key (AltGr) chooses the third symbol engraved on a key. 6 default partial modifier_keys 7 xkb_symbols "ralt_switch" { 8 key <RALT> { 9 type[Group1]="ONE_LEVEL", 10 symbols[Group1] = [ ISO_Level3_Shift ] 11 }; 12 }; 13 14 // The right Alt key never chooses the third level. 15 // This option attempts to undo the effect of a layout's inclusion of 16 // 'ralt_switch'. You may want to also select another level3 option 17 // to map the level3 shift to some other key. 18 partial modifier_keys 19 xkb_symbols "ralt_alt" { 20 key <RALT> { 21 type[Group1]="TWO_LEVEL", 22 symbols[Group1] = [ Alt_R, Meta_R ] 23 }; 24 modifier_map Mod1 { <RALT> }; 25 }; 26 27 // The right Alt key (while pressed) chooses the third shift level, 28 // and Compose is mapped to its second level. 29 partial modifier_keys 30 xkb_symbols "ralt_switch_multikey" { 31 key <RALT> { 32 type[Group1]="TWO_LEVEL", 33 symbols[Group1] = [ ISO_Level3_Shift, Multi_key ] 34 }; 35 }; 36 37 // Either Alt key (while pressed) chooses the third shift level. 38 // (To be used mostly to imitate Mac OS functionality.) 39 partial modifier_keys 40 xkb_symbols "alt_switch" { 41 include "level3(lalt_switch)" 42 include "level3(ralt_switch)" 43 }; 44 45 // The left Alt key (while pressed) chooses the third shift level. 46 partial modifier_keys 47 xkb_symbols "lalt_switch" { 48 key <LALT> { 49 type[Group1]="ONE_LEVEL", 50 symbols[Group1] = [ ISO_Level3_Shift ] 51 }; 52 }; 53 54 // The right Ctrl key (while pressed) chooses the third shift level. 55 partial modifier_keys 56 xkb_symbols "switch" { 57 key <RCTL> { 58 type[Group1]="ONE_LEVEL", 59 symbols[Group1] = [ ISO_Level3_Shift ] 60 }; 61 }; 62 63 // The Menu key (while pressed) chooses the third shift level. 64 partial modifier_keys 65 xkb_symbols "menu_switch" { 66 key <MENU> { 67 type[Group1]="ONE_LEVEL", 68 symbols[Group1] = [ ISO_Level3_Shift ] 69 }; 70 }; 71 72 // Either Win key (while pressed) chooses the third shift level. 73 partial modifier_keys 74 xkb_symbols "win_switch" { 75 include "level3(lwin_switch)" 76 include "level3(rwin_switch)" 77 }; 78 79 // The left Win key (while pressed) chooses the third shift level. 80 partial modifier_keys 81 xkb_symbols "lwin_switch" { 82 key <LWIN> { 83 type[Group1]="ONE_LEVEL", 84 symbols[Group1] = [ ISO_Level3_Shift ] 85 }; 86 }; 87 88 // The right Win key (while pressed) chooses the third shift level. 89 partial modifier_keys 90 xkb_symbols "rwin_switch" { 91 key <RWIN> { 92 type[Group1]="ONE_LEVEL", 93 symbols[Group1] = [ ISO_Level3_Shift ] 94 }; 95 }; 96 97 // The Enter key on the kepypad (while pressed) chooses the third shift level. 98 // (This is especially useful for Mac laptops which miss the right Alt key.) 99 partial modifier_keys 100 xkb_symbols "enter_switch" { 101 key <KPEN> { 102 type[Group1]="ONE_LEVEL", 103 symbols[Group1] = [ ISO_Level3_Shift ] 104 }; 105 }; 106 107 // The CapsLock key (while pressed) chooses the third shift level. 108 partial modifier_keys 109 xkb_symbols "caps_switch" { 110 key <CAPS> { 111 type[Group1]="ONE_LEVEL", 112 symbols[Group1] = [ ISO_Level3_Shift ] 113 }; 114 }; 115 116 // The Backslash key (while pressed) chooses the third shift level. 117 partial modifier_keys 118 xkb_symbols "bksl_switch" { 119 key <BKSL> { 120 type[Group1]="ONE_LEVEL", 121 symbols[Group1] = [ ISO_Level3_Shift ] 122 }; 123 }; 124 125 // The Less/Greater key (while pressed) chooses the third shift level. 126 partial modifier_keys 127 xkb_symbols "lsgt_switch" { 128 key <LSGT> { 129 type[Group1]="ONE_LEVEL", 130 symbols[Group1] = [ ISO_Level3_Shift ] 131 }; 132 }; 133 134 // The CapsLock key (while pressed) chooses the third shift level, 135 // and latches when pressed together with another third-level chooser. 136 partial modifier_keys 137 xkb_symbols "caps_switch_latch" { 138 key <CAPS> { 139 type[Group1]="THREE_LEVEL", 140 symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] 141 }; 142 }; 143 144 // The Backslash key (while pressed) chooses the third shift level, 145 // and latches when pressed together with another third-level chooser. 146 partial modifier_keys 147 xkb_symbols "bksl_switch_latch" { 148 key <BKSL> { 149 type[Group1]="THREE_LEVEL", 150 symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] 151 }; 152 }; 153 154 // The Less/Greater key (while pressed) chooses the third shift level, 155 // and latches when pressed together with another third-level chooser. 156 partial modifier_keys 157 xkb_symbols "lsgt_switch_latch" { 158 key <LSGT> { 159 type[Group1]="THREE_LEVEL", 160 symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] 161 }; 162 }; 163 164 // Number key 4 chooses third shift level when pressed in isolation. 165 partial modifier_keys 166 xkb_symbols "4_switch_isolated" { 167 override key <AE04> { 168 symbols[Group1] = [ ISO_Level3_Shift ] 169 }; 170 }; 171 172 // Number key 9 chooses third shift level when pressed in isolation. 173 partial modifier_keys 174 xkb_symbols "9_switch_isolated" { 175 override key <AE09> { 176 symbols[Group1] = [ ISO_Level3_Shift ] 177 }; 178 }; 179