Hi. This can be a project for 3.0. Currently, each module independently puts their functions on hooks. So, it is quite obscure both for users and developers what is processed, e.g., when a window is mapped.
So, if "big one hook" like (add-hook 'before-add-window-hook system-before-add-window) replaces all system hooked functions in before-add-window-hook, and `system-add-window' is coded somewhere with comments like "before changing focus, prepare xxx", then birds eye view is there. Those who want a hack can tell what should be done. When you want to put something on a hook, you can easily choose whether it goes at the head or the tail of the hook. There's nicety in Sawfish initialization; some open/require can break Sawfish, and it's difficult to tell when it happens. This project may be challenging, but I think it's possible, at least for some hooks. What do you think? Teika (Teika kazura)
