I have the Happy Hacking keyboard, which only has one pair of extra modifiers in addition to ctrl and meta. I want to use these for super and hyper, and I don't want one for super and the other for hyper. An ideal solution would be to make hyper the default, which would be useful in Emacs, and make a shifted hyper turn into a super. Thus, for instance, super+shift would be produced by: pressing shift, pressing hyper, releasing shift, pressing shift. Ideally, shift+hyper should immediately forget the shift, so that shift+super were also produced by: pressing lshift, pressing hyper, pressing rshift. hyper+shift would be produced by pressing hyper before shift.
I have tried to do this with xkb, but it is poorly documented and very complicated. One problem is that simply putting hyper on level 1 and super on level 2 will by default produce hyper+super on level 1. Is there a way?