GNOME

Related articles
Desktop environment
GTK
GDM
GNOME/Tips and tricks
GNOME/Troubleshooting
GNOME/Files
GNOME/Gedit
GNOME/Web
GNOME/Evolution
GNOME/Flashback
GNOME/Keyring
GNOME/Document viewer
Official repositories#gnome-unstable
GNOME
(/(ɡ)noʊm/) 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. It uses
Wayland
, and the available sessions are
GNOME
, the default, runs GNOME Shell on
Wayland
. Traditional X applications are run through Xwayland.
GNOME Classic
provides a "
traditional desktop experience
" (with an interface similar to GNOME 2) by using
certain extensions and values
. Thus, it is a customized form of GNOME Shell rather than a truly distinct mode.
Installation
The following
package groups
are available:
gnome
contains the base GNOME desktop and the well-integrated
core applications
;
gnome-circle
contains various
extra applications
extending the GNOME ecosystem.
gnome-extra
contains
development tools
as well as some further applications and games that fits well into GNOME.
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
.
Unstable releases can also be used, see
Official repositories#gnome-unstable
.
Starting
GNOME can be started either graphically with a
display manager
or manually from the console (some features may be missing). The display manager included in
gnome
is
GDM
.
Note
Support for screen locking (and more) in GNOME is provided by GDM. If GNOME is not started with GDM, another screen locker may be used. See
List of applications/Security#Screen lockers
.
Graphically
If you installed the
gnome
group and want GNOME to start automatically on next boot,
enable
gdm.service
. You can then select the desired session:
GNOME
or
GNOME Classic
(only displayed if
gnome-shell-extensions
is installed) from the display manager's session menu.
If you prefer to start GNOME right away, thereby avoiding a reboot,
start
the aforementioned
gdm.service
from a graphically unoccupied tty instead.
Manually
Note
An X server is still necessary to run applications that have not yet been ported to
Wayland
, see
Wayland#Xwayland
for details. Applications using certain graphics libraries, such as Qt, can be forced to use Wayland by setting environment variables. See
Wayland#GUI libraries
for more information.
Session type
GNOME session inherits session type from systemd. Systemd session type is determined from
XDG_SESSION_TYPE
environment variable when the session is started, and can only be changed by the controller of that session afterwards. See the systemd issue on
Github
.
Therefore merely setting
XDG_SESSION_TYPE
after login does not work. Instead, create a systemd drop-in file to set environment for getty :
/etc/systemd/system/getty@tty1.service.d/wayland.conf
[Service]
Environment=XDG_SESSION_TYPE=wayland
To show session type after reload:
$ loginctl session-status
Start session
After
XDG_SESSION_TYPE
and login session type is set correctly, manually starting a Wayland session is possible with:
$ gnome-session
Running
gnome-shell --wayland
directly is not recommended, because it lacks session management.
Note that manual invocation of Gnome does
not
require
gdm
(consequently also the accompanying
gdm.service
) at all and is thus also accessible for users with a (possibly very) minimal installation of Gnome composing of a selected few packages included in the more inclusive
gnome
group in accordance to personal preference.
To start on login to tty1, add to your
.bash_profile
:
gnome-session --no-reexec
The
--no-reexec
flag prevents gnome-session from starting a login shell which sources the profile again and loops.
Firefox and QT applications do not respect
XDG_SESSION_TYPE
, so add variables for them as well:
if [[ -z $DISPLAY && $(tty) == /dev/tty1 && $XDG_SESSION_TYPE == wayland ]]; then
  MOZ_ENABLE_WAYLAND=1 QT_QPA_PLATFORM=wayland exec gnome-session --no-reexec
fi
GNOME applications in Wayland
When the
GNOME
session is used, GNOME applications will be run using Wayland. For debugging cases,
https://docs.gtk.org/gtk3/running.html
and
https://docs.gtk.org/gtk4/running.html
list options and environment variables.
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 notification list
Super+a
: show application grid
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).
See
/Tips and tricks#Navigation
for changes to the default configuration making the window-switching resemble that of Windows.
See
Keyboard navigation
for more shortcuts.
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
.
Legacy
Current
Baobab
Disk Usage Analyzer
Decibels
Audio Player
Epiphany
Web
Loupe
Image Viewer
Nautilus
Files
Papers
Document Viewer
Showtime
Video Player
Simple Scan
Document Scanner
Snapshot
Camera
Configuration
GNOME Settings (
gnome-control-center
) and GNOME applications use the
dconf
configuration system to store their settings.
You can directly access the dconf database using the
gsettings(1)
command line tool. This also allows you to configure settings not exposed by the user interfaces. Command line tool
dconf(1)
can directly modify the underlying database, bypassing validation. The configuration keys of gsettings and dconf are equivalent, but in a slightly different format:
gsettings set mygroup.mysubgroup mysetting myvalue
in gsettings would be
dconf write /mygroup/mysubgroup/mysetting myvalue
in dconf.
Up until GNOME 3.24, settings were applied by the GNOME settings daemon (located at
/usr/lib/gnome-settings-daemon/gnome-settings-daemon
), which could be run outside of a GNOME session.
GNOME 3.24, however, replaced the GNOME settings daemon with several separate settings plugins
/usr/lib/gnome-settings-daemon/gsd-*
which were later moved to
/usr/lib/gsd-*
. These plugins are now controlled via desktop files under
/etc/xdg/autostart/
(matching
org.gnome.SettingsDaemon.*.desktop
). To run these plugins outside of a GNOME session, you will now need to copy/edit the appropriate
desktop entries
to
~/.config/autostart
.
The configuration is usually performed user-specific; this section does not cover how to create configuration templates for multiple users.
System settings
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.
Night Light
GNOME comes with a built-in blue light filter similar to
Redshift
. You can enable and customise the time you want to enable Night Light from the display settings menu. Furthermore, you can tweak the kelvin temperature with the following
dconf
setting, where 5000 is an example value:
$ gsettings set org.gnome.settings-daemon.plugins.color night-light-temperature 5000
Tip
To change the daytime temperature in a Wayland session, install the
Night Light Slider extension
.
Note
Night Light works on NVIDIA cards in Wayland sessions since version 545.29.02
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.
GNOME supports automatic time zone selection (can be enabled in
Date & Time
section of the system settings, given that location services are enabled (see
Privacy
section of the settings).
Note
Automatic time zone selection might not work anymore because of the retirement of Mozilla Location Services. See
[1]
. For workarounds see
System time#Setting based on geolocation
.
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
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
Default Applications
.
For other protocols and methods, see
Default applications
for configuration.
Mouse and touchpad
Most touchpad settings can be set from system settings via
Mouse & Touchpad
.
Depending on your device, other configuration settings may be available, but not exposed via the default GUI. For example, a different touchpad
click-method
$ gsettings range org.gnome.desktop.peripherals.touchpad click-method
enum
'default'
'none'
'areas'
'fingers'
to be set manually:
$ gsettings set org.gnome.desktop.peripherals.touchpad click-method 'fingers'
or via
gnome-tweaks
.
Note
The
synaptics
driver is not supported by GNOME. Instead, you should use
libinput
. See
this bug report
.
Resize windows by mouse
By default, you can use your mouse to move windows by holding down
Super
, clicking and holding the left mouse button and dragging the mouse around.
Additionally, you can enable using your mouse to resize windows by holding down
Super
, clicking and holding the right mouse button and dragging the mouse around:
$ gsettings set org.gnome.desktop.wm.preferences resize-with-right-button true
If you don't like the
Super
key, you can also change the modifier to something else, like
Alt
or
Ctrl
:
$ gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier "'<Alt>'"
Network
NetworkManager
is the native tool of the GNOME project to control network settings from the shell. If you have not already,
install
the
networkmanager
package and
enable
the
NetworkManager.service
systemd unit.
While any other
network manager
can be used alternatively, NetworkManager provides the full integration via the shell network settings and a status indicator applet
network-manager-applet
(not required for GNOME).
Note
Hidden wireless networks set up with
networkmanager
's
nmtui
do not connect automatically. You need to create a new profile using GNOME control center in order to restore auto-connect capabilities for that network.
Online accounts
Some online accounts, such as
Nextcloud
, require
gvfs-goa
and
gvfs-dnssd
to be installed for full functionality in GNOME applications such as
GNOME Files
and GNOME Documents
[2]
.
See
Online accounts
for more information.
Search
The GNOME shell has a search that can be quickly accessed by pressing the
Super
key and starting to type. The
localsearch
package is installed by default as a dependency of
nautilus
from the
gnome
group and provides an indexing application and metadata database. It can be configured with the
Search
menu item in
Settings
. It is started automatically by
gnome-session
when the user logs in.
localsearch does not automatically recurse into all directories under the user's home directory, so you may need to add custom paths via the
Search > Search locations
menu item. To exclude a directory from the indexing, create an empty
.nomedia
file.
A status is available with
localsearch status
and the indexed content can be searched (
localsearch search --help
), edited (
localsearch tag --help
), or reset from the commandline. See
localsearch help
and
localsearch
command
--help
, or the
online help
for reference.
The database uses
tinysparql-sql(1)
and can also be queried directly, if needed.
Accessibility
GNOME has accessibility settings available via
Settings > Accessibility
. The main settings may be toggled directly after enabling a top bar icon, but note further settings are available via the sub-menus for
Seeing
,
Hearing
,
Typing
,
Pointing and clicking
and
Zoom
. See
https://help.gnome.org/users/gnome-help/stable/a11y.html.en
for information on them.
Additionally, a default set of keyboard shortcuts can be set via
Settings > Keyboard > View and Customize Keyboard Shortcuts > Accessibility
. For example, pressing
Alt
,
Super
and
8
toggles zooming.
Device Security Settings
GNOME 43 comes with a new
Device Security
panel in Settings. This requires
fwupd
in order to function. See
[3]
.
Advanced settings
As noted above, many configuration options such as changing the
GTK
theme or the
window manager
theme are not exposed in GNOME Settings (
gnome-control-center
). Those users that want to configure these settings may wish to use the GNOME Tweaks (
gnome-tweaks
), 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 Tweaks 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.
Extensions
The catalogue of extensions is available at
https://extensions.gnome.org
, they can be installed either through
official repositories
(only a few),
the AUR
or through
the browser
.
The factual accuracy of this article or section is disputed.
Reason:
The note below suggests manual user file management as recommended since it is "easier" but does not explain why. (Discuss in
Talk:GNOME
)
Note
Installing extensions through the browser makes them available for the current user only and requires you to manually update each one. This is the easier method.
Additionally, if you decided to install extensions from the browser instead, you need to install
gnome-browser-connector
. It is not required to install extensions from the official repositories or the AUR.
Installing extensions through the AUR (or through official repositories, if you find them there) makes them available system-wide (and automates the update process if using an
AUR helper
).
Installed extensions can also be configured, enabled or disabled through a GUI with
gnome-extensions-app
, from the command line with
gnome-extensions(1)
, or from the browser. In your browser, extensions can be installed then activated in the browser by setting the switch in right top right of the screen to
ON
and clicking
Install
on the popup window (if the extension in question is not installed). Installed extensions may be seen at
https://extensions.gnome.org/local/
, where available updates can be checked.
The
gnome-shell-extensions
package provides a set of very useful extensions maintained as part of the GNOME project.
extension-manager
is a graphical tool which can also be used to install and remove extensions, as well as enable and disable them, both system-wide and for a user. Prior to using it, consider its
list of known issues
.
To enable usage of extensions (disabled by default):
$ gsettings set org.gnome.shell disable-user-extensions false
To list currently enabled extensions:
$ gsettings get org.gnome.shell enabled-extensions
The above command may list extensions that have been removed. To only list extensions that are enabled
and
installed, use
gnome-extensions
instead:
$ gnome-extensions list --enabled
For more information about GNOME shell extensions, see
https://extensions.gnome.org/about/
.
Appearance
Themes
Note
As of
Gnome 42
, many default Gnome applications use GTK 4 with libadwaita. These apps do not currently support changing themes through gsettings or
gnome-tweaks
, the only visual configuration available is through Settings > Appearance. See
GTK#Themes
for setting a GTK theme other than Adwaita or Adwaita-dark.
GNOME uses Adwaita by default. To apply Adwaita-dark only to GTK 2 applications, use the following symlink:
$ ln -s /usr/share/themes/Adwaita-dark ~/.themes/Adwaita
Note
The Adwaita-dark theme is provided by
gnome-themes-extra
which may not be installed on a minimal installation of GNOME.
To select new themes (move them to the appropriate directory and) use GNOME Tweaks or the GSettings commands below.
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
Note
The window manager theme follows the GTK theme. Using
org.gnome.desktop.wm.preferences theme
is deprecated and ignored.
See
GTK#Themes
and
Icons#Icon themes
.
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.
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 the GNOME Extensions application or through the
GNOME Shell Extensions
webpage. Shell themes can then be loaded and selected using GNOME Extensions.
There are a number of GNOME Shell themes available
in the AUR
, many themes do not have the same name format, so instead try searching for the appropriate theme in the AUR. Shell themes can also be downloaded from
gnome-look.org
.
AppIndicators/Top bar icons
To enable AppIndicators, which is useful for controlling/monitoring certain applications running in the background, Install
gnome-shell-extension-appindicator
or
gnome-shell-extension-appindicator-git
AUR
,
restart the GNOME Shell
, then enable the AppIndicator extension in the GNOME Extensions application or by running
$ gnome-extensions enable $(gnome-extensions list | grep -m 1 appindicatorsupport)
Shell animation speed
The GNOME shell animation can be sped up, slowed down or disabled. See
GNOME/Tips and tricks#Change animation speed
.
Shell blur
Blur my Shell is an extension that adds blur effects to the overview screen as well as the shell itself and other apps. Install
gnome-shell-extension-blur-my-shell
AUR
or
gnome-shell-extension-blur-my-shell-git
AUR
for development updates. This extension is highly customizable, and you may choose to blur certain applications.
Better Alt-Tab Functionality
The default Alt-Tab in GNOME is very simple and does not show overviews of the selected windows. You can change the Alt-Tab shortcut from "Switch Applications" to "Switch Windows" in Settings to show window overviews.
You can also use Coverflow Alt-Tab. It is an extension that expands the Alt-Tab behavior and adds features to make switching between applications easier while also giving it a better look. Install
gnome-shell-extension-coverflow-alt-tab-git
AUR
, then you may change the configuration of this extension to your liking.
Note: Super-` provides "Switch windows of an application` by default.
Autostart
GNOME implements
XDG Autostart
.
The
gnome-tweaks
allows managing autostart-entries.
Tip
If the plus sign button in the Tweaks's Startup Applications section is unresponsive, try starting the Tweaks from the terminal using the following command:
gnome-tweaks
. See the following
forum thread
.
Desktop
Dash to Dock
To move the dash out of the overview and turn it into a dock to easily launch and switch applications,
install
gnome-shell-extension-dash-to-dock
AUR
.
Startup in Overview Mode
Starting from GNOME 40, the desktop will start directly into Overview Mode instead of an empty desktop (like in previous versions). To mimic legacy behaviour, one may
install
gnome-shell-extension-no-overview
AUR
.
Alternatively, you can disable it using gsettings if using
gnome-shell-extension-dash-to-dock
AUR
:
$ gsettings set org.gnome.shell.extensions.dash-to-dock disable-overview-on-startup true
See the discussion at
[4]
.
Clipboard history
Unlike other desktop environments, GNOME does not have a built-in tool to manage the clipboard history. This can be done however with the help of an extension. Install
gnome-shell-extension-clipboard-indicator
AUR
.
Weather
To display the current weather information in the top panel based on a chosen location, install
gnome-shell-extension-openweather
AUR
. The weather information is updated in real-time and displays useful data such as conditions, wind speed, pressure, etc...
Sound input/output device selector
This article or section is being considered for removal.
Reason:
Probably not needed anymore.
Packages compatible
up to Gnome 43 only. (Discuss in
Talk:GNOME
)
By default, if you want to change your sound input or output device or change your microphone's volume, you need to open GNOME Control Center and configure these settings from there. To integrate a device selector and a microphone volume slider, install
gnome-shell-extension-sound-output-device-chooser
AUR
or
gnome-shell-extension-sound-output-device-chooser-git
AUR
. Further configuration can be done after installation.
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 Tweaks 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
.
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 under
Keyboard > Input Sources
in GNOME Settings (
gnome-control-center
).
Keyboard Layout quirks
If you are using an alternative keyboard layout like Neo2 which uses multiple layers/modifiers, you might need to go to
Keyboard > Type Special Characters
in GNOME Settings (
gnome-control-center
) and change the
Alternate Characters Key
away from
Right Alt
so that it can be used as a native modifier of the keyboard layout. Setting it to e.g.
Left Alt
prevents
Alt+Tab
, so be careful what you change it to.
Without this change, your left
Mod3
key might work, but the right one (
AltGr
) does not. (As of 2021-05-18)
Power
When you are using a laptop, you might want to alter the following settings controlling behavior when idle, screen lock power button presses and lid close:
$ 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.settings-daemon.plugins.power power-button-action
suspend
$ gsettings set org.gnome.desktop.lockdown disable-lock-screen
true
To keep the monitor active when the lid is closed:
$ gsettings set org.gnome.settings-daemon.plugins.xrandr default-monitors-setup do-nothing
GNOME 3.24 deprecated the following settings:
org.gnome.settings-daemon.plugins.power button-hibernate
org.gnome.settings-daemon.plugins.power button-power
org.gnome.settings-daemon.plugins.power button-sleep
org.gnome.settings-daemon.plugins.power button-suspend
org.gnome.settings-daemon.plugins.power critical-battery-action
Do not suspend when laptop lid is closed
The settings panel of GNOME does not provide an option for the user to change the action triggered when the laptop lid is closed. To change the lid switch action system-wide, edit the systemd settings in
/etc/systemd/logind.conf
. To turn off suspend on lid close, set
HandleLidSwitch=ignore
, as described in
Power management#ACPI events
.
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
Power modes
Install the
power-profiles-daemon
optional dependency (of
gnome-control-center
) for power profiles support. Explicitly
starting/enabling
the
power-profiles-daemon
service is unnecessary since
gnome-shell
and GNOME Settings both request its activation upon launching.
When the service is active, power profiles can be managed through the
Power
section of GNOME Settings and in the system menu.
Screencast
The built-in screenshot tool comes without the Screencast option by default. Install the
gst-plugin-pipewire
optional dependency (of
gnome-shell
) to enable screen recording.
Use a different window manager
GNOME Shell does not support using a different
window manager
, however
GNOME Flashback
provides sessions for Metacity and
Compiz
. Furthermore, it is possible to define your own
custom GNOME sessions
which use alternative components.
Replacing GNOME Shell with a different
Wayland compositor
will cause certain sections of
gnome-control-center
(GNOME Settings) to populate incorrectly.
gnome-control-center
will work, but since
mutter
(GNOME Shell) will not be available to provide settings for populating these sections, they will not have an effect or may not populate accurately with your settings. Sections affected are bluetooth, display, and mouse/touchpad to name a few.
See also
Official Website
Contributing to GNOME, feature requests, bugs, code
Wikipedia article
GNOME-Shell Extensions
GNOME Shell Cheat Sheet
Customization (themes, icons...):
Personalize GNOME
GNOME Look
GNOME applications:
GNOME Apps Index
Wikipedia:GNOME Core Applications
GNOME Source/Mirrors:
GNOME GitLab
GNOME Github Mirror