Difference between revisions of "GNOME"

From ArchWiki
Jump to navigation Jump to search
(Troubleshooting: "Gnome does take very long (~ 1 minute) to login" added)
(exec to really log out after ending gnome session)
 
Line 1: Line 1:
{{i18n|GNOME 3|GNOME}}
+
[[Category:GNOME]]
[[fr:gnome3]]
+
[[cs:GNOME]]
 +
[[de:GNOME]]
 +
[[es:GNOME]]
 +
[[fr:GNOME]]
 +
[[it:GNOME]]
 +
[[ja:GNOME]]
 +
[[pl:GNOME]]
 +
[[pt:GNOME]]
 +
[[ru:GNOME]]
 +
[[sr:GNOME]]
 +
[[th:GNOME]]
 +
[[zh-hans:GNOME]]
 +
[[zh-hant:GNOME]]
 +
{{Related articles start}}
 +
{{Related|GTK+}}
 +
{{Related|GDM}}
 +
{{Related|GNOME/Tips and tricks}}
 +
{{Related|GNOME/Troubleshooting}}
 +
{{Related|GNOME/Files}}
 +
{{Related|GNOME/Gedit}}
 +
{{Related|GNOME/Web}}
 +
{{Related|GNOME/Evolution}}
 +
{{Related|GNOME/Flashback}}
 +
{{Related|GNOME/Keyring}}
 +
{{Related|GNOME/Document viewer}}
 +
{{Related|Official repositories#gnome-unstable}}
 +
{{Related articles end}}
  
[[Category:Desktop environments (English)]]
+
[[Wikipedia:GNOME|GNOME]] (/(ɡ)noʊm/) is a [[desktop environment]] that aims to be simple and easy to use. It is designed by [[Wikipedia:The GNOME Project|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]].
  
{{Article summary start}}
+
== Installation ==
{{Article summary text|GNOME 3 provides a modern desktop, rewritten from scratch, using the GTK3+ toolkit.}}
 
{{Article summary heading|Overview}}
 
{{Article summary text|{{Graphical user interface overview}}}}
 
{{Article summary end}}
 
  
For GNOME 3, the GNOME Project has started from scratch and created a completely new, modern desktop designed for today's users and technologies. In GNOME 3:
+
Two groups are available:
* There is a new default modern visual theme and font
 
* The Activities view which provides an easy way to access all your windows and applications
 
* Built-in (integrated) messaging desktop services
 
* A more subtle notifications system and a more discrete panel
 
* A fast Activities search feature
 
* A new System Settings application
 
* ... and more features like: window tiling (Aero Snap like), an improved Nautilus etc.
 
  
[more details on the [http://www.gnome3.org/ GNOME3] website]
+
* {{Grp|gnome}} contains the base GNOME desktop and a subset of well-integrated [https://wiki.gnome.org/Apps applications];
 +
* {{Grp|gnome-extra}} contains further GNOME applications, including an archive manager, disk manager, [[Gedit|text editor]], and a set of games. Note that this group builds on the {{Grp|gnome}} group.
  
== Introduction ==
+
The base desktop consists of [[Wikipedia:GNOME_Shell|GNOME Shell]], a plugin for the [[Wikipedia:Mutter_(software)|Mutter]] window manager. It can be installed separately with {{Pkg|gnome-shell}}.
  
GNOME3 comes with '''two''' interfaces, '''gnome-shell''' (the new, standard layout) and '''fallback''' mode. gnome-session will automatically detect if your computer is capable of running gnome-shell and will start fallback mode if not.  
+
{{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''.}}
  
'''Fallback''' mode is very similar to the GNOME 2.x layout (while using gnome-panel and metacity, instead of gnome-shell and Mutter).
+
== GNOME Sessions ==
  
If you are on fallback mode you can still change the window manager with your preferred one.
+
GNOME has three available sessions, all using GNOME Shell.
  
== Upgrade from GNOME 2.32 ==
+
* '''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. [http://worldofgnome.org/welcome-to-gnome-3-8-flintstones-mode/] Hence it is more a customized GNOME Shell than a truly distinct mode.
 +
* '''GNOME on Xorg''' runs GNOME Shell using Xorg.
  
{{Warning|The session might crash during the update and it is recommended that you run the update command in a screen session, from another DE or WM, or from tty}}
+
== Starting ==
  
# pacman -Syu
+
GNOME can be started either graphically with a [[display manager]] or manually from the console (some features may be missing).
  
'''Important''': You will end up with a system that has GNOME 3.x '''fallback''' mode. To install the new shell:
+
{{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]].}}
 
# pacman -S gnome-shell
 
  
== Installing to a new system ==
+
=== Graphically ===
  
GNOME 3 is in [extra]. You can install it by running the following command:
+
Select the session: ''GNOME'', ''GNOME Classic'', or ''GNOME on Xorg'' from the display manager's session menu.
  
# pacman -Syu
+
=== Manually ===
# pacman -S gnome
 
  
For additional applications
+
==== Xorg sessions ====
  
# pacman -S gnome-extra
+
* For the GNOME on Xorg session, add to the {{ic|~/.xinitrc}} file (see [https://gitlab.gnome.org/GNOME/gtk/issues/1390#note_344758 here] for details): {{bc|<nowiki>export GDK_BACKEND=x11
 +
exec gnome-session</nowiki>}}
 +
* For the GNOME Classic session, add to the {{ic|~/.xinitrc}} file: {{bc|<nowiki>export XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME
 +
export GNOME_SHELL_SESSION_MODE=classic
 +
exec gnome-session --session=gnome-classic</nowiki>}}
  
===Daemons and modules needed by GNOME===
+
After editing the {{ic|~/.xinitrc}} file, GNOME can be launched with the {{ic|startx}} command (see [[xinitrc]] for additional details, such as preserving the logind session).  After setting up the
 +
{{ic|~/.xinitrc}} file it can also be arranged to [[Start X at login]], e.g. on tty2 by adding to {{ic|.bash_profile}}:
 +
<nowiki>if [[ -z $DISPLAY && $(tty) == /dev/tty2; ]]; then
 +
  GDK_BACKEND=x11 exec startx
 +
fi</nowiki>
  
The GNOME desktop requires one daemon, '''DBUS''' for proper operation.
+
==== Wayland sessions ====
  
{{Daemon|dbus}}
+
{{Note|
 +
* An X server—provided by the {{Pkg|xorg-server-xwayland}} package—is still necessary to run applications that have not yet been ported to [[Wayland]].
 +
* Wayland with the proprietary [[NVIDIA]] driver currently suffers from very poor performance: {{bug|53284}}.
 +
}}  
  
'''GVFS''' allows the mounting of virtual file systems (e.g. file systems over FTP or SMB) to be used by other applications, including the GNOME file manager Nautilus. This is done with the use of '''FUSE''': a user space virtual file system layer kernel module.
+
Manually starting a Wayland session is possible with {{ic|<nowiki>QT_QPA_PLATFORM=wayland XDG_SESSION_TYPE=wayland dbus-run-session gnome-session</nowiki>}}. QT_QPA_PLATFORM makes [[Qt]] applications like [[VLC]], calibre, or SMPlayer use Wayland. In addition to the QT_QPA_PLATFORM variable, you must also install the {{Pkg|qt5-wayland}} package. To add support for other graphics libraries, see [[Wayland#GUI_libraries]].  
  
To load the FUSE kernel module:
+
To start on login to tty1, add the following to your {{ic|.bash_profile}}:
# modprobe fuse
 
  
Or add the module to the '''MODULES''' array in {{Filename|/etc/rc.conf}} so they will load at boot up, e.g.:
+
<nowiki>if [[ -z $DISPLAY && $(tty) == /dev/tty1 && $XDG_SESSION_TYPE == tty ]]; then
 +
  QT_QPA_PLATFORM=wayland XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session
 +
fi</nowiki>
  
MODULES=('''fuse''')
+
=== GNOME applications in Wayland ===
  
{{Note|FUSE is a kernel module, not a daemon.}}
+
When the ''GNOME'' session is used, GNOME applications will be run using Wayland. For debugging cases, the [https://developer.gnome.org/gtk3/stable/gtk-running.html GTK+ manual] lists options and environment variables.
  
===Running GNOME===
+
== Navigation ==
  
For better desktop integration '''GDM''' is recommended (but other login managers, such as SLiM also work, see Policykit section).
+
To learn how to use the GNOME shell effectively read the [https://wiki.gnome.org/Projects/GnomeShell/CheatSheet 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:
  
# pacman -S gdm
+
* {{ic|Super}} + {{ic|m}}: show message tray
 +
* {{ic|Super}} + {{ic|a}}: show applications menu
 +
* {{ic|Alt}} + {{ic|Tab}}: cycle active applications
 +
* {{ic|Alt}} + {{ic|`}} (the key above {{ic|Tab}} on US keyboard layouts): cycle windows of the application in the foreground
 +
* {{ic|Alt}} + {{ic|F2}}, then enter {{ic|r}} or {{ic|restart}}: restart the shell in case of graphical shell problems (only in X/legacy mode, not in Wayland mode).
  
Check out [[Display_Manager]] to learn how to start it correctly.
+
{{Tip|To make {{ic|Alt+Tab}} switch applications only in current workspace, you can set {{ic|current-workspace-only}} to {{ic|true}}:
 +
$ gsettings set org.gnome.shell.app-switcher current-workspace-only true
 +
}}
 +
 
 +
== 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''.}}
 +
 
 +
{| class="wikitable"
 +
! Current
 +
! Legacy
 +
|-
 +
| [[GNOME/Files|Files]]
 +
| Nautilus
 +
|-
 +
| [[GNOME/Web|Web]]
 +
| Epiphany
 +
|-
 +
| Videos
 +
| Totem
 +
|-
 +
| Main Menu
 +
| Alacarte
 +
|-
 +
| [[GNOME/Document viewer|Document Viewer]]
 +
| Evince
 +
|-
 +
| Disk Usage Analyzer
 +
| Baobab
 +
|-
 +
| Image Viewer
 +
| EoG (Eye of GNOME)
 +
|-
 +
| [[GNOME/Keyring|Passwords and Keys]]
 +
| Seahorse
 +
|-
 +
| GNOME Translation Editor
 +
| Gtranslator
 +
|}
 +
 
 +
== Configuration ==
 +
 
 +
The GNOME System Settings panel (''gnome-control-center'') and GNOME applications use the [[wikipedia:Dconf|dconf]] configuration system to store their settings.
 +
 
 +
You can directly access the dconf database using the {{ic|gsettings}} or {{ic|dconf}} command line tools. This also allows you to configure settings not exposed by the user interfaces.
 +
 
 +
Up until GNOME 3.24 settings were applied by the GNOME settings daemon (located at {{ic|/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 {{ic|/usr/lib/gnome-settings-daemon/gsd-*}} which were later moved to {{ic|/usr/lib/gsd-*}}. These plugins are now controlled via desktop files under {{ic|/etc/xdg/autostart}} (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 {{ic|~/.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 {{ic|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 {{ic|~/.local/share/icc/}} and directed to.
 +
 
 +
==== Night Light ====
  
If you prefer to start it from the console, add the following line to your {{Filename|~/.xinitrc}} file, making sure it's the last line and the only one that starts with ''exec'' (see [[xinitrc]]):
+
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 {{pkg|dconf}} setting, where 5000 is an example value:  
exec ck-launch-session gnome-session
 
  
Now GNOME will start when you enter the following command:
+
  $ gsettings set org.gnome.settings-daemon.plugins.color night-light-temperature 5000
  $ startx
 
  
== Using the shell ==
+
{{Tip|To change the daytime temperature in a Wayland session install [https://extensions.gnome.org/extension/1276/night-light-slider/ this extension].}}
  
See https://live.gnome.org/GnomeShell/CheatSheet
+
==== Date & time ====
  
== Customization ==
+
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.
=== Using Gnome-tweak-tool ===
 
  
# pacman -S gnome-tweak-tool
+
To show the date in the top bar, execute:
  
This tool can customize fonts, themes, minimize & maximize buttons and some other useful settings like what action is taken when the lid is closed.
+
$ gsettings set org.gnome.desktop.interface clock-show-date true
  
A good customization tutorial is http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html which explores the power of gsettings.
+
Additionally, to show week numbers in the calendar opened on the top bar, execute:
  
Version 3.0.3 only works if gnome-shell is installed (OK if forced to fallback mode), bug: https://bugzilla.gnome.org/show_bug.cgi?id=647132
+
$ gsettings set org.gnome.desktop.calendar show-weekdate true
  
===GDM Customization===
+
==== Default applications ====
  
# su - gdm -s /bin/bash
+
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: ''Details'' > ''Default applications''.
$ dbus-launch
+
 
 +
For other protocols and methods see [[Default applications]] for configuration.
  
This command will print DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. We need to export them
+
==== Mouse and touchpad ====
  
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38
+
Most touchpad settings can be set from system settings via: ''Devices'' > ''Mouse & Touchpad''.
$ export DBUS_SESSION_BUS_PID=4283
 
  
Check to see if dconf-service is running and if not, start it like this
+
Depending on your device, other configuration settings may be available, but not exposed via the default GUI. For example, a different touchpad {{ic|click-method}}
  
$ /usr/lib/dconf/dconf-service &
+
{{hc|$ gsettings range org.gnome.desktop.peripherals.touchpad click-method|
 +
enum
 +
'default'
 +
'none'
 +
'areas'
 +
'fingers'}}
  
====Wallpaper====
+
to be set manually:  
$ 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"
 
  
You will need to point to a file where the gdm user has permission to read, not in your home directory.
+
$ gsettings set org.gnome.desktop.peripherals.touchpad click-method 'fingers'
  
====Turning off the sound====
+
or via {{pkg|gnome-tweaks}}.  
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.sound event-sounds false
 
  
====Change GDM's keyboard layout====
+
{{Note|1=The [[synaptics]] driver is not supported by GNOME. Instead, you should use [[libinput]]. See [https://bugzilla.gnome.org/show_bug.cgi?id=764257#c12 this bug report].}}
Since GDM 3 does not care about your gnome keyboard settings, you have to set your layout to Xorg config.
 
See here: [https://wiki.archlinux.org/index.php/Beginners'_Guide#Non-US_keyboard Beginners'_Guide#Non-US_keyboard]
 
  
=== Changing the GTK3 theme using settings.ini ===
+
==== Network ====
  
Similar to {{Filename|~/.gtkrc-2.0}} for GTK2+ it is possible to set the GTK3 (Gnome 3) theme via {{Filename|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}. By default {{Filename|${XDG_CONFIG_HOME} }} is interpreted as {{Filename|~/.config}}.
+
[[NetworkManager]] is the native tool of the GNOME project to control network settings from the shell. [[Install]] the {{pkg|networkmanager}} package and [[enable]] the {{ic|NetworkManager.service}} systemd unit.
  
Adwaita, the default gnome3 theme is available in '''gnome-themes-standard''' package.
+
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 {{Pkg|network-manager-applet}} (not required for GNOME).
A few third-party themes for gtk3 exist now. Check them out at http://browse.deviantart.com/customization/skins/linuxutil/desktopenv/gnome/gtk3/
 
  
Example:
+
{{Note|1=Hidden wireless networks set up with {{Pkg|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.}}
  
  [Settings]
+
==== Online accounts ====
  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 may be necessary to restart one's DE or WM for the settings to be applied.
+
Backends for the GNOME messaging application {{Pkg|empathy}} as well as the GNOME Online Accounts section of the System Settings panel are provided in a separate group: {{Grp|telepathy}}. See [[GNOME/Troubleshooting#Unable to add accounts in Empathy and GNOME Online Accounts|Unable to add accounts in Empathy and GNOME Online Accounts]]. Some online accounts, such as [[ownCloud]], require {{Pkg|gvfs-goa}} to be installed for full functionality in GNOME applications such as [[GNOME Files]] and GNOME Documents [https://wiki.gnome.org/ThreePointSeven/Features/Owncloud].
  
{{Note|More options can be find there: [http://developer.gnome.org/gtk3/3.0/GtkSettings.html#GtkSettings.properties GtkSettings documentation]}}
+
==== Search ====
  
=== Hide Titlebar when Maximized ===
+
The GNOME shell has a search that can be quickly accessed by pressing the {{ic|Super}} key and starting to type. The {{Pkg|tracker}} package is installed by default as a part of {{Grp|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 {{ic|tracker-control -s}}.  Search settings can also be configured in the ''System Settings'' panel.
#  sed -i "s|<frame_geometry name=\"max\" |<frame_geometry name=\"max\" has_title=\"false\" |" /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml
 
  
Hit {{Keypress|Alt}} + {{Keypress|F2}} and type ''restart'' (or just ''r'') followed by {{Keypress|Enter}} to reload.
+
The Tracker database can be queried using the ''tracker-sparql'' command. View its manual page {{man|1|tracker-sparql}} for more information.
  
To prevent this file from being overwritten each time the package "gnome-themes-standard" is upgraded, add it to {{Filename|/etc/pacman.conf}} with the <tt>NoUpgrade</tt> option:
+
=== Advanced settings ===
  
{{File|name=/etc/pacman.conf|content=...
+
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 Tweaks ({{Pkg|gnome-tweaks}}), a convenient graphical tool which exposes many of these settings. 
NoUpgrade = usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml    # Do not add the leading slash (root directory) to the path
 
...}}
 
  
To restore the original values:
+
GNOME settings (which are stored in the DConf database) can also be configured using the [https://developer.gnome.org/dconf/unstable/dconf-editor.html ''dconf-editor''] (a graphical DConf configuration tool) or the [https://developer.gnome.org/gio/stable/GSettings.html ''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.
# pacman -S gnome-themes-standard
 
  
=== Resizing the Massive Titlebar ===
+
==== Appearance ====
# sed -i "/title_vertical_pad/s/value=\"[0-9]\{1,2\}\"/value=\"0\"/g" /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml
 
  
Hit {{Keypress|Alt}} + {{Keypress|F2}} and type ''restart'' followed by {{Keypress|Enter}} 
+
===== Themes =====
  
This will change the title_vertical_pad from 14 to 0 giving a much sleeker look to windows.
+
GNOME uses Adwaita by default. To apply Adwaita dark only to GTK+2 applications use the following symlink:
  
To restore the original values:
+
  $ ln -s /usr/share/themes/Adwaita-dark ~/.themes/Adwaita
  sudo pacman -S gnome-themes-standard
 
  
===Setting an icon theme===
+
To select new themes (move them to the appropriate directory and) use GNOME Tweaks or the GSettings commands below:
  
{{Note | With gnome-tweak-tool version 3.0.3 and later, you can place icon theme you wish to use inside ~/.icons.}}
+
For the GTK+ theme:
  
Usefully, Gnome 3 is able to use Gnome 2 icon themes, which means you're not stuck with the default set. To do this, simply copy your desired icon theme's directory to ~/.icons. For example:
+
$ gsettings set org.gnome.desktop.interface gtk-theme ''theme-name''
  
$ cp -R /home/user/Desktop/my_new_icon_theme ~/.icons
+
For the icon theme:
  
The new icon theme 'my_new_icon_theme' will now be selectable using the gnome-tweak-tool (under 'Interface'), otherwise it can be set with no need of gnome-tweak-tool by adding the gtk-icon-theme-name entry inside ${XDG_CONFIG_HOME}/gtk-3.0/settings.ini.
+
$ gsettings set org.gnome.desktop.interface icon-theme ''theme-name''
{{file|name=${XDG_CONFIG_HOME}/gtk-3.0/settings.ini|content=
+
 
.....
+
{{Note|The window manager theme follows the GTK+ theme. Using {{ic|org.gnome.desktop.wm.preferences theme}} is deprecated and ignored.}}
gtk-icon-theme-name = my_new_icon_theme
+
 
.....
+
See [[GTK+#Themes]] and [[Icons#Manually]].
}}
 
  
=== Start program automatically after login to GNOME 3 ===
+
===== Titlebar height =====
You can specify which programs to start automatically after login using the '''gnome-session-properties''' tool, which is a part of the '''gnome-session''' package.
 
$ gnome-session-properties
 
  
=== Removing folders from the "Computer" section in Nautilus's Places sidebar ===
+
{{Note|Applying this configuration shrinks the titlebar of the GNOME-terminal and Chromium, but does not appear to affect the Nautilus titlebar height.}}
  
The displayed folders are specified in {{Filename|~/.config/user-dirs.dirs}} and can be altered with any editor. An execution of {{codeline|xdg-user-dirs-update}} will change them again, thus it may be advisable to set the file permissions to read-only.
+
{{hc|~/.config/gtk-3.0/gtk.css|
 +
headerbar.default-decoration {
 +
padding-top: 0px;
 +
padding-bottom: 0px;
 +
min-height: 0px;
 +
font-size: 0.6em;
 +
}
  
=== Setting the default terminal via console ===
+
headerbar.default-decoration button.titlebutton {
 +
padding: 0px;
 +
min-height: 0px;
 +
}
 +
}}
  
{{codeline|gsettings}}, which replaces {{codeline|gconftool-2}} in Gnome 3, is used to set e. g. the default terminal manually. The setting is relevant for ''nautilus-open-terminal''.
+
See [https://ask.fedoraproject.org/en/question/10035/shrink-title-bar/?answer=86149#post-id-86149] for more information.
The commands for [[rxvt-unicode|urxvt]] run as daemon:
 
  
gsettings set org.gnome.desktop.default-applications.terminal exec urxvtc
+
===== Titlebar button order =====
gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'-e'"
 
{{Note|For ''nautilus-open-terminal'', you may need a flag (e.g. {{Codeline|-e}}) to indicate that a command will follow: ''nautilus-open-terminal'' passes a {{Codeline|cd}} command in order to change directories to the appropriate location.}}
 
  
=== Setting Nautilus to Use Location Bar Entry ===
+
To set the order for the GNOME window manager (Mutter, Metacity):
  
If you want to enter path locations manually in Nautilus you can press '''Ctrl+L'''. To make this persistent you can use gsettings.
+
$ gsettings set org.gnome.desktop.wm.preferences button-layout ':minimize,maximize,close'
  
gsettings set org.gnome.nautilus.preferences always-use-location-entry true
+
{{Tip|The colon indicates which side of the titlebar the window buttons will appear.}}
  
=== Disable accessibility icon in panel ===
+
===== Hide titlebar when maximized =====
First deactivate it as startup-service: [[GNOME_3#Start_program_automatically_after_login_to_GNOME_3]]
 
  
After that create a folder named '''noa11y.icon@panel.ui''' in '''$HOME/.local/share/gnome-shell/extensions'''. In this folder create two files. The first one is named '''extension.js''' and has this content:
+
* [[Install]] {{AUR|gnome-shell-extension-no-title-bar-git}} or {{AUR|gnome-shell-extension-no-title-bar}}. Maximized windows get the title bar merged into the activity bar.
const Panel = imports.ui.panel;
+
* [[Install]] {{AUR|mutter-hide-legacy-decorations}}. It changes a default setting in the window manager, so as to automatically hide the titlebar on legacy (non-headerbar) apps when they are maximized or tiled to the side.
+
* [[Install]] {{AUR|gnome-shell-extension-pixel-saver-git}} or {{AUR|gnome-shell-extension-pixel-saver}}. Maximized windows get the title bar merged into the activity bar, saving precious pixels.
function main() {
 
Panel.STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['a11y'] = ''''''';
 
}
 
The second one is named '''metadata.json''' and has this content:
 
{
 
"shell-version": ["3.0"],
 
"uuid": "noa11y.icon@panel.ui",
 
"name": "na11y",
 
"description": "Turn off the ally icon in the panel"
 
}
 
Now restart the gnome-shell (press '''ALT+F2''', type '''r''' and press '''Enter''') and the icon is away. If this extensions stops working adjust the shell-version number in the metadata-file according to your version.
 
  
If the above method doesn't work, you can try disabling the accessibility icon system wide. Edit the file '''/usr/share/gnome-shell/js/ui/panel.js''', find this line:
+
===== GNOME Shell themes =====
'a11y': imports.ui.status.accessibility.ATIndicator,
 
and comment it out e.g.:
 
/* 'a11y': imports.ui.status.accessibility.ATIndicator, */
 
Afterwards restart the shell.
 
  
=== Disable bluetooth icon in panel ===
+
The theme of GNOME Shell itself is configurable. To use a Shell theme, firstly ensure that you have the {{Pkg|gnome-shell-extensions}} package installed. Then enable the ''User Themes'' extension, either through GNOME Tweaks or through the [https://extensions.gnome.org GNOME Shell Extensions] webpage. Shell themes can then be loaded and selected using the GNOME Tweaks.
First deactivate it as startup-service: [[GNOME_3#Start_program_automatically_after_login_to_GNOME_3]]
 
  
After that create a folder named '''nobluetooth.icon@panel.ui''' in '''$HOME/.local/share/gnome-shell/extensions'''. In this folder create two files. The first one is named '''extension.js''' and has this content:
+
There are a number of GNOME Shell themes available [https://aur.archlinux.org/packages.php?O=0&K=gnome-shell-theme&do_Search=Go&PP=50&SB=v&SO=d in the AUR]. Shell themes can also be downloaded from [http://gnome-look.org/ gnome-look.org].
const Panel = imports.ui.panel;
 
 
function main() {
 
Panel.STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['bluetooth'] = ''''''';
 
}
 
The second one is named '''metadata.json''' and has this content:
 
{
 
"shell-version": ["3.0"],
 
"uuid": "nobluetooth.icon@panel.ui",
 
"name": "nbluetooth",
 
"description": "Turn off the bluetooth icon in the panel"
 
}
 
Now restart the gnome-shell (press '''ALT+F2''', type '''r''' and press '''Enter''') and the icon is away. If this extensions stops working adjust the shell-version number in the metadata-file according to your version.
 
  
=== Disable suspend capability in the status menu ===
+
===== Icons on menu =====
A quick way to do it for all the users is to change the line 153 of  "/usr/share/gnome-shell/js/ui/statusMenu.js" from :
 
this._haveSuspend = this._upClient.get_can_suspend();
 
to
 
this._haveSuspend = false;
 
  
=== Middle Mouse Button Emulation ===
+
The default GNOME schema doesn't display any icon on menus. To display icons on menus, issue the following command.
  
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.plugins.xsettings overrides "{'Gtk/ButtonImages': <1>, 'Gtk/MenuImages': <1>}"
  
gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true
+
==== Apps grid folders ====
  
=== Battery icon ===
+
{{Tip|The [https://github.com/prurigro/gnome-catgen gnome-catgen] ({{AUR|gnome-catgen-git}}) script allows you to manage folders through the creation of files in {{ic|~/.local/share/applications-categories}} named after each category and containing a list of the desktop files belonging to apps you would like to have inside. Optionally, you can have it cycle through each app without a folder and input the desired category until you {{ic|Ctrl-c}} or run out of apps.}}
To have battery tray icon, install gnome-power-manager package:
 
# pacman -S gnome-power-manager
 
  
=== Xmonad ===
+
In the '''dconf-editor''' navigate to {{ic|org.gnome.desktop.app-folders}} and set the value of {{ic|folder-children}} to an array of comma separated folder names:
  
Upgrading to Gnome 3 will (most-likely) break your xmonad setup. You can use xmonad again by forcing fallback mode (see below) and creating the following two files:
+
['Utilities', 'Sundry']
  
{{file|name=/usr/share/gnome-session/sessions/xmonad.session|content=
+
Add applications using {{ic|gsettings}}:
[GNOME Session]
 
Name=Xmonad session
 
RequiredComponents=gnome-panel;gnome-settings-daemon;
 
RequiredProviders=windowmanager;notifications;
 
DefaultProvider-windowmanager=xmonad
 
DefaultProvider-notifications=notification-daemon
 
}}
 
  
{{file|name=/usr/share/xsessions/xmonad-gnome-session.desktop|content=
+
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ apps "['alacarte.desktop', 'dconf-editor.desktop']"
[Desktop Entry]
 
Name=Xmonad GNOME
 
Comment=Tiling window manager
 
TryExec=/usr/bin/gnome-session
 
Exec=gnome-session --session=xmonad
 
Type=XSession
 
}}
 
  
The next time you log in, you'll have the ability to choose ''Xmonad GNOME'' as your session.
+
This adds the applications {{ic|alacarte.desktop}} and {{ic|dconf-editor.desktop}} to the Sundry folder.  This will also create the folder {{ic|org.gnome.desktop.app-folders.folders.Sundry}}.
  
== Enabling fallback mode==
+
To name the folder (if it has no name that appears at the top of the applications):
  
Your session will automatically start in fallback mode if gnome-shell is not present or if your desktop cannot handle graphics acceleration (such as running in a Virtual Machine or on old hardware). If you want to enable it while having gnome-shell installed, open gnome-control-center. Open System Info > Graphics. Change ''Forced Fallback Mode'' to ''ON''.
+
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ name "Sundry"
  
You can also use gsettings to set the session manually from a terminal using the next command:
+
Applications can also be sorted by their category (specified in their ''.desktop'' file):
  
<pre>$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.session session-name gnome-fallback</pre>
+
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ categories "['Office']"
  
== Enabling hidden features ==
+
If certain applications matching a category are not wanted in a certain folder, exclusions can be set:
  
Gnome 3.0 hides a lot of useful options which you can customize with '''dconf-editor''' or '''gconf-editor''' for settings not yet migrated to dconf.
+
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ excluded-apps "['libreoffice-draw.desktop']"
  
=== Changing Hotkeys ===
+
For more information, see [https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/blob/master/schemas/org.gnome.desktop.app-folders.gschema.xml.in] and [https://wiki.gentoo.org/wiki/Gnome_Applications_Folders].
  
In '''dconf-editor''', enable org.gnome.desktop.interface "can-change-accels".
+
==== Autostart ====
  
An example of changing the delete hotkey:
+
GNOME implements [[XDG Autostart]].
Open nautilus, select any file/directory, then click "Edit" from the menubar, and hover over the "Move to Trash" menuitem.
 
While hovering, push '''delete''', and default accel will be unset. Now push the key that you want to set as accel.
 
i.e. Pushing again '''delete''', will make the accel change to "del".
 
  
Make sure you have selected a file, else the "Move to Trash" menuitem will be greyed out.
+
The {{Pkg|gnome-tweaks}} allows managing autostart-entries.
You should disable "can-change-accels" afterwards, to prevent accidental accel changes.
 
  
== How to shutdown through the Status menu ==
+
{{Tip|If the plus sign button in the Tweaks's Startup Applications section is unresponsive, try start the Tweaks from the terminal using the following command: {{ic|gnome-tweaks}}. See the following [https://bbs.archlinux.org/viewtopic.php?pid&#61;1413631#p1413631 forum thread].}}
  
For now, the Shutdown option seems to be hidden if the user presses the Status menu on the upper right. If you want to shutdown your system through the Status menu, click on it and then press the '''Alt''' button. The "'''Suspend'''" option will instantly turn into "Power off...", as long as you are pressing the Alt button, which will allow you to properly shutdown your system.
+
{{Note|The deprecated ''gnome-session-properties'' dialog can be added by [[install]]ing the {{AUR|gnome-session-properties}} package.}}
  
You can also install the "Alternative Status Menu" extension (see the section on Enabling Extensions, below). This will put a permanent "Power Off" option in the Status menu below the usual suspend option.
+
==== Desktop ====
  
== Enabling integrated messaging ==
+
===== Icons on the Desktop =====
  
Empathy, the engine behind the integrated messaging, and all of the system settings based on your 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 are not included in the default Arch GNOME installs and the Empathy interface doesn't give a nice error message, it just fails to work silently. You can install them:
+
Up until GNOME 3.28, icons on the desktop were provided by [[GNOME/Files|Files]] which would draw a transparent window over the desktop containing the icons. As of GNOME 3.28 this functionality has been removed and desktop icons are no longer available in GNOME. Possible workarounds include using [[Nemo]] (a fork of Files which still has desktop icons functionality) or installing {{AUR|gnome-shell-extension-desktop-icons}}, which replicates the desktop icon functionality available in GNOME 3.26 and prior, but with some minor differences. For more information, please see the following [https://bbs.archlinux.org/viewtopic.php?id=235633 Arch forum thread].
  
# pacman -S telepathy
+
===== Lock screen and background =====
  
You may view a description of the various telepathy components on the [http://telepathy.freedesktop.org/wiki/Components Telepathy Wiki].
+
When setting the Desktop or Lock screen background, it is important to note that the Pictures tab will only display pictures located in {{ic|/home/''username''/Pictures}} folder. If you wish to use a picture not located in this folder, use the commands indicated below.
  
== Enabling extensions ==
+
For the desktop background:
  
Gnome Shell can be customised to an extent with extensions that have been written by others. These provide functionality like having a dock that is always present, and being able to change the shell theme. More details on the functionality of currently available extensions is given [http://www.webupd8.org/2011/04/gnome-shell-extensions-additional.html here] You can use the [http://aur.archlinux.org/packages.php?ID=47501 gnome-shell-extensions-git] package in the AUR to install them or [http://www.archlinux.org/packages/?sort=&q=gnome-shell-extension&maintainer=&last_update=&flagged=&limit=50 install them individually using the [extra] extensions' snapshots] . Restart Gnome to enable them.
+
$ gsettings set org.gnome.desktop.background picture-uri 'file:///path/to/my/picture.jpg'
  
If installing the extensions causes Gnome to stop working then you must remove the user-theme extension and and the auto-move-windows extension from their installation directory (could be in ~/.local/share/gnome-shell/extensions or /usr/share/gnome-shell/extensions or /usr/local/share/gnome-shell/extensions). Removing or adding extensions to these directories will remove or install them form the system. More details on Gnome Shell extensions are available [https://live.gnome.org/GnomeShell/Extensions here].
+
For the lock screen background:
  
== Troubleshooting ==
+
$ gsettings set org.gnome.desktop.screensaver picture-uri 'file:///path/to/my/picture.jpg'
  
=== Gnome does take very long (~ 1 minute) to login ===
+
===== Disable top left hot corner =====
Check if you enabled PulseAudio Network settings in paprefs - If there are any network audio settings enabled, Gnome will hang about a minute after login.
 
Another solution is to try a new useraccount or to move $HOME/.gconf $HOME/.gconfd $HOME/.conf/dconf to a backup folder. Try again to login to see if the delay is gone. If it is gone, you have to look what setting causes that delay.
 
  
=== My extensions don't work anymore after a Gnome 3 update ===
+
You can disable the top left hot corner with the {{AUR|gnome-shell-extension-no-topleft-hot-corner}} package.
Go to '''$HOME/.local/share/gnome-shell/extensions''' or '''/usr/share/gnome-shell/extensions''' (depends on where you have installed your extensions) and open '''metadata.json''' in every subfolder.
 
Insert
 
  "shell-version": ["3.0"]
 
instead of (for example)
 
  "shell-version": ["3.0.1"]
 
you also could insert
 
  "shell-version": ["3.0.0", "3.0.1", "3.0.2"]
 
  
but in my opinion '''"shell-version": ["3.0"]''' is the best solution, because this means that a extension works for every 3.0.x gnome-shell version, without changing it every time.
+
==== Extensions ====
  
=== My screen isn't locked after resume from suspend/hibernate ===
+
The catalogue of extensions is available at [https://extensions.gnome.org extensions.gnome.org]. They can be installed and activated in a browser by setting the switch in the top left 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/ extensions.gnome.org/local], where available updates can be checked. Installed extensions can also be enabled or disabled with {{Pkg|gnome-tweaks}}.
  
Screen lock does only work when you suspend through gnome status menu. If you suspend or hibernate with powerbutton/etc. you screen is not locked after resume. This problem occours because of an config failure in dconf, so just open dconf-editor and change lock-use screensaver to false (unchecked) in org/gnome/power-manager. Your screen will now be locked after resume, regardless whether you used gnome status menu or power button or key combination.
+
{{Note|Extensions from [https://extensions.gnome.org extensions.gnome.org] can be installed right away with {{Pkg|gnome-software}}. For other browsers, it is required to install {{pkg|chrome-gnome-shell}} and the appropriate browser extension.}}
For more information see bugreport: [https://bugzilla.redhat.com/show_bug.cgi?id=698135#c8 Screen gets no more locked after suspend#Comment 8]
 
  
=== My GTK2+ apps show segfaults and won't start ===
+
GNOME Shell can be customized with extensions per user or system-wide. Installing extensions with [[pacman]] makes them available for all users of the system and automates the update process. The {{Pkg|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 {{Pkg|gnome-shell-extensions}} package).
  
That usually happens when '''oxygen-gtk''' is installed. That theme conflicts somehow with GNOME 3's or/and GTK3 settings and when it has been set as a GTK2 theme, the GTK2 apps segfault with errors like:
+
To list currently enabled extensions:
  
<pre> (firefox-bin:14345): GLib-GObject-WARNING **: invalid (NULL) pointer instance
+
$ gsettings get org.gnome.shell enabled-extensions
  
(firefox-bin:14345): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
+
For more information about GNOME shell extensions, see [https://extensions.gnome.org/about/].
  
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed
+
==== Fonts ====
  
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed
+
{{Tip|If you set the ''Scaling factor'' to a value above 1.00, the Accessibility menu will be automatically enabled.}}
  
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed
+
Fonts can be set for Window titles, Interface (applications), Documents and Monospace. See the Fonts tab in the Tweaks for the relevant options.
  
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed
+
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''.
  
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed
+
==== Input methods ====
  
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed
+
GNOME has integrated support for [[input method]]s through [[IBus]], only {{Pkg|ibus}} and the wanted input method engine (e.g. {{Pkg|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.
Segmentation fault
 
</pre>
 
  
The current "workaround" is to '''remove''' '''oxygen-gtk''' from the system completely and set another theme for your apps.
+
==== Power ====
  
=== I use the ATI Catalyst driver and I encounter glitches and artifacts while using GNOME Shell ===
+
When you are using a laptop you might want to alter the following settings:
  
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.
+
$ 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''
  
=== I have multiple monitors and the Dock extension appears stuck between them ===
+
To keep the monitor active when the lid is closed:
  
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.
+
$ gsettings set org.gnome.settings-daemon.plugins.xrandr default-monitors-setup do-nothing
  
Edit '''/usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js''' and locate this line in the source:
+
GNOME 3.24 deprecated the following settings:
  
  this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);
+
  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
  
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.
+
===== Don't suspend, when laptop lid is closed =====
  
this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);
+
The settings panel of GNOME doesn't provide an option for the user, to change the action, when laptop lid is closed. However {{Pkg|gnome-tweaks}} can override the setting applied by {{Pkg|systemd}}, on the tab ''General'' turn off the switch ''Suspend when laptop lid is closed''. The system will therefore not ''Suspend to RAM (S3)'' on lid close.
  
=== There are no event sounds for Empathy and other programs ===
+
To change the lid switch action system-wide, ensure that the setting described above is '''not turned off''' and edit the systemd settings in {{ic|/etc/systemd/logind.conf}}. To turn off suspend on lid close, set {{ic|1=HandleLidSwitch=ignore}}, as described in [[Power management#ACPI events]].
If you're using [[OSS]], you may want to install '''libcanberra-oss''' [https://aur.archlinux.org/packages.php?ID=31163 from AUR].
 
  
=== Editing hotkeys via can-change-accels fails ===
+
===== Change critical battery level action =====
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 {{Filename|~/.config/Thunar/accels.scm}}, whereas Nautilus's is located at {{Filename|~/.gnome2/accels/nautilus}}. 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.
 
  
=== [fallback mode] Panels and applets don't respond to right click to remove, etc, as in GNOME 2 ===
+
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 {{ic|/etc/UPower/UPower.conf}}. Find these settings and adjust to your needs.
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: ALT+STRG+D does not work ===
+
{{hc|head=/etc/UPower/UPower.conf|output=
The 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:
+
PercentageLow=10
System Settings --> Keyboard --> Shortcuts --> Windows --> Hide all normal windows
+
PercentageCritical=3
 +
PercentageAction=2
 +
CriticalPowerAction=HybridSleep
 +
}}
  
=== Starting Nautilus does not work ===
+
=== Use a different window manager ===
Start gnome-tweak-tool -> File Manager -> Have file manager handle the desktop -> Off
 
  
=== Epiphany does not play flash videos ===
+
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 [[GNOME/Tips and tricks#Custom GNOME sessions|custom GNOME sessions]] which use alternative components.
Epiphany now uses gtk3, but Adobe's Flash Player still relies on gtk2. See [[Epiphany#Flash]] for a workaround involving nspluginwrapper.  
 
  
=== Could not apply the stored configuration for monitors ===
+
== See also ==
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==
+
* [https://www.gnome.org/ Official Website]
* [http://www.gnome.org/ The Official Website]
+
* [[Wikipedia:GNOME|Wikipedia article]]
* Themes, icons, and backgrounds:
+
* [https://extensions.gnome.org/ GNOME-Shell Extensions]
** [http://art.gnome.org/ Gnome Art]
+
* [https://wiki.gnome.org/Projects/GnomeShell/CheatSheet GNOME Shell Cheat Sheet]
** [http://www.gnome-look.org/ Gnome Look]
+
* Customization (themes, icons...):
* GTK/GNOME programs:
+
** [https://wiki.gnome.org/Personalization Personalize GNOME]
** [http://www.gnomefiles.org/ Gnome Files]
+
** [https://www.gnome-look.org/ GNOME Look]
** [http://www.gnome.org/projects/ Gnome Project Listing]
+
* GNOME applications:
 +
** [https://wiki.gnome.org/Apps GNOME Apps Index]
 +
** [[Wikipedia:GNOME Core Applications]]
 +
* GNOME Source/Mirrors:
 +
** [https://gitlab.gnome.org/ GNOME GitLab]
 +
** [https://github.com/GNOME GNOME Github Mirror]

Latest revision as of 22:03, 17 July 2019

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. GNOME is a part of the GNU Project. The default display is Wayland instead of Xorg.

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.

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.

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.

Starting

GNOME can be started either graphically with a display manager or manually from the console (some features may be missing).

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

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

Manually

Xorg sessions

  • For the GNOME on Xorg session, add to the ~/.xinitrc file (see here for details):
    export GDK_BACKEND=x11
    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, e.g. on tty2 by adding to .bash_profile:

if [[ -z $DISPLAY && $(tty) == /dev/tty2; ]]; then
  GDK_BACKEND=x11 exec startx
fi

Wayland sessions

Note:
  • An X server—provided by the xorg-server-xwayland package—is still necessary to run applications that have not yet been ported to Wayland.
  • Wayland with the proprietary NVIDIA driver currently suffers from very poor performance: FS#53284.

Manually starting a Wayland session is possible with QT_QPA_PLATFORM=wayland XDG_SESSION_TYPE=wayland dbus-run-session gnome-session. QT_QPA_PLATFORM makes Qt applications like VLC, calibre, or SMPlayer use Wayland. In addition to the QT_QPA_PLATFORM variable, you must also install the qt5-wayland package. To add support for other graphics libraries, see Wayland#GUI_libraries.

To start on login to tty1, add the following to your .bash_profile:

if [[ -z $DISPLAY && $(tty) == /dev/tty1 && $XDG_SESSION_TYPE == tty ]]; then
  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, the GTK+ manual lists 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 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).
Tip: To make Alt+Tab switch applications only in current workspace, you can set current-workspace-only to true:
$ gsettings set org.gnome.shell.app-switcher current-workspace-only true

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 Analyzer Baobab
Image Viewer EoG (Eye of GNOME)
Passwords and Keys Seahorse
GNOME Translation Editor Gtranslator

Configuration

The GNOME System Settings panel (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 or dconf command line tools. This also allows you to configure settings not exposed by the user interfaces.

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 (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 this extension.

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

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: Details > 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: Devices > 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.

Network

NetworkManager is the native tool of the GNOME project to control network settings from the shell. Install the networkmanager package and enable the NetworkManager.service systemd unit.

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).

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

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].

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 tracker-sparql(1) for more information.

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 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.

Appearance

Themes

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
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#Manually.

Titlebar height
Note: Applying this configuration shrinks the titlebar of the GNOME-terminal and Chromium, 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: 0px;
 font-size: 0.6em;
}

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

See [3] for more information.

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.
Hide titlebar when maximized
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 Tweaks or through the GNOME Shell Extensions webpage. Shell themes can then be loaded and selected using the GNOME Tweaks.

There are a number of GNOME Shell themes available in the AUR. Shell themes can also be downloaded from gnome-look.org.

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>}"

Apps grid folders

Tip: The gnome-catgen (gnome-catgen-gitAUR) script allows you to manage folders through the creation of files in ~/.local/share/applications-categories named after each category and containing a list of the desktop files belonging to apps you would like to have inside. Optionally, you can have it cycle through each app without a folder and input the desired category until you Ctrl-c or run out of apps.

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 more information, see [4] and [5].

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 start the Tweaks from the terminal using the following command: gnome-tweaks. See the following forum thread.
Note: The deprecated gnome-session-properties dialog can be added by installing the gnome-session-propertiesAUR package.

Desktop

Icons on the Desktop

Up until GNOME 3.28, icons on the desktop were provided by Files which would draw a transparent window over the desktop containing the icons. As of GNOME 3.28 this functionality has been removed and desktop icons are no longer available in GNOME. Possible workarounds include using Nemo (a fork of Files which still has desktop icons functionality) or installing gnome-shell-extension-desktop-iconsAUR, which replicates the desktop icon functionality available in GNOME 3.26 and prior, but with some minor differences. For more information, please see the following Arch forum thread.

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'
Disable top left hot corner

You can disable the top left hot corner with the gnome-shell-extension-no-topleft-hot-cornerAUR package.

Extensions

The catalogue of extensions is available at extensions.gnome.org. They can be installed and activated in a browser by setting the switch in the top left 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 extensions.gnome.org/local, where available updates can be checked. Installed extensions can also be enabled or disabled with gnome-tweaks.

Note: Extensions from extensions.gnome.org can be installed right away with gnome-software. For other browsers, it is required to install chrome-gnome-shell and the appropriate browser extension.

GNOME Shell can be customized with extensions per user or system-wide. Installing extensions with pacman 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).

To list currently enabled extensions:

$ gsettings get org.gnome.shell enabled-extensions

For more information about GNOME shell extensions, see [6].

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 in GNOME's Regional & Language Settings.

Power

When you are using a laptop you might want to alter the following settings:

$ 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
Don't suspend, when laptop lid is closed

The settings panel of GNOME doesn't provide an option for the user, to change the action, when laptop lid is closed. However gnome-tweaks can override the setting applied by systemd, on the tab General turn off the switch Suspend when laptop lid is closed. The system will therefore 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.

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

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.

See also