group revision 0412cded
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(shift_caps_toggle) map, pressing: 89154daed1Smrg// Shift+Caps Lock toggles group 90154daed1Smrgpartial modifier_keys 91154daed1Smrgxkb_symbols "shift_caps_toggle" { 92154daed1Smrg key <CAPS> { [ Caps_Lock, ISO_Next_Group ] }; 93154daed1Smrg}; 94154daed1Smrg 95154daed1Smrg// using the group(shift_caps_switch) map, pressing: 96154daed1Smrg// Caps Lock selects the first group 97154daed1Smrg// Shift+Caps Lock selects the last group 98154daed1Smrgpartial modifier_keys 99154daed1Smrgxkb_symbols "shift_caps_switch" { 100154daed1Smrg key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] }; 101154daed1Smrg}; 102154daed1Smrg 103c067fea9Sghen// using the group(win_menu_switch) map, pressing: 104c067fea9Sghen// LWIN selects the first group 105c067fea9Sghen// RWIN or MENU selects the last group 106c067fea9Sghenpartial modifier_keys 107c067fea9Sghenxkb_symbols "win_menu_switch" { 108c067fea9Sghen virtual_modifiers AltGr; 109c067fea9Sghen key <LWIN> { 110c067fea9Sghen virtualMods= AltGr, 111c067fea9Sghen symbols[Group1] = [ ISO_First_Group ] 112c067fea9Sghen }; 113c067fea9Sghen key <MENU> { 114c067fea9Sghen virtualMods= AltGr, 115c067fea9Sghen symbols[Group1] = [ ISO_Last_Group ] 116c067fea9Sghen }; 117c067fea9Sghen key <RWIN> { 118c067fea9Sghen virtualMods= AltGr, 119c067fea9Sghen symbols[Group1] = [ ISO_Last_Group ] 120c067fea9Sghen }; 121c067fea9Sghen}; 122c067fea9Sghen 123c067fea9Sghen// using the group(lctrl_rctrl_switch) map, pressing: 124c067fea9Sghen// Left Control selects the first group 125c067fea9Sghen// Right Control selects the last group 126c067fea9Sghenpartial modifier_keys 127c067fea9Sghenxkb_symbols "lctrl_rctrl_switch" { 128c067fea9Sghen virtual_modifiers AltGr; 129c067fea9Sghen key <LCTL> { 130c067fea9Sghen virtualMods= AltGr, 131c067fea9Sghen symbols[Group1] = [ ISO_First_Group ] 132c067fea9Sghen }; 133c067fea9Sghen key <RCTL> { 134c067fea9Sghen virtualMods= AltGr, 135c067fea9Sghen symbols[Group1] = [ ISO_Last_Group ] 136c067fea9Sghen }; 137c067fea9Sghen}; 138c067fea9Sghen 1390412cdedSmrg 1400412cdedSmrg// 1410412cdedSmrg// CTRL-SHIFT toggle section 1420412cdedSmrg// 143154daed1Smrgpartial modifier_keys 1440412cdedSmrgxkb_symbols "lctrl_lshift_toggle" { 1450412cdedSmrg key <LFSH> { 1460412cdedSmrg type[Group1]="PC_CONTROL_LEVEL2", 1470412cdedSmrg symbols[Group1]= [ Shift_L, ISO_Next_Group ] 1480412cdedSmrg }; 1490412cdedSmrg key <LCTL> { [ Control_L, ISO_Next_Group ] }; 1500412cdedSmrg}; 1510412cdedSmrg 1520412cdedSmrgpartial modifier_keys 1530412cdedSmrgxkb_symbols "lctrl_lshift_toggle_rev" { 1540412cdedSmrg key <LFSH> { 1550412cdedSmrg type[Group1]="PC_CONTROL_LEVEL2", 1560412cdedSmrg symbols[Group1]= [ Shift_L, ISO_Prev_Group ] 1570412cdedSmrg }; 1580412cdedSmrg key <LCTL> { [ Control_L, ISO_Prev_Group ] }; 1590412cdedSmrg}; 1600412cdedSmrg 1610412cdedSmrgpartial modifier_keys 1620412cdedSmrgxkb_symbols "rctrl_rshift_toggle" { 1630412cdedSmrg key <RTSH> { 1640412cdedSmrg type[Group1]="PC_CONTROL_LEVEL2", 1650412cdedSmrg symbols[Group1]= [ Shift_R, ISO_Next_Group ] 1660412cdedSmrg }; 1670412cdedSmrg key <RCTL> { [ Control_R, ISO_Next_Group ] }; 1680412cdedSmrg}; 1690412cdedSmrg 1700412cdedSmrgpartial modifier_keys 1710412cdedSmrgxkb_symbols "ctrl_shift_toggle" { 1720412cdedSmrg include "group(lctrl_lshift_toggle)" 1730412cdedSmrg include "group(rctrl_rshift_toggle)" 1740412cdedSmrg}; 1750412cdedSmrg 1760412cdedSmrgpartial modifier_keys 1770412cdedSmrgxkb_symbols "ctrl_shift_toggle_bidir" { 1780412cdedSmrg include "group(lctrl_lshift_toggle_rev)" 1790412cdedSmrg include "group(rctrl_rshift_toggle)" 1800412cdedSmrg}; 1810412cdedSmrg 1820412cdedSmrg 1830412cdedSmrg// 1840412cdedSmrg// CTRL-ALT toggle section 1850412cdedSmrg// 1860412cdedSmrgpartial modifier_keys 1870412cdedSmrgxkb_symbols "lctrl_lalt_toggle" { 188154daed1Smrg virtual_modifiers Alt; 189154daed1Smrg key <LALT> { 1900412cdedSmrg type[Group1]="PC_CONTROL_LEVEL2", 1910412cdedSmrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ], 1920412cdedSmrg virtualMods= Alt 193154daed1Smrg }; 1940412cdedSmrg key <LCTL> { 1950412cdedSmrg type[Group1]="PC_ALT_LEVEL2", 1960412cdedSmrg symbols[Group1]= [ Control_L, ISO_Next_Group ] 1970412cdedSmrg }; 1980412cdedSmrg}; 1990412cdedSmrg 2000412cdedSmrgpartial modifier_keys 2010412cdedSmrgxkb_symbols "lctrl_lalt_toggle_rev" { 2020412cdedSmrg virtual_modifiers Alt; 2030412cdedSmrg key <LALT> { 2040412cdedSmrg type[Group1]="PC_CONTROL_LEVEL2", 2050412cdedSmrg symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], 2060412cdedSmrg virtualMods= Alt 207154daed1Smrg }; 208154daed1Smrg key <LCTL> { 2090412cdedSmrg type[Group1]="PC_ALT_LEVEL2", 2100412cdedSmrg symbols[Group1]= [ Control_L, ISO_Prev_Group ] 2110412cdedSmrg }; 2120412cdedSmrg}; 2130412cdedSmrg 2140412cdedSmrgpartial modifier_keys 2150412cdedSmrgxkb_symbols "rctrl_ralt_toggle" { 2160412cdedSmrg virtual_modifiers Alt; 2170412cdedSmrg key <RALT> { 2180412cdedSmrg type[Group1]="PC_CONTROL_LEVEL2", 2190412cdedSmrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ], 2200412cdedSmrg virtualMods= Alt 221154daed1Smrg }; 222154daed1Smrg key <RCTL> { 2230412cdedSmrg type[Group1]="PC_ALT_LEVEL2", 2240412cdedSmrg symbols[Group1]= [ Control_R, ISO_Next_Group ] 225154daed1Smrg }; 226154daed1Smrg}; 227154daed1Smrg 228154daed1Smrgpartial modifier_keys 2290412cdedSmrgxkb_symbols "ctrl_alt_toggle" { 2300412cdedSmrg include "group(lctrl_lalt_toggle)" 2310412cdedSmrg include "group(rctrl_ralt_toggle)" 2320412cdedSmrg}; 2330412cdedSmrg 2340412cdedSmrgpartial modifier_keys 2350412cdedSmrgxkb_symbols "ctrl_alt_toggle_bidir" { 2360412cdedSmrg include "group(lctrl_lalt_toggle_rev)" 2370412cdedSmrg include "group(rctrl_ralt_toggle)" 2380412cdedSmrg}; 2390412cdedSmrg 2400412cdedSmrg 2410412cdedSmrg// 2420412cdedSmrg// ALT-SHIFT toggle section 2430412cdedSmrg// 2440412cdedSmrgpartial modifier_keys 2450412cdedSmrgxkb_symbols "lalt_lshift_toggle" { 246154daed1Smrg virtual_modifiers Alt; 247154daed1Smrg key <LALT> { 2480412cdedSmrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ], 2490412cdedSmrg virtualMods= Alt 250154daed1Smrg }; 2510412cdedSmrg key <LFSH> { 2520412cdedSmrg type[Group1]="PC_ALT_LEVEL2", 2530412cdedSmrg symbols[Group1]= [ Shift_L, ISO_Next_Group ] 2540412cdedSmrg }; 2550412cdedSmrg}; 2560412cdedSmrg 2570412cdedSmrgpartial modifier_keys 2580412cdedSmrgxkb_symbols "lalt_lshift_toggle_rev" { 2590412cdedSmrg virtual_modifiers Alt; 2600412cdedSmrg key <LALT> { 2610412cdedSmrg symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], 2620412cdedSmrg virtualMods= Alt 263154daed1Smrg }; 264154daed1Smrg key <LFSH> { 2650412cdedSmrg type[Group1]="PC_ALT_LEVEL2", 2660412cdedSmrg symbols[Group1]= [ Shift_L, ISO_Prev_Group ] 2670412cdedSmrg }; 2680412cdedSmrg}; 2690412cdedSmrg 2700412cdedSmrgpartial modifier_keys 2710412cdedSmrgxkb_symbols "ralt_rshift_toggle" { 2720412cdedSmrg virtual_modifiers Alt; 2730412cdedSmrg key <RALT> { 2740412cdedSmrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ], 2750412cdedSmrg virtualMods= Alt 276154daed1Smrg }; 277154daed1Smrg key <RTSH> { 2780412cdedSmrg type[Group1]="PC_ALT_LEVEL2", 2790412cdedSmrg symbols[Group1]= [ Shift_R, ISO_Next_Group ] 280154daed1Smrg }; 281154daed1Smrg}; 282154daed1Smrg 2830412cdedSmrgpartial modifier_keys 2840412cdedSmrgxkb_symbols "alt_shift_toggle" { 2850412cdedSmrg include "group(lalt_lshift_toggle)" 2860412cdedSmrg include "group(ralt_rshift_toggle)" 2870412cdedSmrg}; 2880412cdedSmrg 2890412cdedSmrgpartial modifier_keys 2900412cdedSmrgxkb_symbols "alt_shift_toggle_bidir" { 2910412cdedSmrg include "group(lalt_lshift_toggle_rev)" 2920412cdedSmrg include "group(ralt_rshift_toggle)" 2930412cdedSmrg}; 2940412cdedSmrg 2950412cdedSmrg 296154daed1Smrg// using the group(menu_toggle) map, pressing: 297154daed1Smrg// Menu key toggles groups 298154daed1Smrg// Shift+Menu acts as Menu 299154daed1Smrgpartial modifier_keys 300154daed1Smrgxkb_symbols "menu_toggle" { 301154daed1Smrg key <MENU> { [ ISO_Next_Group, Menu ] }; 302154daed1Smrg}; 303154daed1Smrg 304154daed1Smrg// using the group(lwin_toggle) map, pressing the left Windows' logo key 305154daed1Smrg// toggles groups. If you use this map, you would declare you keyboard 306154daed1Smrg// as pc101 or pc102 instead of pc104 or pc105. 307154daed1Smrgpartial modifier_keys 308154daed1Smrgxkb_symbols "lwin_toggle" { 309154daed1Smrg virtual_modifiers AltGr; 310154daed1Smrg key <LWIN> { 311154daed1Smrg virtualMods= AltGr, 312154daed1Smrg symbols[Group1] = [ ISO_Next_Group ] 313154daed1Smrg }; 314154daed1Smrg}; 315154daed1Smrg 316154daed1Smrg// using the group(rwin_toggle) map, pressing the right Windows' logo key 317154daed1Smrg// toggles groups. If you use this map, you would declare you keyboard 318154daed1Smrg// as pc101 or pc102 instead of pc104 or pc105. 319154daed1Smrgpartial modifier_keys 320154daed1Smrgxkb_symbols "rwin_toggle" { 321154daed1Smrg virtual_modifiers AltGr; 322154daed1Smrg key <RWIN> { 323154daed1Smrg virtualMods= AltGr, 324154daed1Smrg symbols[Group1] = [ ISO_Next_Group ] 325154daed1Smrg }; 326154daed1Smrg}; 327154daed1Smrg 328154daed1Smrg// Both Ctrls pressed together toggle group 329154daed1Smrgpartial modifier_keys 330154daed1Smrgxkb_symbols "ctrls_toggle" { 331154daed1Smrg virtual_modifiers LControl, RControl; 332154daed1Smrg key <LCTL> { 333154daed1Smrg type[Group1]="PC_RCONTROL_LEVEL2", 334154daed1Smrg symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], 335154daed1Smrg virtualMods= LControl 336154daed1Smrg }; 337154daed1Smrg key <RCTL> { 338154daed1Smrg type[Group1]="PC_LCONTROL_LEVEL2", 339154daed1Smrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ], 340154daed1Smrg virtualMods= RControl 341154daed1Smrg }; 342154daed1Smrg}; 343154daed1Smrg 344154daed1Smrg// Both Alts pressed together toggle group 345154daed1Smrgpartial modifier_keys 346154daed1Smrgxkb_symbols "alts_toggle" { 347154daed1Smrg virtual_modifiers LAlt, RAlt; 348154daed1Smrg key <LALT> { 349154daed1Smrg type[Group1]="PC_RALT_LEVEL2", 350154daed1Smrg symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], 351154daed1Smrg virtualMods= LAlt 352154daed1Smrg }; 353154daed1Smrg key <RALT> { 354154daed1Smrg type[Group1]="PC_LALT_LEVEL2", 355154daed1Smrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ], 356154daed1Smrg virtualMods= RAlt 357154daed1Smrg }; 358154daed1Smrg}; 359154daed1Smrg 360154daed1Smrg// Left Shift key toggles group 361154daed1Smrgpartial modifier_keys 362154daed1Smrgxkb_symbols "lshift_toggle" { 363154daed1Smrg virtual_modifiers AltGr; 364154daed1Smrg key <LFSH> { 365154daed1Smrg symbols[Group1]= [ ISO_Next_Group ], 366154daed1Smrg virtualMods= AltGr 367154daed1Smrg }; 368154daed1Smrg}; 369154daed1Smrg 370154daed1Smrg// Right Shift key toggles group 371154daed1Smrgpartial modifier_keys 372154daed1Smrgxkb_symbols "rshift_toggle" { 373154daed1Smrg virtual_modifiers AltGr; 374154daed1Smrg key <RTSH> { 375154daed1Smrg symbols[Group1]= [ ISO_Next_Group ], 376154daed1Smrg virtualMods= AltGr 377154daed1Smrg }; 378154daed1Smrg}; 379154daed1Smrg 380154daed1Smrg// Left Alt key toggles group 381154daed1Smrgpartial modifier_keys 382154daed1Smrgxkb_symbols "lalt_toggle" { 383154daed1Smrg virtual_modifiers AltGr; 384154daed1Smrg key <LALT> { 385154daed1Smrg symbols[Group1]= [ ISO_Next_Group ], 386154daed1Smrg virtualMods= AltGr 387154daed1Smrg }; 388154daed1Smrg}; 389154daed1Smrg 390154daed1Smrg// Left Ctrl key toggles group 391154daed1Smrgpartial modifier_keys 392154daed1Smrgxkb_symbols "lctrl_toggle" { 393154daed1Smrg virtual_modifiers AltGr; 394154daed1Smrg key <LCTL> { 395154daed1Smrg symbols[Group1]= [ ISO_Next_Group ], 396154daed1Smrg virtualMods= AltGr 397154daed1Smrg }; 398154daed1Smrg}; 399154daed1Smrg 400154daed1Smrg// Right Ctrl key toggles group 401154daed1Smrgpartial modifier_keys 402154daed1Smrgxkb_symbols "rctrl_toggle" { 403154daed1Smrg virtual_modifiers AltGr; 404154daed1Smrg key <RCTL> { 405154daed1Smrg symbols[Group1]= [ ISO_Next_Group ], 406154daed1Smrg virtualMods= AltGr 407154daed1Smrg }; 408154daed1Smrg}; 409154daed1Smrg 410154daed1Smrg// using the group(alt_caps_toggle) map, pressing: 411154daed1Smrg// Alt+Caps Lock toggles group 412154daed1Smrg// Caps Lock toggles caps lock 413154daed1Smrgpartial modifier_keys 414154daed1Smrgxkb_symbols "alt_caps_toggle" { 415154daed1Smrg key <CAPS> { 416154daed1Smrg type="PC_ALT_LEVEL2", 417154daed1Smrg symbols[Group1]= [ Caps_Lock, ISO_Next_Group] 418154daed1Smrg }; 419154daed1Smrg}; 420154daed1Smrg 421154daed1Smrgpartial hidden modifier_keys 422154daed1Smrgxkb_symbols "olpc" { 423154daed1Smrg key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] }; 424154daed1Smrg}; 425154daed1Smrg 426c067fea9Sghenpartial modifier_keys 427c067fea9Sghenxkb_symbols "alt_space_toggle" { 428c067fea9Sghen key <SPCE> { 429c067fea9Sghen type[Group1]="PC_ALT_LEVEL2", 430c067fea9Sghen symbols[Group1]= [ space, ISO_Next_Group ] 431c067fea9Sghen }; 432c067fea9Sghen}; 433c067fea9Sghen 434c067fea9Sghen// using the group(sclk_toggle) map, pressing the Scroll Lock key 435c067fea9Sghen// toggles groups. 436c067fea9Sghenpartial modifier_keys 437c067fea9Sghenxkb_symbols "sclk_toggle" { 438c067fea9Sghen virtual_modifiers AltGr; 439c067fea9Sghen key <SCLK> { 440c067fea9Sghen virtualMods= AltGr, 441c067fea9Sghen symbols[Group1] = [ ISO_Next_Group ] 442c067fea9Sghen }; 443c067fea9Sghen}; 444c067fea9Sghen 445bfd7cbc1Smrg// Control_L+Win_L locks the first group (presumably Lat). 446bfd7cbc1Smrg// Control_R+Menu locks the second group (presumably Rus). 447bfd7cbc1Smrgpartial modifier_keys 448bfd7cbc1Smrgxkb_symbols "lctrl_lwin_rctrl_menu" { 449bfd7cbc1Smrg key <LWIN> { 450bfd7cbc1Smrg type[ Group1 ] = "PC_CONTROL_LEVEL2", 451bfd7cbc1Smrg symbols[ Group1 ] = [ Super_L, ISO_First_Group ] 452bfd7cbc1Smrg }; 453bfd7cbc1Smrg key <MENU> { 454bfd7cbc1Smrg type[ Group1 ] = "PC_CONTROL_LEVEL2", 455bfd7cbc1Smrg symbols[ Group1 ] = [ Menu, ISO_Last_Group ] 456bfd7cbc1Smrg }; 457bfd7cbc1Smrg}; // lctrl_lwin_rctrl_menu 458