Dynamic window management

We think that static window management as seen in Ion or wmi-10 is a far too rigid and inflexible working environment. In acme, larswm, and oberon, dynamic window management frees the user from these limitations. The user can start as many applications and windows as he likes, and easily arrange them in a useful way, helped by the window manager - the working environment changes with the tasks the user is performing. The experience is very fluid and natural. Similar concepts have been introduced in wmii and dwm.

Dynamic window management states that it is the window manager's job to manage windows - and not the user's job to have to set up some specialized layout that will only work for one specific work scenario. This has been the larswm motto for a long time. In contrast to static window management, the user rarely has to think about how to organize windows, no matter what he is doing or how many applications are running at the same time. The window manager adapts to the current environment and helps the user manage and mold it to his needs, rather than forcing it to use a preset, fixed layout and trying to shoehorn all windows and applications into it.

Dynamic window management has many advantages - you can create and tear down whole working environments in a matter of seconds rather than spending time fine-tuning a fixed layout that cannot work well in all cases. The number and nature of windows you work with changes all the time, and a dynamic window manager lets you adapt to that and always efficiently use your precious screen real estate.

Some will argue that you should setup a different static workspace for each of the tasks you perform (one for web browsing, one for email reading, one for coding, etc.), but that is just a workaround for the limitations of static window management, and it doesn't account for the many sub-usage patterns each main task has.

For example: the layout you use during debugging would probably be quite different to the one used during refactoring, you might want to have a patch someone emailed you in view while you look at some code, or edit a configuration file while you look at a man page or website. Dynamic window management lets you mix and match on the fly to always have the windows you need in view, and only the windows you need, without the need to reserve extra space which you may or may not end up using.