Launchpad Entry: mobile-lucid-une-2d-launcher
Packages affected: Packages
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.
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.
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.
- 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
New dependencies will need to be packaged and included in the archive.
If the user is to have the option to change from the 2D launcher to the 3D one and back again then some GUI element needs to be made or an existing one needs added functionality.
The following requirements apply to the 2D launcher:
A 2D launcher has been provided by the OEM team and is packaged in launchpad at: https://edge.launchpad.net/~launch-lite
- The UI for the 2D launcher should match as closely as possible to that of UNE packaged in Karmic. This includes a similar layout of panels and other features that do not require GL or special plug-in code which may be platform specific. If there is time available and a desire to do so, any Lucid UI changes could be implemented.
- 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 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.
- A 2D launcher is available, written in C and using the EFL libraries. This should be packaged into main.
- The 2D launcher has 9 dependencies:
ecore >= 0.9.9.061 (packaged in Lucid universe) MIR
edje >= 0.9.92.061 (packaged in Lucid universe) MIR
eet >= 1.2.1 (packaged in Lucid main)
eina >= 0.0.2.061 (packaged in Lucid main)
elementary >= 0.5.0.0 (packaged in Lucid universe) MIR
embryo >= 0.9.9.061 (packaged in Lucid universe) MIR
evas >= 0.9.9.061 (packaged in Lucid universe) MIR
liblauncher >= 0.1.3 (packaged in Lucid main)
- netbook-launcher-efl 0.1.0.36 (packaged in Lucid universe)
- Packages that are not satisfied should have a request to be promoted to main. Packages that are not in universe should be correctly packaged up.
- 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?
- 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.
- Un-met dependencies will have to be promoted/packaged.
- script to be written to auto-detect GL capabilities and launch correct version of launcher.
Should be transparent to end user. When running UNE, the correct launcher should be started automatically without requiring user interaction.
- Test on systems without OpenGLX drivers
- Test on systems with OpenGLX drivers
- Test in virtual machine (vmware, virtualbox, qemu)
- UI for switching launchers?
- Closely mimic Karmic 3D UI or something different?
BoF agenda and discussion
- 2D launcher already exists, in private branch on LP (now public as of UDS Lucid)
- Built with E17 foundation libraries, which are in archive but in universe
- Based on research, 8/9 MIRs required for promotion of libraries
- Libraries are not stable upstream, nor any security support upstream
- GTK version also exists, GTK is *very* slow compared to EFL. GTK version dropped
- Short-term stopgap fix until 3D UNR can be run on ARM
- Current EFL mimics 3D UNR, still a prototype(?)
- Place it as-is in archive, only looking for integration work as is.
- Team members required to say they're going to look after libraries
- Do not try to keep up with improvements to 3D launcher
- Unlikely to pick up changes of the 3D i386 launcher
- Thoughts about using 3d launcher in case driver/hardware support is detected
- Installer detects capability and enables/disables the appropriate launcher
- How much space do the launchers take? e.g. can we just keep both installed and add some hook/config/etc. that enables one or the other.
- Ensure that both launchers can in theory be installed at the same time (e.g. no file conflicts etc.)
- Easy to do this for alternates
- Make desktop an optional installable component OR install desktop by default and allow user to flip back and force.
Most ARM SoCs have 3D GL or GL-ES, but because UNR uses XWindows as a base, and X requires special GLX support to work
- Get code released into the public
- Document packages that needs to get packaged up
- Document existing packages that needs to be upgraded/adjusted
Create packages (JamieBennett) and get them through NEW
- Code review and MIR (team, stevenk)
- Setup seeds
- Evaluate best mechanism to support the 2d/3d install time feature
- Probe for X driver capabilities
- Determine the required x capabilities
- Target date for landing: 4th