Compiz tuning with gconf

Although compiz is often billed as desktop bling, there are some more subtle effects that it can provide to make using the desktop more friendly and intuitive. I have listed here some of the changes I have made using the gconf configuration tool (gconf-editor) to modify how compiz works building from the default Fedora install.

Fedora's "Desktop Effects" configuration, where compiz can be enabled, offers two additional options - "wobbly windows" and "workspaces on a cube". The cube effect does provide some 3D intuition for workspaces, but is largely just bling, especially for those who are already comfortable with workspaces or vitutal desktops. Wobbly windows as configured by default make me queasy, but if it can be tuned to be virtually imperceptible, it can give windows a physical intuition when moved.

The gconf-editor can be started either by typing "gconf-editor" within a terminal, or using the Applications→System Tools→Configuration Editor menu option. If it is not there/found, it may not be installed on the system (for some reason Fedora does not include it in the default install). It can be installed either by the Add/Remove Software menu, or using yum. Once started, it should look something like this:

gconf editor

The right side panel provides tree-like access to the configuration options. Under apps is the compiz section (further subdivided into general and plugins).

Useful Configurations

Number of workspaces
If you are like me and use many virtual workspaces, setting the number is important. The key option is hsize which is under the general subsection of compiz (usually under screen0). This sets the number of virtual desktops. The default is one, although on Fedora you get 4 if you are using the cube. It can be set higher by changing its value in the gconf editor.

The list of active compiz plugins is shown in the configuration option active_plugins (under the allscreens, general subsections of compiz). Most of the plugins can be individually configured under the plugins subsection of compiz. To add or remove a plugin, this list can be directly edited.

Transparent menus
Subtle transparency in menus gives the intuition they are transient screen events. Too much transparency and they can become difficult to see with complex items/scenes behind them. This can be configured also in the general subsection of compiz (again under screen0). The options opacity_matches and opacity_values can be used to add transparency to menus. The option opacity_matches takes a list of elements that are to be made transparent and opacity_values is another list determining how transparent each of the window elements should be. By default both of these lists are empty. Adding the items "Menu", "DropdownMenu" and "PopupMenu" to opacity_matches indicates the menus should be made transparent. Adding values "90", "90", "90" to opacity_values gives the menus a subtle transparent effect.

Window borders
By default window borders and title bars are configured by the window manager (usually metacity). The alternative is to use the built in compiz theme, however, the advantage of metacity is the numerous themes available. The gconf options for adjusting the transparency of active and non-active window decorations are not in the compiz section, rather in the gwd section (still under apps in the tree). This is the gtk-window-decorator configuration. The two key options are metacity_theme_opacity and metacity_theme_active_opacity. The former governs the opacity of non-active (or unfocused) window title bars. The latter the opacity of active window title bars. These values range from zero to one (e.g. 0.5 is 50% opacity). [Note, this can be confusing as other opacity settings under the compiz subtree take values between zero and 100.] I have set the active window to slight transparency (0.8) and non-active windows to have quite transparent decorations (0.25). There is also the "switch" option metacity_theme_shade_opacity that produces a graded transparency from the bottom to top of the title bar. By default this is on.

Window placement
The placement of new windows on the desktop is controlled by the "place" compiz plugin. The primary algorithms available for choosing where new windows get put are:

0. Cascade - place the new window in the top left corner, cascaded, slightly down and across from the last placed window.
1. Centred - place the new window in the centre of the desktop.
2. Smart - looks for appropriately sized spaces in the desktop to fit the new window.
3. Maximise.
4. Random.

The mode option under the place plugin can be set to one of the numbers (0-4) corresponding to these algorithms.

Scale plugin
This plugin miniaturises each window on the desktop and separates them so you can select which you may want to work with. The default key activation is <Shift><Alt>Up. I have also set this behaviour when I move the mouse into the bottom right of the screen (as this works well with my desktop's bottom panel layout). This can be configured by editing the initiate_edge option under allscreens of the scale compiz plugin section in the gnome configuration. To achieve activation of the scale effect with a mouse move to the bottom right of the desktop, add "BottomRight" to the initiate_edge list.

resources: compiz-fusion