Scwm: An Extensible Constraint-Enabled Window Manager Greg J. Badros Jeffrey Nichols InfoSpace.com School of Computer Science, HCI Institute 2801 Alaskan Way, Suite 200 Carnegie Mellon University, 5000 Forbes Avenue Seattle, WA 98121, USA Pittsburgh, PA 15213, USA
[email protected] [email protected] Alan Borning Dept. of Computer Science and Engineering University of Washington, Box 352350 Seattle, WA 98195-2350, USA
[email protected] ABSTRACT Using C to implement a highly-interactive application We desired a platform for researching advanced win- also complicates extensibility and customizability. To dow layout paradigms including the use of constraints. add a new feature, the user likely must write C code, Typical window management systems are written en- recompile, relink, and restart the application before tirely in C or C++, complicating extensibility and pro- changes are finally available for testing and use. This grammability. Because no existing window manager was development cycle is especially problematic for software well-suited to our goal, we developed the Scwm window such as a window manager that generally is expected to manager. In Scwm, only the core window-management run for weeks at a time. Additionally, maintaining all primitives are written in C while the rest of the package the features that any user desires would result in terrible is implemented in its Guile/Scheme extension language. code bloat. This architecture, first seen in Emacs, enables program- An increasingly popular solution to these problems is ming substantial new features in Scheme and provides a the use of a scripting language on top of a core system solid infrastructure for constraint-based window layout that defines new domain-specific primitives.