Future Plans for Scwm
Here are the things we would like to see happen with Scwm, in
approximate order:
- More configurability of behavior through hooks and/or the event
rewrite. For hitting the screen edge, maybe entering & leaving icons.
See how much this allows us to write in Scheme instead of C. It should
be able to handle at least click to focus/mouse focus/no focus/sloppy
focus and scrolling on the screen edge. We could also do other neat
tricks, for example, put the icon box of the right edge of the screen,
and when you move the cursor to the right edge, the screen scrolls to
reveal the icon box. This is just an example of the kind of stuff that
could be done. Basically, whenever fvwm has some specific way of
reacting to a user action, scwm would let you fully specify the
behavior. We would like to move as much operating functionality from C to
Scheme as is reasonable, while maintaining good performance and a
good programming interface.
- Steal good features from other window managers. For example, gwm
has many interesting features from a programmability standpoint. Twm
lets you customize the cursors used by the window manager. There are
lots of fvwm variants out there (fvwm95, afterstep) that it would
be really easy to lift code from for many neat things.
- A GUI configuration module, written in Scheme and probably using
guile-gtk. Most common setup options would be available here. Of
course, it just won't be possible to anticipate all user customization
needs, so sometimes for really weird things you'll still want to have
the .scwmrc. A version of this idea using scwm's menuing capability
already exists.
- A new, improved event model -- see event rewrite notes.
- More support for different window decorations - we would like to
have multiple sets of functions for decorating windows and put them in
separate dynamically loadable libraries. scwm would only load the
decoration functions that were needed. Available as decoration styles
we'd like to have at least the following (some we've already got!):
- null decorations that draw nothing (and use no memory)
- a new native look based on gtk, to go with gnome apps
- an fvwm-like look. (done)
- an mwm-like look. (done)
- a win95-like look. (done)
- an AfterStep-like look.
- a Mac-like look.
- a [[t]v]twm-like look. (sort of done)
- the ability to do squeeze-titles with some or all of the above.
- the ability to have the title-bar on the side of the window
with some or all of the above.
- a wm2/wmx-like look.
- a look that would let you have arbitrary shaped, scaled pixmaps
for any part of the window decorations, a la Enlightenment.
This is, of course, a very ambitious undertaking. we need even more help
from volunteers to come up with some of these sets of decoration
functions. We'll try to make it as easy as possible for others to write
those parts, and we will accept any other cool look that anyone else
wants to contribute. Some people may ask why any of the others are
necessary, since the Enlightenment-like look could emulate them all
decently. The problem is that that way of doing things intrinsically uses a
_lot_ of memory, and many of the decoration styles can be drawn much
more simply. People who want or are willing to settle for a plainer look
should not have to pay that extra memory cost. It may also be worth it
to implement a decoration module that lets the user create totally
custom decorations. At the very least, it would be useful for
prototyping new looks.
- At some point, a total may be necessary to get all
this stuff working cleanly together and to cut down on memory-hogging
fat that may have been missed.
Other WMs that are progress benchmarks
Here are the window managers Scwm is "competing with" in
some sense, and the reasons why. By competition, we don't mean that I
want to see these projects fail. Rather, that there are some
really great ideas in all of these window managers, and we want
to copy as many of their features as possible, and put them in one
useful package.
- WindowMaker: Especially enticing is its nice graphical
configuration panels.
- KWM: The interaction with kpanel and kfm is something Scwm already
partially supports, but could do better.
- Enlightenment: Enlightenment gives you more control over look than
any other window manager. While we are more interested in
customizing and programming feel and behavior, we should have a
similar level of look customizability without the mandatory memory hit
you get with Enlightenment.
- fvwm (and its descendants): Recent development has some cool stuff
including snap-attraction, layers, and diagonal gradients.
- gwm: There still may be some primitives that GWM has that we don't.
No offense is intended to the authors and users of these window
managers, of course. They are all great in their own way, and
this the reason why they are listed here as the benchmarks to measure Scwm's
progress against.