Java Desktop System Release 3 Administration Guide

Chapter 2 Customizing Menus

This chapter describes how the Java Desktop System implements menus and how you can customize menus.

Introduction to Menus

The way in which the Java Desktop System implements menus enables you to do the following:

The menus in the Java Desktop System use the following components:

File Abstraction Layer

The gnome-vfs file abstraction layer provides a simplified and generalized way for applications to interact with files. The file abstraction layer also provides Uniform Resource Identifier (URI) locations that map to particular menu configuration files.

To add a menu or a menu item for all users, you must add the menu or menu item to one of the URI locations. Table 2–1 lists the menus to which you can add items, and the URI locations that correspond to the menus.

Table 2–1 Menus and URI Locations for System Administrators

Menu 

URI Locations 

Applications menu for all users

applications-all-users:///

Preferences menu for all users

preferences-all-users:///

If a user wants to add a menu or a menu item to their system only, the user must add the menu or menu item to other URI locations. Table 2–2 lists the menus to which users can add items, and the URI locations that correspond to the menus.

Table 2–2 Menus and URI Locations for Users

Menu 

URI Locations 

Applications menu

applications:///

Preferences menu

preferences:///

For more information about how users can customize menus, see the Java Desktop System Release 3 User Guide.

Vfolders and Menus

In general terms, a vfolder is a virtual representation of items that reside in a physical location or physical locations on your system. For example, a vfolder might represent the contents of several directories. A vfolder is an abstraction from one or more physical locations. In terms of menus in the Java Desktop System, a vfolder is a representation in a menu of items that might be physically located in several directories.

A vfolder information file is an XML file that describes a vfolder. Vfolder information files specify the structure of your menus. Vfolder information files specify the names of your menus, and the order in which applications appear in your menus. Vfolder information files have a .vfolder-info file extension.

The following is a sample from a vfolder information file:

<VFolderInfo>
.
.
.
  <Folder>
    <Name>Applications</Name>
    <Desktop>Applications.directory</Desktop>
    <Folder>
      <Name>Accessories</Name>
      <Desktop>Accessories.directory</Desktop>
      <Query>
        <And>
          <Keyword>Application</Keyword>
          <Keyword>Utility</Keyword>
        </And>
      </Query>
      <DontShowIfEmpty/>
    </Folder>
.
.
.
  </Folder>
</VFolderInfo>

Table 2–3 describes some of the elements in vfolder information files.

Table 2–3 Vfolder Information File Elements

Element 

Description 

<Folder>

Contains the elements that define the name, content, and structure of the menu. 

<Name>

Specifies the name of the menu. 

<Desktop>

Specifies the name of the directory entry file that specifies the name, comment, and icon for the menu. 

<Query>

Specifies a query to run on desktop entry files. If a desktop entry file matches the requirements in the query, the menu item is displayed in the menu.  

The query in the excerpt searches for desktop entry files that contain the keywords Application and Utility in the Categories key. Desktop entry files that match are displayed in the Applications menu.

This element is optional. 

<DontShowIfEmpty/>

If this element is present, the menu is not displayed if the menu does not contain any items. 

This element is optional. 

Desktop Entry Files

A desktop entry file is a data file that provides information about an item in a menu. The desktop entry file specifies the details for the item such as a name, a command to execute, an icon, and so on. The desktop entry file also contains keywords which determine the location of the item in the menu hierarchy. Desktop entry files have a .desktop file extension.

The following is a sample desktop entry file:

[Desktop Entry]
Encoding=UTF-8
Name=Calculator
Comment=Perform calculations
Exec=gcalctool
Icon=gcalctool.png
Terminal=false
Type=Application
Categories=GNOME;Application;Utility;

Table 2–4 describes the most important keys in desktop entry files.

Table 2–4 Desktop Entry Keys

Desktop Entry Key 

Description 

Encoding

Specifies the encoding of the desktop entry file.  

Name

Specifies the name of the item. This name is displayed on the item in the menu.  

Comment

Specifies a short description of the item. The comment is displayed as a tooltip when you point to the item in the menu.  

Exec

Specifies a command to execute when you choose the item from the menu.  

Icon

Specifies the filename of an icon that represents the item. Does not specify the path to the filename, or the file extension.  

Terminal

Specifies whether the command in the Exec key runs in a terminal window. If the value is true the command runs in a terminal window.

If the command does not create a window in which to run, the value of this key must be true.

Type

Specifies the type of item. This value is one of the following:  

  • Application: Enter this option for an item that starts an application.

  • Link: Enter this option for an item that links to a file, folder, or URI.

Categories

Specifies the keywords that describe the item. The keywords are separated with semicolons (;). To see a list of the standard category keywords, see the desktop menu specification at the following URL:  

http://www.freedesktop.org

The vfolder information files map the keywords to menus. 

For more information about the keys in desktop entry files, see the desktop entry specification at the following URL:

http://www.freedesktop.org

Note –

Panel launchers and desktop objects also use desktop entry files. The desktop entry files for launchers and desktop objects provide the same information as for items in a menu. For example, the desktop entry files provide the command to run when a user chooses the launcher or object.


Directory Entry Files

A directory entry file is a data file that provides information about a menu. The directory entry file specifies the details for the menu such as a name, a tooltip, and an icon. Directory entry files have a .directory file extension.

The following is a sample directory entry file:

[Desktop Entry]
Name=Accessories
Comment=Accessories menu
Icon=gnome-util.png
Type=Directory

Table 2–5 describes the most important keys in directory entry files.

Table 2–5 Directory Entry Keys

Directory Entry Key 

Description 

Name

Specifies the name of the menu. This name is displayed on the menu.  

Comment

Specifies a short description of the menu. The comment is displayed as a tooltip when you point to the menu.  

Icon

Specifies the filename of an icon that represents the menu. Does not specify the path to the filename, or the file extension.  

Type

Specifies the type of menu. The value of this key is always Directory.

Editing Menus

You use the following Java Desktop System components to edit menus:

When you use the file manager to add menus or menu items for all users, you must add the menu or menu item to a URI location. Table 2–1 lists the menus to which you can add items, and the URI locations that correspond to the menus.

When you use panels to customize menus for all users, you use the menu item popup menu. For more information, see the Java Desktop System Release 3 User Guide.

You can also use menu configuration files and menu data files to customize menus.

Adding Menus

You can add menus for all users in the following ways:

To Add a Menu Using the File Manager

To add a menu for all users, perform the following steps:

  1. In a file manager window, access the location where you want to add the menu. For example, to add a menu to the Applications menu, type applications-all-users:/// in the Location field, then press Return.

  2. Choose File -> New Folder. An untitled folder is added to the view pane. The name of the folder is selected.


    Note –

    On Solaris systems, you might need to reload the display of the file manager window before you can type the name for the folder.


  3. Type a name for the folder, then press Return. The vfolder information file for the location that you accessed in step 1 is automatically updated with the details of the new menu. The name of the folder is displayed as the name of the menu.

The next time users log in, the menu is in the assigned location.

To Add a Menu Using Menu Files

To add a menu for all users, perform the following steps:

  1. Create a directory entry file for the item that you want to add. Create the directory entry file in the /usr/share/gnome/vfolders directory. For more information about directory entry files, see Directory Entry Files.

  2. Locate the vfolder information file for the location where you want to add the menu. For example, to add a menu to the Applications menu, locate the file /etc/gnome-vfs-2.0/vfolders/applications-all-users.vfolder-info.

  3. In the vfolder information file, add a <Folder> element for the new menu. For more information about vfolder information files, see Vfolders and Menus.

The next time users log in, the menu is in the assigned location.

To Add an Item to a Menu

To add an item to a menu for all users, perform the following steps:

  1. Create a desktop entry file for the item that you want to add. For more information about desktop entry files, see Desktop Entry Files.

  2. Open a file manager window. Choose File -> New Window to open a second file manager window.

  3. In one window, access the location where you want to add the menu item. For example, to add a menu item to the Preferences menu, type preferences-all-users:/// in the Location field, then press Return.

  4. In the other window, select the desktop entry file that you created for the menu item. Drag the desktop entry file to the location where you want to add the menu item.

    Alternatively, you can copy the desktop entry file, then paste the file into the location where you want to add the menu item.

The next time users log in, the menu item is in the assigned location.

To Edit the Properties of a Menu

To edit the properties of a menu for all users, perform the following steps:

  1. From a panel, open the menu that you want to edit. Right-click on any item in the menu.

  2. Choose Entire menu -> Properties. A Launcher Properties dialog is displayed.

  3. Modify the properties of the menu in the Launcher Properties dialog. For more information about the elements in the Launcher Properties dialog, see the Java Desktop System Release 3 User Guide.

  4. Click OK.

To Edit a Menu Item

To edit a menu item, perform the following steps:

  1. From a panel, open the menu that contains the item that you want to edit. Right-click on the item that you want to edit.

  2. Choose Properties. A Launcher Properties dialog is displayed.

  3. Modify the properties of the menu item in the Launcher Properties dialog. For more information about the elements in the Launcher Properties dialog, see the Java Desktop System Release 3 User Guide.

  4. Click OK.

To Delete an Item from a Menu

Perform the following steps:

  1. From a panel, open the menu that contains the item that you want to delete.

  2. Right-click on the item that you want to delete, then choose Remove this item.

The next time users log in, the menu item is not displayed in the menu.

To Configure Menus That Users Cannot Modify

Users cannot modify a menu if the following conditions are true:

To configure a menu so that users cannot modify the menu, perform the following steps:

  1. Create a vfolder information file for the menu that you want to configure in the /etc/gnome-vfs-2.0/vfolders directory.

  2. Give the vfolder information file the name of the URI location that corresponds to the menu that you want to configure. For example, to configure the Applications menu, create a vfolder information called applications.vfolder-info in the /etc/gnome-vfs-2.0/vfolders directory.