Mobile2DLauncher

Revision 3 as of 2009-11-09 10:31:45

Clear message

Summary

It is desirable to have a netbook launcher that runs well on platforms that do not have accelerated OpenGL drivers for X. This specification attempts to detail the specifics of a 2D netbook launcher for use on these platforms.

Release Note

The launcher, whether that be 2D or 3D will be automatically started on boot based on the capabilities of the system. No end user configuration will be required although if the hardware is supported, the user can choose either.

Rationale

There are some platforms where it is desirable to run Ubuntu Netbook Edition (referred to as UNE from here on in) that don't have the necessary graphics drivers to run the current netbook-launcher, which is GL based and requires GL X drivers. Most notably, the ARM platform falls into this category. Many virtual machines do not have proper gl support as well.

Most of the ARM platforms have accelerated OpenGL or GL-ES drivers, but this only enables full-screen GL applications not running in X. UNE and netbook-launcher use X windows, and therefore require OpenGL drivers for X and this is the main piece that is missing from current solutions. See http://www.opengl.org/documentation/specs/glx/glx1.4.pdf for background information on GLX.

An implementation of the netbook-laucher is needed (2D version) that does not require these drivers in order to run on platforms where there are no GLX drivers.

This also enables platforms that do not have acceptable GL performance to use UNE as a reasonable speed.

User stories

  • A user wants to try UNE in a virtual-machine (like vmware) and wants the launcher to be useable.
  • A user wants to use UNE or netbook-launcher on an platform (ARM netbook, Handheld device) that does not have OpenGL X drivers.
  • A user wants to run UNE on old, slow hardware where GL performance is not acceptable

Assumptions

Based on the technology choosen for the 2D launcher, it is possible new dependencies would need to be packaged and included in the archive.

If the use is to have the option to change from the 2D launcher to the 3D one and visa-versa then some GUI element needs to be made or an existing one needs added functionality.

Design

The following requirements apply to the 2D launcher:

  • Work is underway to split out major data providers for netbook-launcher into it's own library, called liblauncher. Regardless of toolkit choosen for 2D launcher, the implementation should utilize the functions in liblauncher library to ensure code-resuse and ease of maintenance. liblauncher should be used by all netbook-launcher implementations, including 3D clutter version and new 2D versions.
  • The UI for the 2D launcher should match that of UNE, which is planned for Lucid. This includes a similar layout of panels and other features that do not require GL or special plugin code which may be platform specific.
  • Translation/i18n support via gettext/intltool, etc
  • Support for existing netbook-launcher gconf defaults to add branding, customer logo, custom background image, etc..
  • RTL (right to left) support for languages that need this - Arabic/Hebrew
  • 2D launcher will be coded in C (C++?)
  • 2D launcher will be a separate package from the clutter based 3D launcher and both should be able to co-exist in an installation.
  • It is suggested that we use a script similar to the Compiz enabling script (compiz-wrapper) as a way of managing which version of the launcher launches (3D or 2D) based on the platform capabilites.

Implementation

This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like:

UI Changes

  • 2D launcher should look equivalent to 3D launcher (UNE launcher) in layout, although some features/animations may not map one-to-one.
  • Do we want to provide a UI to switch between 2D and 3D launchers or extend a current one?

Code Changes

  • netbook-launcher will be modified to use liblauncher library for 10.4
  • 2D launcher will be a separate package, called netbook-launcher-2D
  • UNE seed will need to be updated to pull in applicable 2D launcher packages.
  • script to be written to auto-detect GL capabilites and launch correct version of launcher.

Migration

Should be transparent to end user. When running UNE, the correct launcher should be started automatically without requiring user interaction.

Test/Demo Plan

  • Test on systems without OpenGLX drivers
  • Test on systems with OpenGLX drivers
  • Test in virtual machine (vmware, virtualbox, qemu)

Unresolved issues

  • UI for switching launchers
  • Toolkit to move forward with
  • Closely mimic 3D UI or something different?

BoF agenda and discussion

Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.


CategorySpec