... search for a graphical usable interface


Ion is a tiling tabbed window manager designed with keyboard users in mind.


On some of the problems with present-day graphical user interfaces

So-called “modern desktop environments” converge on total unusability, and present-day mainstream graphical user interfaces in general are far less usable than they are praised to be. Usability simply does not equal low learning curve, and hiding system details from the user, as the Official Truth seems to be these days. Convenience foods are also easy and fast, but not very palatable (and you don't want to know all the ingredients).

Those of us who prefer to use the computer primarily with the keyboard for reasons of efficiency or health, are forgotten when “modern” graphical programs are designed. Mouse-based search-and-click interfaces simply are not efficient except for some very specialised tasks and in other cases involve lots of tedious repetitive clicking and searching. While most widget-based GUIs provide keyboard shortcuts to some operations, these are often sub-optimal – for example, commands can often be superior to cryptic shortcuts – and the general application design still makes them difficult to use from the keyboard. For example, tabbing through dialog entries is difficult if the dialog is laid out in a complex fashion. Most command line and other text mode programs are simply much more usable once you get used to them, but are limited in their output capabilities.

Similarly it is difficult to navigate through an unorganised stack of application windows, also using the mouse. In most common window managers and operating systems it is usually left for the user to attempt to keep the windows organised instead of the window manager. As a result the user often ends up in a jungle – or at the desk the overlapping window paradigm tries to emulate. Usability does not equal reproducing real world paradigms in computer user interfaces. Attaching multiple client windows to a single frame (or “tabbing” them) as introduced in PWM helps keeping the windows organised in some cases but still, this does not help with programs that have multiple windows for manipulating a single document and the navigation possibilities are far from perfect.

The Ion approach

Ion was written as an experiment on a different kind of window management model. It tries to address the navigation problem by dividing the screen into mutually non-overlapping frames that take up the whole screen. Big displays have so much space that this should be convenient and smaller displays couldn't show more than one window at a time anyway. The frame layout is, of course, dynamic and different on each workspace. Given the organised tree based instead of an unorganised coordinate-based frame layout, moving between the frames can be conveniently done from the keyboard. As in PWM, the frames may have multiple clients attached, each indicated with a tab.

While this model makes using well-designed and well-behaving programs a joy, some applications, obviously, don't work well in this model. These are in particular those applications that do not conform to the ICCCM (Inter-Client Communications Conventions Manual; the standard on how WM:s and applications should communicate) and expect a particular window management model. Badly-designed applications with multiple top-level windows that affect a single document are also not particularly well suited to the Ion model and should be fixed, although can be occasionally kludged to be compatible.

Summary of Ion features


These screenshots are at resolution 1280x1024 and between about 70kB and 860kB in size.

screenshots/ion3-1.png screenshots/ion3-2.png screenshots/ion3-3.png


Ion is not perfect and certainly not for everyone, but neither is any user interface. Usability is subjective. To ultimately solve usability problems to the extent possible with current technologies, applications should be written independent of their user interfaces and the UIs should be built according to the user's preferences based on a high-level semantic description of commands provided by the application.

Ion is, however, improving all the time and if you take the time to get used to it, you should hardly ever have to touch the mouse again to move between windows. Just remember that not all programs will play nicely with Ion because of presumptions about the window management model and even incompliance to the ICCCM. Terminal programs should work better than ever before, at least.

Tuomo Valkonen <tuomov at iki dot fi>