modifier-only shortcuts
Lubos Lunak
l.lunak at suse.cz
Fri Jul 7 15:21:08 BST 2006
On Friday 07 July 2006 14:11, Chusslove Illich wrote:
> >> [: Aaron J. Seigo :]
> >> and it's a "proper" command sequence involving a control key and a
> >> non-control key that isn't used for anything else i can really think of.
> >
> > [: Alexander Dymo :]
> > This would be alt+space on intel, right?
>
> Bloody hell, how did nobody think of this before? Now I tried, and of
> course it works. Should we make it default?
I'd suggest so, because it seems to make sense (and we can claim we're like
Apple and not like Windows :) ).
Moreover, one more reason against modifier-only shortcuts, besides the
already mentioned ones, is purely technical. It's bloody difficult, or maybe
even impossible, to do it correctly. As long as correct includes not killing
all other shortcuts using that combination. Remember the
Win-key-alone-opens-K-Menu feature? There were always some problems with it.
Basically, you're not notified of key events if you don't have focus unless
you have keyboard grab (active or passive). You can set up a passive grab on
a modified combination, but for other shortcuts using these modifiers to work
you have to let go of the grab and then you have no way[*] to find out if
actually the user pressed something more or only the modifiers. If you don't
let go of the grab and instead try to forward the presses, well, that's what
the K-Menu code tried and apparently nobody managed to get that working 100%.
If you think you really want support for that in kxkb, you can try your luck,
but you'll probably have to use XGrabKey() directly and allow to
differentiate between left and right modifiers (using e.g. right Alt+Ctrl and
as such disabling it for everything else seems to be harmless, I don't think
I've ever used them for any shortcut).
[*] Might be there would be some X extension for input that'd give this
information somehow, but there's nothing like that in core X and I don't know
about extensions.
L
More information about the kde-core-devel
mailing list