• Launchpad Entry: edubuntu-lucid-menu-editor

  • Created: 2009/12/08

  • Contributors: Marc Gariépy, Jonathan Carter, Stéphane Graber

  • Packages affected: None (yet)


The Edubuntu team has been discussing the need of a tool to filter the list of applications displayed to a user depending on various criterias. We first implemented it as a set of meta-packages called application bundles and prefixed ubuntu-edu-* though we then noticed that it doesn't always apply to all countries.

Each country and possibly region/school district has its own rules on what kind of software should be available to which grades. In order to fix that, the following specification has been written and will be discussing the development of a tool used to easily create new menus that will be put on top of the main Edubuntu menu and filter it.

The interface will basically let the administrator define new menus by selecting the entries he wants and these he doesn't, then create new menus/sub-menus and finally save that as a standard XDG menu file. Then, another interface will be used to assign menus to system groups.

A way to easily import and export these menus will also be provided along with a package providing sample menus provided by some of our partners (Guadalinex, Qimo, Revolution Linux, ...).

Release Note

The Edubuntu project has introduced a new tool called the "Edubuntu menu editor" (?) that allows administrators to easily define new menus and use them to filter the list of application a user can see.

The matching is done using groups and menus can easily be imported and exported. This new functionality is available from the menu and profile editors under System Administration menu.

Use Cases

  • A company providing Edubuntu support to a school district in Spain is required to have very specific menu entries and in a specific order.
  • A large school with many software applications installed would want different menu entries to appear depending on which grade the students are in.
  • A large company using LTSP wants to display different menu entries based on whether employes are in a design, administration, accounting or engineering group.


As mentioned in the use cases above, customised menus based on groups can be very useful in certain circumstances. Organisations with many users have requested this functionality many times in the past.

A standard, unified method for implementing custom menus would be beneficial to the project and its users.

User stories

* Guadalinex-edu, which has many installations in Southern Spain, has said that they would be able to install a pretty much default Edubuntu installation for their systems if it supported custom menus. Currently they have over 50 packages that create diverts in order to change their menu entries, which is not desirable.



  • One tool to assign desktop profiles to group
    • A browse box to import profiles in the system
    • Extract the profiles into the profiles directory when imported.
    • A list of profile and group to assign menu profile to group
      • Selection list for profiles
        • Generated by the listing of a directory (/etc/edubuntu-menus/)
      • Editable selection list for groups
        • Generate .listing file in /etc/desktop-profiles/ directory respecting desktop-profiles XDG_CONFIG_DIR
  • One tool to create desktop profiles
    • Two tree views, one on each side of the window
    • On the left is displayed the current menu
    • On the right is displayed an empty skeleton of the current menu
      • User can drag and drop entries from the left to the right, that'll

copy the entry, not move it.

  • User can remove existing sub-menus in the tree on the right.
  • User can create new sub-menus in the tree on the right.
  • User can remove an entry from the tree on the left by ticking a

checkbox (entry will still be displayed though).

  • Added menu item will be in the include list of the menu entry.
  • When closing the tool, the tree on the right side will be used to

generate a new xml menu, the entries marked as removed will be added as exclude entry.

  • Generate the layout part of the menu too keep the order when it's saved
  • Save the file in specfic directory /etc/edubuntu-menus/<profile>/ (?)


This specification is about a new software development, packaging and integration as part of the default Edubuntu desktop. Development is detailed below.

Other things to consider during the development is:

  • Getting the package soon enough in Universe (end of January)
  • Getting the package promoted to Main and in the Edubuntu desktop seed before FF (mid-February)
  • Gather some pre-defined menus from users to include as examples either included with the software or available from another package

UI Changes

Two new menu entries are available to these in the "admin" group and will be provided in the Administration menu.

  • Edubuntu menu editor (?) - Used to create new menus
  • Edubuntu profile editor (?) - Used to assign menus to groups

Code Changes

As it's a new development, we don't think there is the need for any code change to any existing software.


As it's a new development, we don't think there is any migration path to establish. Current application bundles will continue to exist for the time being though the tool will work better if all packages are installed on the system.

Test/Demo Plan

  • Go in the Administration menu
  • Start the "Edubuntu menu editor" and create a new menu
  • Start the "Edubuntu profile editor" and assign it to the "admin" group
  • Logout
  • Login
  • Check if the changes are correctly applied

Unresolved issues

None identified yet.

BoF agenda and discussion

Time line

  • 21st of January 2010: Have the code done, on Launchpad, released and packaged
  • 28th of January 2010: Have the package in the archive
  • 11st of February 2010: Have the package promoted to main and in the Edubuntu desktop seed
  • 25th of February 2010: Announce the feature and get user testing + menus created (Alpha3)
  • 1st of April 2010: Final upload of the community-created menus


Edubuntu/Specifications/EdubuntuLucidMenuEditor (last edited 2009-12-09 18:32:23 by 196-210-162-66-wblv-esr-3)