New Shell design: Vertical Workspaces by default
New Shell design: Vertical Workspaces by default
Revisiting the redesign of gnome-shell as announced in the blog post. Refer to it for further details.
Abstract (the TL;DR)
There's a proposal to change Gnome Shell's default Workspaces orientation from Vertical to Horizontal, as it was in Gnome 2 before it. I argue that such a change should not be made unless there's a huge pressing reason for it (there isn't, not even an argument). There's already a Shell extension for the legacy behavior. Should users expect Gnome to switch between Horizontal and Vertical Workspaces every ten years? I hope not.
Gnome Shell heritage
Gnome Shell has been in use for a decade now. It was a major redesign of Gnome and broke away with most heritage from Gnome 2, a completely new desktop UI was born then. It was a major improvement in how a user interact with apps, separating desktop organization chores (the Activities Overview) from app usage (the Desktop or Session), enabling a distractions-free session experience. While doing so it also brought with it unrelated arbitrary changes to the Spatial Model of the desktop.
Spatial Model
What I refer to as Spatial Model is the user's mental model of the spatial organization of the desktop. It does not necessarily require any visual indication on screen, eg. keyboard shortcuts and mouse/touch gestures also convey spatial organization.
This is important because users need to understand where their tasks are to easily find and switch between them. The easiest way to do this is by visualizing (drawing within the mind) the spatial positions of workspaces and windows. A simple 2D spatial model simplifies this task for the mind.
Gnome 2
- Workspaces contain Windows
- Horizontal Workspaces
- Mixed Windows; 3D (Cartesian + Stacked) + Horizontal (with caveats)
There isn't much to be discussed here, it's the same old desktop design inherited from Windows 95 and cloned by dozens of DEs, only with the Workspaces concept thrown into the mix. It's dated and has unresolved problems.
Long horizontal track: In a multi-monitor setup with horizontal monitors (probably the most common), this (Horizontal Workspaces, Horizontal Windows) becomes a long nested horizontal pyramid (3D, pretty much undrawable mental model). This also makes setting sensible keyboard shortcuts hard since everything is horizontal, usually requiring modifier keys, which makes them easy to remember, but hard to get right/easy to mix up. Several horizontal gestures is also hard or impossible (limited by the amount of fingers in a hand).
Windows are placed in 3D space (Cartesian + Stacked). Window switching with the mouse is horizontal (Task Bar). Since this is the most visible window organization save for the windows surfaces themselves, it's easy to suppose that users' brains might try to think of windows as horizontally organized. But window switching with the keyboard shortcut (Alt+Tab) is stacked. A mess, no practical model. Clearly no design effort was put into it (Windows 95 heritage).
Gnome Shell
- Workspaces contain Windows
- Vertical Workspaces
- 3D (Cartesian + Stacked) Windows
Gnome 3 broke away with most of Gnome 2's spatial model (or lack of). That brought with it friction of relearning for users.
Only Workspaces are vertical: Almost impossible to mix up with any other concept; easy mouse and gesture navigation; for users with horizontal multi-monitor, easy to visualize a column of workspaces for a monitor; a very drawable mental model, easy to draw means easy to visualize/easy to grasp.
Complex windows placement: Gnome Shell did not make any attempt to change the legacy window placement common to most DEs since the 90s, but it did improve over the competition by removing the inconsistent Task Bar. Now there's a single, clearly defined Spatial Model, but it's a hard to visualize one, hence it requires simplified "views" for switching windows. Gnome shell provides two such views, Cartesian-only (Activities Overview) and Stacked-only (Task Switcher). Where possible, animation helps convey the idea that this is a unwrapped simplification of a more complex 3D Spatial Model
Why this matters
There's no such thing as naturally intuitive interaction. Users learn. An interaction can only be intuitive with regard to users' previously learned behavior. Gnome Shell has been in use for a decade, users have learned it. Although I argue above that in my opinion Gnome Shell provides a Spatial Model that's superior to what existed before, the change to vertical workspaces was rather arbitrary. It wasn't required for the whole Shell experience. I think it is better, but it is not central to the design. Early Shell prototypes had Horizontal Workspaces.
The blog post linked at the top proposes a new Shell with the arbitrary change of Horizontal Workspaces by default. This change is not required to any of the tangible goals listed, and I think it's rather arbitrary, a change for the sake of changing.
As we learned from the move to Gnome Shell, the friction in changing Spatial Model is huge, and Shell extensions had to be made to provide the legacy experience to accommodate users who didn't want to migrate.
Should users expect Gnome to switch between Horizontal and Vertical Workspaces every ten years? What's the purpose? One needs a big reason to justify it. I argue that Vertical is better, but even if it wasn't, how much better the opposing direction needs be to justify such a big change to the user's mental model?
From here, the path of least friction is to iterate on the current design without breaking user expectation, without changing the base Spatial Model. But, is it possible to extract anything else from the current design after ten years?
Material Shell
As prior art I'll quickly analyze Material Shell that's doing much research and iterating on a design that's build on a similar base to Gnome Shell. Refer to their GitHub repository for a detailed overview.
- Workspaces contain Windows
- Vertical Workspaces
- Horizontal Windows (tiling)
I've been using the Material Shell for a few weeks and it's been a smooth experience. Even though it looks completely different from the Gnome Shell that I've been using for a decade, there's low friction because the underlying Spatial Model is similar. All it really does is flattening the Windows placement to 2D which makes that layer of the Spatial Model easier to visualize. Also providing a visual cue of the Workspaces makes it easier to work with multiple Workspaces. I've observed that I use twice as many Workspaces when I'm on Material Shell compared to when I'm on Gnome Shell.
This does not mean to say that Material Shell is superior, nor that Gnome should copy it, or even learn from it. All I mean to say it that iteration over the Shell's base Spatial Model is definitely not exhausted. There's still many avenues that can be explored to improve on the current design without breaking user expectation.
It's also of note that Material Shell did manage to reach all the tangible goals listed on the blog post linked at the top.