Проблема переключения раскладок в Ion3 до сегодняшнего дня у меня решалась запуском монструозного gnome-settings-daemon, отвалившегося после обновления иксов до 7.0 =)
Повторно перепробовав xxkb и прочее, понял что готовое решение найти вряд ли возможно - с любыми опциями глюки были недецкие ;)... Залил исходники xkbind, повозился с отладкой и решил проблему (иного выхода в общем-то и небыло ;)).
Пропатченный xkbind.c тут - ftp://85.192.25.40/incoming/xkbind.c Сам xkbind можно залить с sf или ftp://85.192.25.40/incoming/xkbind-2005.01.04.tar.gz
Детали. На самом деле всё оказалось элементарно - вызов функции XkbLockGroup происходил только при NotifyNonlinear, а теперь стал еще при NotifyAncestor.
P.S. Под иксы никогда не писал так что что означают эти Ancestor'ы - хз ;)