Difference between revisions of "GNOME"

From ArchWiki
Jump to: navigation, search
(gnome group contains a minimal desktop environment, you want all packages from this group)
(explain how to set up a correct ~/.xinitrc)
Line 65: Line 65:
  # pacman -S gdm
  # pacman -S gdm
If you prefer to start GNOME manually from the console, add the following line to your '''{{Filename|~/.xinitrc}}''' file. Making sure it is the last line and the only command starting with ''exec.'' See the [[xinitrc| xinitrc wiki article.]]
If you prefer to start GNOME manually from the console, add the following line to your '''{{Filename|~/.xinitrc}}''' file. Making sure it is the only line(remove the for block from the standard ~/.xinitrc, it can cause problems) and the only command starting with ''exec.'' See the [[xinitrc| xinitrc wiki article.]]
  exec ck-launch-session gnome-session
  exec ck-launch-session gnome-session

Revision as of 11:26, 7 July 2011

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Template:Article summary start

Template:Article summary text Template:Article summary heading Template:Article summary text Template:Article summary end

The GNOME Project started from scratch and created a completely new desktop called GNOME 3. It has:

  • A modern visual theme and font
  • An activities view providing access to all windows and applications
  • A subtle notifications system and a discrete top panel
  • Integration with an improved Nautilus file manager
  • Integrated desktop services for messaging
  • A new system settings application
  • An activities search feature
  • Features such as snap-like window tiling

Additional explanations are found on the official GNOME3 website.



GNOME 3 has two interfaces: GNOME Shell, the new standard layout; and fallback mode.  Gnome-session automatically detects when your computer is incapable of running Gnome Shell and starts fallback mode when appropriate.

Fallback mode is similar to GNOME 2. (Fallback mode uses gnome-panel/Metacity instead of gnome-shell/Mutter.)

When you are on fallback mode you can still replace GNOME's default window manager with your preferred one.

Upgrade from GNOME 2

Warning: Upgrading to GNOME 3 from a GNOME 2 session might cause a system crash.

It is recommended that you run the update command from a TTY session or from another Desktop Environment / Window Manager.

# pacman -Syu 

After this update you have installed GNOME 3.x with fallback mode only. To install the new GNOME shell:

# pacman -S gnome-shell


GNOME 3 is in the [extra] repository. The gnome group contains the core desktop environment and applications, and gnome-extra contains the rest. You likely don't want all of the packages installed, so consider reading the package descriptions before installing them (or just remove them later).


# pacman -Syu gnome
# pacman -S gnome-extra

D-Bus daemon

The GNOME desktop requires the D-Bus daemon. Refer to the dbus article for setup instructions.

Running GNOME

For the best desktop integration, login manager GDM is recommended. Other login managers (a.k.a. display managers) such as SLiM can be used in place of GDM. Check out the wiki article on display managers to learn how desktop environments are started.

The login manager is a limited process entrusted with duties that impact the system. The PolicyKit wiki article addresses the topic of system‑wide access control.

# pacman -S gdm

If you prefer to start GNOME manually from the console, add the following line to your Template:Filename file. Making sure it is the only line(remove the for block from the standard ~/.xinitrc, it can cause problems) and the only command starting with exec. See the xinitrc wiki article.

exec ck-launch-session gnome-session

After the exec command is placed, GNOME is launched by typing startx.

Using the shell

GNOME cheat sheet

The GNOME web site has a helpful GNOME Shell cheat sheet explaining task switching, keyboard use, window control, the panel, overview mode, and more.

Restarting the shell

After appearance tweaks you are often asked to restart the GNOME shell. You could log out and log back in, but it is simpler and faster to issue the following keyboard command. Restart the shell by pressing Template:Keypress + Template:Keypress  then  Template:Keypress  then  Template:Keypress

Shell crashes

Certain tweaks and/or repeated shell restarts may cause the shell to crash when a restart is attempted. In this case, you are informed about the crash and then forced to log out. Some shell changes, such as switching between GNOME Shell and fallback mode, cannot be accomplished via a keyboard restart; you must log out and log back in to effect them.

It is common sense — but worth repeating — that valuable documents should be saved (and perhaps closed) before attempting a shell restart. It is not strictly necessary; open windows and documents usually remain intact after a shell restart.

Customizing GNOME appearance

Overall appearance

GNOME 3 may have "started from scratch", but like most large software projects it is assembled from parts dating to different eras. There is not one all-encompassing configuration tool. The new Systems Settings tool is a big improvement over previous control panels. System Settings is well-organized, but you may find yourself wishing for more control over system appearance.

You may be familiar with existing configuration tools: some of these still work; many will not. Some settings are not readily exposed for you to change. Indubitably, many settings will migrate to newer tools and/or become exposed as time progresses and the wider community embraces and extends the latest GNOME desktop.


A new command-line tool gsettings stores data in a binary format, unlike previous tools using XML text. A tutorial Customizing the GNOME Shell explores the power of gsettings.

GNOME tweak tool

This graphical tool customizes fonts, themes, titlebar buttons and other settings.

# pacman -S gnome-tweak-tool

Version 3.0.3 only works when gnome-shell is installed (OK if forced to fallback mode). Bugzilla bug report here.

GTK3 theme via settings.ini

Like Template:Filename  with GTK2+, it is possible to set a GTK3 theme via  Template:Filename.

Variable $XDG_CONFIG_HOME is usually set to ~/.config

Adwaita, the default GNOME 3 theme, is a part of gnome-themes-standard. Additional GTK3 themes are found at Deviantart web site. For example:

 gtk-theme-name = Adwaita
 gtk-fallback-icon-theme = gnome
 # next option is applicable only if selected theme supports it
 gtk-application-prefer-dark-theme = true
 # set font name and dimension
 gtk-font-name = Sans 10

It is necessary to restart GNOME shell for settings to be applied. More GTK options are found at GNOME developer documentation.

Icon theme

Using gnome-tweak-tool v. 3.0.3 and later, you can place any icon theme you wish to use inside  Template:Filename.

Usefully, GNOME 3 is compatible with GNOME 2 icon themes, which means you're not stuck with the default icons. To install a new set of icons, copy your desired icon theme's directory to  Template:Filename.  As an example:

$ cp -R /home/user/Desktop/my_icon_theme ~/.icons

The new theme  my_icon_theme  is now selectable using gnome-tweak-tool  under  interface.

Alternatively, you may textually select your icon theme with no need for gnome-tweak-tool. Add the GTK icon theme name to  Template:Filename.



Removing folders from the places sidebar

The displayed folders are specified in Template:Filename and can be altered with any editor. An execution of Template:Codeline will change them again, thus it may be advisable to set the file permissions to read-only.

Always show text-entry location

The standard Nautilus toolbar shows a button bar interface for path navigation. To enter path locations using the keyboard you must expose the location text-entry field. This is done by pressing Template:Keypress + Template:Keypress

To make the location text-entry field always present, use gsettings as shown. Note: after changing this setting you will not be able to expose the button bar. Only when the setting is false can both forms of location navigation be employed.

gsettings set org.gnome.nautilus.preferences always-use-location-entry true

GNOME panel

Hide accessibility icon

Create a folder named  Template:Filename  in  Template:Filename. Create two new files:


Restart the GNOME shell. The accessibility icon should be hidden. If this extension ceases to work in the future, adjust the shell version number in Template:Filename

Alternatively, you may disable the accessibility icon system-wide. Edit Template:Filename  Locate the following line and comment it out or delete it. Afterward restart the shell.

'a11y': imports.ui.status.accessibility.ATIndicator,

Hide bluetooth icon

Deactivate bluetooth as startup-service if that is your intent. Refer to section Automatic program launch upon login

Create a folder named Template:Filename  in  Template:Filename. Create two new files:


Restart the GNOME shell. The icon should be hidden. If this extension ceases to work in the future, adjust the shell version number in Template:Filename

Show battery icon

To show the battery tray icon, install gnome-power-manager.

# pacman -S gnome-power-manager

Disable "Suspend" in the status menu

A quick way to do it system-wide is to change line 153 of Template:Filename.  This change takes effect the next time GNOME Shell is started.

// this._haveSuspend = this._upClient.get_can_suspend();  //  Comment this line out.
this._haveSuspend = false;                                //  Use this line instead.

Eliminate delay when logging out

The following tweak removes the confirmation dialog and sixty second delay for logging out.

This dialog normally appears when you log out with the status menu. This tweak affects the Power Off dialog as well. This is not a system-wide change; it affects only the user who enters this command. The change takes effect immediately after entering the command.

$ gsettings set org.gnome.SessionManager logout-prompt 'false'


Reduce titlebar height

# sed -i '/title_vertical_pad/s|value="[0-9]\{1,2\}"|value="0"|g' /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml

Restart the GNOME shell. This changes vertical padding from 14 to 0, giving windows a sleeker look.

To restore the original values:

sudo pacman -S gnome-themes-standard

Reorder titlebar buttons

At present this setting is changeable only through gconf-editor.

For example, we move the close and minimize buttons to the left side of the titlebar. Open gconf-editor and locate the desktop.gnome.shell.windows.button_layout  key. Change its value to close,minimize:  (Colon symbol designates the spacer between left side and right side of the titlebar.) Use whichever buttons in whatever order you prefer. You cannot use a button more than once. Also, keep in mind that certain buttons are deprecated. Restart the shell to see your new button arrangement.

Hide titlebar when maximized

# sed -i -r 's|(<frame_geometry name="max")|\1 has_title="false"|' /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml

Restart the GNOME shell. After this tweak, you may find it difficult to un-maximize a window when there is no titlebar to grab.

With suitable keybindings, you should be able to use Template:Keypress + Template:KeypressTemplate:Keypress + Template:Keypress  or  Template:Keypress + Template:Keypress  to remedy the situation.

To prevent Template:Filename from being overwritten each time package "gnome-themes-standard" is upgraded, add its name to Template:Filename with NoUpgrade.


To restore original Adwaita theme values:

# pacman -S gnome-themes-standard

Login screen

To modify characteristics of the login screen (GDM, the GNOME display manager) the following lines can be executed. The first command allows all users, including "gdm", to access X settings (albeit temporarily). This command creates a temporary vulnerability, so be advised. The second command opens a bash session with the credentials of user "gdm". Note: for exposition, user gdm's terminal prompt is shown as $. In actuality, it shows something like -bash-4.2$.

# xhost +
# su - gdm -s /bin/bash
$ dbus-launch

The third command prints DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. We must export these variables.

$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38
$ export DBUS_SESSION_BUS_PID=4283

The following backtick-ed command combines dbus-launch and export into a single command. (Dbus-launch has command line options which appear to obviate the need for the sed pipeline; that method seems to export no more than the first variable.)

# `dbus-launch | sed "s/^/export /"`

To avoid copying and pasting, you may use the script Template:Filename to export the variables. The other scripts assist in setting up the GDM wallpaper. Place these files in a suitable location. Make them executable using chmod. An example of running these scripts appears below.




Check to see if dconf-service is running and if not, start it like this

$ /usr/lib/dconf/dconf-service &

Login background image

Once session variables have been exported as explained above, you may issue commands to retrieve or set items used by GDM. The following commands retrieve or set the file name used for GDM's wallpaper.

 $  GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri
 $  GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri 'file:///usr/share/backgrounds/gnome/SundownDunes.jpg'
 $  GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-options 'zoom'
 ## Possible values: centered, none, scaled, spanned, stretched, wallpaper, zoom

You must specify a file which user "gdm" has permission to read. GDM cannot read files in your home directory.

Here is a session showing how a user might change the GDM wallpaper using the scripts shown above. It starts with a normal user's terminal and assumes he is able to open a bash session as root. The root user then opens a session as "gdm" and changes the wallpaper.

$ su -

# xhost +
access control disabled, clients can connect from any host
# su - gdm -s /bin/bash

-bash-4.2$ . prep-gdm-vars   #  Must use . to execute this script!
access control disabled, clients can connect from any host

-bash-4.2$ show-avail-gdm-bkgd gnome
Aqua.jpg            FreshFlower.jpg  Spaceflare-nova.jpg       Terraform-green.jpg   YellowFlower.jpg
Blinds.jpg          Garden.jpg       Spaceflare-supernova.jpg  Terraform-orange.jpg
BlueMarbleWest.jpg  GreenMeadow.jpg  SundownDunes.jpg          TwoWings.jpg
FootFall.png        Spaceflare.jpg   Terraform-blue.jpg        Wood.jpg

-bash-4.2$ revise-gdm-bkgd gnome/GreenMeadow.jpg

-bash-4.2$ logout

# logout

Script Template:Filename may also be used to change your normal user background from the command prompt. Admittedly, the script name does not quite fit when used for that purpose.

Turning off the sound

This tweak disables the audible feedback heard when the system volume is adjusted (via keyboard) on the login screen.

$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.sound event-sounds false

Make the power button interactive

The default installation sets the power button to suspend the system. Power off  or  Show dialog  is a better choice. You must first export the GDM session variables as outlined previously.

 # GSETTINGS_BACKEND=dconf gsettings set org.gnome.settings-daemon.plugins.power button-power 'interactive'
 # GSETTINGS_BACKEND=dconf gsettings set org.gnome.settings-daemon.plugins.power button-hibernate 'interactive'
 # gsettings list-recursively org.gnome.settings-daemon.plugins.power

GDM keyboard layout

GDM does not know about your GNOME 3 desktop keyboard settings. To change keyboard settings used by GDM, set your layout using Xorg configuration. Refer to this section of the Beginner's Guide.

Automatic program launch upon login

Specify which programs start automatically after login using gnome-session-properties. This tool is part of the package gnome-session.

$ gnome-session-properties

Hidden features

GNOME 3 hides many useful options which you can customize with dconf-editor. GNOME 3 also supports gconf-editor for settings that have not yet migrated to dconf.

Changing hotkeys

Firstly, use dconf-editor to place a checkmark next to  can-change-accels  in the key named org.gnome.desktop.interface.

We will replace the hotkey — a.k.a. keyboard shortcut, keyboard accelerator — used by Nautilus to move files to the trash folder.

The default assignment is a somewhat-awkward Template:Keypress + Template:Keypress.

  • Open Nautilus, select any file, and click Edit on the menu bar.
  • Hover over the Move to Trash  menu item.
  • While hovering, press Template:Keypress.  The current accelerator is now unset.
  • Press the key that you wish to become the new keyboard accelerator.
  • Press Template:Keypress to make the new accelerator be the Delete key.

Unless you select a file or folder, Move to Trash  will be grayed-out. Finally, disable can-change-accels to prevent accidental hotkey changes.

Shutdown via the status menu

Presently, GNOME designers have hidden the Shutdown option inside the status menu. To shut down your system with the status menu, click the menu and then press the Alt key.

The Suspend  item changes to Power Off.  Keep pressing Alt and select Power Off...  The subsequent dialog allows you to shut down or restart your system.

If you disable the Suspend menu item system-wide as described elsewhere in this document you do not have to go through these motions.

Another option is to install the Alternative Status Menu extension. See the section on shell extensions. The alternative menu extension installs a new status menu with a non-hidden Power Off entry.

Integrated messaging

Empathy, the engine behind integrated messaging, and all system settings based on messaging accounts will not show up unless the telepathy group of packages or at least one of the backends (telepathy-gabble, or telepathy-haze, for example) is installed.

These packages are not included in default Arch GNOME installs. The Empathy interface does not send a nice error message; it just fails to work silently. You can install the packages.

# pacman -S telepathy

View descriptions of telepathy components on the Freedesktop.org Telepathy Wiki.

Miscellaneous settings

GNOME shell extensions

Gnome Shell can be customized with extensions written by others. These provide features such as a dock or a widget for changing the theme. Details on available extensions are found at the WEBUPD8 site. The most recent articles can be found using this WEBUPD8 search link.

You can use AUR package gnome‑shell‑extensions‑git to install several extensions or install them individually using an extension snapshot. Listing here.  Restart GNOME shell after installing an extension.

If an extension breaks GNOME

When enabling shell extensions causes GNOME breakage, you should first remove the user-theme and auto-move-windows extensions from their installation directory.

The installation directory could be one of  Template:Filename Template:Filename or Template:Filename. Removing these two extension-containing folders may fix the breakage. Otherwise, isolate the problem extension with trial‑and‑error.

Removing or adding an extension-containing folder to the aforementioned directories removes or adds the corresponding extension to your system. Details on Gnome Shell extensions are available at the GNOME web site.

Default terminal

Template:Codeline, which replaces Template:Codeline in GNOME 3, is used to set e. g. the default terminal manually. The setting is relevant for nautilus-open-terminal. The commands for urxvt run as daemon:

gsettings set org.gnome.desktop.default-applications.terminal exec urxvtc
gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'-e'"
Note: For nautilus-open-terminal, you may need a flag (e.g. Template:Codeline) to indicate that a command will follow: nautilus-open-terminal passes a Template:Codeline command in order to change directories to the appropriate location.

Middle mouse button

By default, GNOME 3 disables middle mouse button emulation regardless of Xorg settings (Emulate3Buttons). To enable middle mouse button emulation use:

gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true


Xmonad is a tiling window manager.

Upgrading to GNOME 3 will likely break your xmonad setup. You can use xmonad again by forcing fallback mode and creating two files:


The next time you log in, you should have the ability to choose Xmonad GNOME as your session.

Enabling fallback mode

Your session automatically starts in fallback mode when gnome-shell is not present, or when your hardware cannot handle graphics acceleration — such as running within a virtual machine or running on old hardware.

If you wish to enable fallback mode while still having gnome-shell installed, make the following system change:

Open gnome-control-center. Click the System Info icon. Click Graphics. Change Forced Fallback Mode to ON.

You can alternatively choose the type of session from a terminal with a gsettings command:

$ gsettings set org.gnome.desktop.session session-name 'gnome-fallback'

You may want to log out after making the change. You will see the chosen type of session upon your next login.

To disable forced-fallback mode (that is, launch the normal GNOME Shell) use a value of 'gnome' instead of 'gnome-fallback'.


GNOME login takes a very long time

See if you enabled PulseAudio Network settings in paprefs. When any network audio settings are enabled, Gnome hangs about a minute after login.

One solution is to create a new user account and login to that account. Another solution is to move your ~/.gconf, ~/.gconfd and ~/.conf/dconf folders to a holding area. Login again to see if the delay is gone.

If the excessive delay is gone, determine which setting causes the delay using trial-and-error.

Extensions don't work after GNOME 3 update

Locate the folder where your extensions are installed. It might be Template:Filename or Template:Filename.

Edit each occurrence of  Template:Filename  which appears in each extension sub-folder.

Insert: "shell-version": ["3.0"]
Instead of (for example):   "shell-version": ["3.0.1"]
You might instead use: "shell-version": ["3.0.0", "3.0.1", "3.0.2"]

"3.0"  is the best solution. It indicates the extension works with every  3.0.x  GNOME Shell version.

Screen is not locked after resume

Screen lock only works when you suspend through GNOME's status menu. If you suspend or hibernate using the power button, your screen is not locked after resume. The problem is a configuration failure in dconf.

Open dconf-editor and uncheck  lock-use-screensaver  in the key named  org.gnome.power-manager. Your screen should now be locked after resume whether you used the status menu, the power button, or a key combination. Bug report: Screen gets no more locked after suspend #Comment 8

GTK2+ apps show segfaults and fail to launch

That usually happens when oxygen-gtk is installed. This theme appears to conflict with GNOME 3 or GTK3 settings. When oxygen-gtk has been set as a GTK2 theme, GTK2 apps segfault with errors like these:

 (firefox-bin:14345): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(firefox-bin:14345): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed
Segmentation fault

The current workaround is to remove oxygen-gtk from the system and use a different theme for applications.

ATI Catalyst driver creates glitches and artifacts

For the moment, Catalyst is not proposed to be used while running GNOME Shell. The opensource ATI driver, xf86-video-ati, however, seems to be working properly with the GNOME 3 composited desktop.

Multiple monitors and dock extension

If you have multiple monitors configured using Nvidia Twinview, the dock extension may get sandwiched in-between the monitors. You can edit the source of this extension to reposition the dock to a position of your choosing.

Edit /usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js and locate this line in the source:

this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);

The first parameter is the X position of the dock display, by subtracting 15 pixels as opposed to 2 pixels from this it correctly positioned on my primary monitor, you can play around with any X,Y coordinate pair to position it correctly.

this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);

No event sounds for Empathy and other programs

If you're using OSS, you may want to install libcanberra-oss from AUR.

Editing hotkeys via can-change-accels fails

It is also possible to manually change the keys via an application's so-called accel map file. Where it is to be found is up to the application: For instance, Thunar's is at Template:Filename, whereas Nautilus's is located at Template:Filename. The file should contain a list of possible hotkeys, each unchanged line commented out with a leading ";" that has to be removed for a change to become active.

Panels don't respond to right-click in fallback mode

Check Configuration Editor: /apps/metacity/general/mouse_button_modifier. This modifier key (<Alt>, <Super>, etc) used for normal windows is also used by panels and their applets.

"Show Desktop" keyboard shortcut does not work

GNOME developers treated the corresponding binding as bug (see https://bugzilla.gnome.org/show_bug.cgi?id=643609) due to Minimization being deprecated. To show the desktop again assign ALT+STRG+D to the following setting:

System Settings --> Keyboard --> Shortcuts --> Windows --> Hide all normal windows

Nautilus does not start

Start gnome-tweak-tool -> File Manager -> Have file manager handle the desktop -> Off

Epiphany does not play flash videos

Epiphany now uses gtk3, but Adobe's Flash Player still relies on gtk2. See Epiphany#Flash for a workaround involving nspluginwrapper.

Unable to apply stored configuration for monitors

If you encounter this message try to disable the xrandr gnome-settings-daemon plugin :

dconf write /org/gnome/settings-daemon/plugins/xrandr/active false

External links