GNOME

From ParabolaWiki
Jump to: navigation, search
Summary
GNOME 3 provides a modern desktop, rewritten from scratch, using the GTK3+ toolkit.
Overview
The Xorg project provides a free software implementation of the X Window System – the foundation for a graphical user interface. Desktop environments such as LXQt, Openbox/KDE, Cinnamon, MATE, Xfce, GNOME, Deepin provide a complete graphical environment. Various window managers offer alternative and novel environments, and may be used standalone to conserve system resources. Display managers provide a graphical login prompt.
Related
Xorg
GTK+

GNOME (pronounced gah-nohm or nohm) is a desktop environment that aims to be simple and easy to use. It is designed by The GNOME Project and is composed entirely of free and open-source software. GNOME is a part of the GNU Project. The default display is Wayland instead of Xorg.

From About Us | GNOME:

The GNOME Project was started in 1997 by two then university students, Miguel de Icaza and Federico Mena. Their aim: to produce a free (as in freedom) desktop environment. Since then, GNOME has grown into a hugely successful enterprise. Used by millions of people across the world, it is the most popular desktop environment for GNU/Linux and UNIX-type operating systems. The desktop has been utilised in successful, large-scale enterprise and public deployments, and the project’s developer technologies are utilised in a large number of popular mobile devices.

1 Introduction

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.

2 Installation

Two groups are available:

gnome contains the base GNOME desktop and a subset of well-integrated applications;

gnome-extra contains further GNOME applications, including an archive manager, disk manager, text editor, and a set of games. Note that this group builds on the gnome group.

You must install the gnome group, but you can exclude some packages such as epiphany (See the pacman man page for an explanation of how to do this). gnome-extra does not imply that you want everything in gnome.

Example:

# pacman -S gnome

Choose which applications you wish to use from gnome-extra. It is not mandatory to install the whole group.

# pacman -S gnome-extra

The base desktop consists of GNOME Shell, a plugin for the Mutter window manager. It can be installed separately with gnome-shell.

Note: mutter acts as a composite manager for the desktop, employing hardware graphics acceleration to provide effects aimed at reducing screen clutter. The GNOME session manager automatically detects if your video driver is capable of running GNOME Shell and if not, falls back to software rendering using llvmpipe.

2.1 D-Bus daemon

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

2.2 Additional packages

These packages are not in the above mentioned groups:

  • Boxes — A simple user interface to access libvirt virtual machines.
https://wiki.gnome.org/Apps/Boxes || gnome-boxes
  • GNOME Initial Setup — A simple, easy, and safe way to prepare a new system.
https://github.com/GNOME/gnome-initial-setup || gnome-initial-setup
  • GNOME PackageKit — Collection of graphical tools for PackageKit to be used in the GNOME desktop.
https://github.com/GNOME/gnome-packagekit || gnome-packagekit
https://wiki.gnome.org/Apps/Nemiver || nemiver
  • Software — Lets you install and update applications and system extensions.
https://wiki.gnome.org/Apps/Software/ || gnome-software

3 GNOME Sessions

GNOME has three available sessions, all using GNOME Shell.

  • GNOME is the default which uses Wayland. Traditional X applications are run through Xwayland.
  • GNOME Classic is a traditional desktop layout with a similar interface to GNOME 2, using pre-activated extensions and parameters. [1] Hence it is more a customized GNOME Shell than a truly distinct mode.
  • GNOME on Xorg runs GNOME Shell using Xorg.

4 Starting GNOME

GNOME can be started either graphically, using a display manager, or manually from the console.

Note: Support for screen locking in GNOME is provided by GDM. If GNOME is not started using GDM, you will have to use another screen locker to provide this functionality - see List of applications/Security#Screen lockers.

4.1 Graphically

Select the session: GNOME, GNOME Classic, or GNOME on Xorg from the display manager's session menu.

4.2 Manually

4.2.1 Xorg sessions

  • For the GNOME on Xorg session, add to the ~/.xinitrc file: exec gnome-session.
  • For the GNOME Classic session, add to the ~/.xinitrc file:
    export XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME
    export GNOME_SHELL_SESSION_MODE=classic
    exec gnome-session --session=gnome-classic

After editing the ~/.xinitrc file, GNOME can be launched with the startx command (see xinitrc for additional details, such as preserving the logind session). After setting up the ~/.xinitrc file it can also be arranged to Start X at login.

4.2.2 Wayland sessions

Note: GNOME on Wayland requires the xorg-server-xwayland package, and cannot be started using startx and ~/.xinitrc. For more information, see Wayland

The GNOME Shell Wayland compositor can be started by running gnome-shell --wayland in the command line. However, to take advantage of GNOME's session manager, one needs to create a custom GNOME session. A desktop file is needed which specifies gnome-shell --wayland on the Exec line and a GNOME session file is needed which specifies the aforementioned desktop file as a required component (along with gnome-settings-daemon). If the session file you created was called gnome-wayland.session then you can start the session with gnome-session --session=gnome-wayland.

4.3 GNOME applications in Wayland

When the GNOME session is used, GNOME applications will be run using Wayland. See the current status of Wayland for GNOME applications at GNOME Applications under Wayland.

5 Navigation

To learn how to use the GNOME shell effectively read the GNOME Shell Cheat Sheet; it highlights GNOME shell features and keyboard shortcuts. Features include task switching, keyboard use, window control, the panel, overview mode, and more. A few of the shortcuts are:

  • Super + m: show message tray
  • Super + a: show applications menu
  • Alt- + Tab: cycle active applications
  • Alt- + ` (the key above Tab on US keyboard layouts): cycle windows of the application in the foreground
  • Alt + F2, then enter r or restart: restart the shell in case of graphical shell problems (only in X/legacy mode, not in Wayland mode).

5.1 Legacy names

Note: Some GNOME programs have undergone name changes where the application's name in documentation and about dialogs has been changed but the executable name has not. A few such applications are listed in the table below.
Tip: Searching for the legacy name of an application in the Shell search bar will successfully return the application in question. For instance, searching for nautilus will return Files.
Current Legacy
Files Nautilus
Web Epiphany
Videos Totem
Main Menu Alacarte
Document Viewer Evince
Disk Usage Analyser Baobab
Image Viewer EoG (Eye of GNOME)
Passwords and Keys Seahorse

6 Configuration

The GNOME desktop relies on a configuration database backend (DConf) to store system and application settings. The desktop comes with default configuration settings, installed applications add their own to the database. The basic configuration is done either via the GNOME System Settings panel gnome-control-center or the preferences of the individual applications. A direct configuration of the DConf database is always possible as well and performed with the gsettings command line tool. In particular it can be used to configure settings which are not exposed via the user interface.

GNOME settings are then applied by the GNOME Settings Daemon. Note that the daemon can be run outside of a GNOME session in order to apply GNOME configuration in a non-GNOME environment. Execute nohup /usr/lib/gnome-settings-daemon/gnome-settings-daemon > /dev/null & to do so.

The configuration is usually performed per user and the rest of this section does not cover how to create configuration templates for a multi-user-system.

6.1 System settings

Control panel settings of note.

6.1.1 Color

The daemon colord reads the display's EDID and extracts the appropriate color profile. Most color profiles are accurate and no setup is required; however for those that are not accurate, or for older displays, color profiles can be put in ~/.local/share/icc/ and directed to.

6.1.2 Date & time

If the system has a configured Network Time Protocol daemon, it will be effective for GNOME as well. The synchronization can be set to manual control from the menu, if required.

To show the date in the top bar, execute:

$ gsettings set org.gnome.desktop.interface clock-show-date true

Additionally, to show week numbers in the calendar opened on the top bar, execute:

$ gsettings set org.gnome.desktop.calendar show-weekdate true

6.1.3 Default applications

Upon installing GNOME for the first time, you may find that the wrong applications are handling certain protocols. For example, totem opens videos instead of a previously used VLC. Some of the associations can be set from system settings via: System > Details > Default applications.

For other protocols and methods see Default applications for configuration.

6.1.4 Mouse and touchpad

To help reduce touchpad interference you may wish to implement the settings below:

  • Disable touchpad while typing
  • Disable scrolling
  • Disable tap-to-click
Note: The synaptics driver is not supported by GNOME. Instead, you should use libinput. See this bug report.

6.1.5 Network

NetworkManager is the native tool of the GNOME project to control network settings from the shell. It is installed by default as a dependency for tracker package, which is a part of gnome group, and just needs to be enabled.

While any other network manager can be used as well, NetworkManager provides the full integration via the shell network settings and a status indicator applet network-manager-applet (not required for GNOME).

6.1.6 Online accounts

Backends for the GNOME messaging application empathy as well as the GNOME Online Accounts section of the System Settings panel are provided in a separate group: telepathy. See Unable to add accounts in Empathy and GNOME Online Accounts. Some online accounts, such as ownCloud, require gvfs-goa to be installed for full functionality in GNOME applications such as GNOME Files and GNOME Documents [2].

6.1.7 Search

The GNOME shell has a search that can be quickly accessed by pressing the Super key and starting to type. The tracker package is installed by default as a part of gnome group and provides an indexing application and metadata database. It can be configured with the Search and Indexing menu item; monitor status with tracker-control. It is started automatically by gnome-session when the user logs in. Indexing can be started manually with tracker-control -s. Search settings can also be configured in the System Settings panel.

The Tracker database can be queried using the tracker-sparql command. View its manual page man tracker-sparql for more information.

6.2 Advanced settings

As noted above, many configuration options such as changing the GTK+ theme or the window manager theme are not exposed in the GNOME System Settings panel (gnome-control-center). Those users that want to configure these settings may wish to use the GNOME Tweak Tool (gnome-tweak-tool), a convenient graphical tool which exposes many of these settings.

GNOME settings (which are stored in the DConf database) can also be configured using the dconf-editor (a graphical DConf configuration tool) or the gsettings command line tool. The GNOME Tweak Tool does not do anything else in the background of the GUI; note though that you will not find all settings described in the following sections in it.

6.2.1 Appearance

6.2.1.1 GTK+ themes and icon themes

To install a new theme or icon set, add the relevant ~/.local/share/themes or ~/.local/share/icons respectively (add to /usr/share/ instead of ~/.local/share/ for the themes to be available systemwide.) They and other GUI settings can also be defined in ~/.config/gtk-3.0/settings.ini:

~/.config/gtk-3.0/settings.ini
[Settings]
gtk-theme-name = Adwaita
# 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

Additional theme locations:

Once installed, they can be selected using the GNOME Tweak Tool or GSettings - see below for GSettings commands:

For the GTK+ theme:

$ gsettings set org.gnome.desktop.interface gtk-theme theme-name

For the icon theme

$ gsettings set org.gnome.desktop.interface icon-theme theme-name
6.2.1.1.1 Global dark theme

GNOME will use the Adwaita light theme by default however a dark variant of this theme (called the Global Dark Theme) also exists and can be selected using the Tweak Tool or by editing the GTK+ 3 settings file - see GTK+#Dark theme variant. Some applications such as Image Viewer (eog) use the dark theme by default. It should be noted that the Global Dark Theme only works with GTK+ 3 applications; some GTK+ 3 applications may only have partial support for the Global Dark theme. Qt and GTK+ 2 support for the Global Dark Theme may be added in the future.

6.2.1.2 Window manager themes

The window manager theme (the style of the window titlebars) can be set using the GNOME Tweak Tool or the following GSettings command:

$ gsettings set org.gnome.desktop.wm.preferences theme theme-name
6.2.1.2.1 Titlebar height
Note: Applying this configuration shrinks the titlebar of the GNOME-terminal, but does not appear to affect the Nautilus titlebar height.
~/.config/gtk-3.0/gtk.css
headerbar.default-decoration {
 padding-top: 0px;
 padding-bottom: 0px;
 min-height: 0 px;
 font-size: 0.6em;
}

headerbar.default-decoration button.titlebutton {
 padding: 0px;
 min-height : 0 px;
}

See [3] for more information.

6.2.1.2.2 Titlebar button order

To set the order for the GNOME window manager (Mutter, Metacity):

$ gsettings set org.gnome.desktop.wm.preferences button-layout ':minimize,maximize,close'
Tip: The colon indicates which side of the titlebar the window buttons will appear.
6.2.1.3 GNOME Shell themes

The theme of GNOME Shell itself is configurable. To use a Shell theme, firstly ensure that you have the gnome-shell-extensions package installed. Then enable the User Themes extension, either through GNOME Tweak Tool or through the GNOME Shell Extensions webpage. Shell themes can then be loaded and selected using the GNOME Tweak Tool.

Shell themes can also be downloaded from gnome-look.org.

6.2.1.4 Icons on menu

The default GNOME schema doesn't display any icon on menus. To display icons on menus, issue the following command.

$ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/ButtonImages': <1>, 'Gtk/MenuImages': <1>}"

6.2.2 Desktop

Various Desktop settings can be applied.

6.2.2.1 Icons on the Desktop

See GNOME/Files#Desktop Icons.

6.2.2.2 Lock screen and background

When setting the Desktop or Lock screen background, it is important to note that the Pictures tab will only display pictures located in /home/username/Pictures folder. If you wish to use a picture not located in this folder, use the commands indicated below.

For the desktop background:

$ gsettings set org.gnome.desktop.background picture-uri 'file:///path/to/my/picture.jpg'

For the lock screen background

$ gsettings set org.gnome.desktop.screensaver picture-uri 'file:///path/to/my/picture.jpg'

6.2.3 Extensions

{{Note|The GNOME Shell browser plugin which allows users to install extensions from extensions.gnome.org works out-of-the-box for browsers such as Icecat or GNOME/Web.

GNOME Shell can be customized with extensions per user or system-wide.

The catalogue of extensions is available at extensions.gnome.org. By a user they can be installed and activated in the browser by setting the switch in the top left of the screen to ON and clicking Install on the resulting dialog (if the extension in question is not installed). After installation it is shown in the extensions.gnome.org/local/ tab, which has to be visited as well to check for available updates. Installed extensions can also be enabled or disabled using gnome-tweak-tool.

More information about GNOME shell extensions is available on the GNOME Shell Extensions about page.

Installing extensions via a package makes them available for all users of the system and automates the update process.

The gnome-shell-extensions package provides a set of extensions maintained as part of the GNOME project (many of the included extensions are used by the GNOME Classic session).

Users who want a taskbar but do not wish to use the GNOME Classic session may want to enable the Window list extension (provided by the gnome-shell-extensions package).

6.2.4 Input methods

GNOME has integrated support for input methods through IBus, only ibus and the wanted input method engine (e.g. ibus-libpinyin for Intelligent Pinyin) needed to be installed, after installation the input method engine can be added as a keyboard layout in GNOME's Regional & Language Settings.

6.2.5 Fonts

Tip: If you set the Scaling factor to a value above 1.00, the Accessibility menu will be automatically enabled.

Fonts can be set for Window titles, Interface (applications), Documents and Monospace. See the Fonts tab in the Tweak Tool for the relevant options.

For hinting, RGBA will likely be desired as this fits most monitors types, and if fonts appear too blocked reduce hinting to Slight or None.

6.2.6 Startup applications

To start certain applications on login, copy the relevant .desktop file from /usr/share/applications/ to ~/.config/autostart/.

The gnome-tweak-tool allows managing autostart-entries.

Tip: If the plus sign button in the Tweak Tool's Startup Applications section is unresponsive, try start the Tweak Tool from the terminal using the following command: gnome-tweak-tool. See the following forum thread.

6.2.7 Power

The basic power settings that may want to be altered (these example settings assume the user is using a laptop - change them as desired):

$ gsettings set org.gnome.settings-daemon.plugins.power button-power hibernate
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 3600
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type hibernate
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 1800
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type hibernate
$ gsettings set org.gnome.desktop.lockdown disable-lock-screen true

To keep a monitor active on lid close:

$ gsettings set org.gnome.settings-daemon.plugins.xrandr default-monitors-setup do-nothing
6.2.7.1 Configure behaviour on lid switch close

The GNOME Tweak Tool can optionally inhibit the systemd setting for the lid close ACPI event.[4] To inhibit the setting, start the Tweak Tool and, under the power tab, check the Don't suspend on lid close option. This means that the system will do nothing on lid close instead of suspending - the default behaviour. Checking the setting creates ~/.config/autostart/ignore-lid-switch-tweak.desktop which will autostart the Tweak Tool's inhibitor.

If you do not want the system to suspend or do nothing on lid close, you will need to ensure that the setting described above is not checked and then configure systemd with HandleLidSwitch=preferred_behaviour as described in Power management#ACPI events.

6.2.7.2 Change critical battery level action

The settings panel does not provide an option for changing the critical battery level action. These settings have been removed from dconf as well. They are now managed by upower. Edit the upower settings in /etc/UPower/UPower.conf. Find these settings and adjust to your needs.

/etc/UPower/UPower.conf
PercentageLow=10
PercentageCritical=3
PercentageAction=2
CriticalPowerAction=HybridSleep

6.2.8 Sort applications into application (app) folders

In the dconf-editor navigate to org.gnome.desktop.app-folders and set the value of folder-children to an array of comma separated folder names:

['Utilities', 'Sundry']

Add applications using gsettings:

$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ apps "['alacarte.desktop', 'dconf-editor.desktop']"

This adds the applications alacarte.desktop and dconf-editor.desktop to the Sundry folder. This will also create the folder org.gnome.desktop.app-folders.folders.Sundry.

To name the folder (if it has no name that appears at the top of the applications):

$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ name "Sundry"

Applications can also be sorted by their category (specified in their .desktop file):

$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ categories "['Office']"

If certain applications matching a category are not wanted in a certain folder, exclusions can be set:

$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ excluded-apps "['libreoffice-draw.desktop']"

For further information, refer to the app-folders schema.

7 See also

8 Acknowledgement

This wiki article is based on ArchWiki. We may have removed non-FSDG bits from it.