Issue #8 June 2005

Creating desktop profiles with Sabayon

The problem

Suppose that you are an administrator of a large network. Part of your job involves creating user accounts for new people. Every user has different needs. Technically, you can tailor a desktop for every one of these new users. However, that would quickly get very tedious.

Although users' needs are different, it is possible to segregate these users into various groups. For example, a casual user would only need easy ways to access their mail and the Internet. A graphic artist would need easy access to drawing programs and other visual tools. A visually impaired user would need large fonts and high contrast displays. Each of these users would find the others' desktop settings inconvenient if not confusing.

Instead of creating a new desktop setup every single time a new user comes along, it would be much easier to create some templates. If only there were an easy way to make and manage these templates.

Introducing Sabayon

Fortunately, we are not the first to ponder this issue. The creators of Sabayon decided to tackle the lack of a good desktop setting management tool. With Sabayon, they created an application that handles these problems and more.

Sabayon takes and expands the concept of user profiles. A user profile is a set of desktop settings grouped together under one name and can be considered a template for a specific user type.

With Sabayon, you can currently:

  • Create and name user profiles
  • Duplicate and change existing user profiles
  • View a history of changes for each user profile
  • Allocate a user profile to specific users

Being able to edit and combine GConf settings graphically is a big improvement; manually editing GConf settings is a thing of the past. Although GConf is a very useful tool, using it has always been a bit tricky. With Sabayon, managing settings has been simplified.

The version tested and used to write this article and for the screenshots is the latest version from GNOME CVS as of the end of May 2005.

Sabayon is currently still under heavy development. Changes to file formats, the interface, and functionality may happen at any time.

Getting and installing

The Sabayon package is now located in the Fedora Extras repository. To add this repository to your yum configuration, follow the directions located at the Fedora Extras website. Then, at a shell prompt as the root user, enter:

yum install --enablerepo=extras sabayon-admin

Creating a user profile

To run Sabayon from Fedora Core 4, go to the panel and select Desktop -> System Settings -> More System Settings -> Desktop User Profiles. The Sabayon window comes up as shown in Figure 1, Starting Sabayon for the first time

Starting Sabayon for the first time
Figure 1. Starting Sabayon for the first time
Because Sabayon does not come with any default desktop configurations, most of this window is disabled. The only thing you can do here is select Add.

To create a new user profile, select Add. A window shown in Figure 2, Adding a new user profile appears. Enter the name of your new profile in the Profile name area. As this is the first user profile to be created, it is a good idea to start with a simple one. In Figure 2, Adding a new user profile, I have entered Casual, my term for users who would only need a minimal setup.

Adding a new user profile
Figure 2. Adding a new user profile
The second field in Figure 2, Adding a new user profile is labeled Base on. This field allows you to duplicate an already existing user profile to use as a starting point for your new one. As you currently do not have any other user profiles, there are no options available. However, having this ability to duplicate and build user profiles is a good reason to start with simpler user profiles.

Editing a user profile

Now that you have named your new profile, select Add. Your new profile is now listed in the main Sabayon window. Select it and click Edit. Within the new window that appears is the Fedora login screen. When it finishes, notice that it looks exactly like a miniature default desktop as shown in Figure 3, Editing a profile.

Editing a profile
Figure 3. Editing a profile
The desktop includes a folder for sabayon-admin's home directory. Sabayon has created this user for the purpose of allowing you to create the profiles. However, as this user may not have full access to your computer's hardware, some error dialogs may appear. These messages can be successfully ignored.

The window in the middle is Sabayon's monitor. Every time you do something in the Sabayon Edit window that changes a savable setting, it is recorded on this monitor. As you log in, any applets appearing in the panel are recorded.

Using the desktop in the Sabayon window, make the desktop look the way you want. For example, in Figure4, Making some changes, we have changed:

  • Desktop background as seen in the line: File '.gnome2/backgrounds.xml' changed
  • Panel applet added (the Lock Screenapplet) as shown by this line: Panel object 'object_1' added
  • Changed the number of workspaces as shown by this line: GConf key '/apps/panel/applets/workspace_switcher/prefs/display_all_workspaces' set boolean 'true'
Making some changes
Figure 4. Making some changes
New settings are added to the top of the list. If necessary, scroll to the top to see your changes.

Locking and ignoring settings

Every entry has two checkboxes on the left: Ignore and Mandatory. While these checkboxes can be left alone without incident, they can come in handy once you have gotten used to reading Sabayon's output.

While you are making the profile, settings are sometimes created that are irrelevant. You can select Ignore next to these settings to keep Sabayon from remembering them. Ignoring irrelevant settings keeps the user profile from gaining too much filler. For example, in your Sabayon window, select Desktop -> Preferences -> Desktop Background. The Sabayon monitor window lists many setting changes as the Desktop Background window appears and as it runs. Some of these settings can be seen near the bottom of the Sabayon monitor shown in Figure 4, Making some changes. Only the setting change that appears when you manually change the background is necessary. You can safely check Ignore for all the other rows associated with the Desktop Background window.

If there is a setting that you want to lock in place, you can select the Mandatory checkbox associated with the change. For example, say you are tired of people asking why their panels have disappeared when they have accidentally set it to autohide. You want to lock it so that the user cannot change this setting. Set autohide to false by right-clicking on the panel. Select Properties. As autohide is already off, you need to toggle it on and off to get the setting to appear correctly in the Sabayon monitor. Once it is there, select the Mandatory checkbox. Once this user profile is saved and implemented, users with this profile will not be able to change this setting. The Properties window for their panel will look like Figure 5, Locked preferences.

As a more concrete example, locking down all settings on a public terminal is a great way to manage a public terminal. Then settings could not be changed between anonymous users.

Any setting that does not have either Ignore or Mandatory selected is implemented for the users when they log in for the first time. However, they are able to change these settings and their changes will override your initial settings.

While it is possible to select both Ignore and Mandatory, the net effect is the same as if only Ignore is selected.
Locked preferences
Figure 5. Locked preferences

Saving your user profile

Once you have the desktop the way you want it, you need to save the profile. If you quit without saving, the user profile reverts to what it was before you started editing. To save, from the Sabayon window, select Profiles -> Save. The saved settings disappear from the Sabayon monitor. You can make more changes if you like (and then save again), or you can quit the editing phase by selecting Profiles -> Quit.

Sabayon is still in development. As such, it sometimes crashes. If that happens, any settings not saved are lost. Save frequently.

Some settings when saved are hard to undo. For example, if you lock a setting by checking the Mandatory flag and then save it, you cannot change that setting again in the edit window. To remove this setting, you need to either revert to a prior version or find that setting and delete it in the Details window. For more information see the section called “Reverting to an earlier version”.

Adding more profiles

To create another user profile, select Add again. Name your new user profile. If you want to use any previously created user profiles as a starting point, select it from the Base on choices.

Although you can copy a user profile using the Base on menu, you do not copy the history. The new profile uses the most current base profile as its first version.

Deploying a user profile

Now that you have some user profiles, it is time to give them to your users. Select the user profile you want to assign and select Users. The selection window appears as shown in Figure 6, Assigning user profiles with all the available users on your system. Choose which users to have this user profile. The association occurs immediately.

Assigning user profiles
Figure 6. Assigning user profiles
Each user can have at most one user profile. If you try to select a second user profile, the first selection goes away.
As Sabayon is currently still in development, I would strongly suggest not applying any user profiles to existing accounts where the user may already have their own private setup. Sabayon currently assumes that the user's configuration is a blank slate at first contact. This assumption can cause inconsistencies that can cause the user's desktop to become very confused.

Reverting to an earlier version

One of the original goals of Sabayon was to create easy version control of user profiles. Unfortunately, it is not quite ready yet. There is some version control, but it is confusing and sometimes ceases to work.

To access the version history of a user profile, select that profile and click Details. The date stamp of the latest version is shown in the menu and the settings are listed underneath as shown in Figure 7, Viewing the version history.

Viewing the version history
Figure 7. Viewing the version history
If the date stamp menu is blank, that means that there have been no changes since the user profile has been created. If only one version exists, the settings for that user profile is shown but the menu only has that one option and cannot be changed.

Click on the date stamp menu. The date stamps of the various versions are shown with the newest being on top. Selecting an older version causes a few things to happen simultaneously:

  • The settings list changes to reflect the settings for the selected version.
  • A new version is created with the current time and tentatively set to contain the settings from the selected version.
  • The menu closes with this new version's date stamp showing.

To return to an older version, select that date stamp and selecting Profiles -> Save in the Details window. However, instead of using the old date stamp, it uses the new date stamp you created when you started viewing the older versions.

When reverting to an older version, if you are just using this window to see what the history of the user profile is, you can quit this window without saving by selecting Profiles -> Quit. It prompts you to make sure you do not want to lose your changes, but as that is exactly what you want to do, select Close Without Saving to close the window.

Although a version history is useful, sometimes it is unnecessary. For example, if you have finally achieved your first user profile after many attempts of trial and error, you may not want the previous versions available. To delete all prior versions, select Edit -> Clear History. This action leaves the current version as the only version available.

Currently, the Sabayon Details window leaves you with a blank list of settings when you delete the history. However, if you save your changes, close the window, and reopen it by selecting the Details button, the information appears as normal.

This window also allows you to delete any settings that may be extraneous and/or unwanted. Select the setting in the list that you do not want and select Edit -> Delete. The setting disappears in the version you are editing.

If you do not save your changes between deleting a setting and changing to another version, the deletion goes away. Every time you select a version, those settings replace the other settings to become the currently edited version.

Possible settings

All GConf and Firefox settings can currently be set in user profiles. Possibilities include:

  • Themes—Require every one of your users to use a theme of your choice. This allows users to more easily understand what others are doing.
  • Desktop backgrounds—Give the users in your group a custom background to instill group pride.
  • Panel location(s)—Never have to explain why their desktop does not have a panel again.
  • Any applications and launchers that can exist in a panel —Give users easy access to the applications and panels they use the most.
  • Any preferences for any of the panel applications and launchers—Preset preferences to eliminate user questions.
  • Fonts—Set them larger for those who have bad eyesight or bad monitors.
  • Desktop icons—Give users an easy way to link to various folders, files, and network places.
  • Screensaver settings—Make sure users do not leave their screens unlocked over a certain amount of time.
  • Firefox preferences—Set the security settings so that users cannot accidentally download and install software.
  • Firefox bookmarks—Set the home page to your group's website. Create bookmarks of commonly used references.
Currently, saving a user profile after starting Firefox in Sabayon causes the history feature to stop working for that user profile.

These are just some ideas of what you can do with Sabayon. The creators have stated that their next goal is to enable Sabayon to recognize and save settings.

How you can help

Although Sabayon is already usable, it is still in development. The maintainers invite and welcome you to help in one or more of the following ways:

  • Testing—Run Sabayon under different conditions with different parameters to make sure everything works as expected. Anything that breaks or seems wrong in any way should be reported via Bugzilla.
  • Fixing—See what problems exist in Bugzilla and fix them.
  • Mentoring—There are always new users who may have trouble setting up Sabayon or getting it to do what they want. You can join the Sabayon mailing list and/or the Sabayon IRC channel (Server: / Channel: #sabayon) to help answer questions and give general encouragement.

For testing and fixing bugs, you may find it necessary to build the latest version of Sabayon from CVS instead of using the prepackaged version. The latest version can be downloaded from GNOME CVS.

Further reading

About the author

Rosanna Yuen is an avid computer user who often finds herself surrounded by computer programmers. She co-wrote AisleRiot and is a dabbler in the GNOME project. In her spare time, she reads, knits, and experiments in her kitchen. She has never made sabayon, but now feels compelled to try.