Development Team/Architecture

Shell description

Diagram

 -----------------------------------------------------------------------
|              |             |                    |                     |
|              | Non-python  |   Sugar shell      |       Python        |
|              |   Sugar     | (Desktop window,   |        Sugar        |
|              | Activities  |      panel,        |      Activities     |
|   Regular    |  (Etoys,    |     journal)       |                     |
|      X       |  Simcity,   |                    |                     |
|     Apps     |    Mono     |------------------------------------------|
|              | activities, |        Sugar toolkit (python-only)       |
|              |    etc.)    |                                          |
|              |--------------------------------------------------------|
|              |        DataStore         |          Presence           |
|              |         service          |          service            |
 -----------------------------------------------------------------------
|                        Matchbox window manager                        |
|   (considering switching to Metacity for improved compatibility)      |
 -----------------------------------------------------------------------
|                                                                       |
|                    GNOME-ish Linux desktop                            |
|    X11, HAL, D-Bus, NetworkManager, GConf, Telepathy, etc             |
|                                                                       |
 -----------------------------------------------------------------------

The Sugar shell

The sugar shell is divided into the components: frame, desktop window, journal, model, control panel and extensions.

Frame

The frame is layered on top of the desktop window so you can access it in all the views. It is a group of gtk-windows technically.

Desktop Window

The desktop window itself contains the views: home view, groups view, neighbourhood view.

The journal

The journal once was a self contained activity and has been now moved to the shell, to gain memory usage for example. It is still handled like an activity in the sense that it is shown in the frame and can be accessed by tabbing through the list of available activities. There are still ongoing discussion where it belongs to really.

The control panel

The control panel is an alert which is modal to the desktop window, so while up you can still access open activities.

Extensions

You can change/extend the functionality of the shell by providing different control panel modules, key bindings and device icons in the frame. Those are loaded dynamically.


Examples

Sugar architecture is mostly based in other previous ones like: