Changes
General changes
Please see the GNOME
3.2 Release Notes (and 3.0
Release Notes) for what is new in this major release of GNOME.
Briefly: GNOME 3.2 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 previous GNOME 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 an
old-fashioned GNOME 2-like desktop environment.
Languages and encodings
GNOME 3.2 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:
[User]
Language=en_GB.utf8
Fonts
GNOME 3.2 uses media-fonts/cantarell as its default font. Unfortunately,
Cantarell only includes a subset of the extended Latin alphabet. Users of
languages whose writing systems are not covered by Cantarell will probably want
to switch to another font, such as media-fonts/dejavu:
$ 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'
Applets
GNOME 2 applets cannot be used in GNOME 3.2. 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.
Shut down and reboot
GNOME Shell developers made a controversial
decision to not show any sort of shut down or power off menu by default.
The Power Off menu item becomes visible after clicking on the upper
right corner menu and holding down the Alt key.
If you need an easily discoverable GUI for shutting down the machine (for
example, if deploying GNOME 3.2 in a corporate environment where users are
required to turn off their computers at the end of the day), you can install the
alternative-status-menu extension. To do so, emerge gnome-extra/gnome-shell-extensions
and run
# eselect gnome-shell-extensions enable 'alternative-status-menu@gnome-shell-extensions.gnome.org'
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, or using gsettings from the terminal:
$ gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action blank
Icons on the desktop
In GNOME 3.2, 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, or use the
gsettings command from the terminal:
$ gsettings set org.gnome.desktop.background show-desktop-icons true
Compiz
GNOME 3.2 standard mode (i.e. GNOME Shell) is incompatible with Compiz.
Touchpad and other input device customization
In GNOME 3, if you have "disable touchpad while typing" selected, the touchpad
will be disabled for 2 seconds 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
$ cp /usr/share/gnome-settings-daemon-3.0/input-device-example.sh ~/input-device.sh
$ chmod +x ~/input-device.sh
$ gsettings set org.gnome.settings-daemon.peripherals.input-devices hotplug-command ~/input-device.sh
and edit input-device.sh 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
fi
# 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
input-device.sh above, from modifying mice and touchpads!), you
can run the following:
$ gsettings set org.gnome.settings-daemon.plugins.mouse active false
General configurability and extensions
GNOME 3.2 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
from gsettings (dconf), gconf, or using the gnome-extra/gnome-tweak-tool
GUI. Discussion of most of these hidden 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; there are also numerous third-party
developers publishing extensions on various websites.
Gentoo uses eselect gnome-shell-extensions to manage system defaults that
control whether extensions installed systemwide (i.e. in /usr/share/gnome-shell/extensions)
should be enabled. Newly-installed extensions start out disabled by default.
Defaults managed by eselect gnome-shell-extensions can be overridden on a
per-user basis using gnome-tweak-tool, or from the command line using
gsettings. For example, to load all extensions with the exception of
dock and gajim, a user can run
$ gsettings set org.gnome.shell enabled-extensions \
'["alternative-status-menu@gnome-shell-extensions.gnome.org", "dock@gnome-shell-extensions.gnome.org"]'
Instead of enabled-extensions, GNOME 3.0 used the disabled-extensions
gsettings key. In GNOME 3.2, this key no longer has any effect.
Extension code quality is highly variable, and some extensions can render GNOME
completely unusable. Gentoo cannot offer support for problems caused by third-party
extensions.
Video card compatibility
AMD / ATI
GNOME Shell shows graphical
corruption under current versions of x11-drivers/ati-drivers
(i.e. FGLRX binary drivers); driver versions 11.8 and below are known
to be affected. As a workaround, you can force GNOME to start in fallback
mode (see Troubleshooting section below), or alternatively, switch to
open-source drivers.
If using open-source AMD / ATI drivers, media-libs/mesa should be built with
USE=gallium, otherwise GNOME will only run in fallback mode.
NVIDIA
Under some versions of x11-drivers/nvidia-drivers, GNOME Shell system tray shows
graphical corruption
(all icons are rendered identically). This problem is fixed in driver versions 280.13
and newer.
All versions of x11-drivers/nvidia-drivers are incompatible with GNOME's
color management support. This is GNOME's color management code relies on XRandR,
and NVIDIA's support for XRandR is currently incomplete.
There is no workaround at this time.
As reported in bug
#375615, for some people, certain versions of x11-drivers/nvidia-drivers
(275.28, 280.13, and 285.03 are known to be affected) cause some Gtk+ applications
to hang when terminating. One effect of this is to make GDM freeze after the
password has been entered; similarly, GNOME will freeze when logging out.
The affected versions of nvidia-drivers have been masked. To prevent
this problem, make sure to use an unmasked driver version, for example
275.09.07 or 285.05.09.
Troubleshooting
GDM shows an "Oh no! Something has gone wrong" screen
This is may be caused by a GNOME Shell crash. Try rebuilding gnome-base/gdm
with the gnome-shell USE flag disabled.
GDM freezes after the password has been entered
This is caused by a bug in x11-drivers/nvidia-drivers.
See Video card compatibility section above.
GNOME starts in fallback mode
GNOME will start in fallback mode if it detects that the graphics hardware and
drivers are insufficiently capable. To see a more detailed explanation of why
GNOME does not start in standard mode, run
/usr/libexec/gnome-session-check-accelerated-helper:
$ /usr/libexec/gnome-session-check-accelerated-helper
gnome-session-is-accelerated: No hardware 3D support.
GNOME starts in standard mode
To force GNOME to start in fallback mode (e.g. due to poor performance or
personal taste), open System Settings (or gnome-control-center
from the terminal), go to System Info → Graphics, and turn on
Forced Fallback Mode. Alternatively, from a terminal:
$ gsettings set org.gnome.desktop.session session-name gnome-fallback
Epiphany and Adobe Flash
Out of the box, Epiphany 3 cannot load www-plugins/adobe-flash because
the browser links to Gtk+-3 while the plugin links to Gtk+-2. On amd64, there
is a workaround: if you emerge adobe-flash with USE=-64bit, the
plugin will be called through www-plugins/nspluginwrapper, avoiding
incompatibility between Gtk+ versions. On x86, unfortunately there is no good
workaround at this time; we suggest using a gtk2-based browser (such as
www-clients/firefox or www-clients/chromium).
Various GNOME 2.x and 3.0 packages fail to compile due to G_CONST_RETURN
Support for the G_CONST_RETURN macro was formally deprecated in
dev-libs/glib during the GNOME 3.1 development cycle.
However, some GNOME 2 and 3.0 packages use the deprecated macro and pass
-DG_DISABLE_DEPRECATED (or a similar define) to the compiler in
their configure scripts or makefiles. As a result, when building against
>=dev-libs/glib-2.29.8, such packages will fail with error messages
similar to the following:
In file included from /usr/include/pango-1.0/pango/pango-script.h:138,
from /usr/include/pango-1.0/pango/pango-gravity.h:98,
from /usr/include/pango-1.0/pango/pango-types.h:91,
from /usr/include/pango-1.0/pango/pango-font.h:26,
from /usr/include/pango-1.0/pango/pango-attributes.h:25,
from /usr/include/pango-1.0/pango/pango.h:25,
from /usr/include/gtk-3.0/gdk/gdktypes.h:37,
from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:31,
from /usr/include/gtk-3.0/gdk/gdk.h:33,
from /usr/include/gtk-3.0/gdk/gdkx.h:30,
from eggdesktopfile.c:34:
/usr/include/pango-1.0/pango/pango-language.h:37: error: expected '=', ',',
';', 'asm' or '__attribute__' before 'char'
/usr/include/pango-1.0/pango/pango-language.h:41: error: expected '=', ',',
';', 'asm' or '__attribute__' before 'char'
Any packages failing in this manner should be reported in Gentoo bugzilla
so that they can be fixed.