Difference between revisions of "GNOME"

From ArchWiki
Jump to navigation Jump to search
(Troubleshooting: I deleted it again, this fixes only a problem in bluez itself, it segfault son some bt devices after turning bt on in gnome, restarting bluetoothd afterwards works. Thi should be solved in next bluez...)
(exec to really log out after ending gnome session)
 
Line 1: Line 1:
{{i18n|GNOME 3|GNOME}}
+
[[Category:GNOME]]
 +
[[cs:GNOME]]
 +
[[de:GNOME]]
 +
[[es:GNOME]]
 
[[fr:GNOME]]
 
[[fr:GNOME]]
[[de:GNOME]]
+
[[it:GNOME]]
 +
[[ja:GNOME]]
 
[[pl: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}}
 
  
The GNOME Project started from scratch and created a completely new desktop called GNOME 3. It has:
+
Two groups are available:
  
* A modern visual theme and font
+
* {{Grp|gnome}} contains the base GNOME desktop and a subset of well-integrated [https://wiki.gnome.org/Apps applications];
* An activities view providing access to all windows and 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.
* A subtle notifications system and a discrete top panel
 
* Integration with an improved Nautilus file manager
 
* Integrated desktop services for messaging
 
* A new system settings application
 
* An activities search feature
 
* Features such as snap-like window tiling
 
  
Additional explanations are found on the [http://www.gnome3.org/ official GNOME3 website.]
+
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}}.
  
== Introduction ==
+
{{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 3 has ''two'' interfaces: '''GNOME Shell,''' the new standard layout; and '''fallback mode.'''  Gnome-session automatically detects when your computer is incapable of running Gnome Shell and starts fallback mode when appropriate.
+
== GNOME Sessions ==
  
'''Fallback mode''' is similar to GNOME 2. (Fallback mode uses gnome-panel/Metacity instead of gnome-shell/Mutter.)
+
GNOME has three available sessions, all using GNOME Shell.
  
When you are on fallback mode you can still replace GNOME's default window manager with your preferred one.
+
* '''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.
  
== Upgrade from GNOME 2 ==
+
== Starting ==
  
{{Warning|Upgrading to GNOME 3 from a GNOME 2 session might cause a system crash.}}
+
GNOME can be started either graphically with a [[display manager]] or manually from the console (some features may be missing).
  
It is recommended that you run the update command from a TTY session or from another Desktop Environment / Window Manager.
+
{{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 -Syu
+
=== Graphically ===
  
After this update you have installed GNOME 3.x with ''fallback mode'' only. To install the new GNOME shell:
+
Select the session: ''GNOME'', ''GNOME Classic'', or ''GNOME on Xorg'' from the display manager's session menu.
 
# pacman -S gnome-shell
 
  
==Installation==
+
=== Manually ===
  
GNOME 3 is in the [extra] repository. The '''gnome''' group contains the core desktop environment and applications, and gnome-extra contains the rest. You likely don't want all of the packages installed, so consider reading the package descriptions before installing them (or just remove them later).
+
==== Xorg sessions ====
  
Example:
+
* 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>}}
  
  # pacman -Syu 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
  # pacman -S gnome-extra
+
{{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>
  
===D-Bus daemon===
+
==== Wayland sessions ====
The GNOME desktop requires the [[D-Bus]] daemon. Refer to the [[dbus]] article for setup instructions.
 
  
=== Running GNOME ===
+
{{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}}.
 +
}}
  
For the best desktop integration, login manager '''GDM''' is recommended. Other login managers (a.k.a. display managers) such as SLiM can be used in place of GDM. Check out the [[Display_Manager|wiki article on display managers]] to learn how desktop environments are started.
+
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]].  
  
The login manager is a limited process entrusted with duties that impact the system. The [[PolicyKit|PolicyKit wiki article]] addresses the topic of system‑wide access control.
+
To start on login to tty1, add the following to your {{ic|.bash_profile}}:
  
  # pacman -S gdm
+
  <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>
  
If you prefer to start GNOME manually from the console, add the following line to your '''{{Filename|~/.xinitrc}}''' file. Making sure it is the only line (remove the ''for'' block from the standard ~/.xinitrc, it can cause problems) and the only command starting with ''exec.'' See the [[xinitrc| xinitrc wiki article.]]
+
=== GNOME applications in Wayland ===
  
exec ck-launch-session gnome-session
+
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.
  
After the ''exec'' command is placed, GNOME is launched by typing '''startx'''.
+
== Navigation ==
  
== Using the shell ==
+
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:
  
=== GNOME cheat sheet ===
+
* {{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).
  
The GNOME web site has a helpful [https://live.gnome.org/GnomeShell/CheatSheet GNOME Shell cheat sheet] explaining task switching, keyboard use, window control, the panel, overview mode, and more.
+
{{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
 +
}}
  
=== Restarting the shell ===
+
== Legacy names ==
  
After appearance tweaks you are often asked to restart the GNOME shell. You could log out and log back in, but it is simpler and faster to issue the following keyboard command. Restart the shell by pressing {{Keypress|Alt}} + {{Keypress|F2}}  then  {{Keypress|r}}  then  {{Keypress|Enter}}
+
{{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.}}
  
=== Shell crashes ===
+
{{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''.}}
  
Certain tweaks and/or repeated shell restarts may cause the shell to crash when a restart is attempted. In this case, you are informed about the crash and then forced to log out. Some shell changes, such as switching between '''''GNOME Shell''''' and '''''fallback mode,''''' cannot be accomplished via a keyboard restart; you must log out and log back in to effect them.
+
{| class="wikitable"
 
+
! Current
It is common sense — but worth repeating — that valuable documents should be saved (and perhaps closed) before attempting a shell restart. It is not strictly necessary; open windows and documents usually remain intact after a shell restart.
+
! Legacy
 
+
|-
== Customizing GNOME appearance ==
+
| [[GNOME/Files|Files]]
 
+
| Nautilus
=== Overall appearance ===
+
|-
 
+
| [[GNOME/Web|Web]]
GNOME 3 may have "started from scratch", but like most large software projects it is assembled from parts dating to different eras. There is not '''one''' all-encompassing configuration tool. The new ''Systems Settings'' tool is a big improvement over previous control panels. ''System Settings'' is well-organized, but you may find yourself wishing for more control over system appearance.
+
| Epiphany
 
+
|-
You may be familiar with existing configuration tools: some of these still work; many will not. Some settings are not readily exposed for you to change. Indubitably, many settings will migrate to newer tools and/or become exposed as time progresses and the wider community embraces and extends the latest GNOME desktop.
+
| Videos
 
+
| Totem
==== Gsettings ====
+
|-
 
+
| Main Menu
A new command-line tool '''gsettings''' stores data in a binary format, unlike previous tools using XML text. A tutorial [http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html Customizing the GNOME Shell] explores the power of gsettings.
+
| Alacarte
 
+
|-
==== GNOME tweak tool ====
+
| [[GNOME/Document viewer|Document Viewer]]
 
+
| Evince
This graphical tool customizes fonts, themes, titlebar buttons and other settings.
+
|-
 
+
| Disk Usage Analyzer
# pacman -S gnome-tweak-tool
+
| Baobab
 +
|-
 +
| Image Viewer
 +
| EoG (Eye of GNOME)
 +
|-
 +
| [[GNOME/Keyring|Passwords and Keys]]
 +
| Seahorse
 +
|-
 +
| GNOME Translation Editor
 +
| Gtranslator
 +
|}
  
Version 3.0.3 only works when gnome-shell is installed (OK if forced to fallback mode). [https://bugzilla.gnome.org/show_bug.cgi?id=647132 Bugzilla bug report here.]
+
== Configuration ==
  
==== GTK3 theme via settings.ini ====
+
The GNOME System Settings panel (''gnome-control-center'') and GNOME applications use the [[wikipedia:Dconf|dconf]] configuration system to store their settings.
  
Like '''{{Filename|~/.gtkrc-2.0}}'''  with GTK2+, it is possible to set a GTK3 theme via  '''{{Filename|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}'''.
+
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.
  
Variable <tt>$XDG_CONFIG_HOME</tt> is usually set to '''~/.config'''
+
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.
  
''Adwaita,'' the default GNOME 3 theme, is a part of '''gnome-themes-standard.''' Additional GTK3 themes are found at [http://browse.deviantart.com/customization/skins/linuxutil/desktopenv/gnome/gtk3/ Deviantart web site.] For example:
+
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}}.
  
  [Settings]
+
The configuration is usually performed user-specific, this section does not cover how to create configuration templates for multiple users.
  gtk-theme-name = Adwaita
 
  gtk-fallback-icon-theme = gnome
 
  # next option is applicable only if selected theme supports it
 
  gtk-application-prefer-dark-theme = true
 
  # set font name and dimension
 
  gtk-font-name = Sans 10
 
  
It is necessary to [[#Restarting_the_shell|restart GNOME shell]] for settings to be applied. More GTK options are found at [http://developer.gnome.org/gtk3/3.0/GtkSettings.html#GtkSettings.properties GNOME developer documentation.]
+
=== System settings ===
  
==== Icon theme ====
+
==== Color ====
  
Using gnome-tweak-tool v. 3.0.3 and later, you can place any icon theme you wish to use inside  '''{{Filename|~/.icons}}'''.
+
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.
  
Usefully, GNOME 3 is compatible with GNOME 2 icon themes, which means you're not stuck with the default icons. To install a new set of icons, copy your desired icon theme's directory to  '''{{Filename|~/.icons}}'''.  As an example:
+
==== Night Light ====
  
$ cp -R /home/user/Desktop/my_icon_theme ~/.icons
+
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:
  
The new theme  ''my_icon_theme''  is now selectable using '''gnome-tweak-tool'''  under  '''''interface.'''''
+
$ gsettings set org.gnome.settings-daemon.plugins.color night-light-temperature 5000
  
Alternatively, you may textually select your icon theme with no need for gnome-tweak-tool. Add the GTK icon theme name to   '''{{Filename|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}'''.
+
{{Tip|To change the daytime temperature in a Wayland session install [https://extensions.gnome.org/extension/1276/night-light-slider/ this extension].}}
  
: {{file|name=${XDG_CONFIG_HOME}/gtk-3.0/settings.ini|content=<nowiki>... previous lines ...
+
==== Date & time ====
  
gtk-icon-theme-name = my_new_icon_theme</nowiki>}}
+
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.
  
=== Nautilus ===
+
To show the date in the top bar, execute:
  
==== Removing folders from the places sidebar ====
+
$ gsettings set org.gnome.desktop.interface clock-show-date true
  
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.
+
Additionally, to show week numbers in the calendar opened on the top bar, execute:
  
==== Always show text-entry location ====
+
$ gsettings set org.gnome.desktop.calendar show-weekdate true
  
The standard Nautilus toolbar shows a button bar interface for path navigation. To enter path locations using the ''keyboard'' you must expose the location text-entry field. This is done by pressing {{Keypress|Ctrl}} + {{Keypress|L}}
+
==== Default applications ====
  
To make the location text-entry field always present, use gsettings as shown. Note: after changing this setting you will not be able to expose the button bar. Only when the setting is '''false''' can both forms of location navigation be employed.
+
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.
  
gsettings set org.gnome.nautilus.preferences always-use-location-entry true
+
==== Mouse and touchpad ====
  
=== GNOME panel ===
+
Most touchpad settings can be set from system settings via: ''Devices'' > ''Mouse & Touchpad''.
  
==== Hide accessibility icon ====
+
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}}
  
Create a folder named  '''{{Filename|noa11y.icon@panel.ui}}'''  in  '''{{Filename|$HOME/.local/share/gnome-shell/extensions}}'''. Create two new files:
+
{{hc|$ gsettings range org.gnome.desktop.peripherals.touchpad click-method|
 +
enum
 +
'default'
 +
'none'
 +
'areas'
 +
'fingers'}}
  
: {{File|~/.local/share/gnome-shell/extensions/noa11y.icon@panel.ui/extension.js|content=<nowiki>const Panel = imports.ui.panel;
+
to be set manually:  
  
function main() {
+
$ gsettings set org.gnome.desktop.peripherals.touchpad click-method 'fingers'
  Panel.STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['a11y'] = '';
 
}</nowiki>}}
 
  
: {{File|~/.local/share/gnome-shell/extensions/noa11y.icon@panel.ui/metadata.json|content=<nowiki>{
+
or via {{pkg|gnome-tweaks}}.
  "shell-version": ["3.0"],
 
  "uuid": "noa11y.icon@panel.ui",
 
  "name": "na11y",
 
  "description": "Turn off the ally icon in the panel"
 
}</nowiki>}}
 
  
[[#Restarting_the_shell|Restart the GNOME shell.]] The accessibility icon should be hidden. If this extension ceases to work in the future, adjust the shell version number in '''{{Filename|metadata.json.}}'''
+
{{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].}}
  
Alternatively, you may disable the accessibility icon system-wide. Edit '''{{Filename|/usr/share/gnome-shell/js/ui/panel.js}}'''  Locate the following line and comment it out or delete it. Afterward restart the shell.
+
==== Network ====
  
'a11y': imports.ui.status.accessibility.ATIndicator,
+
[[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.
  
==== Hide bluetooth icon ====
+
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).
  
Deactivate bluetooth as startup-service if that is your intent. Refer to section [[#Automatic_program_launch_upon_login|Automatic program launch upon login]]
+
{{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.}}
  
Create a folder named '''{{Filename|nobluetooth.icon@panel.ui}}'''  in  '''{{Filename|~/.local/share/gnome-shell/extensions}}'''. Create two new files:
+
==== Online accounts ====
  
: {{File|~/.local/share/gnome-shell/extensions/nobluetooth.icon@panel.ui/extension.js|content=<nowiki>const Panel = imports.ui.panel;
+
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].
  
function main() {
+
==== Search ====
  Panel.STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['bluetooth'] = '';
 
}</nowiki>}}
 
  
: {{File|~/.local/share/gnome-shell/extensions/nobluetooth.icon@panel.ui/metadata.json|content=<nowiki>{
+
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.
  "shell-version": ["3.0"],
 
  "uuid": "nobluetooth.icon@panel.ui",
 
  "name": "nbluetooth",
 
  "description": "Turn off the bluetooth icon in the panel"
 
}</nowiki>}}
 
  
[[#Restarting_the_shell|Restart the GNOME shell.]] The icon should be hidden. If this extension ceases to work in the future, adjust the shell version number in '''{{Filename|metadata.json.}}'''
+
The Tracker database can be queried using the ''tracker-sparql'' command. View its manual page {{man|1|tracker-sparql}} for more information.
  
==== Show battery icon ====
+
=== Advanced settings ===
  
To show the battery tray icon, install gnome-power-manager.
+
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.
  
# pacman -S gnome-power-manager
+
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.
  
==== Disable "Suspend" in the status menu ====
+
==== Appearance ====
  
A quick way to do it system-wide is to change line 153 of '''{{Filename|/usr/share/gnome-shell/js/ui/statusMenu.js}}'''.  This change takes effect the next time GNOME Shell is started.
+
===== Themes =====
  
// this._haveSuspend = this._upClient.get_can_suspend();  //  Comment this line out.
+
GNOME uses Adwaita by default. To apply Adwaita dark only to GTK+2 applications use the following symlink:
this._haveSuspend = false;                                //  Use this line instead.
 
  
==== Eliminate delay when logging out ====
+
$ ln -s /usr/share/themes/Adwaita-dark ~/.themes/Adwaita
  
The following tweak removes the confirmation dialog and sixty second delay for logging out.
+
To select new themes (move them to the appropriate directory and) use GNOME Tweaks or the GSettings commands below:
  
This dialog normally appears when you log out with the status menu. This tweak affects the '''''Power  Off''''' dialog as well. This is not a system-wide change; it affects only the user who enters this command. The change takes effect immediately after entering the command.
+
For the GTK+ theme:
  
  $ gsettings set org.gnome.SessionManager logout-prompt 'false'
+
  $ gsettings set org.gnome.desktop.interface gtk-theme ''theme-name''
  
=== Titlebar ===
+
For the icon theme:
  
==== Reduce titlebar height ====
+
$ gsettings set org.gnome.desktop.interface icon-theme ''theme-name''
  
# sed -i '/title_vertical_pad/s|value="[0-9]\{1,2\}"|value="0"|g' /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml
+
{{Note|The window manager theme follows the GTK+ theme. Using {{ic|org.gnome.desktop.wm.preferences theme}} is deprecated and ignored.}}
  
[[#Restarting_the_shell|Restart the GNOME shell.]] This changes vertical padding from 14 to 0, giving windows a sleeker look.
+
See [[GTK+#Themes]] and [[Icons#Manually]].
  
To restore the original values:
+
===== Titlebar height =====
  
sudo pacman -S gnome-themes-standard
+
{{Note|Applying this configuration shrinks the titlebar of the GNOME-terminal and Chromium, but does not appear to affect the Nautilus titlebar height.}}
  
==== Reorder titlebar buttons ====
+
{{hc|~/.config/gtk-3.0/gtk.css|
 +
headerbar.default-decoration {
 +
padding-top: 0px;
 +
padding-bottom: 0px;
 +
min-height: 0px;
 +
font-size: 0.6em;
 +
}
  
At present this setting is changeable only through '''gconf-editor.'''
+
headerbar.default-decoration button.titlebutton {
 +
padding: 0px;
 +
min-height: 0px;
 +
}
 +
}}
  
For example, we move the close and minimize buttons to the left side of the titlebar. Open '''gconf-editor''' and locate the  '''''desktop.gnome.shell.windows.button_layout'''''  key. Change its value to '''<tt>close,minimize:</tt>'''  (Colon symbol designates the spacer between left side and right side of the titlebar.) Use whichever buttons in whatever order you prefer. You cannot use a button more than once. Also, keep in mind that certain buttons are deprecated. [[#Restarting_the_shell|Restart the shell]] to see your new button arrangement.
+
See [https://ask.fedoraproject.org/en/question/10035/shrink-title-bar/?answer=86149#post-id-86149] for more information.
  
==== Hide titlebar when maximized ====
+
===== Titlebar button order =====
  
# sed -i -r 's|(<frame_geometry name="max")|\1 has_title="false"|' /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml
+
To set the order for the GNOME window manager (Mutter, Metacity):
  
[[#Restarting_the_shell|Restart the GNOME shell.]] After this tweak, you may find it difficult to un-maximize a window when there is no titlebar to grab.
+
$ gsettings set org.gnome.desktop.wm.preferences button-layout ':minimize,maximize,close'
  
With suitable keybindings, you should be able to use {{Keypress|Alt}} + {{Keypress|F5}},  {{Keypress|Alt}} + {{Keypress|F10}}  or  {{Keypress|Alt}} + {{Keypress|Space}}  to remedy the situation.
+
{{Tip|The colon indicates which side of the titlebar the window buttons will appear.}}
  
To prevent '''{{filename|metacity-theme-3.xml}}''' from being overwritten each time package "gnome-themes-standard" is upgraded, add its name to '''{{Filename|/etc/pacman.conf}}''' with <tt>NoUpgrade</tt>.
+
===== Hide titlebar when maximized =====
  
: {{File|/etc/pacman.conf|content=<nowiki>... previous lines ...
+
* [[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.
 +
* [[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.
  
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+
===== GNOME Shell themes =====
# IgnorePkg  =
 
# IgnoreGroup =
 
  
NoUpgrade = usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml    # Do not add a leading slash to the path
+
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.
  
... more lines ...</nowiki>}}
+
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].
  
To restore original Adwaita theme values:
+
===== Icons on menu =====
  
# pacman -S gnome-themes-standard
+
The default GNOME schema doesn't display any icon on menus. To display icons on menus, issue the following command.
  
=== Login screen ===
+
$ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/ButtonImages': <1>, 'Gtk/MenuImages': <1>}"
  
To modify characteristics of the login screen (GDM, the GNOME display manager) the following lines can be executed. The first command allows all users, including "gdm", to access X settings (albeit temporarily). This command creates a temporary vulnerability, so be advised. The second command opens a bash session with the credentials of user "gdm". '''Note:''' for exposition, user gdm's terminal prompt is shown as '''$'''. In actuality, it shows something like -bash-4.2$.
+
==== Apps grid folders ====
  
# xhost +
+
{{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.}}
# su - gdm -s /bin/bash
 
$ dbus-launch
 
  
The third command prints DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. We must export these variables.
+
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:
  
  $ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38
+
  ['Utilities', 'Sundry']
$ export DBUS_SESSION_BUS_PID=4283
 
  
The following backtick-ed command combines '''dbus-launch''' and '''export''' into a single command. (Dbus-launch has command line options which appear to obviate the need for the '''sed''' pipeline; that method seems to export no more than the first variable.)
+
Add applications using {{ic|gsettings}}:
  
  # `dbus-launch | sed "s/^/export /"`
+
  $ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ apps "['alacarte.desktop', 'dconf-editor.desktop']"
  
<div style="margin: 1em 3em;">
+
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}}.
To avoid copying and pasting, you may use the script '''{{Filename|prep-gdm-vars}}''' to export the variables. The other scripts assist in setting up the GDM wallpaper. Place these files in a suitable location. Make them executable using chmod. An example of running these scripts appears below.
 
  
{{File|name=/usr/local/bin/prep-gdm-vars|content=<nowiki>#  This script must be run using '.' or 'source'
+
To name the folder (if it has no name that appears at the top of the applications):
`dbus-launch | sed "s/^/export /"`</nowiki>}}
 
  
{{File|name=/usr/local/bin/show-avail-gdm-bkgd|content=<nowiki>#!/bin/bash
+
  $ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ name "Sundry"
# Usage:  show-avail-gdm-bkgd  [folder]
 
#  Specify any folder within /usr/share/backgrounds.
 
#  If you omit the folder, you'll be shown available choices.
 
file_part="/usr/share/backgrounds/"
 
if ! [ $1 ]; then
 
  echo -en \\n  Please specify one of these directories:\\n\\n\\040
 
  ls $file_part; echo; exit 1; fi
 
ls ${file_part}/$1
 
</nowiki>}}
 
  
{{File|name=/usr/local/bin/revise-gdm-bkgd|content=<nowiki>#!/bin/bash
+
Applications can also be sorted by their category (specified in their ''.desktop'' file):
#  Usage:  revise-gdm-bkgd gnome/filename.jpg
 
#  Specify any file path within /usr/share/backgrounds.
 
org_part="org.gnome.desktop.background picture-uri"
 
file_full="/usr/share/backgrounds/${file_part}$1"
 
# Trap when argument is: missing, a mere directory, a bad filename.
 
if ( ! [ $1 ] || [ -d $file_full ] ); then
 
  echo -en \\n Specify a file.  Use this example:
 
  echo -e \ \ revise-gdm-bkgd \ gnome/TwoWings.jpg\\n; exit 1; fi
 
if ! [ -r $file_full ]; then
 
  echo -e \\n Specifed file does not exist or is not readable.\\n; exit 2; fi
 
GSETTINGS_BACKEND=dconf gsettings set $org_part "file://${file_full}"
 
</nowiki>}}
 
</div>
 
  
Check to see if dconf-service is running and if not, start it like this
+
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ categories "['Office']"
  
$ /usr/lib/dconf/dconf-service &
+
If certain applications matching a category are not wanted in a certain folder, exclusions can be set:
  
==== Login background image ====
+
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ excluded-apps "['libreoffice-draw.desktop']"
  
Once session variables have been exported as explained above, you may issue commands to retrieve or set items used by GDM. The following commands retrieve or set the file name used for GDM's wallpaper.
+
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].
<pre style="overflow:auto;">
 
$  GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri
 
$  GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri 'file:///usr/share/backgrounds/gnome/SundownDunes.jpg'
 
 
$  GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-options 'zoom'
 
## Possible values: centered, none, scaled, spanned, stretched, wallpaper, zoom</pre>
 
You must specify a file which user "gdm" has permission to read. GDM cannot read files in your home directory.
 
  
<div style="margin: 1em 3em;">
+
==== Autostart ====
Here is a session showing how a user might change the GDM wallpaper using the scripts listed above. It starts with a normal user's terminal and assumes he is able to open a bash session as root. The root user then opens a session as "gdm" and changes the wallpaper.
 
  
$ su -
+
GNOME implements [[XDG Autostart]].
Password:
 
 
# xhost +
 
access control disabled, clients can connect from any host
 
# su - gdm -s /bin/bash
 
 
'''-bash-4.2$''' . prep-gdm-vars  #  Must use . to execute this script!
 
access control disabled, clients can connect from any host
 
 
'''-bash-4.2$''' show-avail-gdm-bkgd gnome
 
Aqua.jpg            FreshFlower.jpg  Spaceflare-nova.jpg      Terraform-green.jpg  YellowFlower.jpg
 
Blinds.jpg          Garden.jpg      Spaceflare-supernova.jpg  Terraform-orange.jpg
 
BlueMarbleWest.jpg  GreenMeadow.jpg  SundownDunes.jpg          TwoWings.jpg
 
FootFall.png        Spaceflare.jpg  Terraform-blue.jpg        Wood.jpg
 
 
'''-bash-4.2$''' revise-gdm-bkgd gnome/GreenMeadow.jpg
 
 
'''-bash-4.2$''' logout
 
 
# logout
 
$
 
  
Script '''{{Filename|revise-gdm-bkgd}}''' may also be used to change your normal user background from the command prompt. Admittedly, the script name does not quite fit when used for that purpose.
+
The {{Pkg|gnome-tweaks}} allows managing autostart-entries.
</div>
 
  
==== Turning off the sound ====
+
{{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].}}
  
This tweak disables the audible feedback heard when the system volume is adjusted (via keyboard) on the login screen.
+
{{Note|The deprecated ''gnome-session-properties'' dialog can be added by [[install]]ing the {{AUR|gnome-session-properties}} package.}}
  
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.sound event-sounds false
+
==== Desktop ====
  
==== Make the power button interactive ====
+
===== Icons on the Desktop =====
  
The default installation sets the power button to suspend the system. '''''Power off'''''  or   '''''Show dialog'''''  is a better choice. You must first export the GDM session variables as [[#Login_screen|outlined previously.]]
+
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].
  
  # GSETTINGS_BACKEND=dconf gsettings set org.gnome.settings-daemon.plugins.power button-power 'interactive'
+
===== Lock screen and background =====
  # GSETTINGS_BACKEND=dconf gsettings set org.gnome.settings-daemon.plugins.power button-hibernate 'interactive'
 
  # gsettings list-recursively org.gnome.settings-daemon.plugins.power
 
  
==== GDM keyboard layout ====
+
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.
  
GDM does not know about your GNOME 3 desktop keyboard settings. To change keyboard settings used by GDM, set your layout using Xorg configuration. Refer to this section of the [[Beginners'_Guide#Non-US_keyboard|Beginner's Guide.]]
+
For the desktop background:
  
== Miscellaneous settings ==
+
  $ gsettings set org.gnome.desktop.background picture-uri 'file:///path/to/my/picture.jpg'
 
 
==== Automatic program launch upon login ====
 
 
 
Specify which programs start automatically after login using '''gnome-session-properties.'''  This tool is part of the
 
package '''gnome-session.'''
 
 
 
$ gnome-session-properties
 
 
 
==== Activate numlock upon login ====
 
 
 
Install numlockx from repository '''[community]'''. Then, add a startup command to launch numlockx.
 
 
 
# pacman -S numlockx
 
$ gnome-session-properties
 
 
 
The above command opens the '''Startup Applications Preferences''' applet. Click '''''Add'''''  and enter the following:
 
 
 
{| border="0"
 
| Name:      ||  ''Numlockx''
 
|-
 
| Command:   ||  ''/usr/bin/numlockx on''
 
|-
 
| Comment:  ||  ''Turns on numlock.''
 
|}
 
 
 
This is not a system-wide appearance tweak. Repeat these steps for each user wishing to activate numlock upon login.
 
 
 
=== GNOME shell extensions ===
 
 
 
Gnome Shell can be customized with extensions written by others. These provide features such as a dock or a widget for changing the theme. Details on available extensions are found at the [http://www.webupd8.org/2011/04/gnome-shell-extensions-additional.html WEBUPD8] site. The most recent articles can be found using this [http://www.webupd8.org/search/label/gnome%20shell%20extensions?max-results=20 WEBUPD8 search link.]
 
 
 
Repository '''[extras]''' has a dozen extensions which can be installed individually. (The latest version of a given extension may be installed using its code snapshot, if preferred.)  [http://www.archlinux.org/packages/?sort=&q=gnome-shell-extension&maintainer=&last_update=&flagged=&limit=50 List here.]
 
 
 
  $ pacman -Ss gnome-shell-extension
 
 
 
[[#Restarting_the_shell|Restart the GNOME Shell]] after installing an extension. See [[#When_an_extension_breaks_GNOME|when an extension breaks GNOME]] for troubleshooting information.
 
 
 
=== Default terminal ===
 
 
 
{{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''.
 
The commands for [[rxvt-unicode|urxvt]] run as daemon:
 
 
 
gsettings set org.gnome.desktop.default-applications.terminal exec urxvtc
 
gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'-e'"
 
 
 
{{Note|For ''nautilus-open-terminal'', you may need a flag (e.g. {{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.}}
 
 
 
=== Middle mouse button ===
 
 
 
By default, GNOME 3 disables middle mouse button emulation regardless of Xorg settings ('''Emulate3Buttons'''). To enable middle mouse button emulation use:
 
 
 
gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true
 
 
 
=== Xmonad ===
 
 
 
[[Xmonad]] is a tiling window manager.
 
 
 
Upgrading to GNOME 3 will likely break your xmonad setup. You can use xmonad again by [[#Enabling_fallback_mode|forcing fallback mode]] and creating two files:
 
 
 
: {{file|name=/usr/share/gnome-session/sessions/xmonad.session|content=<nowiki>[GNOME Session]
 
Name=Xmonad session
 
RequiredComponents=gnome-panel;gnome-settings-daemon;
 
RequiredProviders=windowmanager;notifications;
 
DefaultProvider-windowmanager=xmonad
 
DefaultProvider-notifications=notification-daemon</nowiki>}}
 
 
 
: {{file|name=/usr/share/xsessions/xmonad-gnome-session.desktop|content=<nowiki>[Desktop Entry]
 
Name=Xmonad GNOME
 
Comment=Tiling window manager
 
TryExec=/usr/bin/gnome-session
 
Exec=gnome-session --session=xmonad
 
Type=XSession</nowiki>}}
 
 
 
The next time you log in, you should have the ability to choose ''Xmonad GNOME'' as your session.
 
 
 
== Hidden features ==
 
 
 
GNOME 3 hides many useful options which you can customize with '''dconf-editor.''' GNOME 3 also supports '''gconf-editor''' for settings that have not yet migrated to dconf.
 
 
 
=== Changing hotkeys ===
 
 
 
Firstly, use '''dconf-editor''' to place a checkmark next to  <tt>can-change-accels</tt>  in the key named ''org.gnome.desktop.interface.''
 
 
 
We will replace the hotkey — a.k.a. keyboard shortcut, keyboard accelerator — used by Nautilus to move files to the trash folder.
 
 
 
The default assignment is a somewhat-awkward {{Keypress|Ctrl}} + {{Keypress|Delete}}.
 
 
 
* Open Nautilus, select any file, and click '''Edit''' on the menu bar.
 
* Hover over the ''Move to Trash''  menu item.
 
* While hovering, press {{Keypress|Delete}}.  The current accelerator is now unset.
 
* Press the key that you wish to become the new keyboard accelerator.
 
* Press {{Keypress|Delete}} to make the new accelerator be the Delete key.
 
 
 
Unless you select a file or folder, ''Move to Trash''  will be grayed-out. Finally, disable <tt>can-change-accels</tt> to prevent accidental hotkey changes.
 
 
 
=== Shutdown via the status menu ===
 
 
 
Presently, GNOME designers have hidden the Shutdown option inside the status menu. To shut down your system with the status menu, click the menu and hold down the '''Alt''' key so that the '''''Suspend'''''  item changes to '''''Power Off.''''' The subsequent dialog allows you to shut down or restart your system.
 
 
 
If you disable the Suspend menu item system-wide as described [[#Disable_"Suspend"_in_the_status_menu|elsewhere in this document]] you do not have to go through these motions.
 
 
 
Another option is to install the ''Alternative Status Menu'' extension. See the section on shell extensions. The alternative menu extension installs a new status menu with a non-hidden '''''Power Off''''' entry.
 
 
 
== Integrated messaging ==
 
 
 
Empathy, the engine behind integrated messaging, and all system settings based on messaging accounts will not show up unless the '''telepathy''' group of packages or at least one of the backends ('''telepathy-gabble''', or '''telepathy-haze''', for example) is installed.
 
 
 
These packages are not included in default Arch GNOME installs. The Empathy interface does not send a nice error message; it just fails to work silently. You can install the packages.
 
 
 
# pacman -S telepathy
 
 
 
View descriptions of telepathy components on the [http://telepathy.freedesktop.org/wiki/Components Freedesktop.org Telepathy Wiki.]
 
 
 
== Enabling fallback mode ==
 
 
 
Your session automatically starts in fallback mode when '''gnome-shell''' is not present, or when your hardware cannot handle graphics acceleration — such as running within a virtual machine or running on old hardware.
 
 
 
If you wish to enable fallback mode while still having '''gnome-shell''' installed, make the following system change:
 
 
 
Open '''gnome-control-center.''' Click the ''System Info'' icon. Click Graphics. Change ''Forced Fallback Mode'' to <tt>ON.</tt>
 
 
 
You can alternatively choose the type of session from a terminal with a ''gsettings'' command:
 
 
 
$ gsettings set org.gnome.desktop.session session-name 'gnome-fallback'
 
 
 
You may want to log out after making the change. You will see the chosen type of session upon your next login.
 
 
 
To disable forced-fallback mode (that is, launch the normal GNOME Shell) use a value of 'gnome' instead of 'gnome-fallback'.
 
 
 
== Troubleshooting ==
 
 
 
=== GNOME login takes a very long time ===
 
 
 
See if you enabled ''PulseAudio Network'' settings in '''paprefs'''. When any network audio settings are enabled, Gnome hangs about a minute after login.
 
 
 
One solution is to create a new user account and login to that account. Another solution is to move your '''~/.gconf''', '''~/.gconfd''' and '''~/.conf/dconf''' folders to a holding area. Login again to see if the delay is gone.
 
 
 
If the excessive delay is gone, determine which setting causes the delay using trial-and-error.
 
 
 
=== When an extension breaks GNOME ===
 
 
 
When enabling shell extensions causes GNOME breakage, you should first remove the ''user-theme'' and ''auto-move-windows'' extensions from their installation directory.
 
 
 
The installation directory could be one of  '''{{Filename|~/.local/share/gnome‑shell/extensions,}}''' '''{{Filename|/usr/share/gnome‑shell/extensions,}}''' or '''{{Filename|/usr/local/share/gnome‑shell/extensions}}'''. Removing these two extension-containing folders may fix the breakage. Otherwise, isolate the problem extension with trial‑and‑error.
 
 
 
Removing or adding an extension-containing folder to the aforementioned directories removes or adds the corresponding extension to your system. Details on Gnome Shell extensions are available at the [https://live.gnome.org/GnomeShell/Extensions GNOME web site.]
 
 
 
=== Extensions don't work after GNOME 3 update ===
 
 
 
Locate the folder where your extensions are installed. It might be '''{{Filename|~/.local/share/gnome-shell/extensions}}''' or '''{{Filename|/usr/share/gnome-shell/extensions}}'''.
 
 
 
Edit each occurrence of  '''{{Filename|metadata.json}}'''  which appears in each extension sub-folder.
 
 
 
{| border="0"
 
| Insert: || '''<tt>"shell-version": ["3.0"]</tt>'''
 
|-
 
| Instead of (for example):   || '''<tt>"shell-version": ["3.0.1"]</tt>'''
 
|-
 
| You might instead use: || '''<tt>"shell-version": ["3.0.0", "3.0.1", "3.0.2"]</tt>'''
 
|}
 
  
+
For the lock screen background:
'''"3.0"'''  is the best solution. It indicates the extension works with every  '''''3.0.x'''''  GNOME Shell version.
 
  
=== Screen is not locked after resume ===
+
$ gsettings set org.gnome.desktop.screensaver picture-uri 'file:///path/to/my/picture.jpg'
  
Screen lock only works when you suspend through GNOME's status menu. If you suspend or hibernate using the power button, your screen is not locked after resume. The problem is a configuration failure in dconf.
+
===== Disable top left hot corner =====
  
Open ''dconf-editor'' and uncheck  '''<tt>lock-use-screensaver</tt>'''  in the key named  ''org.gnome.power-manager.'' Your screen should now be locked after resume whether you used the status menu, the power button, or a key combination. Bug report: [https://bugzilla.redhat.com/show_bug.cgi?id=698135#c8 Screen gets no more locked after suspend #Comment 8]
+
You can disable the top left hot corner with the {{AUR|gnome-shell-extension-no-topleft-hot-corner}} package.
  
=== GTK2+ apps show segfaults and fail to launch ===
+
==== Extensions ====
  
That usually happens when '''oxygen-gtk''' is installed. This theme appears to conflict with GNOME 3 or GTK3 settings. When '''oxygen-gtk''' has been set as a GTK2 theme, GTK2 apps segfault with errors like these:
+
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}}.
  
<pre> (firefox-bin:14345): GLib-GObject-WARNING **: invalid (NULL) pointer instance
+
{{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.}}
  
(firefox-bin:14345): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
+
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).
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed
 
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed
 
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed
 
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed
 
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed
 
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed
 
Segmentation fault
 
</pre>
 
  
The current workaround is to remove '''oxygen-gtk''' from the system and use a different theme for applications.
+
To list currently enabled extensions:
  
=== ATI Catalyst driver creates glitches and artifacts ===
+
$ gsettings get org.gnome.shell enabled-extensions
  
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.
+
For more information about GNOME shell extensions, see [https://extensions.gnome.org/about/].
  
=== Multiple monitors and dock extension ===
+
==== Fonts ====
  
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.
+
{{Tip|If you set the ''Scaling factor'' to a value above 1.00, the Accessibility menu will be automatically enabled.}}
  
Edit '''/usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js''' and locate this line in the source:
+
Fonts can be set for Window titles, Interface (applications), Documents and Monospace. See the Fonts tab in the Tweaks for the relevant options.
  
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);
+
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''.
  
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.
+
==== Input methods ====
  
this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);
+
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.
  
=== No event sounds for Empathy and other programs ===
+
==== Power ====
  
If you're using [[OSS]], you may want to install '''libcanberra-oss''' [https://aur.archlinux.org/packages.php?ID=31163 from AUR].
+
When you are using a laptop you might want to alter the following settings:
  
=== Editing hotkeys via can-change-accels fails ===
+
$ 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''
  
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.
+
To keep the monitor active when the lid is closed:  
  
=== Panels don't respond to right-click in fallback mode ===
+
$ gsettings set org.gnome.settings-daemon.plugins.xrandr default-monitors-setup do-nothing
  
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.
+
GNOME 3.24 deprecated the following settings:
  
=== "Show Desktop" keyboard shortcut does not work ===
+
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
  
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:
+
===== Don't suspend, when laptop lid is closed =====
  
System Settings --> Keyboard --> Shortcuts --> Windows --> Hide all normal windows
+
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.
  
=== Nautilus does not start ===
+
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]].
  
Start gnome-tweak-tool -> File Manager -> Have file manager handle the desktop -> Off
+
===== Change critical battery level action =====
  
=== Epiphany does not play flash videos ===
+
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.
  
Epiphany now uses gtk3, but Adobe's Flash Player still relies on gtk2. See [[Epiphany#Flash]] for a workaround involving nspluginwrapper.  
+
{{hc|head=/etc/UPower/UPower.conf|output=
 +
PercentageLow=10
 +
PercentageCritical=3
 +
PercentageAction=2
 +
CriticalPowerAction=HybridSleep
 +
}}
  
=== Unable to apply stored configuration for monitors ===
+
=== Use a different window manager ===
  
If you encounter this message try to disable the xrandr gnome-settings-daemon plugin :
+
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.
  
dconf write /org/gnome/settings-daemon/plugins/xrandr/active false
+
== See also ==
  
==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