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. The default display is Wayland instead of Xorg 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.
- GNOME on Xorg runs GNOME Shell using Xorg.
Two groups are available:
- core applications; contains the base GNOME desktop and the well-integrated
- GNOME Tweaks, a set of games and development tools. Note that this group builds on the group. contains further GNOME applications, including an email client, an IRC client,
Unstable releases can also be used, see Official repositories#gnome-unstable.
If you installed the enable
gdm.service. You can then select the desired session: GNOME, GNOME Classic (only displayed if is installed), or GNOME on Xorg from the display manager's session menu. Wayland sessions can be enabled/disabled in the GDM config.
If you prefer to start GNOME right away, thereby avoiding a reboot, start the aforementioned
gdm.service from a graphically unoccupied tty instead.
- For the GNOME on Xorg session, add to the
~/.xinitrcfile (see  for details):
export XDG_SESSION_TYPE=x11 export GDK_BACKEND=x11 exec gnome-session
- For the GNOME Classic session, add to the
export XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME export GNOME_SHELL_SESSION_MODE=classic exec gnome-session
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, e.g. on tty1 by adding to
if [[ -z $DISPLAY && $(tty) == /dev/tty1 ]]; then XDG_SESSION_TYPE=x11 GDK_BACKEND=x11 exec startx fi
Manually starting a Wayland session is possible with:
$ XDG_SESSION_TYPE=wayland dbus-run-session gnome-session
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 the previous line of code to your
.bash_profile. 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 == tty ]]; then MOZ_ENABLE_WAYLAND=1 QT_QPA_PLATFORM=wayland XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session 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.
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
Tabon US keyboard layouts): cycle windows of the application in the foreground
Alt+F2, then enter
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.
|Disk Usage Analyzer||Baobab|
|Image Viewer||EoG (Eye of GNOME)|
|Passwords and Keys||Seahorse|
|GNOME Translation Editor||Gtranslator|
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 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
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
The configuration is usually performed user-specific; this section does not cover how to create configuration templates for multiple users.
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.
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 setting, where 5000 is an example value:
$ gsettings set org.gnome.settings-daemon.plugins.color night-light-temperature 5000
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).
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
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
$ 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'
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
$ gsettings set org.gnome.desktop.wm.preferences mouse-button-modified "'<Alt>'"
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 (not required for GNOME).
See Online accounts for more information.
The GNOME shell has a search that can be quickly accessed by pressing the
Super key and starting to type. The package is installed by default as a dependency of from the group and provides an indexing application and metadata database. It can be configured with the Search and Indexing menu item; query status with
tracker3 status. It is started automatically by gnome-session when the user logs in. Indexing can be started manually with
tracker3 daemon -s. Search settings can also be configured in Settings.
The Tracker database can be queried using the
tracker3 sparql command. See for more information.
Device Security 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 ( ), 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 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.(a graphical DConf configuration tool) or the
- 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 . 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 https://extensions.gnome.org/local/, where available updates can be checked., 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
Thepackage provides a set of very useful extensions maintained as part of the GNOME project.
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/.
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
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
org.gnome.desktop.wm.preferences themeis deprecated and ignored.
To set the order for the GNOME window manager (Mutter, Metacity):
$ gsettings set org.gnome.desktop.wm.preferences button-layout ':minimize,maximize,close'
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 webpage. Shell themes can then be loaded and selected using GNOME Extensions.package installed. Then enable the User Themes extension, either through the GNOME Extensions application or through the
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 restart the GNOME Shell, then enable the AppIndicator extension in the GNOME Extensions application or by runningor AUR,
$ gnome-extensions enable $(gnome-extensions list | grep -m 1 appindicatorsupport)
Blur my Shell is an extension that adds blur effects to the overview screen as well as the shell itself and other apps. InstallAUR or AUR for development updates. This extension is highly customizable, and you may choose to blur certain applications.
Most GNOME applications have a round appearance only on their top corners, while legacy windows have all four corners sharp. To make all corners of all windows round, installAUR.
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. InstallAUR, then you may change the configuration of this extension to your liking.
GNOME implements XDG Autostart.
Theallows managing autostart-entries.
gnome-tweaks. See the following forum thread.
Dash to Dock
To move the dash out of the overview and turn it into a dock to easily launch and switch applications, install 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 AUR.
Alternatively, you can disable it using gsettings if usingAUR:
$ gsettings set org.gnome.shell.extensions.dash-to-dock disable-overview-on-startup true
See the discussion at .
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. InstallAUR.
To display the current weather information in the top panel based on a chosen location, installAUR. The weather information is updated in real-time and displays useful data such as conditions, wind speed, pressure, etc...
Sound input/output device selector
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, installAUR or AUR. Further configuration can be done after installation.
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.
GNOME has integrated support for input methods through IBus. Only and the wanted input method engine (e.g. 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)
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. However,can override the setting applied by . On the tab General turn off the switch Suspend when laptop lid is closed. The system will then not Suspend to RAM (S3) on lid close.
To change the lid switch action system-wide, ensure that the setting described above is not turned off and 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.
PercentageLow=10 PercentageCritical=3 PercentageAction=2 CriticalPowerAction=HybridSleep
Install the power-profiles-daemon optional dependency (of ) 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.
The built-in screenshot tool comes without the Screencast option by default. Install theoptional dependency (of ) 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.
- Official Website
- Contributing to GNOME, feature requests, bugs, code
- Wikipedia article
- GNOME-Shell Extensions
- GNOME Shell Cheat Sheet
- Customization (themes, icons...):
- GNOME applications:
- GNOME Source/Mirrors: