Difference between revisions of "GNOME"

From ArchWiki
Jump to navigation Jump to search
(Nautilus: creating page nautilus, this will direct users to it)
(fixed section fragments (interactive))
(Tag: wiki-scripts)
 
Line 1: Line 1:
[[Category:Desktop environments]]
+
[[Category:GNOME]]
[[tr:Gnome_Masaüstü_Ortamı]]
+
[[cs:GNOME]]
{{i18n|GNOME 3|GNOME}}
 
 
[[de:GNOME]]
 
[[de:GNOME]]
 +
[[es:GNOME]]
 
[[fr:GNOME]]
 
[[fr:GNOME]]
 +
[[it:GNOME]]
 +
[[ja:GNOME]]
 
[[pl:GNOME]]
 
[[pl:GNOME]]
{{Article summary start}}
+
[[pt:GNOME]]
{{Article summary text|GNOME 3 provides a modern desktop, rewritten from scratch, using the GTK3+ toolkit.}}
+
[[ru:GNOME]]
{{Article summary heading|Overview}}
+
[[sr:GNOME]]
{{Article summary text|{{Graphical user interface overview}}}}
+
[[th:GNOME]]
{{Article summary heading|Related}}
+
[[zh-hans:GNOME]]
{{Article summary wiki|GTK+}}
+
[[zh-hant:GNOME]]
{{Article summary end}}
+
{{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}}
  
From [http://www.gnome.org/about/ About Us | GNOME]:
+
[[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]].
  
:''The GNOME Project was started in 1997 by two then university students, Miguel de Icaza and Federico Mena. Their aim: to produce a free (as in freedom) [[desktop environment]]. Since then, GNOME has grown into a hugely successful enterprise. Used by millions of people across the world, it is the most popular desktop environment for GNU/Linux and UNIX-type operating systems. The desktop has been utilised in successful, large-scale enterprise and public deployments, and the project’s developer technologies are utilised in a large number of popular mobile devices.''
+
== Installation ==
  
== Introduction ==
+
Two groups are available:
  
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.  
+
* {{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.
  
'''Fallback mode''' is similar to GNOME 2. (Fallback mode uses gnome-panel/Metacity instead of gnome-shell/Mutter.)
+
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}}.
  
When you are on fallback mode you can still replace GNOME's default window manager with your preferred one.
+
{{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''.}}
  
==Installation==
+
== GNOME Sessions ==
  
GNOME 3 is in the [extra] repository. The {{Grp|gnome}} group contains the core desktop environment and applications, and {{Grp|gnome-extra}} contains the rest. You likely do not want all of the packages installed, so consider reading the package descriptions before installing them (or just remove them later).
+
GNOME has three available sessions, all using GNOME Shell.
  
'''You must install the gnome group'''. gnome-extra does not imply that you want everything in gnome.
+
* '''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.
  
Example:
+
== Starting ==
  
# pacman -S gnome
+
GNOME can be started either graphically with a [[display manager]] or manually from the console (some features may be missing).
  
Choose which applications you wish to use from gnome-extra. It is not mandatory to install the whole group (wanted choices seperated by a space).
+
{{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-extra
+
=== Graphically ===
  
===D-Bus daemon===
+
Select the session: ''GNOME'', ''GNOME Classic'', or ''GNOME on Xorg'' from the display manager's session menu.
  
The GNOME desktop requires the [[D-Bus]] daemon. Refer to the [[dbus]] article for setup instructions.
+
=== Manually ===
  
=== Running GNOME ===
+
==== Xorg sessions ====
  
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.
+
* 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>}}
  
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.
+
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}}:
  
# pacman -S gdm
+
{{bc|<nowiki>
 
+
if [[ -z $DISPLAY && $(tty) == /dev/tty2; ]]; then
If you prefer to start GNOME manually from the console, add the following line to your {{ic|~/.xinitrc}} file. Make sure it is the only line (remove the {{ic|if/fi}} block from the standard {{ic|~/.xinitrc}} since the {{ic|if/fi}} block can cause problems) and the only command starting with {{ic|exec}}. See the [[xinitrc| xinitrc wiki article]].
+
  GDK_BACKEND=x11 exec startx
{{hc|~/.xinitrc|<nowiki>
+
fi
#ONLY THIS LINE
 
exec ck-launch-session gnome-session
 
 
</nowiki>}}
 
</nowiki>}}
  
After the {{ic|exec}} command is placed, GNOME can be launched by typing {{ic|startx}}.
+
==== Wayland sessions ====
  
== Using the shell ==
+
{{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}}.
 +
}}
  
=== GNOME cheat sheet ===
+
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 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.
+
To start on login to tty1, add the following to your {{ic|.bash_profile}}:
  
=== Restarting the shell ===
+
{{bc|<nowiki>
 
+
if [[ -z $DISPLAY && $(tty) == /dev/tty1 && $XDG_SESSION_TYPE == tty ]]; then
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}}
+
   QT_QPA_PLATFORM=wayland XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session
 
+
fi
=== Shell crashes ===
 
 
 
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.
 
 
 
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.
 
 
 
== Customizing GNOME appearance ==
 
 
 
=== Overall appearance ===
 
 
 
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.
 
 
 
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.
 
 
 
==== Gsettings ====
 
 
 
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.
 
 
 
==== GNOME tweak tool ====
 
 
 
This graphical tool customizes fonts, themes, titlebar buttons and other settings.
 
 
 
# pacman -S gnome-tweak-tool
 
 
 
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.]
 
 
 
==== GTK3 theme via settings.ini ====
 
 
 
Like {{ic|~/.gtkrc-2.0}}  with GTK2+, it is possible to set a GTK3 theme via {{ic|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}.
 
 
 
Variable {{ic|$XDG_CONFIG_HOME}} is usually set to {{ic|~/.config}}
 
 
 
''Adwaita,'' the default GNOME 3 theme, is a part of {{pkg|gnome-themes-standard}}. Additional GTK3 themes can be found at [http://browse.deviantart.com/customization/skins/linuxutil/desktopenv/gnome/gtk3/ Deviantart web site.] For example:
 
{{hc|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini|<nowiki>
 
  [Settings]
 
   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
 
 
</nowiki>}}
 
</nowiki>}}
  
It is necessary to [[#Restarting_the_shell|restart the 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.]
+
=== GNOME applications in Wayland ===
  
==== Icon theme ====
+
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.
  
Using {{pkg|gnome-tweak-tool}} version 3.0.3 and later, you can place any icon theme you wish to use inside {{ic|~/.icons}}.
+
== Navigation ==
  
Usefully, GNOME 3 is compatible with GNOME 2 icon themes, which means you are not stuck with the default icons. To install a new set of icons, copy your desired icon theme's directory to {{ic|~/.icons}}. As an example:
+
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:
  
$ cp -R /home/user/Desktop/my_icon_theme ~/.icons
+
* {{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 new theme  ''my_icon_theme''  is now selectable using {{ic|gnome-tweak-tool}} under ''interface''.
+
{{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
 +
}}
  
Alternatively, you may textually select your icon theme with no need for gnome-tweak-tool. Add the GTK icon theme name to {{ic|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}. Please note, not to use "" as your settings would not be recognised then.
+
== Legacy names ==
  
{{hc|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini|<nowiki>... previous lines ...
+
{{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.}}
  
gtk-icon-theme-name = my_new_icon_theme</nowiki>}}
+
{{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''.}}
  
=== Nautilus ===
+
{| class="wikitable"
 
+
! Current
''See [[Nautilus]].''
+
! Legacy
 
+
|-
=== GNOME panel ===
+
| [[GNOME/Files|Files]]
 
+
| Nautilus
==== Show date in top bar ====
+
|-
 
+
| [[GNOME/Web|Web]]
By default GNOME displays only the weekday and time in the top bar. This can be changed with the following command. Changes take effect immediately.
+
| Epiphany
 
+
|-
# gsettings set org.gnome.shell.clock show-date true
+
| Videos
 
+
| Totem
==== Hiding icons in the top bar ====
 
 
 
When doing a GNOME install, some unwanted icons might appear in the panel. To remove the icons, edit the GNOME panel script.
 
 
 
For example, to remove the '''universal access icon'''. Remove 'a11y' from the AREA_ORDER line and comment out the 'a11y' line in AREA_SHELL_IMPLEMENTATION
 
 
 
{{hc|/usr/share/gnome-shell/js/ui/panel.js|<nowiki>
 
const STANDARD_STATUS_AREA_ORDER = ['ally', 'keyboard', 'volume', 'network', 'bluetooth', 'battery', 'userMenu'];
 
const STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION = {
 
    'a11y': imports.ui.status.accessibility.ATIndicator
 
    'volume': imports.ui.status.volume.Indicator,
 
    'battery': imports.ui.status.power.Indicator,
 
    'keyboard': imports.ui.status.keyboard.XKBIndicator,
 
    'userMenu': imports.ui.userMenu.UserMenuButton
 
};
 
</nowiki>}}
 
 
 
to
 
 
 
{{hc|/usr/share/gnome-shell/js/ui/panel.js|<nowiki>
 
const STANDARD_STATUS_AREA_ORDER = ['keyboard', 'volume', 'network', 'bluetooth' 'battery', 'userMenu'];
 
const STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION = {
 
    //'a11y': imports.ui.status.accessibility.ATIndicator
 
    'volume': imports.ui.status.volume.Indicator,
 
    'battery': imports.ui.status.power.Indicator,
 
    'keyboard': imports.ui.status.keyboard.XKBIndicator,
 
    'userMenu': imports.ui.userMenu.UserMenuButton
 
};
 
</nowiki>}}
 
 
 
save your results and restart the shell to see results:
 
 
 
#{{Keypress|Alt+F2}}
 
#{{Keypress|r}}
 
#{{Keypress|Enter}}
 
 
 
==== Disable "Suspend" in the status and gdm menu ====
 
 
 
A quick way to do it system-wide for GNOME 3.2 is to change line 539 of {{ic|/usr/share/gnome-shell/js/ui/userMenu.js}} and line 103 of {{ic|/usr/share/gnome-shell/js/gdm/powerMenu.js}}. (For GNOME versions prior to 3.2, look at line 153 of {{ic|/usr/share/gnome-shell/js/ui/statusMenu.js}}.) This change takes effect the next time GNOME Shell is started.
 
 
 
{{hc|/usr/share/gnome-shell/js/ui/userMenu.js|<nowiki>
 
// this._haveSuspend = this._upClient.get_can_suspend();  //  Comment this line out.
 
this._haveSuspend = false;                                //  Use this line instead.
 
</nowiki>}}
 
 
 
To accomplish this, paste the following command(s) in your terminal:
 
  GNOME_SHELL=/usr/share/gnome-shell
 
  SCRIPTS=`grep -lr get_can_suspend $GNOME_SHELL/js`
 
  for FILE in $SCRIPTS ; do
 
        sed -r -i -e 's/[^= ]+.get_can_suspend\(\)/false/' "$FILE"
 
  done
 
 
 
The above change does not persist after a GNOME version update, however. A more perennial solution is to add the code above in some gdm or system startup script (eg: /etc/rc.local), to keep the "suspend" option disabled after updates.
 
 
 
Alternatively you can install the GNOME shell extension {{ic|alternative status menu}} in package {{Pkg|gnome-shell-extension-alternative-status-menu}}.
 
 
 
==== Eliminate delay when logging out ====
 
 
 
The following tweak removes the confirmation dialog and sixty second delay for logging out.
 
 
 
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.
 
 
 
$ gsettings set org.gnome.SessionManager logout-prompt 'false'
 
 
 
==== Show system monitor ====
 
 
 
Install the {{AUR|gnome-shell-system-monitor-applet-git}} extension available in the [[AUR]].
 
 
 
==== Show weather information ====
 
 
 
Install {{AUR|gnome-shell-extension-weather-git}} from [[AUR]].
 
 
 
=== Activity view ===
 
 
 
==== Remove entries from Applications view ====
 
 
 
Like other desktop environments, GNOME uses .desktop files to populate its Applications view. These text files are in '''{{ic|/usr/share/applications}}'''.  It is not possible to edit these files from a folder view ‒ Nautilus does not treat their icons as text files. Use a terminal to display or edit .desktop file entries.
 
 
 
# ls /usr/share/applications
 
# nano /usr/share/applications/foo.desktop
 
 
 
For system wide changes, edit files in '''{{ic|/usr/share/applications}}'''.  For local changes, make a copy of ''foo.desktop''  in your home folder.
 
 
 
$ cp /usr/share/applications/foo.desktop ~/.local/share/applications/
 
 
 
Edit .desktop files to fit your wishes.
 
 
 
{{Note|Removing a .desktop file does not uninstall an application, but instead removes its desktop integration: MIME types, shortcuts, and so forth.}}
 
 
 
The following command appends one line to a .desktop file and hides its associated icon from Applications view:
 
 
 
$ echo "NoDisplay=true" >> foo.desktop
 
 
 
==== Reduce application icon size ====
 
 
 
One awkward selection of the GNOME designers is their choice of large icons for Applications view. This view is painful when working with a small screen containing many large application icons. There is a way to reduce the icon size. It is done by editing the GNOME-Shell theme.
 
 
 
Edit system files directly (make a backup first) or copy theme files to your local folder and edit these files. For the default theme, edit  '''{{ic|/usr/share/gnome-shell/theme/gnome-shell.css}}'''
 
 
 
For user themes, edit '''{{ic|/usr/share/themes/<UserTheme>/gnome-shell/gnome-shell.css}}'''
 
 
 
Edit ''gnome-shell.css''  and replace the following values. Afterward, [[#Restarting_the_shell|restart the GNOME shell.]]
 
{{hc|gnome-shell.css|<nowiki>
 
.icon-grid {
 
    spacing: 18px;
 
    -shell-grid-item-size: 82px;
 
}
 
 
.icon-grid .overview-icon {
 
    icon-size: 48px;
 
}
 
</nowiki>}}
 
 
 
A cloned GNOME Shell theme with smaller icons is available [https://aur.archlinux.org/packages.php?ID=51586 on the AUR].
 
 
 
==== Disable Activity hot corner hovering ====
 
 
 
To disable automatic activity view when the hot corner is hovered, edit '''{{ic|/usr/share/gnome-shell/js/ui/layout.js}}''' (that was ''panel.js'' in Gnome 3.0.x) :
 
{{hc|layout.js|<nowiki>
 
this._corner = new Clutter.Rectangle({ name: 'hot-corner',
 
                                      width: 1,
 
                                      height: 1,
 
                                      opacity: 0,
 
                                      reactive: true });icon-size: 48px;
 
}
 
</nowiki>}}
 
and set ''reactive'' to ''false''. GNOME Shell needs to be restarted.
 
 
 
=== Titlebar ===
 
 
 
==== Reduce title bar height ====
 
Edit {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and change its value from 14 to 0, which gives windows a sleeker look. Then [[#Restarting_the_shell|Restart the GNOME shell.]]
 
 
 
To restore the original values, [[pacman|install]] the package {{Pkg|gnome-themes-standard}} from the [[Official Repositories|official repositories]].
 
 
 
==== Reorder titlebar buttons ====
 
 
 
At present this setting can be changed through '''dconf-editor.'''
 
 
 
For example, we move the close and minimize buttons to the left side of the titlebar. Open '''dconf-editor''' and locate the  '''''org.gnome.shell.overrides.button_layout'''''  key. Change its value to '''{{ic|close,minimize:}}'''  (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.
 
 
 
==== Hide titlebar when maximized ====
 
 
 
# sed -i -r 's|(<frame_geometry name="max")|\1 has_title="false"|' /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml
 
 
 
[[#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.
 
 
 
With suitable keybindings, you should be able to use {{Keypress|Alt+F5}}, {{Keypress|Alt+F10}} or {{Keypress|Alt+Space}} to remedy the situation.
 
 
 
To prevent {{ic|metacity-theme-3.xml}} from being overwritten each time package {{pkg|gnome-themes-standard}} is upgraded, add its name to {{ic|/etc/pacman.conf}} with {{ic|NoUpgrade}}.
 
 
 
{{hc|/etc/pacman.conf|<nowiki>... previous lines ...
 
 
 
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
 
# IgnorePkg  =
 
# IgnoreGroup =
 
 
 
NoUpgrade = usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml    # Do not add a leading slash to the path
 
 
 
... more lines ...</nowiki>}}
 
 
 
To restore original Adwaita theme values, install the {{pkg|gnome-themes-standard}} package.
 
 
 
=== Login screen ===
 
 
 
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$.}}
 
 
 
# xhost +
 
# 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. Either manually export the below two variables shown in the output of dbus-launch like this:
 
 
 
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38
 
$ export DBUS_SESSION_BUS_PID=4283
 
 
 
Or use the follow command:
 
 
 
$ `dbus-launch | sed "s/^/export /"`
 
 
 
Check to see if dconf-service is running and if not, start it like this
 
 
 
$ /usr/lib/dconf/dconf-service &
 
 
 
==== Login background image ====
 
 
 
Once session variables have been exported as explained above, you may issue commands to retrieve or set items used by GDM.
 
 
 
The easiest way to changes all the settings is by launching the Configuration Editor gui with the command
 
 
 
$ dconf-editor
 
 
 
The location of each setting is the same as in the command line style of configuration shown below:
 
 
 
The following is the command-line approach to retrieve or set the file name used for GDM's wallpaper.
 
{{bc|<nowiki>
 
$  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</nowiki>}}
 
{{Note|You must specify a file which user "gdm" has permission to read. GDM cannot read files in your home directory.}}
 
 
 
An alternative graphical interface to changing themes (gtk3, icons and cursor), the wallpaper and minor other settings of the GDM login screen, you can install {{aur|gdm3setup}} from AUR.
 
 
 
==== Larger font for login ====
 
 
 
This tweak enlarges the login font with a scaling factor. It is the same method employed by ''Accessibility Manager'' on the desktop.
 
 
You must [[#Login_screen|export the GDM session variables]] before performing this tweak.
 
 
 
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.interface text-scaling-factor '1.25'
 
 
 
==== Turning off the sound ====
 
 
 
This tweak disables the audible feedback heard when the system volume is adjusted (via keyboard) on the login screen. You must first export the GDM session variables.
 
 
 
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.sound event-sounds 'false'
 
 
 
If the above tweak does not work for you or you are unable to export the GDM session variables, there is always the easiest solution to the "ready sound" problem: mute or lower the sound while in GDM login screen using the media keys (if available) of your keyboard.
 
 
 
==== Make the power button interactive ====
 
 
 
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.]]
 
 
 
  $ GSETTINGS_BACKEND=dconf gsettings set org.gnome.settings-daemon.plugins.power button-power 'interactive'
 
  $ 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 ====
 
 
 
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.]]
 
 
 
=== Other tips ===
 
See [[GNOME Tips]].
 
 
 
== Miscellaneous settings ==
 
 
 
=== Automatic program launch upon logging in ===
 
 
 
Specify which programs start automatically after logging in using {{ic|gnome-session-properties}}.  This tool is part of the {{Pkg|gnome-session}} package.
 
 
 
$ gnome-session-properties
 
 
 
=== Activate NumLock upon logging in ===
 
 
 
[[pacman|Install]] {{Pkg|numlockx}} from the [[Official Repositories|official repositories]]. Then, add a start-up command to launch {{ic|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''
+
| Main Menu
 +
| Alacarte
 
|-
 
|-
| Comment:  ||  ''Turns on numlock.''
+
| [[GNOME/Document viewer|Document Viewer]]
|}
+
| Evince
 
 
This is not a system-wide appearance tweak. Repeat these steps for each user wishing to activate NumLock after logging in.
 
 
 
=== Move dialog windows ===
 
The default configuration for dialogs will not allow you to move them which causes problems in some cases. To change this you will need to use gconf-editor and change this setting:
 
 
 
/desktop/gnome/shell/windows/attach_modal_dialogs
 
 
 
After the change you will need to restart the shell for it to take affect.
 
 
 
=== 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.
 
 
 
Many extensions are collected and hosted by [https://extensions.gnome.org/ gnome.org]. They can be browsed and installed simply activating them in the browser.
 
 
 
Other 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.]
 
 
 
The [[Official Repositories|official repositories]] have 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
 
 
 
Other useful extensions provided in the [[AUR]]:
 
 
 
{| border="1"
 
| {{AUR|gnome-shell-extension-presentation-mode-git}} || Adds option to inhibit screensaver in the power menu (battery icon).
 
 
|-
 
|-
| {{AUR|gnome-shell-extension-weather-git}} || Displays weather notifications.
+
| Disk Usage Analyzer
 +
| Baobab
 
|-
 
|-
| {{AUR|gnome-shell-extension-alternative-status-menu-git}} || Adds "Hibernate" and "Power Off" to the status menu.
+
| Image Viewer
 +
| EoG (Eye of GNOME)
 
|-
 
|-
| {{AUR|gnome-shell-extension-theme-selector}} || Select a theme in the Activities overview.
+
| [[GNOME/Keyring|Passwords and Keys]]
To install a custom theme with GNOME Tweak Tool, you need to install the {{Pkg|gnome-shell-extension-user-theme}} package from the [[Official Repositories|official repositories]].
+
| Seahorse
 
|-
 
|-
|{{AUR|gnome-shell-frippery}} || An unofficial extension pack providing GNOME2 like features for GNOME3.
+
| GNOME Translation Editor
 +
| Gtranslator
 
|}
 
|}
  
[[#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.
+
== Configuration ==
  
=== Default file browser/replace Nautilus ===
+
The GNOME System Settings panel (''gnome-control-center'') and GNOME applications use the [[wikipedia:Dconf|dconf]] configuration system to store their settings.
  
You can lure GNOME to use another file browser by editing
+
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.
/usr/share/applications/nautilus.desktop
 
and replacing
 
Exec=nautilus %U
 
by your browser, for example :
 
Exec=thunar /
 
  
=== Default terminal ===
+
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.
  
{{ic|gsettings}} (which replaces {{ic|gconftool-2}}) is used to set the default terminal. The setting affects ''nautilus-open-terminal'' (a Nautilus extension).
+
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}}.
To make [[rxvt-unicode|urxvt]] the default, run:
 
  
gsettings set org.gnome.desktop.default-applications.terminal exec urxvtc
+
The configuration is usually performed user-specific, this section does not cover how to create configuration templates for multiple users.  
gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'-e'"
 
  
{{Note|The {{ic|-e}} flag is for executing a command. When ''nautilus-open-terminal'' invokes {{ic|urxvtc}}, it puts a {{ic|cd}} command at the end of the command line so that the new terminal starts in the directory you opened it from. Other terminals will require a different (perhaps empty) {{ic|exec-arg}}.}}
+
=== System settings ===
  
=== Middle mouse button ===
+
==== Color ====
  
By default, GNOME 3 disables middle mouse button emulation regardless of [[Xorg]] settings ('''Emulate3Buttons'''). To enable middle mouse button emulation use:
+
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.
  
$ gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true
+
==== Night Light ====
  
=== Display dimming ===
+
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:
  
By default GNOME 3 has a ten second idle timeout to dim the screen regardless of the battery and AC state:
+
$ gsettings set org.gnome.settings-daemon.plugins.color night-light-temperature 5000
  
gsettings get org.gnome.settings-daemon.plugins.power idle-dim-time
+
{{Tip|To change the daytime temperature in a Wayland session install [https://extensions.gnome.org/extension/1276/night-light-slider/ this extension].}}
  
To set a new value type the following
+
==== Date & time ====
  
gsettings set org.gnome.settings-daemon.plugins.power idle-dim-time <int>
+
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.  
  
where <int> is the value in seconds
+
To show the date in the top bar, execute:
  
=== xmonad ===
+
$ gsettings set org.gnome.desktop.interface clock-show-date true
  
[[xmonad]] is a tiling window manager.
+
Additionally, to show week numbers in the calendar opened on the top bar, execute:
  
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:
+
$ gsettings set org.gnome.desktop.calendar show-weekdate true
  
{{hc|/usr/share/gnome-session/sessions/xmonad.session|<nowiki>[GNOME Session]
+
==== Default applications ====
Name=Xmonad session
 
RequiredComponents=gnome-panel;gnome-settings-daemon;
 
RequiredProviders=windowmanager;notifications;
 
DefaultProvider-windowmanager=xmonad
 
DefaultProvider-notifications=notification-daemon</nowiki>}}
 
  
{{hc|/usr/share/xsessions/xmonad-gnome-session.desktop|<nowiki>[Desktop Entry]
+
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''.
Name=Xmonad GNOME
+
 
Comment=Tiling window manager
+
For other protocols and methods see [[Default applications]] for configuration.
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.
+
==== Mouse and touchpad ====
  
=== wmii ===
+
Most touchpad settings can be set from system settings via: ''Devices'' > ''Mouse & Touchpad''.
  
[[wmii]] is a tiling window manager.
+
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}}
  
You can use wmii with GNOME by [[#Enabling_fallback_mode|forcing fallback mode]] and creating three files:
+
{{hc|$ gsettings range org.gnome.desktop.peripherals.touchpad click-method|
 +
enum
 +
'default'
 +
'none'
 +
'areas'
 +
'fingers'}}
  
{{hc|/usr/share/applications/wmii.desktop|<nowiki>
+
to be set manually:
[Desktop Entry]
 
Version=1.0
 
Type=Application
 
Name=wmii
 
TryExec=wmii
 
Exec=wmii</nowiki>}}
 
  
{{hc|/usr/share/xsessions/gnome-wmii.desktop|<nowiki>
+
$ gsettings set org.gnome.desktop.peripherals.touchpad click-method 'fingers'
[Desktop Entry]
 
Name=GNOME-wmii
 
Comment=GNOME with wmii as window manager
 
TryExec=gnome-session
 
Exec=gnome-session --session=wmii
 
Type=Application</nowiki>}}
 
  
{{hc|/usr/share/gnome-session/sessions/wmii.session|<nowiki>
+
or via {{pkg|gnome-tweaks}}.
[GNOME Session]
 
Name=wmii
 
RequiredComponents=gnome-panel;gnome-settings-daemon;
 
RequiredProviders=windowmanager;notifications;
 
DefaultProvider-windowmanager=wmii
 
DefaultProvider-notifications=notification-daemon</nowiki>}}
 
  
The next time you log in, you should have the ability to choose ''GNOME-wmii'' as your session.
+
{{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].}}
  
The original info was taken from [http://makandra.com/notes/1367-running-the-awesome-window-manager-within-gnome running-the-awesome-window-manager-within-gnome], go there for info on awesome-gnome.
+
==== Network ====
  
Also it has info on how to:
+
[[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.
  
- create a per session (wmii, GNOME, GNOME-wmii, etc.) dconf database (useful if you ever plan on using regular GNOME)
+
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).
  
- Remove the bottom GNOME panel (with the task list)
+
{{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.}}
  
- Move the top panel (with the menus) to the bottom
+
==== Online accounts ====
  
- Untick the expand option
+
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].
  
- Set it to autohide
+
==== Search ====
  
== Hidden features ==
+
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.
  
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.
+
The Tracker database can be queried using the ''tracker-sparql'' command. View its manual page {{man|1|tracker-sparql}} for more information.
  
=== Changing hotkeys ===
+
=== Advanced settings ===
  
Firstly, use '''dconf-editor''' to place a checkmark next to {{ic|can-change-accels}} in the key named ''org.gnome.desktop.interface.''
+
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.
  
We will replace the hotkey — a.k.a. keyboard shortcut, keyboard accelerator — used by Nautilus to move files to the trash folder.
+
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.  
  
The default assignment is a somewhat-awkward {{Keypress|Ctrl}} + {{Keypress|Delete}}.
+
==== Appearance ====
  
* Open Nautilus, select any file, and click '''Edit''' on the menu bar.
+
===== Themes =====
* 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 {{ic|can-change-accels}} to prevent accidental hotkey changes.
+
GNOME uses Adwaita by default. To apply Adwaita dark only to GTK 2 applications use the following symlink:
  
=== Shutdown via the status menu ===
+
$ ln -s /usr/share/themes/Adwaita-dark ~/.themes/Adwaita
  
Currently, the 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 {{Keypress|Alt}} key so that the '''''Suspend'''''  item changes to '''''Power Off'''''. The subsequent dialog allows you to shut down or restart your system.
+
To select new themes (move them to the appropriate directory and) use GNOME Tweaks or the GSettings commands below:
  
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.
+
For the GTK theme:
  
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.
+
$ gsettings set org.gnome.desktop.interface gtk-theme ''theme-name''
  
== Integrated messaging (Empathy) ==
+
For the icon theme:
  
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.
+
$ gsettings set org.gnome.desktop.interface icon-theme ''theme-name''
  
These packages are not included in default Arch GNOME installs. You can install the Telepathy and optionally any backends with:
+
{{Note|The window manager theme follows the GTK theme. Using {{ic|org.gnome.desktop.wm.preferences theme}} is deprecated and ignored.}}
  
# pacman -S telepathy
+
See [[GTK#Themes]] and [[Icons#Manually]].
  
Without telepathy, Empathy will not open the account management dialog and can get stuck in this state. If this happens -- even after quitting Empathy cleanly -- the /usr/bin/empathy-accounts application can remain running and will need to be killed before you can add any new accounts.
+
===== Titlebar height =====
  
View descriptions of telepathy components on the [http://telepathy.freedesktop.org/wiki/Components Freedesktop.org Telepathy Wiki.]
+
{{Note|Applying this configuration shrinks the titlebar of the GNOME-terminal and Chromium, but does not appear to affect the Nautilus titlebar height.}}
  
== Enabling fallback mode ==
+
{{hc|~/.config/gtk-3.0/gtk.css|
 +
headerbar.default-decoration {
 +
padding-top: 0px;
 +
padding-bottom: 0px;
 +
min-height: 0px;
 +
font-size: 0.6em;
 +
}
  
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.
+
headerbar.default-decoration button.titlebutton {
 +
padding: 0px;
 +
min-height: 0px;
 +
}
 +
}}
  
If you wish to enable fallback mode while still having '''gnome-shell''' installed, make the following system change:
+
See [https://ask.fedoraproject.org/en/question/10035/shrink-title-bar/?answer=86149#post-id-86149] for more information.
  
Open '''gnome-control-center.''' Click the ''System Info'' icon. Click Graphics. Change ''Forced Fallback Mode'' to {{ic|ON.}}
+
===== Titlebar button order =====
  
You can alternatively choose the type of session from a terminal with a ''gsettings'' command:
+
To set the order for the GNOME window manager (Mutter, Metacity):
  
  $ gsettings set org.gnome.desktop.session session-name 'gnome-fallback'
+
  $ gsettings set org.gnome.desktop.wm.preferences button-layout ':minimize,maximize,close'
  
You may want to log out after making the change. You will see the chosen type of session upon your next login.
+
{{Tip|The colon indicates which side of the titlebar the window buttons will appear.}}
  
To disable forced-fallback mode (that is, launch the normal GNOME Shell) use a value of 'gnome' instead of 'gnome-fallback'.
+
===== Hide titlebar when maximized =====
  
== Troubleshooting ==
+
* [[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.
  
=== GNOME login takes a very long time ===
+
===== GNOME Shell themes =====
  
See if you enabled ''PulseAudio Network'' settings in '''paprefs'''. When any network audio settings are enabled, GNOME hangs about a minute after logging in.
+
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.
  
One solution is to create a new user account and log in to that account. Another solution is to move your {{ic|~/.gconf}}, {{ic|~/.gconfd}} and {{ic|~/.conf/dconf}} folders to a holding area. Log in again to see if the delay is gone.
+
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].
  
If the excessive delay is gone, determine which setting causes the delay using trial-and-error.
+
===== Icons on menu =====
  
=== When an extension breaks GNOME ===
+
The default GNOME schema doesn't display any icon on menus. To display icons on menus, issue the following command.
  
When enabling shell extensions causes GNOME breakage, you should first remove the ''user-theme'' and ''auto-move-windows'' extensions from their installation directory.
+
$ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/ButtonImages': <1>, 'Gtk/MenuImages': <1>}"
  
The installation directory could be one of  '''{{ic|~/.local/share/gnome‑shell/extensions,}}''' '''{{ic|/usr/share/gnome‑shell/extensions,}}''' or '''{{ic|/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.
+
==== Apps grid folders ====
  
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.]
+
{{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.}}
  
=== Extensions do not work after GNOME 3 update ===
+
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:
  
Locate the folder where your extensions are installed. It might be '''{{ic|~/.local/share/gnome-shell/extensions}}''' or '''{{ic|/usr/share/gnome-shell/extensions}}'''.
+
['Utilities', 'Sundry']
  
Edit each occurrence of  '''{{ic|metadata.json}}'''  which appears in each extension sub-folder.
+
Add applications using {{ic|gsettings}}:
 
 
{| border="0"
 
| Insert: || '''{{ic|"shell-version": ["3.0"]}}'''
 
|-
 
| Instead of (for example):  || '''{{ic|"shell-version": ["3.0.1"]}}'''
 
|-
 
| You might instead use: || '''{{ic|"shell-version": ["3.0.0", "3.0.1", "3.0.2"]}}'''
 
|}
 
  
   
+
  $ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ apps "['alacarte.desktop', 'dconf-editor.desktop']"
'''"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 ===
+
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}}.
  
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.
+
To name the folder (if it has no name that appears at the top of the applications):
  
Open ''dconf-editor'' and uncheck '''{{ic|lock-use-screensaver}}'''  in the key named  ''org.gnome.power-manager.''
+
  $ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ name "Sundry"
 
# gsettings set org.gnome.power-manager lock-use-screensaver 'false'
 
  
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]
+
Applications can also be sorted by their category (specified in their ''.desktop'' file):
  
=== Keyboard Shortcut do not work with only conky running ===
+
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ categories "['Office']"
The gnome-shell keyboard shortcuts like Alt+F2,Alt+F1 and the media key shortcuts do not work if conky is the only program running. However if another application like gedit is running then the keyboard shortcuts work.
 
  
solution: edit .conkyrc
+
If certain applications matching a category are not wanted in a certain folder, exclusions can be set:
  
  own_window yes
+
  $ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ excluded-apps "['libreoffice-draw.desktop']"
own_window_transparent yes
 
own_window_argb_visual yes
 
own_window_type dock
 
own_window_class Conky
 
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
 
  
=== GTK2+ apps show segfaults and fail to launch ===
+
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].
  
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:
+
==== Autostart ====
  
{{bc| (firefox-bin:14345): GLib-GObject-WARNING **: invalid (NULL) pointer instance
+
GNOME implements [[XDG Autostart]].
  
(firefox-bin:14345): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
+
The {{Pkg|gnome-tweaks}} allows managing autostart-entries.
(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
 
}}
 
  
The current workaround is to remove '''oxygen-gtk''' from the system and use a different theme for applications.
+
{{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].}}
  
=== ATI Catalyst driver creates glitches and artifacts ===
+
{{Note|The deprecated ''gnome-session-properties'' dialog can be added by [[install]]ing the {{AUR|gnome-session-properties}} package.}}
  
For the moment, Catalyst is not supposed 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.
+
==== Desktop ====
  
{{Note|1=Fix is promised with Catalyst 11.9. See http://ati.cchtml.com/show_bug.cgi?id=99 }}
+
===== Icons on the Desktop =====
  
=== xf86-video-ati driver: flickers from time to time ===
+
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].
  
If you use that driver, your desktop might flicker a lot when you hover the bottom right corner, and also when you start up gdm.
+
===== Lock screen and background =====
Write the following in your '''{{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}''' and see if it works then:
 
  
Section "Device"
+
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.
        Identifier "Radeon"
 
        Driver "radeon"
 
        Option "EnablePageFlip" "off"
 
EndSection
 
  
=== xf86-video-intel driver "tears" regardless if VSYNC Is enabled or not ===
+
For the desktop background:
Just stick the following into /etc/environment:
 
  
CLUTTER_PAINT=disable-clipped-redraws:disable-culling
+
$ gsettings set org.gnome.desktop.background picture-uri 'file:///path/to/my/picture.jpg'
Refer to: https://bugzilla.gnome.org/show_bug.cgi?id=657071#c2 for more details.
 
  
=== Window opens behind other windows when using multiple monitors ===
+
For the lock screen background:
  
This is possibly a bug in gnome shell, and causes new windows to open behind others.
+
$ gsettings set org.gnome.desktop.screensaver picture-uri 'file:///path/to/my/picture.jpg'
Unchecking "workspaces_only_on_primary" in desktop/gnome/shell/windows using gconf-editor solves this problem.
 
  
=== Multiple monitors and dock extension ===
+
===== Disable top left hot corner =====
  
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.
+
You can disable the top left hot corner with the {{AUR|gnome-shell-extension-no-topleft-hot-corner}} package.
  
Edit '''/usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js''' and locate this line in the source:
+
==== Extensions ====
  
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);
+
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}}.
  
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.
+
{{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.}}
  
this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);
+
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).
  
=== No event sounds for Empathy and other programs ===
+
To list currently enabled extensions:
  
If you are using [[OSS]], you may want to install {{AUR|libcanberra-oss}} from the [[AUR]].
+
$ gsettings get org.gnome.shell enabled-extensions
  
=== Editing hotkeys via can-change-accels fails ===
+
For more information about GNOME shell extensions, see [https://extensions.gnome.org/about/].
  
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 {{ic|~/.config/Thunar/accels.scm}}, whereas Nautilus's is located at {{ic|~/.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.
+
==== Fonts ====
  
=== Panels do not respond to right-click in fallback mode ===
+
{{Tip|If you set the ''Scaling factor'' to a value above 1.00, the Accessibility menu will be automatically enabled.}}
  
Check Configuration Editor: /apps/metacity/general/mouse_button_modifier. This modifier key ({{Keypress|Alt}}, {{Keypress|Super}}, etc) used for normal windows is also used by panels and their applets.
+
Fonts can be set for Window titles, Interface (applications), Documents and Monospace. See the Fonts tab in the Tweaks for the relevant options.
  
=== "Show Desktop" keyboard shortcut does not work ===
+
For hinting, RGBA will likely be desired as this fits most monitors types, and if fonts appear too blocked reduce hinting to ''Slight'' or ''None''.
  
GNOME 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:
+
==== Input methods ====
  
System Settings --> Keyboard --> Shortcuts --> Navigation --> Hide all normal windows
+
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.
  
=== Nautilus does not start ===
+
==== Power ====
  
# Press {{keypress|ALT}}+{{keypress|F2}}
+
When you are using a laptop you might want to alter the following settings:
# Enter {{ic|gnome-tweak-tool}}
 
# Select the ''File Manager'' tab.
 
# Locate option ''Have file manager handle the desktop'' and assure it is toggled '''off'''.
 
  
=== Epiphany does not play Flash videos ===
+
$ 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''
  
Adobe Flash Player is buggy and does not work directly in Epiphany. See [[Epiphany#Flash]] for a workaround involving nspluginwrapper.
+
To keep the monitor active when the lid is closed:
  
=== Unable to apply stored configuration for monitors ===
+
$ gsettings set org.gnome.settings-daemon.plugins.xrandr default-monitors-setup do-nothing
  
If you encounter this message try to disable the xrandr gnome-settings-daemon plugin :
+
GNOME 3.24 deprecated the following settings:
  
  $ dconf write /org/gnome/settings-daemon/plugins/xrandr/active false
+
  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
  
=== Lock button fails to re-enable touchpad ===
+
===== Don't suspend, when laptop lid is closed =====
  
Some laptops have a touchpad lock button that disables the touchpad so that users can type without worrying about touching the touchpad. It appears currently that although GNOME can lock the touchpad by pressing this button, it cannot unlock it. If the touchpad gets locked you can do the following to unlock it.
+
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.
# Start a terminal. You can do this by pressing {{keypress|Alt+F2}}, then typing {{ic|gnome-terminal}} followed by pressing {{keypress|Enter}}.
 
# Type in the following command
 
$ xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 1
 
  
=== Ctrl+v pastes path instead of file in Nautilus ===
+
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 are affected by this issue, edit {{ic|~/.gnome2/accels/nautilus}} where you can find two lines for {{Keypress|Ctrl+v}}:
+
===== Change critical battery level action =====
{{hc|~/.gnome2/accels/nautilus|<nowiki>
 
(gtk_accel_path "<Actions>/DirViewActions/Paste" "<Control>v")
 
...
 
(gtk_accel_path "<Actions>/ClipboardActions/Paste" "<Control>v")
 
</nowiki>}}
 
  
The issue appears to stem from the second entry. Deleting that line may fix the issue temporarily. You might have to re-apply this fix after an update.
+
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.
  
An alternative is to assign a different key combination to one of the actions.
+
{{hc|head=/etc/UPower/UPower.conf|output=
 
+
PercentageLow=10
{{Note|This issue seems to be fixed since GNOME 3.2.x.}}
+
PercentageCritical=3
 
+
PercentageAction=2
=== Unable to connect to secured Wi-Fi networks ===
+
CriticalPowerAction=HybridSleep
 
+
}}
You can see the network connections listing, but choosing an encrypted network fails to show a dialog for key entry. You may need to [[pacman|install]] {{Pkg|network-manager-applet}}. See [[NetworkManager#GNOME|GNOME NetworkManager setup]].
 
 
 
=== "Any command has been defined 33" ===
 
 
 
When you press the {{Keypress|Print Screen}} key (sometimes labeled {{Keypress|PrntScr}} or {{Keypress|PrtSc}}) to take a screenshot, and you got "Any command has been defined 33", [[pacman|install]] {{Pkg|metacity}}.
 
 
 
=== GDM and GNOME use X11 cursors ===
 
 
 
To fix this issue, become root and put the following into {{ic|/usr/share/icons/default/index.theme}} (creating the directory {{ic|/usr/share/icons/default}} if necessary):
 
{{hc|/usr/share/icons/default/index.theme|<nowiki>
 
[Icon Theme]
 
Inherits=Adwaita
 
</nowiki>}}
 
 
 
Note: Instead of "Adwaita", you can choose another cursor theme (e.g. Human).
 
Alternatively, you can install {{AUR|gnome-cursors-fix}} from the [[AUR]].
 
 
 
=== Tracker & Documents don't list any local files ===
 
  
In order for Tracker (and, therefore, Documents) to detect your local files, they must be stored in directories that it knows of. If your documents are contained in one of the usual XDG standard directories (i.e. "Documents" or "Music"), you should install [https://www.archlinux.org/packages/extra/x86_64/xdg-user-dirs/ xdg-user-dirs] and run:
+
=== Use a different window manager ===
  
  # xdg-user-dirs-update
+
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.
  
This will create all of the usual XDG home directories if they don't already exist and it will create the config file definining these directories that Tracker and Documents depend upon.
+
== See also ==
  
== External links ==
+
* [https://www.gnome.org/ Official Website]
* [http://www.gnome.org/ The Official Website of GNOME]
+
* [[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 18:31, 19 August 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