diff options
author | Sergey V. Udaltsov <svu@gnome.org> | 2011-12-26 12:26:35 +0000 |
---|---|---|
committer | Sergey V. Udaltsov <svu@gnome.org> | 2011-12-26 12:26:35 +0000 |
commit | de45ece5ab09ab218998d35db3a9d0cb4686b546 (patch) | |
tree | 98b9b015f1e4fc4010188c6839a7befe986dc0d1 | |
parent | e92c4f65b6fb74eeb1772cc40ff89c5a1ff2c4ec (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.part | 3 | ||||
-rw-r--r-- | rules/base.xml.in | 6 | ||||
-rw-r--r-- | symbols/group | 57 |
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 |