Making consistent CTRL+SHIFT toggle
authorSergey V. Udaltsov <svu@gnome.org>
Wed, 28 Dec 2011 02:15:12 +0000 (02:15 +0000)
committerSergey V. Udaltsov <svu@gnome.org>
Wed, 28 Dec 2011 02:15:12 +0000 (02:15 +0000)
The default switchers are changed to switch to next group.
The old behavior is kept in _bidir options

https://bugs.freedesktop.org/show_bug.cgi?id=42931

rules/base.o_s.part
symbols/group

index 8bd640a..b4772b4 100644 (file)
   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:ctrl_alt_toggle_bidir    =       +group(ctrl_alt_toggle_bidir)
-  grp:alt_shift_toggle =       +group(alt_shift_toggle)
-  grp:alt_shift_toggle_bidir   =       +group(alt_shift_toggle_bidir)
-  grp:lalt_lshift_toggle       =       +group(lalt_lshift_toggle)
-  grp:ralt_rshift_toggle       =       +group(ralt_rshift_toggle)
   grp:alt_space_toggle =       +group(alt_space_toggle)
   grp:menu_toggle      =       +group(menu_toggle)
   grp:lwin_toggle      =       +group(lwin_toggle)
   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)
index d8c357a..fb2f879 100644 (file)
@@ -85,51 +85,6 @@ xkb_symbols "shifts_toggle" {
     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
@@ -183,6 +138,49 @@ xkb_symbols "lctrl_rctrl_switch" {
 
 
 //
+// 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