Index: symbols/group =================================================================== RCS file: /cvs/xkeyboard-config/xkeyboard-config/symbols/group,v retrieving revision 1.10 diff -u -r1.10 group --- symbols/group 16 Oct 2006 19:27:05 -0000 1.10 +++ symbols/group 24 Aug 2007 23:10:46 -0000 @@ -244,16 +244,16 @@ // Both Alts pressed together toggle group partial modifier_keys xkb_symbols "alts_toggle" { - virtual_modifiers Alt; + virtual_modifiers LAlt, RAlt; key { - type[Group1]="PC_SYSRQ", + type[Group1]="PC_RALT_LEVEL2", symbols[Group1]= [ NoSymbol, ISO_Prev_Group ], - virtualMods= Alt + virtualMods= LAlt }; key { - type[Group1]="PC_SYSRQ", + type[Group1]="PC_LALT_LEVEL2", symbols[Group1]= [ NoSymbol, ISO_Next_Group ], - virtualMods= Alt + virtualMods= RAlt }; }; Index: symbols/level3 =================================================================== RCS file: /cvs/xkeyboard-config/xkeyboard-config/symbols/level3,v retrieving revision 1.16 diff -u -r1.16 level3 --- symbols/level3 19 Dec 2006 00:18:37 -0000 1.16 +++ symbols/level3 24 Aug 2007 23:10:47 -0000 @@ -49,7 +49,7 @@ partial hidden modifier_keys xkb_symbols "ralt_switch_for_alts_toggle" { key { - type[Group1]="PC_SYSRQ", + type[Group1]="PC_RALT_LEVEL2", symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ] }; key { Index: types/pc =================================================================== RCS file: /cvs/xkeyboard-config/xkeyboard-config/types/pc,v retrieving revision 1.3 diff -u -r1.3 pc --- types/pc 21 Mar 2006 23:41:29 -0000 1.3 +++ types/pc 24 Aug 2007 23:10:47 -0000 @@ -8,6 +8,8 @@ // a PC compatible keyboard. virtual_modifiers Alt; virtual_modifiers LevelThree; + virtual_modifiers LAlt; + virtual_modifiers RAlt; type "PC_BREAK" { modifiers = Control; @@ -17,22 +19,38 @@ level_name[Level2] = "Control"; }; - type "PC_ALT_LEVEL2" { - modifiers = Alt; + type "PC_SYSRQ" { + modifiers = Alt+LevelThree; map[None] = Level1; map[Alt] = Level2; + map[LevelThree] = Level3; level_name[Level1] = "Base"; level_name[Level2] = "Alt"; + level_name[Level3] = "Level3"; }; - type "PC_SYSRQ" { - modifiers = Alt+LevelThree; + type "PC_ALT_LEVEL2" { + modifiers = Alt; map[None] = Level1; map[Alt] = Level2; - map[LevelThree] = Level3; level_name[Level1] = "Base"; level_name[Level2] = "Alt"; - level_name[Level3] = "Level3"; + }; + + type "PC_LALT_LEVEL2" { + modifiers = LAlt; + map[None] = Level1; + map[LAlt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "LAlt"; + }; + + type "PC_RALT_LEVEL2" { + modifiers = RAlt; + map[None] = Level1; + map[RAlt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "RAlt"; }; type "CTRL+ALT" {