JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Optimizing the Oracle Solaris Desktop for a Multi-User Environment     Oracle Solaris 11.1 Information Library
search filter icon
search icon

Overview of Desktop Optimizations

Installing Desktop Optimization Packages

How to Install the group/feature/multi-user-desktop IPS Package in the Active Boot Environment

How to Install the group/feature/multi-user-desktop IPS Package in a New Boot Environment

Enabling Desktop Optimizations

How to Enable Desktop Optimizations

group/feature/multi-user-desktop IPS Package

application/gconf/multi-user-desktop SMF Service

Customizing Desktop Preferences

Customizing GConf Based Optimizations

Modifying GConf Settings as a Standard User

Using the gconftool-2 Command-Line Utility

Using the gconftool-2 Utility With XML Files

Modifying GConf Settings as a System Administrator

Restricting Applications

Customizing Mozilla Firefox Optimizations

Removing Optimization Packages

Desktop Preferences

Default Preferences

Mandatory Preferences

Optimizing the Oracle® Solaris Desktop for a Multi-User Environment

October 2012

This article helps Oracle Solaris 11 system administrators to understand how to optimize the Oracle Solaris 11 desktop for a multiuser environment.

This article provides the following information:

Overview of Desktop Optimizations

In a multiuser environment, you can setup a server such that it provides desktop environments to multiple clients, such as Sun Ray clients or VNC viewers. The desktop environment provided to clients can be optimized for better performance and usability. The optimizations for the desktop environment are available in the group/feature/multi-user-desktop image packaging system (IPS) package. You must install this IPS package on the server to enable optimizations for the desktop.

When you install the IPS package, the values of some of the desktop preferences are modified. The modified values override the default desktop preference values. To know about desktop preferences that are modified, see Desktop Preferences.

The following example describes the benefit of overriding the default value of the /apps/nautilus/preferences/show_image_thumbnails desktop preference.

Desktop Preference
Overridden Value
Default Value
Benefit
/apps/nautilus/preferences/show_image_thumbnails
NEVER
local_only
If the value is NEVER, the thumbnail of an image file is not displayed. As a result, performance is improved because the I/O operations are reduced that are otherwise required to display a thumbnail.

To enable desktop optimizations, you must install the group/feature/multi-user-desktop IPS package and enable the application/gconf/multi-user-desktop SMF (Service Management Facility) service. For information on how to install the IPS package and enable optimizations, see Installing Desktop Optimization Packages.

After the optimizations are enabled, any user who logs in to the server is provided with the optimized desktop environment. The login process for a user takes less time because of the following reasons:

The following optimizations are provided by the group/feature/multi-user-desktop IPS package:

For information about how to change the desktop preferences, see Customizing Desktop Preferences.


Note - In this document, the terms “standard user” and “user” are used interchangeably and they refer to a user who is not a system administrator.


Installing Desktop Optimization Packages

The group/feature/multi-user-desktop IPS package contains the optimization packages for the desktop environment. To install this package, it is recommended that you use a text-based installation of the Oracle Solaris 11 operating system.

You can install the IPS package in any one of the following boot environments:

How to Install the group/feature/multi-user-desktop IPS Package in the Active Boot Environment

When you install the IPS package in the active boot environment, the active boot environment is modified and a backup boot environment is created.

  1. Log in as a privileged user.
  2. Install the group/feature/multi-user-desktop package.
    $ pkg install group/feature/multi-user-desktop
  3. Reboot the system.
    $ reboot

    After the package is installed, the desktop optimizations are available in the active boot environment. Now you must enable optimizations. To enable optimizations, see Enabling Desktop Optimizations.

How to Install the group/feature/multi-user-desktop IPS Package in a New Boot Environment

When you install the IPS package in a new boot environment, the active boot environment is not modified and the package is installed in a new boot environment.

  1. Log in as a privileged user.
  2. Create a new boot environment by using the beadm command.
    $ beadm create beName
  3. Mount the newly created boot environment to a temporary location.
    $ beadm mount beName /tmp/beName
  4. Install the group/feature/multi-user-desktop package.
    $ pkg -R /tmp/beName install group/feature/multi-user-desktop
  5. Activate the new boot environment.
    $ beadm activate beName
  6. Reboot the system.
    $ reboot

    After the package is installed, the desktop optimizations are available in the new boot environment. Now you must enable optimizations. To enable optimizations, see Enabling Desktop Optimizations.

Enabling Desktop Optimizations

To enable optimizations, enable the application/gconf/multi-user-desktop SMF service.

How to Enable Desktop Optimizations

  1. Log in as a privileged user.
  2. Enable the SMF service.
    $ svcadm enable application/gconf/multi-user-desktop

    The SMF service is enabled.

    After the SMF service is enabled, any user who connects to the server is provided with the optimized desktop environment. To know more about the SMF service, see application/gconf/multi-user-desktop SMF Service

group/feature/multi-user-desktop IPS Package

The group/feature/multi-user-desktop IPS package contains the optimization packages for the desktop. When you install this package, the following packages are installed on the system:

The following table describes the optimization packages.

Package
Description
gnome/config/gconf/multi-user-desktop
Contains optimal values for desktop preferences.

When this package is installed, the application/gconf/multi-user-desktop SMF service is created. Apart from the SMF service, the following files are also created:

  • /usr/share/multi-user-desktop/gconf-optimizations.xml

  • /usr/share/multi-user-desktop/gconf-mandatory-optimizations.xml

web/browser/firefox/multi-user-desktop
Contains optimal values for the Mozilla Firefox web browser. These optimal values improve the performance of the Firefox web browser. The optimal values are enabled for all users including administrators.

When this package is installed, the /usr/lib/firefox/greprefs/all-multi-user-desktop.js file is created. This file contains settings for Mozilla Firefox preferences. To view the contents of this file, see Customizing Mozilla Firefox Optimizations.

Also, a symbolic link to the all-multi-user-desktop.js file is created in the /usr/lib/firefox/defaults/pref/ directory.


Note - The preferences of the Mozilla Firefox web browser cannot be managed by using the GConf framework. Hence, there is a separate optimization package for the Mozilla Firefox web browser.


application/gconf/multi-user-desktop SMF Service

The application/gconf/multi-user-desktop SMF service is created when you install the group/feature/multi-user-desktop IPS package. When this SMF service is enabled, the optimal values for the GConf keys (desktop preferences) are installed in the following paths:

When the SMF service is disabled, the optimal values (overridden values) for the desktop preferences are uninstalled from the previously mentioned paths and the values of the desktop preferences are reset to the default values.


Note -


Customizing Desktop Preferences

Only a system administrator can customize both mandatory and default desktop preferences. However, a standard user can customize only the default desktop preferences. For information about default and mandatory desktop preferences, see Desktop Preferences.

The following types of optimizations can be customized:

Customizing GConf Based Optimizations

Desktop preferences are managed by using GConf. The value of the desktop preferences that are used by the Oracle Solaris 11 Desktop is priority-based. The following table shows the preference value that is used by the desktop.

Priority
Type of Desktop Preference
Owner
1
Mandatory
Set by the system administrator
2
Mandatory
Set by the application/gconf/multi-user-desktop SMF service
3
Default
Set by the user
4
Default
Set by the system administrator
5
Default
Set by the application/gconf/multi-user-desktop SMF service

For example, if the application/gconf/multi-user-desktop SMF service sets the value of the /desktop/gnome/background/draw_background preference to false and the user overrides the same setting and sets the value to true, the effective value of the setting that is used by the desktop is true. This value is used because the value that is set by the user for the default setting has a higher priority than the value that is set by the SMF service.

Similarly, in the case of mandatory settings, if a system administrator has modified a setting before enabling the SMF service, the effective value of the setting that is used by the desktop is the one that is set by the system administrator and not the SMF service.

Modifying GConf Settings as a Standard User

A standard user can modify any of the default settings. The settings can be customized by using GUI tools such as “Appearance Preferences” that is available in the desktop. For settings that cannot be accessed by using the GUI tools, use the gconftool-2 command line utility to modify the settings.

Using the gconftool-2 Command-Line Utility

The following examples show the usage of the gconftool-2 command-line utility.

Using the gconftool-2 Utility With XML Files

You can save the GConf settings in an XML file and provide this file as an input to the gconftool-2 utility. The gconftool-2 configures settings based on the information present in the XML file.

The following examples show the usage of the gconftool-2 utility with XML files.

The following sample XML file shows the values that are set by using the gconftool-2 utility.

<?xml version="1.0"?>
<gconfentryfile>
<entrylist base="/desktop/gnome/background">
<entry>
             <key>draw_background</key>
             <value>
                 <bool>true</bool>
             </value>
         </entry>
         <entry>
             <key>picture_options</key>
             <value>
                 <string>zoom</string>
             </value>
         </entry>
     </entrylist>
</gconfentryfile>

Modifying GConf Settings as a System Administrator

A system administrator can modify any of the default and mandatory desktop preferences. The changes made by a system administrator affects all users.

How to Modify GConf Settings as a System Administrator

  1. Create the following directories in the /etc/gconf directory.
    • gconf.xml.admin.defaults

    • gconf.xml.admin.mandatory

  2. Create the following files in the /etc/gconf/2 directory.
    • local-defaults.path

    • local-mandatory.path

  3. Add the following line in the local-defaults.path file.
    xml:readonly:/etc/gconf/gconf.xml.admin.defaults
  4. Add the following line in the local-mandatory.path file.
    xml:readonly:/etc/gconf/gconf.xml.admin.mandatory
  5. Save the settings in the default and mandatory directories created in Step 1.

    For example:

    $ gconftool-2 --direct 
    --config-source xml:readwrite:/etc/gconf/gconf.xml.admin.defaults 
    --load /tmp/default-settings.xml
    
    $ gconftool-2 --direct 
    --config-source xml:readwrite:/etc/gconf/gconf.xml.admin.mandatory 
    --load /tmp/mandatory-settings.xml
  6. Provide read permissions to all users who can use the settings.

    For example:

    $ chmod -R 755 /etc/gconf/gconf.xml.admin.defaults
    $ chmod -R 755 /etc/gconf/gconf.xml.admin.mandatory
Restricting Applications

As a system administrator you can restrict the type of applications that users can start by modifying the value of the /desktop/gnome/lockdown/allowed_applications preference. This preference specifies the list of applications that users are allowed to start. Based on your requirements, you can add or remove applications from this list.

The following example show how to add a new application to the list of allowed applications.

Example 1 Adding a New Application to the List of Allowed Applications

Consider that you have installed a new application /usr/bin/new_app. To make this new application available to users, you must add this application to the list of allowed applications by updating the value of the /desktop/gnome/lockdown/allowed_applications preference. The following example shows how to update the value of the preference.

  1. Copy the existing value of the /desktop/gnome/lockdown/allowed_applications preference to an XML file.

    $ gconftool-2 --dump /desktop/gnome/lockdown > /tmp/new-settings.xml
  2. In the /tmp/new-settings.xml file, add the new application to the list of allowed_applications.

    <value>
    <string>/usr/bin/new_app</string>
    </value>

    Note - In the /tmp/new-settings.xml file, you can remove settings other than the allowed_applications setting.


  3. Create the gconf.xml.admin.mandatory directory in the /etc/gconf directory.

  4. Create the local-mandatory.path file in the /etc/gconf/2 directory.

  5. Add the following line in the local-mandatory.path file.

    xml:readonly:/etc/gconf/gconf.xml.admin.mandatory
  6. Save the new settings in the mandatory directory created in Step 3.

    For example:

    $ gconftool-2 --direct 
    --config-source xml:readwrite:/etc/gconf/gconf.xml.admin.mandatory 
    --load /tmp/new-settings.xml
  7. Provide read permissions to users who can use the setting.

    For example:

    chmod -R 755 /etc/gconf/gconf.xml.admin.mandatory

Similarly, to remove an application from the list of “allowed applications” you must remove the entry of the application from the XML file and load the new settings.


Note - Applications that are not present in the list of allowed applications do not start automatically and are not shown in the desktop, menus, or the file browser.


Customizing Mozilla Firefox Optimizations

Only a system administrator can override the optimized values that are set for the Mozilla Firefox web browser. The optimized values are present in the /usr/lib/firefox/defaults/pref/all-multi-user-desktop.js file.

The following code shows the values in the all-multi-user-desktop.js file.

// Disable "safe browsing" feature that hogs CPU, HDD, etc.
pref("browser.safebrowsing.enabled", false);
pref("browser.safebrowsing.malware.enabled", false);
//  Limit the "location-bar suggestions"
pref("browser.urlbar.maxRichResults", 3);
// Disable offline/disk caching of web pages
pref("browser.cache.offline.enable", false);
pref("browser.cache.disk.enable", false);
// Change the default cache:
pref("browser.cache.memory.enable",true);
pref("browser.cache.memory.capacity", 1024);

To override the optimized values present in the all-multi-user-desktop.js file, create a new file in the /usr/lib/firefox/defaults/pref/ directory with new values. The file name should be alphabetically higher than the all-multi-user-desktop.js file. For example, you can name the file as all-admin.js.

Removing Optimization Packages

To remove the optimization packages, perform the following steps:

  1. Log in as a privileged user.

  2. Uninstall the packages.

    $ pkg uninstall group/feature/multi-user-desktop
    $ pkg uninstall gnome/config/gconf/multi-user-desktop
    $ pkg uninstall web/browser/firefox/multi-user-desktop

Note - To remove all the components installed by the optimization packages, revert to the boot environment that was created before installing the group/feature/multi-user-desktop package.


Desktop Preferences

The following desktop preferences are modified by the gnome/config/gconf/multi-user-desktop package.


Note - You can modify the value of desktop preferences by using the gconftool-2 utility. For more information about the gconftool-2 utility, see the gconftool-2(1) man page.


Default Preferences

Any user can modify the preference value. You need not be a system administrator to modify the preference value. The following table lists the default preferences.

Table 1 Default Preferences

GConf Key
Key Type
Optimized Value
Default value
/desktop/gnome/background/color_shading_type
string
solid
solid
/desktop/gnome/background/picture_options
string
none
zoom
/desktop/gnome/background/primary_color
string
#000000
#76848F
/desktop/gnome/background/draw_background
bool
false
true
/desktop/gnome/font_rendering/hinting
string
none
full
/desktop/gnome/sound/event_sounds
bool
false
N/A

Mandatory Preferences

A standard user cannot modify the value of the preference. Only the system administrator can modify the preference value. The following table lists the mandatory preferences.

Table 2 Mandatory Preferences

GConf Key
Key Type
Optimized Value
Default value
/desktop/gnome/multi-user-desktop/version
int
1
N/A
/desktop/gnome/interface/enable_animations
bool
false
true
/desktop/gnome/interface/menus_have_icons
bool
true
true
/apps/gnome-session/options/logout_effect
string
black
N/A
/apps/metacity/general/reduced_resources
bool
true
false
/apps/metacity/global_keybindings/panel_run_dialog
string
disabled
[Alt]F2
/apps/metacity/global_keybindings/panel_run_dialog_list
string
disabled
[Mod4]r
/apps/nautilus/preferences/show_directory_item_counts
string
never
local_only
/apps/nautilus/preferences/show_icon_text
string
never
local_only
/apps/nautilus/preferences/show_image_thumbnails
string
never
local_only
/apps/nautilus/preferences/preview_sound
string
never
local_only
/apps/nautilus/preferences/background_fade
bool
false
true
/apps/panel/global/enable_animations
bool
false
true
/desktop/gnome/session/required_components/windowmanager
string
metacity
N/A
/desktop/gnome/session/required_components/filemanager
string
nautilus
N/A
/desktop/gnome/session/required_components/panel
string
gnome-panel
gnome-panel
/apps/panel/global/locked_down
bool
true
false
/desktop/gnome/lockdown/restrict_application_launching
bool
true
false

Note -