[Techtalk] Window managers, desktop environments, and apps ( was: Re: [Issues] need more opinions)
malcolm at commsecure.com.au
Sat Oct 26 13:14:47 EST 2002
Not really knowing how this thread evolved and reluctant to be sucked
into a "GNOME and/or KDE are terrible" debate, I would nevertheless like
to offer a couple of comments from a technical standpoint.
On Fri, Oct 25, 2002 at 05:23:29PM -0400, caitlynmaire at earthlink.net wrote:
> On Fri, 25 Oct 2002 09:53:22 -0400
> Amanda Babcock <alb at quandary.org> wrote:
> > A window manager should just be a window manager.
> Neither Gnome nor KDE are window managers, and they don't claim to be
> ones. Metacity is the default window manager for Gnome 2, but you can
> run any Gnome compliant window manager (like Englightenment, icewm,
> WindowMaker, etc...) with Gnome.
This is not really true, although it was for GNOME 1. For GNOME 2,
window managers are expected to comply to the EWMH (enhanced window
managers hints) specification at freedesktop.org. Recent KDE versions
have this requirement as well, since the specification was developed
with input from both camps, along with a number of third parties. The
full specification is at
Window managers are also required to be compliant with the inter-client
communication conventions manual (ICCCM) and session management
specifications, but most do that more or less completely already.
Currently, only metacity complies fully with the EMWH spec in the GNOME
world. Enlightenment's developers have stated that they will not, since
their goals are different and they are no longer aiming to just be a
drop-in window manager for all environments; WindowMaker and IceWM
currently do not completely implement the spec, which results in strange
behaviour in some cases (the panel in xinerama setups somes to mind with
WindowMaker). Sawfish (common in GNOME 1, still popular with many GNOME
2 users) also misses a couple of pieces.
Over time, window managers will comply more completely with the spec,
since it's pretty sensible. But you just need to give them a bit of time
to prioritise and get the work done.
> > You should be able to
> > switch window managers whenever you want to. There should be a clean
> > break between that level and the application level.
That's not really a reasonable requirement, when you get down to the
details. You should be able to switch window managers and applications
will still be running with the same state. But that's about all you can
expect. Where the windows are, which one has focus, how big they are,
what the cursor is like, how many desktops and displays you have... all
these things cannot be expected to remain constant.
The window manager and the applications needs to work together to
display things. The applications put in requests for what they want and
the window managers tells them what they can have, usually after
considering the requests. Different window managers may not be able to
fulfill requests in exactly the same way: for example, there are some
"constraints based" window managers that use quite tricky and
user-customisable methods to organise windows. Starting the same
applications in metacity and then logging in again and using a
constraints based window managers would almost certainly lead to
different window layouts, since the window manager would answer the
display requests differently.
Similarly, a window manager may or may not support multiple desktops.
Switching from one that does to one that does not should obviously lead
to a change in the way windows are displayed (since they will all be on
the one desktop).
On another level, this is also not just about display properties. The
window manager is used to communicate information between client
applications for things such as launch feedback (so that a toolbar knows
when another application has started and can put up a new icon, to pick
one example). That type of information cannot be reasonably expected
survive across restarts (although all the communication is done in a
standard way thanks to the above specs).
How many of you believe in telekinesis? Raise my hand...
More information about the Techtalk