level3 revision 797b363d
1797b363dSmrg// These partial variants assign ISO_Level3_Shift to various XKB keycodes 2797b363dSmrg// so that the third shift level can be reached. 3154daed1Smrg 4797b363dSmrg// The default behaviour: 5797b363dSmrg// the right Alt key (AltGr) chooses the third symbol engraved on a key. 6797b363dSmrgdefault partial modifier_keys 7797b363dSmrgxkb_symbols "ralt_switch" { 8797b363dSmrg key <RALT> { 9797b363dSmrg type[Group1]="ONE_LEVEL", 10797b363dSmrg symbols[Group1] = [ ISO_Level3_Shift ] 11797b363dSmrg }; 12797b363dSmrg include "level3(modifier_mapping)" 13797b363dSmrg}; 14797b363dSmrg 15797b363dSmrg// Ensure a mapping to a real modifier for LevelThree. 160412cdedSmrgpartial modifier_keys 170412cdedSmrgxkb_symbols "modifier_mapping" { 180412cdedSmrg replace key <LVL3> { 19797b363dSmrg type[Group1] = "ONE_LEVEL", 200412cdedSmrg symbols[Group1] = [ ISO_Level3_Shift ] 210412cdedSmrg }; 220412cdedSmrg modifier_map Mod5 { <LVL3> }; 230412cdedSmrg}; 240412cdedSmrg 25797b363dSmrg// The right Alt key never chooses the third level. 26797b363dSmrg// This option attempts to undo the effect of a layout's inclusion of 27797b363dSmrg// 'ralt_switch'. You may want to also select another level3 option 28797b363dSmrg// to map the level3 shift to some other key. 29154daed1Smrgpartial modifier_keys 30154daed1Smrgxkb_symbols "ralt_alt" { 31797b363dSmrg key <RALT> { 32154daed1Smrg type[Group1]="TWO_LEVEL", 33154daed1Smrg type[Group2]="TWO_LEVEL", 34154daed1Smrg type[Group3]="TWO_LEVEL", 35154daed1Smrg type[Group4]="TWO_LEVEL", 36797b363dSmrg symbols[Group1] = [ Alt_R, Meta_R ], 37797b363dSmrg symbols[Group2] = [ Alt_R, Meta_R ], 38797b363dSmrg symbols[Group3] = [ Alt_R, Meta_R ], 39154daed1Smrg symbols[Group4] = [ Alt_R, Meta_R ] 40797b363dSmrg }; 41797b363dSmrg modifier_map Mod1 { <RALT> }; 42154daed1Smrg}; 43154daed1Smrg 44797b363dSmrg// The right Alt key (while pressed) chooses the third shift level, 45797b363dSmrg// and Compose is mapped to its second level. 46154daed1Smrgpartial modifier_keys 47154daed1Smrgxkb_symbols "ralt_switch_multikey" { 48154daed1Smrg key <RALT> { 49154daed1Smrg type[Group1]="TWO_LEVEL", 50154daed1Smrg symbols[Group1] = [ ISO_Level3_Shift, Multi_key ] 51797b363dSmrg }; 520412cdedSmrg include "level3(modifier_mapping)" 53154daed1Smrg}; 54154daed1Smrg 55797b363dSmrg// A special case of the right-Alt switch -- for use with grp:alts_toggle. 56154daed1Smrgpartial hidden modifier_keys 57154daed1Smrgxkb_symbols "ralt_switch_for_alts_toggle" { 58797b363dSmrg virtual_modifiers LAlt, AltGr; 59154daed1Smrg key <LALT> { 60154daed1Smrg type[Group1]="PC_RALT_LEVEL2", 61797b363dSmrg symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ], 62154daed1Smrg virtualMods= LAlt 63154daed1Smrg }; 64154daed1Smrg key <RALT> { 65154daed1Smrg type[Group1]="PC_ALT_LEVEL2", 66154daed1Smrg symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ], 67154daed1Smrg virtualMods= AltGr 68154daed1Smrg }; 690412cdedSmrg include "level3(modifier_mapping)" 70154daed1Smrg}; 71154daed1Smrg 72797b363dSmrg// Either Alt key (while pressed) chooses the third shift level. 73797b363dSmrg// (To be used mostly to imitate Mac OS functionality.) 74154daed1Smrgpartial modifier_keys 75154daed1Smrgxkb_symbols "alt_switch" { 76154daed1Smrg include "level3(lalt_switch)" 77154daed1Smrg include "level3(ralt_switch)" 78154daed1Smrg}; 79154daed1Smrg 80797b363dSmrg// The left Alt key (while pressed) chooses the third shift level. 81154daed1Smrgpartial modifier_keys 82154daed1Smrgxkb_symbols "lalt_switch" { 83154daed1Smrg key <LALT> { 84154daed1Smrg type[Group1]="ONE_LEVEL", 85154daed1Smrg symbols[Group1] = [ ISO_Level3_Shift ] 86797b363dSmrg }; 870412cdedSmrg include "level3(modifier_mapping)" 88154daed1Smrg}; 89154daed1Smrg 90797b363dSmrg// The right Ctrl key (while pressed) chooses the third shift level. 91154daed1Smrgpartial modifier_keys 92154daed1Smrgxkb_symbols "switch" { 93154daed1Smrg key <RCTL> { 94154daed1Smrg type[Group1]="ONE_LEVEL", 95154daed1Smrg symbols[Group1] = [ ISO_Level3_Shift ] 96797b363dSmrg }; 970412cdedSmrg include "level3(modifier_mapping)" 98154daed1Smrg}; 99154daed1Smrg 100797b363dSmrg// The Menu key (while pressed) chooses the third shift level. 101154daed1Smrgpartial modifier_keys 102154daed1Smrgxkb_symbols "menu_switch" { 103154daed1Smrg key <MENU> { 104154daed1Smrg type[Group1]="ONE_LEVEL", 105154daed1Smrg symbols[Group1] = [ ISO_Level3_Shift ] 106797b363dSmrg }; 1070412cdedSmrg include "level3(modifier_mapping)" 108154daed1Smrg}; 109154daed1Smrg 110797b363dSmrg// Either Win key (while pressed) chooses the third shift level. 111154daed1Smrgpartial modifier_keys 112154daed1Smrgxkb_symbols "win_switch" { 113154daed1Smrg include "level3(lwin_switch)" 114154daed1Smrg include "level3(rwin_switch)" 115154daed1Smrg}; 116154daed1Smrg 117797b363dSmrg// The left Win key (while pressed) chooses the third shift level. 118154daed1Smrgpartial modifier_keys 119154daed1Smrgxkb_symbols "lwin_switch" { 120154daed1Smrg key <LWIN> { 121154daed1Smrg type[Group1]="ONE_LEVEL", 122154daed1Smrg symbols[Group1] = [ ISO_Level3_Shift ] 123797b363dSmrg }; 1240412cdedSmrg include "level3(modifier_mapping)" 125154daed1Smrg}; 126154daed1Smrg 127797b363dSmrg// The right Win key (while pressed) chooses the third shift level. 128797b363dSmrg// (When using this map, you should set your keyboard as pc101 or pc102 129797b363dSmrg// instead of pc104 or pc105.) 130154daed1Smrgpartial modifier_keys 131154daed1Smrgxkb_symbols "rwin_switch" { 132154daed1Smrg key <RWIN> { 133154daed1Smrg type[Group1]="ONE_LEVEL", 134154daed1Smrg symbols[Group1] = [ ISO_Level3_Shift ] 135797b363dSmrg }; 1360412cdedSmrg include "level3(modifier_mapping)" 137154daed1Smrg}; 138154daed1Smrg 139797b363dSmrg// The Enter key on the kepypad (while pressed) chooses the third shift level. 140797b363dSmrg// (This is especially useful for Mac laptops which miss the right Alt key.) 141c067fea9Sghenpartial modifier_keys 142154daed1Smrgxkb_symbols "enter_switch" { 143154daed1Smrg key <KPEN> { 144154daed1Smrg type[Group1]="ONE_LEVEL", 145154daed1Smrg symbols[Group1] = [ ISO_Level3_Shift ] 146797b363dSmrg }; 1470412cdedSmrg include "level3(modifier_mapping)" 148154daed1Smrg}; 149c067fea9Sghen 150797b363dSmrg// The CapsLock key (while pressed) chooses the third shift level. 151c067fea9Sghenpartial modifier_keys 152c067fea9Sghenxkb_symbols "caps_switch" { 153c067fea9Sghen key <CAPS> { 154c067fea9Sghen type[Group1]="ONE_LEVEL", 155c067fea9Sghen symbols[Group1] = [ ISO_Level3_Shift ] 156c067fea9Sghen }; 1570412cdedSmrg include "level3(modifier_mapping)" 158c067fea9Sghen}; 159c067fea9Sghen 160797b363dSmrg// The Backslash key (while pressed) chooses the third shift level. 161c067fea9Sghenpartial modifier_keys 162c067fea9Sghenxkb_symbols "bksl_switch" { 163c067fea9Sghen key <BKSL> { 164c067fea9Sghen type[Group1]="ONE_LEVEL", 165c067fea9Sghen symbols[Group1] = [ ISO_Level3_Shift ] 166c067fea9Sghen }; 1670412cdedSmrg include "level3(modifier_mapping)" 168c067fea9Sghen}; 169c067fea9Sghen 170797b363dSmrg// The Less/Greater key (while pressed) chooses the third shift level. 171c067fea9Sghenpartial modifier_keys 172c067fea9Sghenxkb_symbols "lsgt_switch" { 173c067fea9Sghen key <LSGT> { 174c067fea9Sghen type[Group1]="ONE_LEVEL", 175c067fea9Sghen symbols[Group1] = [ ISO_Level3_Shift ] 176c067fea9Sghen }; 1770412cdedSmrg include "level3(modifier_mapping)" 178c067fea9Sghen}; 179c067fea9Sghen 180797b363dSmrg// The CapsLock key (while pressed) chooses the third shift level, 181797b363dSmrg// and latches when pressed together with another third-level chooser. 182c067fea9Sghenpartial modifier_keys 183c067fea9Sghenxkb_symbols "caps_switch_latch" { 184c067fea9Sghen key <CAPS> { 185c067fea9Sghen type[Group1]="THREE_LEVEL", 186c067fea9Sghen symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] 187c067fea9Sghen }; 1880412cdedSmrg include "level3(modifier_mapping)" 189c067fea9Sghen}; 190c067fea9Sghen 191797b363dSmrg// The Backslash key (while pressed) chooses the third shift level, 192797b363dSmrg// and latches when pressed together with another third-level chooser. 193c067fea9Sghenpartial modifier_keys 194c067fea9Sghenxkb_symbols "bksl_switch_latch" { 195c067fea9Sghen key <BKSL> { 196c067fea9Sghen type[Group1]="THREE_LEVEL", 197c067fea9Sghen symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] 198c067fea9Sghen }; 1990412cdedSmrg include "level3(modifier_mapping)" 200c067fea9Sghen}; 201c067fea9Sghen 202797b363dSmrg// The Less/Greater key (while pressed) chooses the third shift level, 203797b363dSmrg// and latches when pressed together with another third-level chooser. 204c067fea9Sghenpartial modifier_keys 205c067fea9Sghenxkb_symbols "lsgt_switch_latch" { 206c067fea9Sghen key <LSGT> { 207c067fea9Sghen type[Group1]="THREE_LEVEL", 208c067fea9Sghen symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] 209c067fea9Sghen }; 2100412cdedSmrg include "level3(modifier_mapping)" 211c067fea9Sghen}; 212