The shell in GNOME 3 can be modified by writing extensions in JavaScript. Here are some extensions I've written to provide a user experience more akin to that of GNOME 2.
Workspaces are arranged in a horizontal row, so the keybindings to change workspace have been altered to ctrl-alt-left/right. Workspaces can also be arranged in multiple rows. In this case ctrl-alt-up/down switch between rows and a row indicator appears to the left of the workspace switcher. Clicking on the row indicator changes row. The mouse scroll wheel can be used in the row indicator or workspace switcher to change workspace.
The number of workspaces and the number of rows can be set using a dialog obtained by right clicking on the workspace switcher.
The message tray button shows and hides the message tray, as the hot corner is hidden by the panel. If no messages are available the button is blank.
The extensions are available for:
They are licensed under the GPL version 2 or later. To see what's changed from previous releases check the GNOME 3.2 change log (or the GNOME 3.0 change log).
To install them unpack the tar file in your home directory: the extensions will be placed in ~/.local/share/gnome-shell/extensions. The extensions can be made available to all users by placing them in /usr/share/gnome-shell/extensions.
If you have GNOME 3.2 another way to get Frippery is through the GNOME Shell Extensions web site, currently in public alpha testing. This lets you install extensions via your web browser. There are a couple of known problems: it only works with Firefox and some extensions can't be uninstalled using the site, though they can be disabled.
RPMs are available for Fedora:
| Fedora 15 | Fedora 16 | |
|---|---|---|
| RPM | gnome-shell-frippery-0.2.8-1 | gnome-shell-frippery-0.3.6-1 |
| Source RPM | gnome-shell-frippery-0.2.8-1 | gnome-shell-frippery-0.3.6-1 |
All are signed with the Tigress RPM signing key.
Other distributions have packaged GNOME Shell Frippery (additional reports welcome):
The Frippery extensions are intended to be used together to provide a GNOME 2-like experience. However, if you'd like to control which are enabled the best option is GNOME Tweak Tool (gnome-tweak-tool in the Fedora repositories). Alternatively you can use the brute-force method and just delete any you don't want. After installation you'll need to restart the shell to make the extensions take effect: enter 'r' in the Alt+F2 dialog or log out and in again. In GNOME 3.2 you can use GNOME Tweak Tool to enable and disable individual extensions without needing to restart.
The extensions hook into the very core of the GNOME shell. It's almost inevitable that future changes to the shell will break them (though I'll make every effort to unbreak them).
During development and testing I have only the Frippery extensions installed. There will be conflicts between extensions and it's impossible to test all combinations. I do try to resolve conflicts that are brought to my attention but all I can guarantee is that the Frippery extensions are compatible with one another.