From the Desktop: S Is For SCWM and a Whole New Scheme - page 2
It's pronounced "squim"
But there is another method SCWM is designed to use, and it's right there in the name: Schemes Constraint Window Manager.
Constraints are mathematical specifications of a desired relationship. In this case, the relationship is between the size, shape, and position of windows to similar aspects of other windows, and to the desktop itself.
Such was the description I got when I spoke with Greg Badros, lead developer of SCWM, last week.
Badros, who is now the Chief Technical Architect at Seattle-based InfoSpace, originally came up with the idea for SCWM as a project for his doctoral dissertation, as he wanted to create a graphical interface using just constraints, and not procedures.
SCWM is an off-shoot of FVWM, which at the time was the most popular interface for X. Because of this, many of the procedural aspects for SCWM have their roots in FVWM practices. But, Badros emphasized, right now SCWM's closest cousin procedurally is actually Sawfish.
SCWM uses constraints in this manner. First, there are the equality constraints, which allow a user to specify aspects such as a window's width and apply that aspect to other windows. So, if a user chooses, when one window's width is adjusted, other windows' widths would also be adjusted.
Then there are the inequality constraints, where you could set up something like "this window is always to the left of this window."
The constraints within SCWM are found within a constraint-solving Guile scheme extension, Badros explained. And here lies one of SCWM's current weaknesses: it is rather difficult to build the constraint software in SCWM, which is why many users are content with the procedural aspects of the window manager.
This is a weakness that Badros definitely wants to target in the next release of SCWM. Right now, he said, he is aware of maybe two dozen people in the world who can get the full effect of constraint-based window management.
Badros also wants to integrate SCWM with the newest version of Guile/gtk. He has made the appropriate changes in his development version, but thus far has not released them to the public.
The work Badros has done for SCWM has certainly reached beyond the Linux realm; constraint-influenced window placement is clearly a part of the window placement scheme for the Help system in Microsoft's Office 2000.
SCWM is a window manager you should definitely get a hold of and really work with if you are at all interested in playing with a new method of window management. This entry curve will be steeper than most, but the payoff will certainly be worth the effort.