aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/xkeyboard-config
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2011-12-29 00:17:36 +0100
committerMarc Haesen <marc@hc-consult.be>2011-12-29 00:17:36 +0100
commitd515b895dc5151d102f33b577cafbf63473bbafa (patch)
tree98986aec1f43152c3c5f4f8f8a19d29f88b42d83 /xorg-server/xkeyboard-config
parentecb8be4d2a289c5308f3f23929116d2fe6aafa4b (diff)
parent9715b7fab0757c86e1bb151f3dce0b324bcff692 (diff)
downloadvcxsrv-d515b895dc5151d102f33b577cafbf63473bbafa.tar.gz
vcxsrv-d515b895dc5151d102f33b577cafbf63473bbafa.tar.bz2
vcxsrv-d515b895dc5151d102f33b577cafbf63473bbafa.zip
Merge remote-tracking branch 'origin/released'
Diffstat (limited to 'xorg-server/xkeyboard-config')
-rw-r--r--xorg-server/xkeyboard-config/rules/base.o_s.part17
-rw-r--r--xorg-server/xkeyboard-config/rules/base.xml.in6
-rw-r--r--xorg-server/xkeyboard-config/symbols/group856
3 files changed, 475 insertions, 404 deletions
diff --git a/xorg-server/xkeyboard-config/rules/base.o_s.part b/xorg-server/xkeyboard-config/rules/base.o_s.part
index e1188ba34..b4772b4c6 100644
--- a/xorg-server/xkeyboard-config/rules/base.o_s.part
+++ b/xorg-server/xkeyboard-config/rules/base.o_s.part
@@ -16,17 +16,12 @@
grp:shifts_toggle = +group(shifts_toggle)
grp:ctrls_toggle = +group(ctrls_toggle)
grp:alts_toggle = +group(alts_toggle)
- grp:ctrl_shift_toggle = +group(ctrl_shift_toggle)
- grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle)
- grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle)
grp:caps_toggle = +capslock(grouplock)
grp:caps_switch = +capslock(groupshift)
grp:shift_caps_toggle = +group(shift_caps_toggle)
grp:shift_caps_switch = +group(shift_caps_switch)
grp:win_menu_switch = +group(win_menu_switch)
grp:alt_caps_toggle = +group(alt_caps_toggle)
- grp:ctrl_alt_toggle = +group(ctrl_alt_toggle)
- grp:alt_shift_toggle = +group(alt_shift_toggle)
grp:alt_space_toggle = +group(alt_space_toggle)
grp:menu_toggle = +group(menu_toggle)
grp:lwin_toggle = +group(lwin_toggle)
@@ -40,6 +35,18 @@
grp:sclk_toggle = +group(sclk_toggle)
grp:lctrl_rctrl_switch = +group(lctrl_rctrl_switch)
grp:lctrl_lwin_rctrl_menu = +group(lctrl_lwin_rctrl_menu)
+ grp:lctrl_lalt_toggle = +group(lctrl_lalt_toggle)
+ grp:rctrl_ralt_toggle = +group(rctrl_ralt_toggle)
+ grp:ctrl_alt_toggle = +group(ctrl_alt_toggle)
+ grp:ctrl_alt_toggle_bidir = +group(ctrl_alt_toggle_bidir)
+ grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle)
+ grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle)
+ grp:ctrl_shift_toggle = +group(ctrl_shift_toggle)
+ grp:ctrl_shift_toggle_bidir = +group(ctrl_shift_toggle_bidir)
+ grp:lalt_lshift_toggle = +group(lalt_lshift_toggle)
+ grp:ralt_rshift_toggle = +group(ralt_rshift_toggle)
+ grp:alt_shift_toggle = +group(alt_shift_toggle)
+ grp:alt_shift_toggle_bidir = +group(alt_shift_toggle_bidir)
lv3:switch = +level3(switch)
lv3:ralt_switch = +level3(ralt_switch)
lv3:ralt_switch_multikey = +level3(ralt_switch_multikey)
diff --git a/xorg-server/xkeyboard-config/rules/base.xml.in b/xorg-server/xkeyboard-config/rules/base.xml.in
index 7c94620ab..22b720f20 100644
--- a/xorg-server/xkeyboard-config/rules/base.xml.in
+++ b/xorg-server/xkeyboard-config/rules/base.xml.in
@@ -5604,6 +5604,12 @@
</option>
<option>
<configItem>
+ <name>grp:lalt_lshift_toggle</name>
+ <_description>Left Alt+Left Shift</_description>
+ </configItem>
+ </option>
+ <option>
+ <configItem>
<name>grp:alt_space_toggle</name>
<_description>Alt+Space</_description>
</configItem>
diff --git a/xorg-server/xkeyboard-config/symbols/group b/xorg-server/xkeyboard-config/symbols/group
index e85cd6778..fb2f879d0 100644
--- a/xorg-server/xkeyboard-config/symbols/group
+++ b/xorg-server/xkeyboard-config/symbols/group
@@ -1,399 +1,457 @@
-// using the group(switch) map, the right alt key temporarily chooses
-// the second keyboard group (until it is released).
-//
-partial modifier_keys
-xkb_symbols "switch" {
- key <RALT> {
- symbols[Group1]= [ Mode_switch, Multi_key ],
- virtualMods= AltGr
- };
-};
-
-// using the group(lswitch) map, the left alt key temporarily chooses
-// the second keyboard group (until it is released).
-//
-partial modifier_keys
-xkb_symbols "lswitch" {
- key <LALT> {
- symbols[Group1]= [ Mode_switch, Multi_key ],
- virtualMods= AltGr
- };
-};
-
-
-// using the group(win_switch) map, both Windows'logo keys temporarily
-// choose the second keyboard group (until release). If you use this
-// map, you would declare you keyboard as pc101 or pc102 instead of
-// pc104 or pc105.
-partial modifier_keys
-xkb_symbols "win_switch" {
- include "group(lwin_switch)"
- include "group(rwin_switch)"
-};
-
-// using the group(lwin_switch) map, the left Windows' logo key
-// temporarily chooses the second keyboard group (until it is
-// released). If you use this map, you would declare you keyboard as
-// pc101 or pc102 instead of pc104 or pc105.
-partial modifier_keys
-xkb_symbols "lwin_switch" {
- key <LWIN> {
- symbols[Group1] = [ Mode_switch, Multi_key ],
- virtualMods= AltGr
- };
-};
-
-// using the group(rwin_switch) map, the right Windows' logo key
-// temporarily chooses the second keyboard group (until it is
-// released). If you use this map, you would declare you keyboard as
-// pc101 or pc102 instead of pc104 or pc105.
-partial modifier_keys
-xkb_symbols "rwin_switch" {
- key <RWIN> {
- symbols[Group1] = [ Mode_switch, Multi_key ],
- virtualMods= AltGr
- };
-};
-
-// Right Ctrl key temporary chooses the second keyboard group.
-// Needed mainly for Canadian keyboard
-partial modifier_keys
-xkb_symbols "rctrl_switch" {
- key <RCTL> {
- symbols[Group1]= [ Mode_switch ]
- };
-};
-
-// using the group(toggle) map, pressing the right alt key switches to
-// the next sequential group (until the next explicit group change).
-partial modifier_keys
-xkb_symbols "toggle" {
- virtual_modifiers AltGr;
- key <RALT> {
- symbols[Group1]= [ ISO_Next_Group ],
- virtualMods= AltGr
- };
-};
-
-// using the group(shifts_toggle) map, pressing both shift keys together
-// locks the next or previous sequential keyboard group
-// (depending on which shift is pressed first - right or left,
-// correspongingly)
-partial modifier_keys
-xkb_symbols "shifts_toggle" {
- key <LFSH> { [ Shift_L, ISO_Prev_Group ] };
- key <RTSH> { [ Shift_R, ISO_Next_Group ] };
-};
-
-// using the group(ctrl_shift_toggle) map, pressing:
-// Control_L+Shift_L locks the previous group
-// Control_R+Shift_R locks the next group
-// If you have two groups and group wrap is enabled, the effect is
-// indistinguishable.
-partial modifier_keys
-xkb_symbols "ctrl_shift_toggle" {
- key <LFSH> {
- type[Group1]="PC_CONTROL_LEVEL2",
- symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
- };
- key <RTSH> {
- type[Group1]="PC_CONTROL_LEVEL2",
- symbols[Group1]= [ Shift_R, ISO_Next_Group ]
- };
- key <LCTL> { [ Control_L, ISO_Prev_Group ] };
- key <RCTL> { [ Control_R, ISO_Next_Group ] };
-};
-
-// using the group(lctrl_lshift_toggle) map, pressing:
-// Control_L+Shift_L locks the next group
-// If you have two groups and group wrap is enabled, the effect is
-// indistinguishable.
-partial modifier_keys
-xkb_symbols "lctrl_lshift_toggle" {
- key <LFSH> {
- type[Group1]="PC_CONTROL_LEVEL2",
- symbols[Group1]= [ Shift_L, ISO_Next_Group ]
- };
- key <LCTL> { [ Control_L, ISO_Next_Group ] };
-};
-
-// using the group(rctrl_rshift_toggle) map, pressing:
-// Control_R+Shift_R locks the next group
-// If you have two groups and group wrap is enabled, the effect is
-// indistinguishable.
-partial modifier_keys
-xkb_symbols "rctrl_rshift_toggle" {
- key <RTSH> {
- type[Group1]="PC_CONTROL_LEVEL2",
- symbols[Group1]= [ Shift_R, ISO_Next_Group ]
- };
- key <RCTL> { [ Control_R, ISO_Next_Group ] };
-};
-
-// using the group(shift_caps_toggle) map, pressing:
-// Shift+Caps Lock toggles group
-partial modifier_keys
-xkb_symbols "shift_caps_toggle" {
- key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
-};
-
-// using the group(shift_caps_switch) map, pressing:
-// Caps Lock selects the first group
-// Shift+Caps Lock selects the last group
-partial modifier_keys
-xkb_symbols "shift_caps_switch" {
- key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
-};
-
-// using the group(win_menu_switch) map, pressing:
-// LWIN selects the first group
-// RWIN or MENU selects the last group
-partial modifier_keys
-xkb_symbols "win_menu_switch" {
- virtual_modifiers AltGr;
- key <LWIN> {
- virtualMods= AltGr,
- symbols[Group1] = [ ISO_First_Group ]
- };
- key <MENU> {
- virtualMods= AltGr,
- symbols[Group1] = [ ISO_Last_Group ]
- };
- key <RWIN> {
- virtualMods= AltGr,
- symbols[Group1] = [ ISO_Last_Group ]
- };
-};
-
-// using the group(lctrl_rctrl_switch) map, pressing:
-// Left Control selects the first group
-// Right Control selects the last group
-partial modifier_keys
-xkb_symbols "lctrl_rctrl_switch" {
- virtual_modifiers AltGr;
- key <LCTL> {
- virtualMods= AltGr,
- symbols[Group1] = [ ISO_First_Group ]
- };
- key <RCTL> {
- virtualMods= AltGr,
- symbols[Group1] = [ ISO_Last_Group ]
- };
-};
-
-// using the group(ctrl_alt_toggle) map, pressing:
-// Control_L+Alt_L locks the previous group
-// Control_R+Alt_R locks the next group
-// If you have two groups and group wrap is enabled, the effect is
-// indistinguishable.
-partial modifier_keys
-xkb_symbols "ctrl_alt_toggle" {
- virtual_modifiers Alt;
- key <LALT> {
- type[Group1]="PC_CONTROL_LEVEL2",
- symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
- virtualMods= Alt
- };
- key <RALT> {
- type[Group1]="PC_CONTROL_LEVEL2",
- symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
- virtualMods= Alt
- };
- key <LCTL> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Control_L, ISO_Prev_Group ]
- };
- key <RCTL> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Control_R, ISO_Next_Group ]
- };
-};
-
-// using the group(alt_shift_toggle) map, pressing:
-// Shift_L+Alt_L locks the previous group
-// Shift_R+Alt_R locks the next group
-// If you have two groups and group wrap is enabled, the effect is
-// indistinguishable.
-partial modifier_keys
-xkb_symbols "alt_shift_toggle" {
- virtual_modifiers Alt;
- key <LALT> {
- symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
- virtualMods= Alt
- };
- key <RALT> {
- symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
- virtualMods= Alt
- };
- key <LFSH> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
- };
- key <RTSH> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Shift_R, ISO_Next_Group ]
- };
-};
-
-// using the group(menu_toggle) map, pressing:
-// Menu key toggles groups
-// Shift+Menu acts as Menu
-partial modifier_keys
-xkb_symbols "menu_toggle" {
- key <MENU> { [ ISO_Next_Group, Menu ] };
-};
-
-// using the group(lwin_toggle) map, pressing the left Windows' logo key
-// toggles groups. If you use this map, you would declare you keyboard
-// as pc101 or pc102 instead of pc104 or pc105.
-partial modifier_keys
-xkb_symbols "lwin_toggle" {
- virtual_modifiers AltGr;
- key <LWIN> {
- virtualMods= AltGr,
- symbols[Group1] = [ ISO_Next_Group ]
- };
-};
-
-// using the group(rwin_toggle) map, pressing the right Windows' logo key
-// toggles groups. If you use this map, you would declare you keyboard
-// as pc101 or pc102 instead of pc104 or pc105.
-partial modifier_keys
-xkb_symbols "rwin_toggle" {
- virtual_modifiers AltGr;
- key <RWIN> {
- virtualMods= AltGr,
- symbols[Group1] = [ ISO_Next_Group ]
- };
-};
-
-// Both Ctrls pressed together toggle group
-partial modifier_keys
-xkb_symbols "ctrls_toggle" {
- virtual_modifiers LControl, RControl;
- key <LCTL> {
- type[Group1]="PC_RCONTROL_LEVEL2",
- symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
- virtualMods= LControl
- };
- key <RCTL> {
- type[Group1]="PC_LCONTROL_LEVEL2",
- symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
- virtualMods= RControl
- };
-};
-
-// Both Alts pressed together toggle group
-partial modifier_keys
-xkb_symbols "alts_toggle" {
- virtual_modifiers LAlt, RAlt;
- key <LALT> {
- type[Group1]="PC_RALT_LEVEL2",
- symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
- virtualMods= LAlt
- };
- key <RALT> {
- type[Group1]="PC_LALT_LEVEL2",
- symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
- virtualMods= RAlt
- };
-};
-
-// Left Shift key toggles group
-partial modifier_keys
-xkb_symbols "lshift_toggle" {
- virtual_modifiers AltGr;
- key <LFSH> {
- symbols[Group1]= [ ISO_Next_Group ],
- virtualMods= AltGr
- };
-};
-
-// Right Shift key toggles group
-partial modifier_keys
-xkb_symbols "rshift_toggle" {
- virtual_modifiers AltGr;
- key <RTSH> {
- symbols[Group1]= [ ISO_Next_Group ],
- virtualMods= AltGr
- };
-};
-
-// Left Alt key toggles group
-partial modifier_keys
-xkb_symbols "lalt_toggle" {
- virtual_modifiers AltGr;
- key <LALT> {
- symbols[Group1]= [ ISO_Next_Group ],
- virtualMods= AltGr
- };
-};
-
-// Left Ctrl key toggles group
-partial modifier_keys
-xkb_symbols "lctrl_toggle" {
- virtual_modifiers AltGr;
- key <LCTL> {
- symbols[Group1]= [ ISO_Next_Group ],
- virtualMods= AltGr
- };
-};
-
-// Right Ctrl key toggles group
-partial modifier_keys
-xkb_symbols "rctrl_toggle" {
- virtual_modifiers AltGr;
- key <RCTL> {
- symbols[Group1]= [ ISO_Next_Group ],
- virtualMods= AltGr
- };
-};
-
-// using the group(alt_caps_toggle) map, pressing:
-// Alt+Caps Lock toggles group
-// Caps Lock toggles caps lock
-partial modifier_keys
-xkb_symbols "alt_caps_toggle" {
- key <CAPS> {
- type="PC_ALT_LEVEL2",
- symbols[Group1]= [ Caps_Lock, ISO_Next_Group]
- };
-};
-
-partial hidden modifier_keys
-xkb_symbols "olpc" {
- key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
-};
-
-partial modifier_keys
-xkb_symbols "alt_space_toggle" {
- key <SPCE> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ space, ISO_Next_Group ]
- };
-};
-
-// using the group(sclk_toggle) map, pressing the Scroll Lock key
-// toggles groups.
-partial modifier_keys
-xkb_symbols "sclk_toggle" {
- virtual_modifiers AltGr;
- key <SCLK> {
- virtualMods= AltGr,
- symbols[Group1] = [ ISO_Next_Group ]
- };
-};
-
-// Control_L+Win_L locks the first group (presumably Lat).
-// Control_R+Menu locks the second group (presumably Rus).
-partial modifier_keys
-xkb_symbols "lctrl_lwin_rctrl_menu" {
- key <LWIN> {
- type[ Group1 ] = "PC_CONTROL_LEVEL2",
- symbols[ Group1 ] = [ Super_L, ISO_First_Group ]
- };
- key <MENU> {
- type[ Group1 ] = "PC_CONTROL_LEVEL2",
- symbols[ Group1 ] = [ Menu, ISO_Last_Group ]
- };
-}; // lctrl_lwin_rctrl_menu
+// using the group(switch) map, the right alt key temporarily chooses
+// the second keyboard group (until it is released).
+//
+partial modifier_keys
+xkb_symbols "switch" {
+ key <RALT> {
+ symbols[Group1]= [ Mode_switch, Multi_key ],
+ virtualMods= AltGr
+ };
+};
+
+// using the group(lswitch) map, the left alt key temporarily chooses
+// the second keyboard group (until it is released).
+//
+partial modifier_keys
+xkb_symbols "lswitch" {
+ key <LALT> {
+ symbols[Group1]= [ Mode_switch, Multi_key ],
+ virtualMods= AltGr
+ };
+};
+
+
+// using the group(win_switch) map, both Windows'logo keys temporarily
+// choose the second keyboard group (until release). If you use this
+// map, you would declare you keyboard as pc101 or pc102 instead of
+// pc104 or pc105.
+partial modifier_keys
+xkb_symbols "win_switch" {
+ include "group(lwin_switch)"
+ include "group(rwin_switch)"
+};
+
+// using the group(lwin_switch) map, the left Windows' logo key
+// temporarily chooses the second keyboard group (until it is
+// released). If you use this map, you would declare you keyboard as
+// pc101 or pc102 instead of pc104 or pc105.
+partial modifier_keys
+xkb_symbols "lwin_switch" {
+ key <LWIN> {
+ symbols[Group1] = [ Mode_switch, Multi_key ],
+ virtualMods= AltGr
+ };
+};
+
+// using the group(rwin_switch) map, the right Windows' logo key
+// temporarily chooses the second keyboard group (until it is
+// released). If you use this map, you would declare you keyboard as
+// pc101 or pc102 instead of pc104 or pc105.
+partial modifier_keys
+xkb_symbols "rwin_switch" {
+ key <RWIN> {
+ symbols[Group1] = [ Mode_switch, Multi_key ],
+ virtualMods= AltGr
+ };
+};
+
+// Right Ctrl key temporary chooses the second keyboard group.
+// Needed mainly for Canadian keyboard
+partial modifier_keys
+xkb_symbols "rctrl_switch" {
+ key <RCTL> {
+ symbols[Group1]= [ Mode_switch ]
+ };
+};
+
+// using the group(toggle) map, pressing the right alt key switches to
+// the next sequential group (until the next explicit group change).
+partial modifier_keys
+xkb_symbols "toggle" {
+ virtual_modifiers AltGr;
+ key <RALT> {
+ symbols[Group1]= [ ISO_Next_Group ],
+ virtualMods= AltGr
+ };
+};
+
+// using the group(shifts_toggle) map, pressing both shift keys together
+// locks the next or previous sequential keyboard group
+// (depending on which shift is pressed first - right or left,
+// correspongingly)
+partial modifier_keys
+xkb_symbols "shifts_toggle" {
+ key <LFSH> { [ Shift_L, ISO_Prev_Group ] };
+ key <RTSH> { [ Shift_R, ISO_Next_Group ] };
+};
+
+// using the group(shift_caps_toggle) map, pressing:
+// Shift+Caps Lock toggles group
+partial modifier_keys
+xkb_symbols "shift_caps_toggle" {
+ key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
+};
+
+// using the group(shift_caps_switch) map, pressing:
+// Caps Lock selects the first group
+// Shift+Caps Lock selects the last group
+partial modifier_keys
+xkb_symbols "shift_caps_switch" {
+ key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
+};
+
+// using the group(win_menu_switch) map, pressing:
+// LWIN selects the first group
+// RWIN or MENU selects the last group
+partial modifier_keys
+xkb_symbols "win_menu_switch" {
+ virtual_modifiers AltGr;
+ key <LWIN> {
+ virtualMods= AltGr,
+ symbols[Group1] = [ ISO_First_Group ]
+ };
+ key <MENU> {
+ virtualMods= AltGr,
+ symbols[Group1] = [ ISO_Last_Group ]
+ };
+ key <RWIN> {
+ virtualMods= AltGr,
+ symbols[Group1] = [ ISO_Last_Group ]
+ };
+};
+
+// using the group(lctrl_rctrl_switch) map, pressing:
+// Left Control selects the first group
+// Right Control selects the last group
+partial modifier_keys
+xkb_symbols "lctrl_rctrl_switch" {
+ virtual_modifiers AltGr;
+ key <LCTL> {
+ virtualMods= AltGr,
+ symbols[Group1] = [ ISO_First_Group ]
+ };
+ key <RCTL> {
+ virtualMods= AltGr,
+ symbols[Group1] = [ ISO_Last_Group ]
+ };
+};
+
+
+//
+// CTRL-SHIFT toggle section
+//
+partial modifier_keys
+xkb_symbols "lctrl_lshift_toggle" {
+ key <LFSH> {
+ type[Group1]="PC_CONTROL_LEVEL2",
+ symbols[Group1]= [ Shift_L, ISO_Next_Group ]
+ };
+ key <LCTL> { [ Control_L, ISO_Next_Group ] };
+};
+
+partial modifier_keys
+xkb_symbols "lctrl_lshift_toggle_rev" {
+ key <LFSH> {
+ type[Group1]="PC_CONTROL_LEVEL2",
+ symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
+ };
+ key <LCTL> { [ Control_L, ISO_Prev_Group ] };
+};
+
+partial modifier_keys
+xkb_symbols "rctrl_rshift_toggle" {
+ key <RTSH> {
+ type[Group1]="PC_CONTROL_LEVEL2",
+ symbols[Group1]= [ Shift_R, ISO_Next_Group ]
+ };
+ key <RCTL> { [ Control_R, ISO_Next_Group ] };
+};
+
+partial modifier_keys
+xkb_symbols "ctrl_shift_toggle" {
+ include "group(lctrl_lshift_toggle)"
+ include "group(rctrl_rshift_toggle)"
+};
+
+partial modifier_keys
+xkb_symbols "ctrl_shift_toggle_bidir" {
+ include "group(lctrl_lshift_toggle_rev)"
+ include "group(rctrl_rshift_toggle)"
+};
+
+
+//
+// CTRL-ALT toggle section
+//
+partial modifier_keys
+xkb_symbols "lctrl_lalt_toggle" {
+ virtual_modifiers Alt;
+ key <LALT> {
+ type[Group1]="PC_CONTROL_LEVEL2",
+ symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
+ virtualMods= Alt
+ };
+ key <LCTL> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Control_L, ISO_Next_Group ]
+ };
+};
+
+partial modifier_keys
+xkb_symbols "lctrl_lalt_toggle_rev" {
+ virtual_modifiers Alt;
+ key <LALT> {
+ type[Group1]="PC_CONTROL_LEVEL2",
+ symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
+ virtualMods= Alt
+ };
+ key <LCTL> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Control_L, ISO_Prev_Group ]
+ };
+};
+
+partial modifier_keys
+xkb_symbols "rctrl_ralt_toggle" {
+ virtual_modifiers Alt;
+ key <RALT> {
+ type[Group1]="PC_CONTROL_LEVEL2",
+ symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
+ virtualMods= Alt
+ };
+ key <RCTL> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Control_R, ISO_Next_Group ]
+ };
+};
+
+partial modifier_keys
+xkb_symbols "ctrl_alt_toggle" {
+ include "group(lctrl_lalt_toggle)"
+ include "group(rctrl_ralt_toggle)"
+};
+
+partial modifier_keys
+xkb_symbols "ctrl_alt_toggle_bidir" {
+ include "group(lctrl_lalt_toggle_rev)"
+ include "group(rctrl_ralt_toggle)"
+};
+
+
+//
+// ALT-SHIFT toggle section
+//
+partial modifier_keys
+xkb_symbols "lalt_lshift_toggle" {
+ virtual_modifiers Alt;
+ key <LALT> {
+ symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
+ virtualMods= Alt
+ };
+ key <LFSH> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Shift_L, ISO_Next_Group ]
+ };
+};
+
+partial modifier_keys
+xkb_symbols "lalt_lshift_toggle_rev" {
+ virtual_modifiers Alt;
+ key <LALT> {
+ symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
+ virtualMods= Alt
+ };
+ key <LFSH> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
+ };
+};
+
+partial modifier_keys
+xkb_symbols "ralt_rshift_toggle" {
+ virtual_modifiers Alt;
+ key <RALT> {
+ symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
+ virtualMods= Alt
+ };
+ key <RTSH> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Shift_R, ISO_Next_Group ]
+ };
+};
+
+partial modifier_keys
+xkb_symbols "alt_shift_toggle" {
+ include "group(lalt_lshift_toggle)"
+ include "group(ralt_rshift_toggle)"
+};
+
+partial modifier_keys
+xkb_symbols "alt_shift_toggle_bidir" {
+ include "group(lalt_lshift_toggle_rev)"
+ include "group(ralt_rshift_toggle)"
+};
+
+
+// using the group(menu_toggle) map, pressing:
+// Menu key toggles groups
+// Shift+Menu acts as Menu
+partial modifier_keys
+xkb_symbols "menu_toggle" {
+ key <MENU> { [ ISO_Next_Group, Menu ] };
+};
+
+// using the group(lwin_toggle) map, pressing the left Windows' logo key
+// toggles groups. If you use this map, you would declare you keyboard
+// as pc101 or pc102 instead of pc104 or pc105.
+partial modifier_keys
+xkb_symbols "lwin_toggle" {
+ virtual_modifiers AltGr;
+ key <LWIN> {
+ virtualMods= AltGr,
+ symbols[Group1] = [ ISO_Next_Group ]
+ };
+};
+
+// using the group(rwin_toggle) map, pressing the right Windows' logo key
+// toggles groups. If you use this map, you would declare you keyboard
+// as pc101 or pc102 instead of pc104 or pc105.
+partial modifier_keys
+xkb_symbols "rwin_toggle" {
+ virtual_modifiers AltGr;
+ key <RWIN> {
+ virtualMods= AltGr,
+ symbols[Group1] = [ ISO_Next_Group ]
+ };
+};
+
+// Both Ctrls pressed together toggle group
+partial modifier_keys
+xkb_symbols "ctrls_toggle" {
+ virtual_modifiers LControl, RControl;
+ key <LCTL> {
+ type[Group1]="PC_RCONTROL_LEVEL2",
+ symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
+ virtualMods= LControl
+ };
+ key <RCTL> {
+ type[Group1]="PC_LCONTROL_LEVEL2",
+ symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
+ virtualMods= RControl
+ };
+};
+
+// Both Alts pressed together toggle group
+partial modifier_keys
+xkb_symbols "alts_toggle" {
+ virtual_modifiers LAlt, RAlt;
+ key <LALT> {
+ type[Group1]="PC_RALT_LEVEL2",
+ symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
+ virtualMods= LAlt
+ };
+ key <RALT> {
+ type[Group1]="PC_LALT_LEVEL2",
+ symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
+ virtualMods= RAlt
+ };
+};
+
+// Left Shift key toggles group
+partial modifier_keys
+xkb_symbols "lshift_toggle" {
+ virtual_modifiers AltGr;
+ key <LFSH> {
+ symbols[Group1]= [ ISO_Next_Group ],
+ virtualMods= AltGr
+ };
+};
+
+// Right Shift key toggles group
+partial modifier_keys
+xkb_symbols "rshift_toggle" {
+ virtual_modifiers AltGr;
+ key <RTSH> {
+ symbols[Group1]= [ ISO_Next_Group ],
+ virtualMods= AltGr
+ };
+};
+
+// Left Alt key toggles group
+partial modifier_keys
+xkb_symbols "lalt_toggle" {
+ virtual_modifiers AltGr;
+ key <LALT> {
+ symbols[Group1]= [ ISO_Next_Group ],
+ virtualMods= AltGr
+ };
+};
+
+// Left Ctrl key toggles group
+partial modifier_keys
+xkb_symbols "lctrl_toggle" {
+ virtual_modifiers AltGr;
+ key <LCTL> {
+ symbols[Group1]= [ ISO_Next_Group ],
+ virtualMods= AltGr
+ };
+};
+
+// Right Ctrl key toggles group
+partial modifier_keys
+xkb_symbols "rctrl_toggle" {
+ virtual_modifiers AltGr;
+ key <RCTL> {
+ symbols[Group1]= [ ISO_Next_Group ],
+ virtualMods= AltGr
+ };
+};
+
+// using the group(alt_caps_toggle) map, pressing:
+// Alt+Caps Lock toggles group
+// Caps Lock toggles caps lock
+partial modifier_keys
+xkb_symbols "alt_caps_toggle" {
+ key <CAPS> {
+ type="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Caps_Lock, ISO_Next_Group]
+ };
+};
+
+partial hidden modifier_keys
+xkb_symbols "olpc" {
+ key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
+};
+
+partial modifier_keys
+xkb_symbols "alt_space_toggle" {
+ key <SPCE> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ space, ISO_Next_Group ]
+ };
+};
+
+// using the group(sclk_toggle) map, pressing the Scroll Lock key
+// toggles groups.
+partial modifier_keys
+xkb_symbols "sclk_toggle" {
+ virtual_modifiers AltGr;
+ key <SCLK> {
+ virtualMods= AltGr,
+ symbols[Group1] = [ ISO_Next_Group ]
+ };
+};
+
+// Control_L+Win_L locks the first group (presumably Lat).
+// Control_R+Menu locks the second group (presumably Rus).
+partial modifier_keys
+xkb_symbols "lctrl_lwin_rctrl_menu" {
+ key <LWIN> {
+ type[ Group1 ] = "PC_CONTROL_LEVEL2",
+ symbols[ Group1 ] = [ Super_L, ISO_First_Group ]
+ };
+ key <MENU> {
+ type[ Group1 ] = "PC_CONTROL_LEVEL2",
+ symbols[ Group1 ] = [ Menu, ISO_Last_Group ]
+ };
+}; // lctrl_lwin_rctrl_menu