group revision bfd7cbc1
1154daed1Smrg// using the group(switch) map, the right alt key temporarily chooses 2154daed1Smrg// the second keyboard group (until it is released). 3154daed1Smrg// 4154daed1Smrgpartial modifier_keys 5154daed1Smrgxkb_symbols "switch" { 6154daed1Smrg key <RALT> { 7154daed1Smrg symbols[Group1]= [ Mode_switch, Multi_key ], 8154daed1Smrg virtualMods= AltGr 9154daed1Smrg }; 10154daed1Smrg}; 11154daed1Smrg 12154daed1Smrg// using the group(lswitch) map, the left alt key temporarily chooses 13154daed1Smrg// the second keyboard group (until it is released). 14154daed1Smrg// 15154daed1Smrgpartial modifier_keys 16154daed1Smrgxkb_symbols "lswitch" { 17154daed1Smrg key <LALT> { 18154daed1Smrg symbols[Group1]= [ Mode_switch, Multi_key ], 19154daed1Smrg virtualMods= AltGr 20154daed1Smrg }; 21154daed1Smrg}; 22154daed1Smrg 23154daed1Smrg 24154daed1Smrg// using the group(win_switch) map, both Windows'logo keys temporarily 25154daed1Smrg// choose the second keyboard group (until release). If you use this 26154daed1Smrg// map, you would declare you keyboard as pc101 or pc102 instead of 27154daed1Smrg// pc104 or pc105. 28154daed1Smrgpartial modifier_keys 29154daed1Smrgxkb_symbols "win_switch" { 305a35480eSmrg include "group(lwin_switch)" 315a35480eSmrg include "group(rwin_switch)" 32154daed1Smrg}; 33154daed1Smrg 34154daed1Smrg// using the group(lwin_switch) map, the left Windows' logo key 35154daed1Smrg// temporarily chooses the second keyboard group (until it is 36154daed1Smrg// released). If you use this map, you would declare you keyboard as 37154daed1Smrg// pc101 or pc102 instead of pc104 or pc105. 38154daed1Smrgpartial modifier_keys 39154daed1Smrgxkb_symbols "lwin_switch" { 40154daed1Smrg key <LWIN> { 41154daed1Smrg symbols[Group1] = [ Mode_switch, Multi_key ], 42154daed1Smrg virtualMods= AltGr 43154daed1Smrg }; 44154daed1Smrg}; 45154daed1Smrg 46154daed1Smrg// using the group(rwin_switch) map, the right Windows' logo key 47154daed1Smrg// temporarily chooses the second keyboard group (until it is 48154daed1Smrg// released). If you use this map, you would declare you keyboard as 49154daed1Smrg// pc101 or pc102 instead of pc104 or pc105. 50154daed1Smrgpartial modifier_keys 51154daed1Smrgxkb_symbols "rwin_switch" { 52154daed1Smrg key <RWIN> { 53154daed1Smrg symbols[Group1] = [ Mode_switch, Multi_key ], 54154daed1Smrg virtualMods= AltGr 55154daed1Smrg }; 56154daed1Smrg}; 57154daed1Smrg 58154daed1Smrg// Right Ctrl key temporary chooses the second keyboard group. 59154daed1Smrg// Needed mainly for Canadian keyboard 60154daed1Smrgpartial modifier_keys 61154daed1Smrgxkb_symbols "rctrl_switch" { 62154daed1Smrg key <RCTL> { 63154daed1Smrg symbols[Group1]= [ Mode_switch ] 64154daed1Smrg }; 65154daed1Smrg}; 66154daed1Smrg 67154daed1Smrg// using the group(toggle) map, pressing the right alt key switches to 68154daed1Smrg// the next sequential group (until the next explicit group change). 69154daed1Smrgpartial modifier_keys 70154daed1Smrgxkb_symbols "toggle" { 71154daed1Smrg virtual_modifiers AltGr; 72154daed1Smrg key <RALT> { 73154daed1Smrg symbols[Group1]= [ ISO_Next_Group ], 74154daed1Smrg virtualMods= AltGr 75154daed1Smrg }; 76154daed1Smrg}; 77154daed1Smrg 78154daed1Smrg// using the group(shifts_toggle) map, pressing both shift keys together 79154daed1Smrg// locks the next or previous sequential keyboard group 80154daed1Smrg// (depending on which shift is pressed first - right or left, 81154daed1Smrg// correspongingly) 82154daed1Smrgpartial modifier_keys 83154daed1Smrgxkb_symbols "shifts_toggle" { 84154daed1Smrg key <LFSH> { [ Shift_L, ISO_Prev_Group ] }; 85154daed1Smrg key <RTSH> { [ Shift_R, ISO_Next_Group ] }; 86154daed1Smrg}; 87154daed1Smrg 88154daed1Smrg// using the group(ctrl_shift_toggle) map, pressing: 89154daed1Smrg// Control_L+Shift_L locks the previous group 90154daed1Smrg// Control_R+Shift_R locks the next group 91154daed1Smrg// If you have two groups and group wrap is enabled, the effect is 92154daed1Smrg// indistinguishable. 93154daed1Smrgpartial modifier_keys 94154daed1Smrgxkb_symbols "ctrl_shift_toggle" { 95154daed1Smrg key <LFSH> { 96154daed1Smrg type[Group1]="PC_CONTROL_LEVEL2", 97154daed1Smrg symbols[Group1]= [ Shift_L, ISO_Prev_Group ] 98154daed1Smrg }; 99154daed1Smrg key <RTSH> { 100154daed1Smrg type[Group1]="PC_CONTROL_LEVEL2", 101154daed1Smrg symbols[Group1]= [ Shift_R, ISO_Next_Group ] 102154daed1Smrg }; 103154daed1Smrg key <LCTL> { [ Control_L, ISO_Prev_Group ] }; 104154daed1Smrg key <RCTL> { [ Control_R, ISO_Next_Group ] }; 105154daed1Smrg}; 106154daed1Smrg 107154daed1Smrg// using the group(lctrl_lshift_toggle) map, pressing: 108154daed1Smrg// Control_L+Shift_L locks the next group 109154daed1Smrg// If you have two groups and group wrap is enabled, the effect is 110154daed1Smrg// indistinguishable. 111154daed1Smrgpartial modifier_keys 112154daed1Smrgxkb_symbols "lctrl_lshift_toggle" { 113154daed1Smrg key <LFSH> { 114154daed1Smrg type[Group1]="PC_CONTROL_LEVEL2", 115154daed1Smrg symbols[Group1]= [ Shift_L, ISO_Next_Group ] 116154daed1Smrg }; 117154daed1Smrg key <LCTL> { [ Control_L, ISO_Next_Group ] }; 118154daed1Smrg}; 119154daed1Smrg 120c067fea9Sghen// using the group(rctrl_rshift_toggle) map, pressing: 121c067fea9Sghen// Control_R+Shift_R locks the next group 122c067fea9Sghen// If you have two groups and group wrap is enabled, the effect is 123c067fea9Sghen// indistinguishable. 124c067fea9Sghenpartial modifier_keys 125c067fea9Sghenxkb_symbols "rctrl_rshift_toggle" { 126c067fea9Sghen key <RTSH> { 127c067fea9Sghen type[Group1]="PC_CONTROL_LEVEL2", 128c067fea9Sghen symbols[Group1]= [ Shift_R, ISO_Next_Group ] 129c067fea9Sghen }; 130c067fea9Sghen key <RCTL> { [ Control_R, ISO_Next_Group ] }; 131c067fea9Sghen}; 132c067fea9Sghen 133154daed1Smrg// using the group(shift_caps_toggle) map, pressing: 134154daed1Smrg// Shift+Caps Lock toggles group 135154daed1Smrgpartial modifier_keys 136154daed1Smrgxkb_symbols "shift_caps_toggle" { 137154daed1Smrg key <CAPS> { [ Caps_Lock, ISO_Next_Group ] }; 138154daed1Smrg}; 139154daed1Smrg 140154daed1Smrg// using the group(shift_caps_switch) map, pressing: 141154daed1Smrg// Caps Lock selects the first group 142154daed1Smrg// Shift+Caps Lock selects the last group 143154daed1Smrgpartial modifier_keys 144154daed1Smrgxkb_symbols "shift_caps_switch" { 145154daed1Smrg key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] }; 146154daed1Smrg}; 147154daed1Smrg 148c067fea9Sghen// using the group(win_menu_switch) map, pressing: 149c067fea9Sghen// LWIN selects the first group 150c067fea9Sghen// RWIN or MENU selects the last group 151c067fea9Sghenpartial modifier_keys 152c067fea9Sghenxkb_symbols "win_menu_switch" { 153c067fea9Sghen virtual_modifiers AltGr; 154c067fea9Sghen key <LWIN> { 155c067fea9Sghen virtualMods= AltGr, 156c067fea9Sghen symbols[Group1] = [ ISO_First_Group ] 157c067fea9Sghen }; 158c067fea9Sghen key <MENU> { 159c067fea9Sghen virtualMods= AltGr, 160c067fea9Sghen symbols[Group1] = [ ISO_Last_Group ] 161c067fea9Sghen }; 162c067fea9Sghen key <RWIN> { 163c067fea9Sghen virtualMods= AltGr, 164c067fea9Sghen symbols[Group1] = [ ISO_Last_Group ] 165c067fea9Sghen }; 166c067fea9Sghen}; 167c067fea9Sghen 168c067fea9Sghen// using the group(lctrl_rctrl_switch) map, pressing: 169c067fea9Sghen// Left Control selects the first group 170c067fea9Sghen// Right Control selects the last group 171c067fea9Sghenpartial modifier_keys 172c067fea9Sghenxkb_symbols "lctrl_rctrl_switch" { 173c067fea9Sghen virtual_modifiers AltGr; 174c067fea9Sghen key <LCTL> { 175c067fea9Sghen virtualMods= AltGr, 176c067fea9Sghen symbols[Group1] = [ ISO_First_Group ] 177c067fea9Sghen }; 178c067fea9Sghen key <RCTL> { 179c067fea9Sghen virtualMods= AltGr, 180c067fea9Sghen symbols[Group1] = [ ISO_Last_Group ] 181c067fea9Sghen }; 182c067fea9Sghen}; 183c067fea9Sghen 184154daed1Smrg// using the group(ctrl_alt_toggle) map, pressing: 185154daed1Smrg// Control_L+Alt_L locks the previous group 186154daed1Smrg// Control_R+Alt_R locks the next group 187154daed1Smrg// If you have two groups and group wrap is enabled, the effect is 188154daed1Smrg// indistinguishable. 189154daed1Smrgpartial modifier_keys 190154daed1Smrgxkb_symbols "ctrl_alt_toggle" { 191154daed1Smrg virtual_modifiers Alt; 192154daed1Smrg key <LALT> { 193154daed1Smrg type[Group1]="PC_CONTROL_LEVEL2", 194154daed1Smrg symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], 195154daed1Smrg virtualMods= Alt 196154daed1Smrg }; 197154daed1Smrg key <RALT> { 198154daed1Smrg type[Group1]="PC_CONTROL_LEVEL2", 199154daed1Smrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ], 200154daed1Smrg virtualMods= Alt 201154daed1Smrg }; 202154daed1Smrg key <LCTL> { 203154daed1Smrg type[Group1]="PC_ALT_LEVEL2", 204154daed1Smrg symbols[Group1]= [ Control_L, ISO_Prev_Group ] 205154daed1Smrg }; 206154daed1Smrg key <RCTL> { 207154daed1Smrg type[Group1]="PC_ALT_LEVEL2", 208154daed1Smrg symbols[Group1]= [ Control_R, ISO_Next_Group ] 209154daed1Smrg }; 210154daed1Smrg}; 211154daed1Smrg 212154daed1Smrg// using the group(alt_shift_toggle) map, pressing: 213154daed1Smrg// Shift_L+Alt_L locks the previous group 214154daed1Smrg// Shift_R+Alt_R locks the next group 215154daed1Smrg// If you have two groups and group wrap is enabled, the effect is 216154daed1Smrg// indistinguishable. 217154daed1Smrgpartial modifier_keys 218154daed1Smrgxkb_symbols "alt_shift_toggle" { 219154daed1Smrg virtual_modifiers Alt; 220154daed1Smrg key <LALT> { 221154daed1Smrg symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], 222154daed1Smrg virtualMods= Alt 223154daed1Smrg }; 224154daed1Smrg key <RALT> { 225154daed1Smrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ], 226154daed1Smrg virtualMods= Alt 227154daed1Smrg }; 228154daed1Smrg key <LFSH> { 229154daed1Smrg type[Group1]="PC_ALT_LEVEL2", 230154daed1Smrg symbols[Group1]= [ Shift_L, ISO_Prev_Group ] 231154daed1Smrg }; 232154daed1Smrg key <RTSH> { 233154daed1Smrg type[Group1]="PC_ALT_LEVEL2", 234154daed1Smrg symbols[Group1]= [ Shift_R, ISO_Next_Group ] 235154daed1Smrg }; 236154daed1Smrg}; 237154daed1Smrg 238154daed1Smrg// using the group(menu_toggle) map, pressing: 239154daed1Smrg// Menu key toggles groups 240154daed1Smrg// Shift+Menu acts as Menu 241154daed1Smrgpartial modifier_keys 242154daed1Smrgxkb_symbols "menu_toggle" { 243154daed1Smrg key <MENU> { [ ISO_Next_Group, Menu ] }; 244154daed1Smrg}; 245154daed1Smrg 246154daed1Smrg// using the group(lwin_toggle) map, pressing the left Windows' logo key 247154daed1Smrg// toggles groups. If you use this map, you would declare you keyboard 248154daed1Smrg// as pc101 or pc102 instead of pc104 or pc105. 249154daed1Smrgpartial modifier_keys 250154daed1Smrgxkb_symbols "lwin_toggle" { 251154daed1Smrg virtual_modifiers AltGr; 252154daed1Smrg key <LWIN> { 253154daed1Smrg virtualMods= AltGr, 254154daed1Smrg symbols[Group1] = [ ISO_Next_Group ] 255154daed1Smrg }; 256154daed1Smrg}; 257154daed1Smrg 258154daed1Smrg// using the group(rwin_toggle) map, pressing the right Windows' logo key 259154daed1Smrg// toggles groups. If you use this map, you would declare you keyboard 260154daed1Smrg// as pc101 or pc102 instead of pc104 or pc105. 261154daed1Smrgpartial modifier_keys 262154daed1Smrgxkb_symbols "rwin_toggle" { 263154daed1Smrg virtual_modifiers AltGr; 264154daed1Smrg key <RWIN> { 265154daed1Smrg virtualMods= AltGr, 266154daed1Smrg symbols[Group1] = [ ISO_Next_Group ] 267154daed1Smrg }; 268154daed1Smrg}; 269154daed1Smrg 270154daed1Smrg// Both Ctrls pressed together toggle group 271154daed1Smrgpartial modifier_keys 272154daed1Smrgxkb_symbols "ctrls_toggle" { 273154daed1Smrg virtual_modifiers LControl, RControl; 274154daed1Smrg key <LCTL> { 275154daed1Smrg type[Group1]="PC_RCONTROL_LEVEL2", 276154daed1Smrg symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], 277154daed1Smrg virtualMods= LControl 278154daed1Smrg }; 279154daed1Smrg key <RCTL> { 280154daed1Smrg type[Group1]="PC_LCONTROL_LEVEL2", 281154daed1Smrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ], 282154daed1Smrg virtualMods= RControl 283154daed1Smrg }; 284154daed1Smrg}; 285154daed1Smrg 286154daed1Smrg// Both Alts pressed together toggle group 287154daed1Smrgpartial modifier_keys 288154daed1Smrgxkb_symbols "alts_toggle" { 289154daed1Smrg virtual_modifiers LAlt, RAlt; 290154daed1Smrg key <LALT> { 291154daed1Smrg type[Group1]="PC_RALT_LEVEL2", 292154daed1Smrg symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], 293154daed1Smrg virtualMods= LAlt 294154daed1Smrg }; 295154daed1Smrg key <RALT> { 296154daed1Smrg type[Group1]="PC_LALT_LEVEL2", 297154daed1Smrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ], 298154daed1Smrg virtualMods= RAlt 299154daed1Smrg }; 300154daed1Smrg}; 301154daed1Smrg 302154daed1Smrg// Left Shift key toggles group 303154daed1Smrgpartial modifier_keys 304154daed1Smrgxkb_symbols "lshift_toggle" { 305154daed1Smrg virtual_modifiers AltGr; 306154daed1Smrg key <LFSH> { 307154daed1Smrg symbols[Group1]= [ ISO_Next_Group ], 308154daed1Smrg virtualMods= AltGr 309154daed1Smrg }; 310154daed1Smrg}; 311154daed1Smrg 312154daed1Smrg// Right Shift key toggles group 313154daed1Smrgpartial modifier_keys 314154daed1Smrgxkb_symbols "rshift_toggle" { 315154daed1Smrg virtual_modifiers AltGr; 316154daed1Smrg key <RTSH> { 317154daed1Smrg symbols[Group1]= [ ISO_Next_Group ], 318154daed1Smrg virtualMods= AltGr 319154daed1Smrg }; 320154daed1Smrg}; 321154daed1Smrg 322154daed1Smrg// Left Alt key toggles group 323154daed1Smrgpartial modifier_keys 324154daed1Smrgxkb_symbols "lalt_toggle" { 325154daed1Smrg virtual_modifiers AltGr; 326154daed1Smrg key <LALT> { 327154daed1Smrg symbols[Group1]= [ ISO_Next_Group ], 328154daed1Smrg virtualMods= AltGr 329154daed1Smrg }; 330154daed1Smrg}; 331154daed1Smrg 332154daed1Smrg// Left Ctrl key toggles group 333154daed1Smrgpartial modifier_keys 334154daed1Smrgxkb_symbols "lctrl_toggle" { 335154daed1Smrg virtual_modifiers AltGr; 336154daed1Smrg key <LCTL> { 337154daed1Smrg symbols[Group1]= [ ISO_Next_Group ], 338154daed1Smrg virtualMods= AltGr 339154daed1Smrg }; 340154daed1Smrg}; 341154daed1Smrg 342154daed1Smrg// Right Ctrl key toggles group 343154daed1Smrgpartial modifier_keys 344154daed1Smrgxkb_symbols "rctrl_toggle" { 345154daed1Smrg virtual_modifiers AltGr; 346154daed1Smrg key <RCTL> { 347154daed1Smrg symbols[Group1]= [ ISO_Next_Group ], 348154daed1Smrg virtualMods= AltGr 349154daed1Smrg }; 350154daed1Smrg}; 351154daed1Smrg 352154daed1Smrg// using the group(alt_caps_toggle) map, pressing: 353154daed1Smrg// Alt+Caps Lock toggles group 354154daed1Smrg// Caps Lock toggles caps lock 355154daed1Smrgpartial modifier_keys 356154daed1Smrgxkb_symbols "alt_caps_toggle" { 357154daed1Smrg key <CAPS> { 358154daed1Smrg type="PC_ALT_LEVEL2", 359154daed1Smrg symbols[Group1]= [ Caps_Lock, ISO_Next_Group] 360154daed1Smrg }; 361154daed1Smrg}; 362154daed1Smrg 363154daed1Smrgpartial hidden modifier_keys 364154daed1Smrgxkb_symbols "olpc" { 365154daed1Smrg key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] }; 366154daed1Smrg}; 367154daed1Smrg 368c067fea9Sghenpartial modifier_keys 369c067fea9Sghenxkb_symbols "alt_space_toggle" { 370c067fea9Sghen key <SPCE> { 371c067fea9Sghen type[Group1]="PC_ALT_LEVEL2", 372c067fea9Sghen symbols[Group1]= [ space, ISO_Next_Group ] 373c067fea9Sghen }; 374c067fea9Sghen}; 375c067fea9Sghen 376c067fea9Sghen// using the group(sclk_toggle) map, pressing the Scroll Lock key 377c067fea9Sghen// toggles groups. 378c067fea9Sghenpartial modifier_keys 379c067fea9Sghenxkb_symbols "sclk_toggle" { 380c067fea9Sghen virtual_modifiers AltGr; 381c067fea9Sghen key <SCLK> { 382c067fea9Sghen virtualMods= AltGr, 383c067fea9Sghen symbols[Group1] = [ ISO_Next_Group ] 384c067fea9Sghen }; 385c067fea9Sghen}; 386c067fea9Sghen 387bfd7cbc1Smrg// Control_L+Win_L locks the first group (presumably Lat). 388bfd7cbc1Smrg// Control_R+Menu locks the second group (presumably Rus). 389bfd7cbc1Smrgpartial modifier_keys 390bfd7cbc1Smrgxkb_symbols "lctrl_lwin_rctrl_menu" { 391bfd7cbc1Smrg key <LWIN> { 392bfd7cbc1Smrg type[ Group1 ] = "PC_CONTROL_LEVEL2", 393bfd7cbc1Smrg symbols[ Group1 ] = [ Super_L, ISO_First_Group ] 394bfd7cbc1Smrg }; 395bfd7cbc1Smrg key <MENU> { 396bfd7cbc1Smrg type[ Group1 ] = "PC_CONTROL_LEVEL2", 397bfd7cbc1Smrg symbols[ Group1 ] = [ Menu, ISO_Last_Group ] 398bfd7cbc1Smrg }; 399bfd7cbc1Smrg}; // lctrl_lwin_rctrl_menu 400