On Sat, 2007-08-04 at 12:02 +0900, Carsten Haitzler wrote:
well... this is no new problem. it's been around for years. in the end - the wm's win, because you need one for a sane desktop. whatever they steal in terms of key (and mouse) bindings is what a user comes to EXPECT from functionality on ALL their windows (eg - alt+left mouse to move, alt+right mouse for wm window menu etc.). there is a kind of pseudo-standard (just by virtue that a lot of wm's come this way by default) that there seems to be a common convention that alt + button is what wm's take - anything else if open for apps.
I guess my real concern is that it's alt today, meta tomorrow and control next week? It seems like in general that there should be some consistency here. That way someone knows where their mouse events are going (though I doubt they'll think about it that way).
now i ask - why do u think it's bad apps use met - but you now promote wm's to use it instead of alt? you are basically saying "i don't want to use meta - so i want to force wm's to do the thing i am not willing to". at the end of the day
- this is highly unfair as your point about the meta key being "not always
there" is valid - and all you do is put the problem onto the wm's.
No, the reason that I was suggesting that a WM use meta is because in general, I think the desktop knows a lot more about the hardware that it's working with. Application do, and should, know very little. Things like accessibility and keyboard configuration are done at a desktop/WM level -- so I thought it would make more sense to also use, or not use, the meta key at that level. I believe that there are also internationalization issues here, though I'm ignorant to other keyboard layouts myself.
personally- i think you need to find a way to do what you need without needing more and more modifier keys. i know a lot of wm's will keep being shipped using alt+button because they have been shipped that way for 10+ years. it's been a default feature for a decade and it's not going away. you need to find a way to work with it. i would SOONER specify "alt + button is reserved for wm's - apps need to use anything else" because wm's "were there first", "steal the buttons before your app can do anything about it" and "it's an incredibly useful feature to have on ALL windows" as opposed to losing it on ALL windows just so 1 app can have more bindings.
If that's the case, I think FreeDesktop should have something that says that. I think we should give as many bindings as possible to apps in general.
the only sensible suggestion here i think is some form of hint on the window that says "i use alt+button 1, alt+button 2, ctrl+button 1 etc." so the wm MIGHT be nice and disable any of its own bindings if they conflict - just on that window. the problem here now is inconsistent UI experience and control - i go to my inkscape window and press alt+button 1 to drag the window and it doesn't - it does something else. the element of least surprise is violated. every window i have does it - except this one now. so though it is technically solvable to give you bindings back - it now leads to a bad UI experience and users i think will be better off if you try and stick to the pseudo-conventions in-place? remember this problem exists for key bindings as well - you could complain that "wm's steal alt+tab from apps - i want wm's to stop that so i can get more key combinations for my app". it's not going to happen - there are many common key-bindings too that wm's use and there are pseudo-conventions there.
I agree that the bindings should not be overloaded. The only way I could see this making sense is if the WM provided some sort of feedback to the user that they have been overloaded -- and icon on the title bar or something. But, I think in general that would be confusing.
I general, today we are seeing that confusion. People regularly e-mail the Inkscape lists complaining they can't get features to work (not only alt-mouse) because those keys are stolen by the WM or Desktop or whatever. This is a more than minorly annoying support issue.
--Ted