Desktop Shell Design

Pier Luigi Fiorini edited this page Aug 12, 2013 · 2 revisions

This is an initial discussion around the design of the Desktop Shell, the first of many modules for the Green Island Wayland compositor.


Rodolfo Panerai (design lead), Pier Luigi Fiorini (development lead and design), Giuseppe Imperato (design).


{o} Needs design

{*} Design in progress

{o} Needs implementation

{o} Implementation in progress

{o} Stable


We strongly believe that the design of a desktop enviroment should be derived from a coherent set of paradigms which constitute the logical structure of the desktop experience. Every developer should be aware of the ideas behind the design of the desktop and should be guided by them in further design choices.

We want to target the following users:

  • The desktop should be easy to use for novices.
  • This simplicity should not discourage in any way elaborated workflows for skilled users.

and the following devices:

  • Every device with a mouse (or a trackpad) and a keyboard: desktop PCs and laptops.
  • The technology behind the Hawaii Desktop could be used to create a new interface for touchscreen devices, but mouse and touchscreen require completely different UIs: targeting both would end up in a suboptimal solution in both cases (i.e. GNOME 3).

We want our desktop to be:

  • Simple:
  • easy to explore and lightweight;
  • avoid the trend to include complex frameworks for uneeded automations, data management and interoperation between applications:
  • Intuitive:
  • do not break well established workflows just for the sake of originality;
  • users should not ponderate too much their actions;
  • Coherent:
  • consistent behavior across components;
  • consistent look across components;


Oxygen window theme and Faenza icon theme are used in these mockups.

Launcher with two windows and a wallpaperLauncher with two windows and a wallpaper

A desktop shell is, first of all, a place to display and manage application windows. To make our desktop nicer, we add a background image: a wallpaper. By default the desktop do not display the content of a folder. Then we need a launcher to launch applications and manage their windows (minimize, restore, set focus).

Elements of the launcherElements of the launcher

The launcher is placed on the the bottom of the screen and is always completely extended to its maximum lenght. It has:

  1. an icon to display an application menu;
  2. icons to activate the exposé effect and to minimize all windows;
  3. left aligned application icons for launchers and tasks;

The exact behavior for a left click on tasks is still to be discussed.

The content of the launcher varies in accordance to the active virtual desktop.

An option is provided to manage single windows instead of application icons:

Launcher showing all the windowsLauncher showing all the windows

For all controls and informations handled by the desktop shell itself and not by an application, we have a panel.

It's placed on the top of the screen and is always completely extended to its maximum lenght. It has:

  1. (empty space in figure) an icon for activating a virtual-desktop-manager mode (to be discussed);
  2. controls to select the workspace;
  3. (empty space in figure) left aligned icons for desktop tools (see next slides, to be discussed);
  4. a clock and calendar;
  5. a right aligned system tray;
  6. a user account menu;
  7. an icon for the shutdown menu;
  8. an icon for notifications;

We propose two ideas for desktop menus:

Desktop menusDesktop menus

The application menu uses all the space available, there is no point in having to navigate through a small menu.

Applications chooserApplications chooser

Notifications appear on the top right. Notifications are intended as passive information containers, no interactivity of any kink is provided.


An alternative to desktop widget is proposed for common tasks. Here is an example of a one-key-stroke-launch desktop terminal.

Desktop tools, terminalDesktop tools, terminal

Goals and scope

We want to try to maintain as much as possible a uniform look between window widgets and desktop shell widgets. Desktop and window themes shold be thought as a whole.

In our example desktop elements use the same palette as the oxygen window theme (same tone of grey, same light cyan for selected controls).


Some mockups from Giuseppe Imperato for AppChooser, some indicators and the notification area:

Clock #1Clock #1 Clock #2Clock #2

User #1User #1 User #2User #2

Notification area #1Notification area #1 Notification area #2Notification area #2


Design guidance for developers.


Other relevant comments.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.