Window Manager Modifiers

Carsten Haitzler (The Rasterman) raster at rasterman.com
Fri Aug 3 21:38:36 PDT 2007


On Fri, 03 Aug 2007 20:31:11 -0700 Ted Gould <ted at gould.cx> babbled:

> 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).

aaah - then concern yourself no longer. it has - by convention, been alt for a
very very very long time now - i know enlightenment hasn't changed its default
bindings in about 10 years and i know other wm's have been using alt+mouse
for a long time too.

> > 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.

it doesn't know anything more than inkscape does. they are in the same boat. a
wm doesn't have any special knowledge of your keyboard setup that inkscape
can't find out in exactly the same way :)

> 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.

a lot of wm's allow users to reconfigure bindings - but it's up to a user to
change this for themselves. generally speaking how the wm comes by default is
what people end up using anyway, and they just tend to extend it a bit and add
some things they like.

> > 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.

i think it hasn't been put up because this is a bit of a bed of thorns.
decreeing alt+buttons are not to be used by apps (or by wm's) just brings out
the war machine :) in the end we have a status-quo where there is a
psuedo-convention but it's not enshrined officially, thus keeping the peace :)

> > 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 think this is useful. at least the user gets a hint they are missing some
functionality (and can dig into it).

> 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.

indeed this is a problem for you - agreed. but there is no silver bullet i
think. wm's need button and key bindings to function sensibly for users. they
impose this desktop-wide they also tend to get in first and steal them before
apps are run. wm's mostly provide ways to reconfigure this - but applications
tend to not play "good citizen" and allow users to change these things for the
app - they expect the wm to conform around the apps.

in the end i think the best is that these are configurable - on both ends. a
set of properties to allow the wm or the app to let the user know that some
bindings/functionality has been stolen by the wm or is used by the app is
probably good - but you need a configuration mechanism to be able to address
that. the wm's config will apply to everything, if inkscape had it it would only
affect inkscape and thus keep a users desktop consistent.

all i can suggest is that there are general conventions around - alt+mouse
button seems to be generally used by the wm. alt+tab/alt+shift tab tends also
to be stolen. i can also say that e, by default, uses alt+Fn keys for desktop
switching, alt+shift+arrow keys, ctrl+alt+arrow keys and ctrl+alt and a bunch
of other keys. generally speaking ctrl+alt TOGETHER have been a fairly safe
thing for wm's to use as they tend to be rarely used by apps. ctrl+alt+delete
for example for logout/exit, ctrl+alt+end for restarting the wm, ctrl+alt+x for
closing a window, ctrl+alt+s for toggling stickiness, ctrl+alt+r for toggling
shading, ctrl+alt+i for iconifying, ctrl+alt+k to KILL a window - the nasty
way, etc.

you get the general trend there. i've tried to keep clear of stealing bindings
already in use when i originally set up the defaults - alt+Fn is there instead
of ctrl+alt only because x itself uses ctrl+alt+Fn to flip consoles. alt+mouse
is there historically only because it was very fast and easy to use and has now
entrenched itself.

-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster at rasterman.com
裸好多
Tokyo, Japan (東京 日本)


More information about the xdg mailing list