Popup windows, Utility windows, Modal dialogs, Warning windows, Schmindow window! Arrrgh! Why do we have them in the first place?
Lately, like the past few months, I’ve been ever increasingly annoyed with application windows of all kinds. Why is it that almost all applications pops up tonnes of small windows for all kinds of odd purposes? Talking about elegance I am pretty sure that we could provide a more elegant solution without a new window popping up in 95% of the cases.
For instance I really like the new GtkInfoBar as seen in GEdit below, one less dialog right there:
I also think that Apple has been ingenious with their Sheet Windows:
For those unfamiliar with sheet windows they roll out from the top of your window and acts as document- or application modal dialogs, but contrary to dialogs they are not full fledged windows, but appear as “attached” to the application.
I am not saying that we should blindly copy the competition, but I really think that we could give our users a really smooth ride if we don’t pop up new windows unless we absolutely have to.
I actually think that most modern window managers do a respectable job, but when apps start throwing random windows all over the screen there’s really not much they can do to make it look pretty. But why do the apps create all these windows that I am talking about then? Well, I don’t think they have ever had much of a choice. With the inclusion of GtkInfoBar in Gtk+ this has become a bit better, but we can take it so much further.
Let me stress that I am not picking on Synaptic in particular, it is just a convenient example. In general I like Synaptic a lot. Try counting the number of windows spawned when installing a new package. Counting the root password dialog and a single “find” action into the entire process I counted 7 windows. I can think of no reason (other than toolkit constraints) that there would ever be more than 1 window needed.
The One Window App
I think it would be cool to try and constrain applications to only one window (with the obvious exceptions like file managers etc.). Preference- , warning-, and Utility dialogs could all be integrated into the main window in some manner.
As a first stab one could convert all (modal) dialogs to borderless overlay windows and dim out the background. These overlay windows should be immovable and stick to the parent window when it is moved, much like the sheet windows mentioned above. This might even be testable by hacking up GtkDialog.
More advanced window-internalling techniques such as rollouts and morphing window layouts would likely require bigger changes in the applications.
I am on Crack
Yeah, I know that this is all a pipe dream, and that there are lots of pitfalls and stuff I haven’t considered. All these pesky windows are just getting to my nerves!
I hope that there are at least someone out there who agrees with me on this whole deal… Somebody..?