Introduction to task switching in ubuntu
With Windows XP, Microsoft introduced a way to aggregate multiple windows that belonged to the same application into a single task bar button. This change was primarily focused towards personas who made heavy use of multi-tasking; this feature only switched on when the number of windows represented in the Taskbar exceeded the length of the Taskbar. It gave the benefits of increasing the number of windows that could be comfortably represented in the available task bar space, and reduced the time and effort it took the user to visually scan a crowded Taskbar and identify an application. The cost of this change was that an additional click was required to switch to a window that was not the most recently focused window of that application.
Unity’s current window switching functionality
Fast forwarding to 2009, when working on the original designs for Unity we knew that window switching was one of the key areas of any OS’s user interface, and we set out to design a window switching paradigm that would surpass the utility and usability of the contemporary competition at the time (Windows 7 and OSX Snow Leopard). The Launcher was only 50% of that equation, the other 50% was a set of functionality we termed the ‘Spread’.
The Spread designs were completed, prototyped and tested well before the launch of Unity with 11.04, but unfortunately due to the huge number of other items that needed to be completed before we could launch a brand new desktop shell, the decision was made to postpone the development of this feature and use the Compiz equivalent of this functionality as a stop-gap measure.
While using the Compiz window switching functionality enabled us to hit 11.04 launch deadline, there are a number ways in which it could be improved. Since then many many bugs, mailing list and forum postings have also requested the same set of functionality that was postponed as a result of this decision. Requests we frequently receive include:
Please make it easier to tell one window from another, all terminals look very similar!
Make it easier to select windows using keyboard navigation and shortcuts
I would like to be able to easily close windows from the window switcher view
Can you make it clearer to see which application’s windows are currently being displayed (in the switcher view)?
I find it difficult to see which window is currently focused in the window switcher view, can this be improved?
Can you find a way to make window switching faster?
Window switching requirements
After researching the window switching problem space and examining the use cases that a window switcher needs to support, we distilled the findings into a set of design requirements. These were:
To aid window identification, the window previews should to be as large as possible, taking maximum advantage of the available screen real estate.
Window switching needs to be very intuitive and easy to understand for new users. In user testing, a user who has never used Ubuntu before must be able to switch windows without encountering any difficulty.
More experienced users should be offered an accelerated method of ultra-fast window switching.
Users should be presented with all the information that is pertinent to making a window switching decision, but no more.
The window switching mechanism should follow the activity/task hierarchy, in order to minimise time needed to identity the required application, support intensive multi-tasking use cases with very large numbers of windows, simplify the Launcher ordering problem, and make the most efficient use of the Launcher’s screen real estate.