Project:Gnome/Gnome 3.6 Upgrade Guide

From Gentoo Wiki
Jump to: navigation, search


General changes

Please see the GNOME 3.6 Release Notes for what is new in this major release of GNOME.

Current users of GNOME 2 would also want to glance at the release notes for 3.0, 3.2, and 3.4. Briefly: GNOME 3 includes two desktop modes—standard and fallback. Fallback mode uses gnome-base/gnome-panel and x11-wm/metacity, and is similar in appearance and behavior to GNOME 2. Standard mode uses gnome-base/gnome-shell and x11-wm/mutter, and looks and behaves completely differently from GNOME 2 releases. By default, the choice of desktop mode is determined by the system's graphics hardware and drivers (standard mode requires modern 3D graphics capabilities).

There is a quick tour of standard mode's GNOME Shell available on the GNOME website. For an in-depth guide to using GNOME Shell, see the GNOME Shell cheat sheet. GNOME Shell at first may feel alien and limited to an experienced GNOME 2 user. We strongly encourage users to persist and make themselves use it for a few days; those who take the time to get used to GNOME Shell's behavior usually grow to love it and don't want to go back to a GNOME 2-like desktop environment.

Changes affecting current GNOME 3.4 or GNOME 2 users

Keyboard layouts and input methods

GNOME 3.6 does not use traditional xorg.conf keyboard layout settings. Instead, keyboard layouts and input methods are configured via ibus which is integrated into GNOME Shell.

To add a keyboard layout, open System Settings (or gnome-control-center from the terminal) and go to Region & Language → Input Sources.

Unfortunately, in GNOME 3.6 the System Settings GUI does not allow setting the usual shortcuts (e.g. Alt Shift) for switching keyboard layouts. Users who use multiple keyboard layouts and need to switch between them from the keyboard will need to use gnome-tweak-tool and select their desired shortcut from the Typing → Modifiers-only input sources switcher shortcut menu. Alternatively, from a terminal:

CODE Use left Alt Shift to switch between keyboard layouts
$ gsettings set org.gnome.settings-daemon.peripherals.keyboard input-sources-switcher alt-shift-l

Suspend menu item

GNOME Shell 3.6 (unlike earlier GNOME 3 releases) always shows a Power Off menu item by default in the upper-right corner menu. However (unlike earlier GNOME releases) it now no longer shows a Suspend menu item by default. The Suspend menu item becomes visible after clicking on the upper right corner menu and holding down the Alt key. Laptops can also be suspended simply by shutting the lid.

If you need an easily discoverable GUI for suspending the machine, you can install the alternative-status-menu extension. To do so, emerge gnome-extra/gnome-shell-extensions and run

CODE Enabling the alternative-status-menu extension
# eselect gnome-shell-extensions enable ''

to enable the extension for all users by default, or use gnome-tweak-tool (Shell Extensions tab) to enable it on a per-user basis.

Evolution 3.6 plugins

Current versions of evolution-exchange and evolution-groupwise are incompatible with Evolution 3.6, and you will need to uninstall them before upgrading to GNOME 3.6. Users of evolution-exchange should try switching to evolution-ews as evolution-exchange development is abandoned.

Interaction with tabs

Since Gnome 3.0, some applications stopped switching tabs when scrolling over them. This is behavior is intended by upstream actually covers at least app-editors/gedit, gnome-base/nautilus and www-client/epiphany. This behavior will not be patched by Gentoo Gnome team so if you find it annoying, please report directly at Gnome bugzilla.

Interaction with windows

If you were used to moving and resizing windows using Alt + middle click, Gnome 3.6 replaced the Alt key with the Super (Windows Logo) key. If you wish to change back to the old behavior, this can be done using gnome-tweak-tool (Windows tab), or from the terminal:

CODE set Alt as modifier key for window interaction
$ gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier '<Alt>'

Logs of the session

If you were used to find the logs of the current session in ~/.xsession-errors, the file has now moved to XDG compliant location: ~/.cache/gdm/session.log.

Changes affecting current GNOME 2 users

Languages and encodings

GNOME 3 obtains user language settings from sys-apps/accountsservice. The language can be set in GNOME from the My Account entry in the upper right corner menu. Alternatively, you can directly edit AccountsService user files. For example, to have user jrandom use British English, you can (as root) edit /var/lib/AccountsService/users/jrandom so it reads the following:

CODE Simple example of an AccountsService user file


GNOME 3 uses media-fonts/cantarell as its default font. Unfortunately, Cantarell currently only includes a subset of Latin and Cyrillic characters. Users of languages with alphabetic writing systems which are not yet covered by Cantarell will probably want to switch to another font, such as media-fonts/dejavu. This can be done using gnome-tweak-tool (Fonts tab), or from the terminal:

CODE Set DejaVu (size 10) as the default font
$ gsettings set org.gnome.desktop.interface font-name 'DejaVu Sans 10'
$ gsettings set org.gnome.desktop.interface document-font-name 'DejaVu Sans 10'
$ gconftool-2 -s -t string /apps/metacity/general/titlebar_font 'DejaVu Sans Bold 10'


GNOME 2 applets cannot be used in GNOME 3. Fallback mode allows applets, although some have not yet been ported to the new, gtk3-based APIs. In standard mode, there are no applets at all. Some traditional applet functionality can be replicated using third-party GNOME Shell extensions.

In order to manage fallback gnome-panel settings (either add/remove or rearrange applet positions) one has to hold down the Alt key when clicking on the panel. This opens relevant menu for changing either panel or applet settings.

Suspend on laptop lid close

GNOME 3 will, by default, suspend a laptop when the lid is closed. If you do not like this behavior, you can change it via the gnome-tweak-tool GUI (Shell tab), or using gsettings from the terminal:

CODE Only turn off the screen when laptop lid is closed on AC power
$ gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action blank

One of the most common reasons for not wanting to suspend on laptop lid close is to carry a laptop to another room without losing the network connection. To do so, you can install gnome-extra/office-runner, which allows temporarily inhibiting GNOME's suspend-on-lid-close behavior for up to 10 minutes.

Icons on the desktop

In GNOME 3, Nautilus by default no longer manages the desktop, and the ~/Desktop folder is simply treated as a normal folder with files.

If you want to have Nautilus manage the desktop like in GNOME 2, you can change the corresponding setting in the gnome-tweak-tool GUI (Desktop tab), or use the gsettings command from the terminal:

CODE Making Nautilus manage the desktop
$ gsettings set org.gnome.desktop.background show-desktop-icons true


GNOME 3 standard mode (i.e. GNOME Shell) is incompatible with Compiz.


GNOME 3 requires media-sound/pulseaudio for audio support. Ensure that you have the pulseaudio USE flag enabled globally (it will be enabled by default if you use the desktop/gnome portage profile). For troubleshooting PulseAudio problems, see documentation on

Touchpad and other input device customization

In GNOME 3.6, if you have "disable touchpad while typing" selected, the touchpad will be disabled for 1 second after a keyboard key is pressed. In GNOME 2, this interval was 500 milliseconds. If you like to disable the touchpad while typing, but prefer the shorter timeout interval like in GNOME 2, you can emerge gnome-base/gnome-settings-daemon with the short-touchpad-timeout USE flag enabled.

GNOME 3 allows setting a custom command for advanced customization of input device settings. For example, suppose that you want to configure your touchpad to enable two-finger scrolling (both vertical and horizontal) and edge scrolling (vertical only). You could do

CODE Setting a new GNOME input device hotplug script

and edit so it ends as follows:

# If the device is a touchpad ...
if [[ -z "${device#*TouchPad*}" ]]; then
	# ... enable two-finger scrolling (vertical and horizontal) ...
	xinput set-prop "${device}" "Synaptics Two-Finger Scrolling" 1 1
	# ... and edge scrolling (vertical only, no horizontal, no coasting) ...
	xinput set-prop "${device}" "Synaptics Edge Scrolling" 1 0 0
# All further processing will be disabled if $retval == 0
exit $retval
If the custom hotplug command does not terminate with exit value 0, gnome-settings-daemon will set its own settings on the input device, likely clobbering the settings that the hotplug command had changed.

If, for whatever reason, you want to completely prevent GNOME 3 from automatically modifying your mouse and touchpad settings (note that this will also prevent custom input hotplug commands, such as above, from modifying mice and touchpads!), you can run the following:

CODE Prevent GNOME from managing the mouse and touchpad
$ gsettings set org.gnome.settings-daemon.plugins.mouse active false

General configurability and extensions

GNOME 3 is designed to appear significantly less configurable than GNOME 2. For example, by default there is no easily discoverable GUI for changing the Gtk+ theme. Many configuration settings are hidden, but can still be changed using the gnome-extra/gnome-tweak-tool GUI, or from gsettings (can be explored using dconf-editor, part of gnome-base/dconf) or gconf (can be explored using gnome-extra/gconf-editor). Discussion of most of these settings is outside the scope of this guide.

GNOME Shell's behavior can be significantly altered using extensions. Gentoo packages the extensions from the official GNOME repository as gnome-extra/gnome-shell-extensions. GNOME Shell comes with a browser plugin that allows users to install extensions from the [] web interface; there are also numerous developers publishing extensions on various third-party websites.

Gentoo uses eselect gnome-shell-extensions to manage system defaults that control whether extensions that were installed systemwide (i.e. in /usr/share/gnome-shell/extensions) should be enabled. Newly-installed systemwide extensions start out disabled by default.

CODE Enabling alternative status menu and dock extensions by default for all users
# eselect gnome-shell-extensions enable \

Defaults managed by eselect gnome-shell-extensions can be overridden on a per-user basis using the [] web interface, via gnome-tweak-tool (Shell Extensions tab), or from the command line using gsettings. For example, to load the alternative status menu and dock extensions, and disabling all other extensions, a user can run

CODE Enabling alternative status menu and dock extensions (and disabling all others!) for the current user
$ gsettings set enabled-extensions \
  '["", ""]'
Extension code quality is highly variable. Some extensions contain memory leaks and others can render GNOME completely unusable. Gentoo cannot offer support for problems caused by third-party extensions.