summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey V. Udaltsov <svu@gnome.org>2011-12-26 12:26:35 +0000
committerSergey V. Udaltsov <svu@gnome.org>2011-12-26 12:26:35 +0000
commitde45ece5ab09ab218998d35db3a9d0cb4686b546 (patch)
tree98b9b015f1e4fc4010188c6839a7befe986dc0d1
parente92c4f65b6fb74eeb1772cc40ff89c5a1ff2c4ec (diff)
Separating lalt_lshift_toggle option
https://bugs.freedesktop.org/show_bug.cgi?id=43922 Now, alt_shift_toggle is composed of "right" and "left" blocks. Also, it is one-direction ("Next") only. For people who need both directions, the "bidir" option is introduced but not advertised in xml - because GUI tools usually belong to DEs that perform one-way circular layout switching.
-rw-r--r--rules/base.o_s.part3
-rw-r--r--rules/base.xml.in6
-rw-r--r--symbols/group57
3 files changed, 50 insertions, 16 deletions
diff --git a/rules/base.o_s.part b/rules/base.o_s.part
index e1188ba3..6bc7ede9 100644
--- a/rules/base.o_s.part
+++ b/rules/base.o_s.part
@@ -27,6 +27,9 @@
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_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)
diff --git a/rules/base.xml.in b/rules/base.xml.in
index 7c94620a..22b720f2 100644
--- a/rules/base.xml.in
+++ b/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/symbols/group b/symbols/group
index 1aeb3710..c65b2b72 100644
--- a/symbols/group
+++ b/symbols/group
@@ -209,32 +209,57 @@ xkb_symbols "ctrl_alt_toggle" {
};
};
-// 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" {
+partial modifier_keys
+xkb_symbols "lalt_lshift_toggle" {
virtual_modifiers Alt;
key <LALT> {
- symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
- virtualMods= Alt
+ symbols[Group1]= [ NoSymbol, ISO_Next_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_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 ]
+ 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 ]
+ 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