Chapter 2. Configuring the Panel

TipTip
 

For more information on configuring panels, refer to the GConf chapter of the GNOME Desktop Administration Guide available through Applications (the main menu on the panel) => Help, selecting the Desktop Category, and choosing the System Administration Guide Document.

NoteNote
 

For information on locking down the panel, refer to Section 4.3 Locking Down the Panel.

2.1. Panel Configuration

The following material is meant to serve as a more technical reference for panel configuration.

2.1.1. Configuration Layout

The panel configuration contains a more complex set of GConf keys. This section gives an overview of how those keys are organized.

Most of the panel configuration is stored in /apps/panel/. The general/ directory contains the following keys:

toplevel_id_list

The list of panel identifiers. Each identifier is also the name of the sub-directory in the toplevels directory which contains the actual preferences for that panel.

object_id_list

The list of panel object identifiers. Each identifier is also the name of the sub-directory in the objects directory which contains the actual preferences for that panel object.

applet_id_list

The list of panel applet identifiers. Each identifier is also the name of the subdirectory in the applets directory, which contains the actual preferences for that panel applet.

Thus, the default contents of /apps/panel/ looks something like:

 /apps/panel/general:
   applet_id_list = [mixer,clock,systray,...]
   object_id_list = [menu_bar,web_launcher,...]
   toplevel_id_list = [top_panel,bottom_panel]
   ...

 /apps/panel/toplevels/bottom_panel:
   size = 24
   expand = true
   name = Bottom Panel
   orientation = bottom
   ...

 /apps/panel/objects/menu_bar:
   toplevel_id = top_panel
   object_type = menu-bar
   position = 0
   locked = true
   ...

 /apps/panel/objects/web_launcher:
   toplevel_id = top_panel
   object_type = launcher-object
   position = 1
   launcher_location = file:///usr/share/applications/redhat-web.desktop
   ...

 /apps/panel/applets/clock:
   toplevel_id = top_panel
   object_type = bonobo-applet
   position = 1
   panel_right_stick = true
   locked = true
   bonobo_iid = OAFIID:GNOME_ClockApplet
   ...

2.1.2. Default Configuration

The default panel configuration is specified in /etc/gconf/schemas/panel-default-setup.entries. When the panel is installed, the default configuration is loaded into the Defaults Source using the gconftool-2 "--load" argument:

        
# gconftool-2 \
  --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults \
  --direct --load /etc/gconf/schemas/panel-default-setup.entries

This command loads the default configuration into the /apps/panel/default_setup GConf directory.

2.1.3. Modifying the Default Configuration

Modifying the default panel configuration can be a difficult task. Unfortunately, it is also one of the more common tasks for administrators wishing to deploy a modified desktop environment configuration.

TipTip
 

Refer to the GNOME Desktop System Administration Guide for an alternative method for changing the default panel configuration to that described below.

The following provides a more complex example of how to modify the default panel configuration.

2.1.3.1. Example: Removing the Print Manager launcher and the Notification Area

Consider a relatively straightforward example and assume that we wish to remove the Print Manager launcher and the Notification Area from the default configuration.

  • Make a copy of /etc/gconf/schemas/panel-default-setup.entries:

    # cp /etc/gconf/schemas/panel-default-setup.entries \
         /etc/gconf/schemas/local-panel-default-setup.entries
  • Edit local-panel-default-setup.entries, removing the print_launcher entry from object_id_list and removing the print_launcher directory from the objects directory:

               <value>
                 <string>spreadsheet_launcher</string>
               </value>
               <value>
               <string>print_launcher</string>
              </value>
             </list>
            </list>
           </value>
         </entry>
      ...
      <!-- Print Launcher -->
    
        <entry>
          <key>objects/print_launcher/object_type</key>
          <schema_key>/schemas/apps/panel/objects/object_type</schema_key>
          <value>
            <string>launcher-object</string>
          </value>
        </entry>
      ...
        <entry>
          <key>objects/print_launcher/menu_path</key>
          <schema_key>/schemas/apps/panel/objects/menu_path</schema_key>
        </entry>
        <entry>
          <key>objects/print_launcher/action_type</key>
          <schema_key>/schemas/apps/panel/objects/action_type</schema_key>
        </entry>
    
      <!-- Workspace Switcher Applet -->
  • Next, remove the systray entry from applet_id_list and remove the systray directory from the applets directory:

                 <string>mixer</string>
              </value>
              <value>
                <string>systray</string>
              </value>
              <value>
                <string>clock</string>
              </value>
              <value>
      ...
      <!-- System Tray Applet -->
    
        <entry>
          <key>applets/systray/object_type</key>
          <schema_key>/schemas/apps/panel/objects/object_type</schema_key>
          <value>
            <string>bonobo-applet</string>
          </value>
        </entry>
      ...
        <entry>
          <key>applets/systray/menu_path</key>
           <schema_key>/schemas/apps/panel/objects/menu_path</schema_key>
        </entry>
        <entry>
          <key>applets/systray/launcher_location</key>
           <schema_key>/schemas/apps/panel/objects/launcher_location</schema_key>
        </entry>
        <entry>
          <key>applets/systray/action_type</key>
          <schema_key>/schemas/apps/panel/objects/action_type</schema_key>
        </entry>
    
      <!-- Clock Applet -->
  • Create the configuration source into which you will load your modified default setup:

    # mkdir --mode a=rwx,g=rx,o=rx \
      /etc/gconf/local.xml.defaults

    It is important that your configuration source be created using the correct --mode argument to ensure it is readable by all users. GConf will use the permissions from this toplevel directory when creating new files or directories in the configuration source.

  • Load the new default setup into /apps/panel/default_setup in the new configuration source:

                  
    # gconftool-2 --config-source=xml:readwrite:/etc/gconf/local.xml.defaults \
      --direct --load \
      /etc/gconf/schemas/local-panel-default-setup.entries
  • Add the new configuration source to /etc/gconf/2/path, which will cause the source to appear before the Defaults Source for all users:

    # echo "xml:readonly:/etc/gconf/local.xml.defaults" \
      >> /etc/gconf/2/path

    NoteNote
     

    This change will only come into effect when the GConf daemon is re-started. Therefore, it is preferable to make the change with all users logged out.