1*2b949d04SAndroid Build Coastguard Worker// These partial variants assign ISO_Level3_Shift to various XKB keycodes 2*2b949d04SAndroid Build Coastguard Worker// so that the third shift level can be reached. 3*2b949d04SAndroid Build Coastguard Worker 4*2b949d04SAndroid Build Coastguard Worker// The default behaviour: 5*2b949d04SAndroid Build Coastguard Worker// the right Alt key (AltGr) chooses the third symbol engraved on a key. 6*2b949d04SAndroid Build Coastguard Workerdefault partial modifier_keys 7*2b949d04SAndroid Build Coastguard Workerxkb_symbols "ralt_switch" { 8*2b949d04SAndroid Build Coastguard Worker key <RALT> { 9*2b949d04SAndroid Build Coastguard Worker type[Group1]="ONE_LEVEL", 10*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 11*2b949d04SAndroid Build Coastguard Worker }; 12*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 13*2b949d04SAndroid Build Coastguard Worker}; 14*2b949d04SAndroid Build Coastguard Worker 15*2b949d04SAndroid Build Coastguard Worker// Ensure a mapping to a real modifier for LevelThree. 16*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 17*2b949d04SAndroid Build Coastguard Workerxkb_symbols "modifier_mapping" { 18*2b949d04SAndroid Build Coastguard Worker replace key <LVL3> { 19*2b949d04SAndroid Build Coastguard Worker type[Group1] = "ONE_LEVEL", 20*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 21*2b949d04SAndroid Build Coastguard Worker }; 22*2b949d04SAndroid Build Coastguard Worker modifier_map Mod5 { <LVL3> }; 23*2b949d04SAndroid Build Coastguard Worker}; 24*2b949d04SAndroid Build Coastguard Worker 25*2b949d04SAndroid Build Coastguard Worker// The right Alt key never chooses the third level. 26*2b949d04SAndroid Build Coastguard Worker// This option attempts to undo the effect of a layout's inclusion of 27*2b949d04SAndroid Build Coastguard Worker// 'ralt_switch'. You may want to also select another level3 option 28*2b949d04SAndroid Build Coastguard Worker// to map the level3 shift to some other key. 29*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 30*2b949d04SAndroid Build Coastguard Workerxkb_symbols "ralt_alt" { 31*2b949d04SAndroid Build Coastguard Worker key <RALT> { 32*2b949d04SAndroid Build Coastguard Worker type[Group1]="TWO_LEVEL", 33*2b949d04SAndroid Build Coastguard Worker type[Group2]="TWO_LEVEL", 34*2b949d04SAndroid Build Coastguard Worker type[Group3]="TWO_LEVEL", 35*2b949d04SAndroid Build Coastguard Worker type[Group4]="TWO_LEVEL", 36*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ Alt_R, Meta_R ], 37*2b949d04SAndroid Build Coastguard Worker symbols[Group2] = [ Alt_R, Meta_R ], 38*2b949d04SAndroid Build Coastguard Worker symbols[Group3] = [ Alt_R, Meta_R ], 39*2b949d04SAndroid Build Coastguard Worker symbols[Group4] = [ Alt_R, Meta_R ] 40*2b949d04SAndroid Build Coastguard Worker }; 41*2b949d04SAndroid Build Coastguard Worker modifier_map Mod1 { <RALT> }; 42*2b949d04SAndroid Build Coastguard Worker}; 43*2b949d04SAndroid Build Coastguard Worker 44*2b949d04SAndroid Build Coastguard Worker// The right Alt key (while pressed) chooses the third shift level, 45*2b949d04SAndroid Build Coastguard Worker// and Compose is mapped to its second level. 46*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 47*2b949d04SAndroid Build Coastguard Workerxkb_symbols "ralt_switch_multikey" { 48*2b949d04SAndroid Build Coastguard Worker key <RALT> { 49*2b949d04SAndroid Build Coastguard Worker type[Group1]="TWO_LEVEL", 50*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift, Multi_key ] 51*2b949d04SAndroid Build Coastguard Worker }; 52*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 53*2b949d04SAndroid Build Coastguard Worker}; 54*2b949d04SAndroid Build Coastguard Worker 55*2b949d04SAndroid Build Coastguard Worker// A special case of the right-Alt switch -- for use with grp:alts_toggle. 56*2b949d04SAndroid Build Coastguard Workerhidden partial modifier_keys 57*2b949d04SAndroid Build Coastguard Workerxkb_symbols "ralt_switch_for_alts_toggle" { 58*2b949d04SAndroid Build Coastguard Worker virtual_modifiers LAlt, AltGr; 59*2b949d04SAndroid Build Coastguard Worker key <LALT> { 60*2b949d04SAndroid Build Coastguard Worker type[Group1]="PC_RALT_LEVEL2", 61*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ], 62*2b949d04SAndroid Build Coastguard Worker virtualMods= LAlt 63*2b949d04SAndroid Build Coastguard Worker }; 64*2b949d04SAndroid Build Coastguard Worker key <RALT> { 65*2b949d04SAndroid Build Coastguard Worker type[Group1]="PC_ALT_LEVEL2", 66*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ], 67*2b949d04SAndroid Build Coastguard Worker virtualMods= AltGr 68*2b949d04SAndroid Build Coastguard Worker }; 69*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 70*2b949d04SAndroid Build Coastguard Worker}; 71*2b949d04SAndroid Build Coastguard Worker 72*2b949d04SAndroid Build Coastguard Worker// Either Alt key (while pressed) chooses the third shift level. 73*2b949d04SAndroid Build Coastguard Worker// (To be used mostly to imitate Mac OS functionality.) 74*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 75*2b949d04SAndroid Build Coastguard Workerxkb_symbols "alt_switch" { 76*2b949d04SAndroid Build Coastguard Worker include "level3(lalt_switch)" 77*2b949d04SAndroid Build Coastguard Worker include "level3(ralt_switch)" 78*2b949d04SAndroid Build Coastguard Worker}; 79*2b949d04SAndroid Build Coastguard Worker 80*2b949d04SAndroid Build Coastguard Worker// The left Alt key (while pressed) chooses the third shift level. 81*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 82*2b949d04SAndroid Build Coastguard Workerxkb_symbols "lalt_switch" { 83*2b949d04SAndroid Build Coastguard Worker key <LALT> { 84*2b949d04SAndroid Build Coastguard Worker type[Group1]="ONE_LEVEL", 85*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 86*2b949d04SAndroid Build Coastguard Worker }; 87*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 88*2b949d04SAndroid Build Coastguard Worker}; 89*2b949d04SAndroid Build Coastguard Worker 90*2b949d04SAndroid Build Coastguard Worker// The right Ctrl key (while pressed) chooses the third shift level. 91*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 92*2b949d04SAndroid Build Coastguard Workerxkb_symbols "switch" { 93*2b949d04SAndroid Build Coastguard Worker key <RCTL> { 94*2b949d04SAndroid Build Coastguard Worker type[Group1]="ONE_LEVEL", 95*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 96*2b949d04SAndroid Build Coastguard Worker }; 97*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 98*2b949d04SAndroid Build Coastguard Worker}; 99*2b949d04SAndroid Build Coastguard Worker 100*2b949d04SAndroid Build Coastguard Worker// The Menu key (while pressed) chooses the third shift level. 101*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 102*2b949d04SAndroid Build Coastguard Workerxkb_symbols "menu_switch" { 103*2b949d04SAndroid Build Coastguard Worker key <MENU> { 104*2b949d04SAndroid Build Coastguard Worker type[Group1]="ONE_LEVEL", 105*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 106*2b949d04SAndroid Build Coastguard Worker }; 107*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 108*2b949d04SAndroid Build Coastguard Worker}; 109*2b949d04SAndroid Build Coastguard Worker 110*2b949d04SAndroid Build Coastguard Worker// Either Win key (while pressed) chooses the third shift level. 111*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 112*2b949d04SAndroid Build Coastguard Workerxkb_symbols "win_switch" { 113*2b949d04SAndroid Build Coastguard Worker include "level3(lwin_switch)" 114*2b949d04SAndroid Build Coastguard Worker include "level3(rwin_switch)" 115*2b949d04SAndroid Build Coastguard Worker}; 116*2b949d04SAndroid Build Coastguard Worker 117*2b949d04SAndroid Build Coastguard Worker// The left Win key (while pressed) chooses the third shift level. 118*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 119*2b949d04SAndroid Build Coastguard Workerxkb_symbols "lwin_switch" { 120*2b949d04SAndroid Build Coastguard Worker key <LWIN> { 121*2b949d04SAndroid Build Coastguard Worker type[Group1]="ONE_LEVEL", 122*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 123*2b949d04SAndroid Build Coastguard Worker }; 124*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 125*2b949d04SAndroid Build Coastguard Worker}; 126*2b949d04SAndroid Build Coastguard Worker 127*2b949d04SAndroid Build Coastguard Worker// The right Win key (while pressed) chooses the third shift level. 128*2b949d04SAndroid Build Coastguard Worker// (When using this map, you should set your keyboard as pc101 or pc102 129*2b949d04SAndroid Build Coastguard Worker// instead of pc104 or pc105.) 130*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 131*2b949d04SAndroid Build Coastguard Workerxkb_symbols "rwin_switch" { 132*2b949d04SAndroid Build Coastguard Worker key <RWIN> { 133*2b949d04SAndroid Build Coastguard Worker type[Group1]="ONE_LEVEL", 134*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 135*2b949d04SAndroid Build Coastguard Worker }; 136*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 137*2b949d04SAndroid Build Coastguard Worker}; 138*2b949d04SAndroid Build Coastguard Worker 139*2b949d04SAndroid Build Coastguard Worker// The Enter key on the kepypad (while pressed) chooses the third shift level. 140*2b949d04SAndroid Build Coastguard Worker// (This is especially useful for Mac laptops which miss the right Alt key.) 141*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 142*2b949d04SAndroid Build Coastguard Workerxkb_symbols "enter_switch" { 143*2b949d04SAndroid Build Coastguard Worker key <KPEN> { 144*2b949d04SAndroid Build Coastguard Worker type[Group1]="ONE_LEVEL", 145*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 146*2b949d04SAndroid Build Coastguard Worker }; 147*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 148*2b949d04SAndroid Build Coastguard Worker}; 149*2b949d04SAndroid Build Coastguard Worker 150*2b949d04SAndroid Build Coastguard Worker// The CapsLock key (while pressed) chooses the third shift level. 151*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 152*2b949d04SAndroid Build Coastguard Workerxkb_symbols "caps_switch" { 153*2b949d04SAndroid Build Coastguard Worker key <CAPS> { 154*2b949d04SAndroid Build Coastguard Worker type[Group1]="ONE_LEVEL", 155*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 156*2b949d04SAndroid Build Coastguard Worker }; 157*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 158*2b949d04SAndroid Build Coastguard Worker}; 159*2b949d04SAndroid Build Coastguard Worker 160*2b949d04SAndroid Build Coastguard Worker// The Backslash key (while pressed) chooses the third shift level. 161*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 162*2b949d04SAndroid Build Coastguard Workerxkb_symbols "bksl_switch" { 163*2b949d04SAndroid Build Coastguard Worker key <BKSL> { 164*2b949d04SAndroid Build Coastguard Worker type[Group1]="ONE_LEVEL", 165*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 166*2b949d04SAndroid Build Coastguard Worker }; 167*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 168*2b949d04SAndroid Build Coastguard Worker}; 169*2b949d04SAndroid Build Coastguard Worker 170*2b949d04SAndroid Build Coastguard Worker// The Less/Greater key (while pressed) chooses the third shift level. 171*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 172*2b949d04SAndroid Build Coastguard Workerxkb_symbols "lsgt_switch" { 173*2b949d04SAndroid Build Coastguard Worker key <LSGT> { 174*2b949d04SAndroid Build Coastguard Worker type[Group1]="ONE_LEVEL", 175*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 176*2b949d04SAndroid Build Coastguard Worker }; 177*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 178*2b949d04SAndroid Build Coastguard Worker}; 179*2b949d04SAndroid Build Coastguard Worker 180*2b949d04SAndroid Build Coastguard Worker// The CapsLock key (while pressed) chooses the third shift level, 181*2b949d04SAndroid Build Coastguard Worker// and latches when pressed together with another third-level chooser. 182*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 183*2b949d04SAndroid Build Coastguard Workerxkb_symbols "caps_switch_latch" { 184*2b949d04SAndroid Build Coastguard Worker key <CAPS> { 185*2b949d04SAndroid Build Coastguard Worker type[Group1]="THREE_LEVEL", 186*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] 187*2b949d04SAndroid Build Coastguard Worker }; 188*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 189*2b949d04SAndroid Build Coastguard Worker}; 190*2b949d04SAndroid Build Coastguard Worker 191*2b949d04SAndroid Build Coastguard Worker// The Backslash key (while pressed) chooses the third shift level, 192*2b949d04SAndroid Build Coastguard Worker// and latches when pressed together with another third-level chooser. 193*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 194*2b949d04SAndroid Build Coastguard Workerxkb_symbols "bksl_switch_latch" { 195*2b949d04SAndroid Build Coastguard Worker key <BKSL> { 196*2b949d04SAndroid Build Coastguard Worker type[Group1]="THREE_LEVEL", 197*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] 198*2b949d04SAndroid Build Coastguard Worker }; 199*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 200*2b949d04SAndroid Build Coastguard Worker}; 201*2b949d04SAndroid Build Coastguard Worker 202*2b949d04SAndroid Build Coastguard Worker// The Less/Greater key (while pressed) chooses the third shift level, 203*2b949d04SAndroid Build Coastguard Worker// and latches when pressed together with another third-level chooser. 204*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 205*2b949d04SAndroid Build Coastguard Workerxkb_symbols "lsgt_switch_latch" { 206*2b949d04SAndroid Build Coastguard Worker key <LSGT> { 207*2b949d04SAndroid Build Coastguard Worker type[Group1]="THREE_LEVEL", 208*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] 209*2b949d04SAndroid Build Coastguard Worker }; 210*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 211*2b949d04SAndroid Build Coastguard Worker}; 212*2b949d04SAndroid Build Coastguard Worker 213*2b949d04SAndroid Build Coastguard Worker// Number key 4 chooses third shift level when pressed in isolation. 214*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 215*2b949d04SAndroid Build Coastguard Workerxkb_symbols "4_switch_isolated" { 216*2b949d04SAndroid Build Coastguard Worker override key <AE04> { 217*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 218*2b949d04SAndroid Build Coastguard Worker }; 219*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 220*2b949d04SAndroid Build Coastguard Worker}; 221*2b949d04SAndroid Build Coastguard Worker 222*2b949d04SAndroid Build Coastguard Worker// Number key 9 chooses third shift level when pressed in isolation. 223*2b949d04SAndroid Build Coastguard Workerpartial modifier_keys 224*2b949d04SAndroid Build Coastguard Workerxkb_symbols "9_switch_isolated" { 225*2b949d04SAndroid Build Coastguard Worker override key <AE09> { 226*2b949d04SAndroid Build Coastguard Worker symbols[Group1] = [ ISO_Level3_Shift ] 227*2b949d04SAndroid Build Coastguard Worker }; 228*2b949d04SAndroid Build Coastguard Worker include "level3(modifier_mapping)" 229*2b949d04SAndroid Build Coastguard Worker}; 230