Difference between revisions of "GNOME"

From ArchWiki
Jump to: navigation, search
(Starting GNOME: xinitrc covers the logind/ck session now)
m (Online accounts: I fixed the broken link.)
 
(818 intermediate revisions by more than 100 users not shown)
Line 1: Line 1:
[[Category:Desktop environments]]
+
[[Category:GNOME]]
 
[[cs:GNOME]]
 
[[cs:GNOME]]
 
[[de:GNOME]]
 
[[de:GNOME]]
Line 5: Line 5:
 
[[fr:GNOME]]
 
[[fr:GNOME]]
 
[[it:GNOME]]
 
[[it:GNOME]]
 +
[[ja:GNOME]]
 
[[nl:GNOME]]
 
[[nl:GNOME]]
 
[[pl:GNOME]]
 
[[pl:GNOME]]
Line 11: Line 12:
 
[[sr:GNOME]]
 
[[sr:GNOME]]
 
[[th:GNOME]]
 
[[th:GNOME]]
[[tr:Gnome_Masaüstü_Ortamı]]
+
[[tr:Gnome Masaüstü Ortamı]]
 
[[uk:GNOME]]
 
[[uk:GNOME]]
 
[[zh-CN:GNOME]]
 
[[zh-CN:GNOME]]
 
[[zh-TW:GNOME]]
 
[[zh-TW:GNOME]]
{{Article summary start}}
+
{{Related articles start}}
{{Article summary text|GNOME 3 provides a modern desktop, rewritten from scratch, using the GTK3+ toolkit.}}
+
{{Related|Desktop environment}}
{{Article summary heading|Overview}}
+
{{Related|Display manager}}
{{Article summary text|{{Graphical user interface overview}}}}
+
{{Related|Window manager}}
{{Article summary heading|Related}}
+
{{Related|GTK+}}
{{Article summary wiki|GTK+}}
+
{{Related|GDM}}
{{Article summary wiki|GDM}}
+
{{Related|GNOME/Tips and tricks}}
{{Article summary wiki|Nautilus}}
+
{{Related|GNOME/Troubleshooting}}
{{Article summary end}}
+
{{Related|GNOME/Files}}
 +
{{Related|GNOME/Gedit}}
 +
{{Related|GNOME/Web}}
 +
{{Related|GNOME/Evolution}}
 +
{{Related|GNOME/Flashback}}
 +
{{Related|GNOME/Keyring}}
 +
{{Related|Cinnamon}}
 +
{{Related|MATE}}
 +
{{Related|Official repositories#gnome-unstable}}
 +
{{Related articles end}}
  
From [http://www.gnome.org/about/ About Us | GNOME]:
+
GNOME (pronounced ''gah-nohm'' or ''nohm'') 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 [[Wikipedia:GNU Project|GNU Project]].
  
:''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:
+
* {{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.
  
*'''GNOME Shell''' is the new standard layout using the Mutter window manager. It acts as a composite manager for the desktop, employing hardware graphics acceleration to provide effects aimed at reducing screen clutter.
+
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}}.
  
*'''fallback mode''' is similar to GNOME 2, it uses gnome-panel and Metacity instead of gnome-shell/Mutter. No hardware acceleration is required to run fallback mode.
+
{{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-session automatically detects if your computer is incapable of running GNOME Shell and starts fallback mode when appropriate. When you are on fallback mode you can still replace GNOME's default window manager with your preferred one.
+
=== Additional packages ===
  
==Installation==
+
These packages are not in the above mentioned groups:
  
GNOME 3 is available in the [[official repositories]] and can be [[pacman|installed]] with two groups of packages:
+
* {{App|[[Wikipedia:GNOME Boxes|Boxes]]|A simple user interface to access [[libvirt]] virtual machines.|https://wiki.gnome.org/Apps/Boxes|{{Pkg|gnome-boxes}}}}
*{{Grp|gnome}} contains the core desktop environment and applications required for the standard GNOME experience.
+
* {{App|GNOME Initial Setup|A simple, easy, and safe way to prepare a new system.|https://github.com/GNOME/gnome-initial-setup|{{Pkg|gnome-initial-setup}}}}
 +
* {{App|GNOME PackageKit|Collection of graphical tools for PackageKit to be used in the GNOME desktop.|https://github.com/GNOME/gnome-packagekit|{{Pkg|gnome-packagekit}}}}
 +
* {{App|[[Wikipedia:Nemiver|Nemiver]]|A C/C++ debugger.|https://wiki.gnome.org/Apps/Nemiver|{{Pkg|nemiver}}}}
 +
* {{App|[[Wikipedia:GNOME Software|Software]]|Lets you install and update applications and system extensions.|https://wiki.gnome.org/Apps/Software/|{{Pkg|gnome-software}}}}
  
*{{Grp|gnome-extra}} contains various optional tools such as a media player, a calculator, an editor and other non-critical applications that go well with the GNOME desktop. Installing this group is optional.
+
== GNOME Sessions ==
  
Note that installing only {{Grp|gnome-extra}} will not pull the whole {{Grp|gnome}} group by dependencies: if you really want everything you must explicitly install both groups.
+
GNOME has three available sessions, all using GNOME Shell.
  
===D-Bus daemon===
+
*'''GNOME''' is the default, innovative layout.
 +
*'''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 Wayland''' runs GNOME Shell using the new Wayland protocol. Traditional X applications are run through Xwayland.
  
The GNOME desktop requires the D-Bus daemon. Refer to the [[D-Bus]] article for setup instructions.
+
== Starting GNOME ==
  
=== Starting GNOME ===
+
GNOME can be started either graphically, using a [[display manager]], or manually from the console.  For optimal desktop integration, using [[GDM]] (the GNOME Display manager) is recommended. Note that [[enabling]] a display manager (such as GDM) means that Xorg will run with root rights.
  
'''Graphical log-in'''
+
{{Note|Support for screen locking in GNOME is provided by GDM. If GNOME is not started using GDM, you will have to use another screen locker to provide this functionality - see [[List of applications/Security#Screen lockers]].}}
  
For the best desktop integration, login manager '''GDM''' is recommended. Other login managers can be used in place of GDM. Check out the [[Display_Manager|wiki article on display managers]] to learn how desktop environments are started.
+
=== Graphically ===
  
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.
+
Select the session: ''GNOME'', ''GNOME Classic'' or ''GNOME on Wayland'' from the display manager's session menu.
  
{{Tip|Refer to the [[GDM]] article for installation and configuration instructions.}}
+
=== Manually ===
  
'''Starting GNOME manually'''
+
* For the standard GNOME session, add to the {{ic|~/.xinitrc}} file: {{ic|exec gnome-session}}.
 +
* 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>}}
  
If you prefer to start GNOME manually from the console, add the following line to your {{ic|~/.xinitrc}} file:
+
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]].
{{hc|~/.xinitrc|<nowiki>
+
exec ck-launch-session gnome-session
+
</nowiki>}}
+
  
After the {{ic|exec}} command is placed, GNOME can be launched by typing {{ic|startx}}.
+
{{Note|GNOME on Wayland requires the {{Pkg|xorg-server-xwayland}} package, and '''cannot''' be started using ''startx'' and {{ic|~/.xinitrc}}. Instead, run {{ic|gnome-session --session&#61;gnome-wayland}}. For more information, see [[Wayland]].}}
  
See [[xinitrc]] for details, such as preserving the logind (and/or consolekit) session.
+
=== GNOME applications in Wayland ===
  
== Using the shell ==
+
Currently, by default, GNOME applications will be run as traditional X applications through Xwayland. To test GNOME applications with Wayland, use the command line to run the application and prefix the command with {{ic|env GDK_BACKEND&#61;'wayland,x11' <command>}}.
  
=== GNOME cheat sheet ===
+
{{Note|Setting a global Wayland environment, by running {{ic|env GDK_BACKEND&#61;wayland gnome-session --session&#61;gnome-wayland}}, currently does not work. For workarounds, see [[GNOME/Troubleshooting#Setting global Wayland environment with an environment variable]].}}
  
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.
+
See the current status of Wayland on GNOME at [https://wiki.gnome.org/Initiatives/Wayland/Applications/ GNOME Applications under Wayland].
  
=== Restarting the shell ===
+
== Navigation ==
  
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}}
+
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:
  
=== Shell crashes ===
+
* {{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.
  
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.
+
=== Legacy names ===
  
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.
+
{{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 freezes ===
+
{{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''.}}
  
Sometimes shell extensions freeze the GNOME Shell. In this case a possible strategy is to switch to another terminal via {{Keypress|Ctrl+Alt+F1}}, log in, and restart X by
+
{| class="wikitable"
 
+
! Current
# pkill X
+
! Legacy
 
+
|-
The GNOME Shell then restarts automatically.
+
| [[Files]]
 
+
| Nautilus
== 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
+
 
+
==== 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>}}
+
 
+
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.]
+
 
+
==== Icon theme ====
+
 
+
Using {{pkg|gnome-tweak-tool}} version 3.0.3 and later, you can place any icon theme you wish to use inside {{ic|~/.icons}}.
+
 
+
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:
+
 
+
$ cp -R /home/user/Desktop/my_icon_theme ~/.icons
+
 
+
The new theme  ''my_icon_theme''  is now selectable using {{ic|gnome-tweak-tool}} under ''interface''.
+
 
+
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.
+
 
+
{{hc|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini|<nowiki>... previous lines ...
+
 
+
gtk-icon-theme-name = my_new_icon_theme</nowiki>}}
+
 
+
=== Nautilus ===
+
 
+
''See [[Nautilus]].''
+
 
+
=== GNOME panel ===
+
 
+
==== Show date in top bar ====
+
 
+
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.
+
 
+
# gsettings set org.gnome.shell.clock show-date true
+
 
+
==== Hiding icons in the top bar ====
+
 
+
When doing a GNOME install, some unwanted icons might appear in the panel. These icons can be removed either with GNOME shell extensions or by manually editing the GNOME panel script.
+
 
+
===== Hiding icons with shell extensions =====
+
+
To remove the accessibility icon, one can use the https://extensions.gnome.org/extension/112/remove-accesibility/.
+
 
+
The best way to use extensions is installing them from the gnome extensions web page like the one above.
+
 
+
===== Manually editing 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}}
+
 
+
==== Show battery icon ====
+
+
To show the battery tray icon, [[pacman|install]] {{Pkg|gnome-power-manager}} from the [[Official Repositories|official repositories]].
+
 
+
==== 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 extensions|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
+
 
+
==== Change 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>
+
...
+
/* Application Launchers and Grid */
+
+
.icon-grid {
+
    spacing: 18px;
+
    -shell-grid-horizontal-item-size: 82px;
+
    -shell-grid-vertical-item-size: 82px;
+
}
+
+
.icon-grid .overview-icon {
+
    icon-size: 48px;
+
}
+
...
+
</nowiki>}}
+
 
+
==== Change dash icon size ====
+
GNOME's Activities view has a dash on the left hand side, the size of the icons in this dash will scale depending on the amount of icons set to display. The scaling can be manipulated or set to a constant icon size. To do so, edit {{ic|/usr/share/gnome-shell/js/ui/dash.js}}.
+
 
+
{{hc|dash.js|<nowiki>
+
...
+
 
+
        let iconSizes = [ 16, 22, 24, 32, 48, 64 ];
+
 
+
...
+
</nowiki>}}
+
 
+
==== Change switcher (alt-tab) icon size ====
+
GNOME comes with a built in task switcher, the size of the icons in this task switcher will scale depending on the amount of icons set to display. The scaling can be manipulated or set to a constant icon size. To do so, edit {{ic|/usr/share/gnome-shell/js/ui/altTab.js}}
+
 
+
{{hc|altTab.js|<nowiki>
+
...
+
 
+
        const iconSizes = [96, 64, 48, 32, 22];
+
 
+
...
+
</nowiki>}}
+
 
+
==== Change system tray icon size ====
+
GNOME comes with a built in system tray, visible when the mouse is hovered over the bottom right corner of the screen. The size of the icons in this tray is set to a fixed value of 24. To change this value, edit {{ic|/usr/share/gnome-shell/js/ui/messageTray.js}}
+
{{hc|messageTray.js|<nowiki>
+
...
+
 
+
    ICON_SIZE: 24,
+
 
+
...
+
</nowiki>}}
+
 
+
==== 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 {{ic|reactive}} to {{ic|false}}. GNOME Shell needs to be restarted.
+
 
+
=== Titlebar ===
+
 
+
==== Reduce title bar height ====
+
* ''' global''' - edit {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and  and reduce its value to a minimum of {{ic|0}}.
+
* '''user-only''' - copy {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}} to {{ic|/home/$USER/.themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and reduce its value to a minimum of {{ic|0}}.
+
 
+
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]] or remove {{ic|/home/$USER/.themes/Adwaita/metacity-1/metacity-theme-3.xml}}
+
 
+
==== 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 ===
+
{{Merge|GDM}}
+
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
+
 
+
{{Warning|Please note that the [[Acpid|acpid]] daemon also handle the "power button" an "hibernate button" event. Running both systems at the same time may lead to unexpected behaviour.}}
+
 
+
==== 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
+
 
+
=== Editing applications menu ===
+
 
+
{{pkg|gnome-menus}} provides ''gmenu-simple-editor'' which can show/hide menu entries.
+
 
+
{{AUR|alacarte}} in the AUR provides a more complete menu editor for adding/editing menu entries.
+
 
+
=== Some 'System Settings' not preserved ===
+
 
+
GNOME 3 is using [[systemd]] (an init daemon for Linux) with more modern capabilities.  Previously GNOME programs were altered to use Arch's init functionalities to gather settings but either the maintenance required to do this or possibly this is because of a transitioning to the new init system (read more about this [https://bbs.archlinux.org/viewtopic.php?pid=1115208#p1115208 here]).  Areas that settings will not be preserved are '''Date and Time''' and adding ICC profiles in the '''Color''' menu and possibly others.
+
 
+
To gain the functionality back, [[systemd]] needs to be installed and the ''gdm.service'' and ''NetworkManager.service'' services need to be enabled.
+
 
+
=== 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.]
+
 
+
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.
+
| [[GNOME Web|Web]]
 +
| Epiphany
 
|-
 
|-
| {{AUR|gnome-shell-extension-alternative-status-menu-git}} || Adds "Hibernate" and "Power Off" to the status menu.
+
| Videos
 +
| Totem
 
|-
 
|-
| {{AUR|gnome-shell-extension-theme-selector}} || Select a theme in the Activities overview.
+
| Main Menu
To install a custom theme with GNOME Tweak Tool, you need to install the {{AUR|gnome-shell-extension-user-theme-git}} package from AUR.
+
| Alacarte
 
|-
 
|-
|{{AUR|gnome-shell-frippery}} || An unofficial extension pack providing GNOME2 like features for GNOME3.
+
| Document Viewer
 +
| Evince
 +
|-
 +
| Disk Usage Analyser
 +
| Baobab
 +
|-
 +
| Image Viewer
 +
| EoG (Eye of GNOME)
 +
|-
 +
| [[GNOME Keyring|Passwords and Keys]]
 +
| Seahorse
 
|}
 
|}
  
[[#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 desktop relies on a configuration database backend (DConf) to store system and application settings. The desktop comes with default configuration settings, installed applications add their own to the database. The basic configuration is done either via the GNOME System Settings panel (''gnome-control-center'') or the preferences of the individual applications. A direct configuration of the DConf database is always possible as well and performed with the ''gsettings'' command line tool. In particular it can be used to configure settings which are not exposed via the user interface.
  
You can lure GNOME to use another file browser by editing
+
GNOME settings are then applied by the GNOME Settings Daemon. Note that the daemon can be run outside of a GNOME session in order to apply GNOME configuration in a non-GNOME environment. Execute {{ic|nohup /usr/lib/gnome-settings-daemon/gnome-settings-daemon > /dev/null &}} to do so.
/usr/share/applications/nautilus.desktop
+
and replacing
+
Exec=nautilus %U
+
by your browser, for example :
+
Exec=thunar /
+
  
=== Default terminal ===
+
The configuration is usually performed per user and the rest of this section does not cover how to create configuration templates for a multi-user-system.
  
{{ic|gsettings}} (which replaces {{ic|gconftool-2}}) is used to set the default terminal. The setting affects ''nautilus-open-terminal'' (a Nautilus extension).
+
=== System settings ===
To make [[rxvt-unicode|urxvt]] the default, run:
+
  
gsettings set org.gnome.desktop.default-applications.terminal exec urxvtc
+
Control panel settings of note.
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}}.}}
+
==== Color ====
  
=== Middle mouse button ===
+
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.
  
By default, GNOME 3 disables middle mouse button emulation regardless of [[Xorg]] settings ('''Emulate3Buttons'''). To enable middle mouse button emulation use:
+
==== Date & time ====
  
$ gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true
+
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.  
  
=== Display dimming ===
+
To show the date in the top bar, execute:
  
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.desktop.interface clock-show-date true
  
  gsettings get org.gnome.settings-daemon.plugins.power idle-dim-time
+
Additionally, to show week numbers in the Shell calendar, execute:
 +
  $ gsettings set org.gnome.shell.calendar show-weekdate true
  
To set a new value type the following
+
==== Default applications ====
  
gsettings set org.gnome.settings-daemon.plugins.power idle-dim-time <int>
+
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: ''System'' > ''Details'' > ''Default applications''.  
 +
 
 +
For other protocols and methods see [[Default applications]] for configuration.  
  
where <int> is the value in seconds
+
==== Mouse and touchpad ====
  
=== Alternate window manager ===
+
To help reduce touchpad interference you may wish to implement the settings below:
  
You can use an alternate window manager with GNOME by [[#Enabling_fallback_mode|forcing fallback mode]] and creating two files:
+
* Disable touchpad while typing
 +
* Disable scrolling
 +
* Disable tap-to-click
  
{{Note|Xmonad is used as an example, but this works for other window managers.}}
+
{{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].}}
  
{{hc|/usr/share/gnome-session/sessions/xmonad.session|<nowiki>[GNOME Session]
+
==== Network ====
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]
+
[[NetworkManager]] is the native tool of the GNOME project to control network settings from the shell. It is installed by default as a dependency for {{Pkg|tracker}} package, which is a part of {{Grp|gnome}} group, and just needs to be [[NetworkManager#Enable NetworkManager|enabled]].
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.
+
While any other [[List_of_applications/Internet#Network_managers|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).
  
If there isn't a .desktop file for the window manager, you'll need to create one. Example for [[wmii]]:
+
==== Online accounts ====
  
{{hc|/usr/share/applications/wmii.desktop|<nowiki>
+
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].
[Desktop Entry]
+
Version=1.0
+
Type=Application
+
Name=wmii
+
TryExec=wmii
+
Exec=wmii</nowiki>}}
+
  
For more information, see [http://makandra.com/notes/1367-running-the-awesome-window-manager-within-gnome this article on running awesome as the window manager in GNOME].
+
==== 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 {{ic|man 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 Tweak Tool ({{Pkg|gnome-tweak-tool}}), 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 Tweak Tool 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+Delete}}.
+
==== Appearance ====
  
* Open Nautilus, select any file, and click '''Edit''' on the menu bar.
+
===== GTK+ themes and icon 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.
+
To install a new theme or icon set, add the relevant {{ic|~/.local/share/themes}} or {{ic|~/.local/share/icons}} respectively (add to {{ic|/usr/share/}} instead of {{ic|~/.local/share/}} for the themes to be available systemwide.)  They and other GUI settings can also be defined in {{ic|~/.config/gtk-3.0/settings.ini}}:
  
=== Shutdown via the status menu ===
+
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki>
 +
[Settings]
 +
gtk-theme-name = Adwaita
 +
# 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>}}
  
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.
+
Additional theme locations:
 +
* [http://www.deviantart.com/browse/all/customization/skins/linuxutil/desktopenv/gnome/gtk3/ DeviantArt].
 +
* [http://gnome-look.org/index.php?xcontentmode=167 gnome-look.org].
 +
* [https://aur.archlinux.org/packages.php?O=0&K=gtk3&do_Search=Go GTK3 themes in the AUR].
 +
* [https://aur.archlinux.org/packages.php?O=0&K=xcursor&do_Search=Go&PP=50&SB=v&SO=d Cursor themes in the AUR].
 +
* [https://aur.archlinux.org/packages.php?O=0&K=icon-theme&do_Search=Go&PP=50&SB=v&SO=d Icon themes in the AUR].
  
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.
+
Once installed, they can be selected using the GNOME Tweak Tool or GSettings - see below for GSettings commands:
  
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.
+
For the GTK+ theme:
 +
$ gsettings set org.gnome.desktop.interface gtk-theme ''theme-name''
  
== Integrated messaging (Empathy) ==
+
For the icon theme
 +
$ gsettings set org.gnome.desktop.interface icon-theme ''theme-name''
  
Empathy, the engine behind integrated messaging, and all system settings based on messaging accounts will not show up unless the {{grp|telepathy}} group of packages or at least one of the backends ({{pkg|telepathy-gabble}}, or {{pkg|telepathy-haze}}, for example) is installed.
+
====== Global dark theme ======
  
These packages are not included in default Arch GNOME installs. You can install the Telepathy and optionally any backends with:
+
GNOME will use the Adwaita light theme by default however a dark variant of this theme (called the Global Dark Theme) also exists and can be selected using the Tweak Tool or by editing the GTK+ 3 settings file - see [[GTK+#Dark theme variant]]. Some applications such as Image Viewer (''eog'') use the dark theme by default. It should be noted that the Global Dark Theme only works with GTK+ 3 applications; some GTK+ 3 applications may only have partial support for the Global Dark theme. Qt and GTK+ 2 support for the Global Dark Theme may be added in the future.
  
# pacman -S telepathy
+
===== Window manager themes =====
  
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 {{ic|/usr/bin/empathy-accounts}} application can remain running and will need to be killed before you can add any new accounts.
+
The window manager theme (the style of the window titlebars) can be set using the GNOME Tweak Tool or the following GSettings command:
 +
$ gsettings set org.gnome.desktop.wm.preferences theme ''theme-name''
  
View descriptions of telepathy components on the [http://telepathy.freedesktop.org/wiki/Components Freedesktop.org Telepathy Wiki.]
+
====== Titlebar height ======
  
== Forcing fallback mode ==
+
{{Note|Applying this configuration shrinks the titlebar of the GNOME-terminal and Chromium, but does not appear to affect the Nautilus titlebar height.}}
  
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.
+
{{hc|~/.config/gtk-3.0/gtk.css|
 +
headerbar.default-decoration {
 +
padding-top: 0px;
 +
padding-bottom: 0px;
 +
min-height: 0px;
 +
font-size: 0.6em;
 +
}
  
If you wish to enable fallback mode while still having '''gnome-shell''' installed, make the following system change:
+
headerbar.default-decoration button.titlebutton {
 +
padding: 0px;
 +
min-height: 0px;
 +
}
 +
}}
 +
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.wm.preferences button-layout ':minimize,maximize,close'
  
$ gsettings set org.gnome.desktop.session session-name 'gnome-fallback'
+
{{Tip|The colon indicates which side of the titlebar the window buttons will appear.}}
  
You may want to log out after making the change. You will see the chosen type of session upon your next login.
+
====== Hide titlebar when maximized ======
  
To disable forced-fallback mode (that is, launch the normal GNOME Shell) use a value of 'gnome' instead of 'gnome-fallback'.
+
*[[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.
  
== Troubleshooting ==
+
*[[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.
  
=== When an extension breaks GNOME ===
+
*[[Install]] {{AUR|maximus}}. To start the application, execute ''maximus'' from a terminal. When running, the daemon will automatically maximize windows. It will undecorate maximized windows and redecorate them when they are unmaximized. If you do not want all windows to start maximized, run {{ic|maximus -m}} instead. Note that this will only work with windows decorated by the window manager; applications that use client-side decoration such as [[GNOME Files]] will not be undecorated when maximized.
  
When enabling shell extensions causes GNOME breakage, you should first remove the ''user-theme'' and ''auto-move-windows'' extensions from their installation directory.
+
===== GNOME Shell themes =====
  
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.
+
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 Tweak Tool or through the [https://extensions.gnome.org GNOME Shell Extensions] webpage. Shell themes can then be loaded and selected using the GNOME Tweak Tool.
  
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.]
+
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].
  
=== Extensions do not work after GNOME 3 update ===
+
Shell themes can also be downloaded from [http://gnome-look.org/index.php?xcontentmode=191 gnome-look.org].
  
Locate the folder where your extensions are installed. It might be '''{{ic|~/.local/share/gnome-shell/extensions}}''' or '''{{ic|/usr/share/gnome-shell/extensions}}'''.
+
===== Icons on menu =====
  
Edit each occurrence of  '''{{ic|metadata.json}}'''  which appears in each extension sub-folder.  
+
The default GNOME schema doesn't display any icon on menus. To display icons on menus, issue the following command.
  
{| border="0"
+
$ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/ButtonImages': <1>, 'Gtk/MenuImages': <1>}"
| 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"]}}'''
+
|}
+
  
+
==== Desktop ====
'''"3.0"'''  is the best solution. It indicates the extension works with every  '''''3.0.x'''''  GNOME Shell version.
+
  
=== The "Windows" key ===
+
Various Desktop settings can be applied.
By default, this key is mapped to the "overlay-key" to launch the Overview. You can remove this key mapping to free up your {{ic|Windows Key}} (also called {{ic|Mod4}}), which GNOME calls {{ic|Super_L}}, by utilizing {{ic|gsettings}}.
+
  
Example:
+
===== Icons on the Desktop =====
{{ic| gsettings set org.gnome.mutter overlay-key 'Foo';}}.
+
You can leave out '''Foo''' to simply remove any binding to that function.
+
  
{{Note| GNOME also uses {{ic|Alt+F1}} to launch the Overview.}}
+
See [[GNOME/Files#Desktop Icons]].
  
=== Keyboard Shortcut do not work with only conky running ===
+
===== Lock screen and background =====
The gnome-shell keyboard shortcuts like {{keypress|Alt+F2}}, {{keypress|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
+
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.
  
own_window yes
+
For the desktop background:
own_window_transparent yes
+
  $ gsettings set org.gnome.desktop.background picture-uri 'file:///path/to/my/picture.jpg'
own_window_argb_visual yes
+
own_window_type dock
+
own_window_class Conky
+
  own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
+
  
=== ATI Catalyst driver creates glitches and artifacts ===
+
For the lock screen background
 +
$ gsettings set org.gnome.desktop.screensaver picture-uri 'file:///path/to/my/picture.jpg'
  
For the moment, Catalyst is not supposed to be used while running GNOME Shell. The open-source ATI driver, {{pkg|xf86-video-ati}}, however, seems to be working properly with the GNOME 3 composited desktop.
+
==== Extensions ====
  
{{Note|1=Fix is promised with Catalyst 11.9. See http://ati.cchtml.com/show_bug.cgi?id=99 }}
+
{{Note|The GNOME Shell browser plugin which allows users to install extensions from [https://extensions.gnome.org extensions.gnome.org] works out-of-the-box for browsers such as [[Firefox]] or [[GNOME/Web]]. For Google Chrome/Chromium, Opera and Vivaldi browsers, it is required to install {{AUR|chrome-gnome-shell-git}}.}}
  
=== xf86-video-ati driver: flickers from time to time ===
+
GNOME Shell can be customized with extensions per user or system-wide.
  
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.
+
The catalogue of extensions is available at [https://extensions.gnome.org extensions.gnome.org]. By a user they can be installed and activated in the browser by setting the switch in the top left of the screen to '''ON''' and clicking '''Install''' on the resulting dialog (if the extension in question is not installed). After installation it is shown in the [https://extensions.gnome.org/local/ extensions.gnome.org/local/] tab, which has to be visited as well to check for available updates. Installed extensions can also be enabled or disabled using {{Pkg|gnome-tweak-tool}}.
Write the following in your '''{{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}''' and see if it works then:
+
  
Section "Device"
+
More information about GNOME shell extensions is available on the [https://extensions.gnome.org/about/ GNOME Shell Extensions about page].
        Identifier "Radeon"
+
        Driver "radeon"
+
        Option "EnablePageFlip" "off"
+
EndSection
+
  
=== Window opens behind other windows when using multiple monitors ===
+
[[Installing]] extensions via a package makes them available for all users of the system and automates the update process.
  
This is possibly a bug in GNOME Shell which causes new windows to open behind others.
+
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).  
Unchecking "workspaces_only_on_primary" in desktop/gnome/shell/windows using gconf-editor solves this problem.
+
  
=== Multiple monitors and dock extension ===
+
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).
  
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.
+
==== Input methods ====
  
Edit {{ic|/usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js}} and locate this line in the source:
+
GNOME has integrated support for input methods 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.
  
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);
+
==== Fonts ====
  
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.
+
{{Tip|If you set the ''Scaling factor'' to a value above 1.00, the Accessibility menu will be automatically enabled.}}
  
this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);
+
Fonts can be set for Window titles, Interface (applications), Documents and Monospace. See the Fonts tab in the Tweak Tool for the relevant options.
  
=== No event sounds for Empathy and other programs ===
+
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''.
  
If you are using [[OSS]], you may want to install {{AUR|libcanberra-oss}} from the [[AUR]].
+
==== Startup applications ====
  
=== Editing hotkeys via can-change-accels fails ===
+
To start certain applications on login, copy the relevant {{ic|.desktop}} file from {{ic|/usr/share/applications/}} to {{ic|~/.config/autostart/}}.
  
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.
+
The {{Pkg|gnome-tweak-tool}} allows managing autostart-entries.
  
=== Panels do not respond to right-click in fallback mode ===
+
{{Tip|If the plus sign button in the Tweak Tool's Startup Applications section is unresponsive, try start the Tweak Tool from the terminal using the following command: {{ic|gnome-tweak-tool}}. See the following [https://bbs.archlinux.org/viewtopic.php?pid&#61;1413631#p1413631 forum thread].}}
  
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.
+
{{Note|The deprecated ''gnome-session-properties'' dialog can be added by [[install]]ing the {{AUR|gnome-session-properties}} package.}}
  
=== "Show Desktop" keyboard shortcut does not work ===
+
==== Power ====
  
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:
+
The basic power settings that may want to be altered (these example settings assume the user is using a laptop - change them as desired):
  
  System Settings --> Keyboard --> Shortcuts --> Navigation --> Hide all normal windows
+
  $ gsettings set org.gnome.settings-daemon.plugins.power button-power ''hibernate''
 +
$ 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.desktop.lockdown disable-lock-screen ''true''
  
=== Nautilus does not start ===
+
To keep a monitor active on lid close:
  
# Press {{keypress|Alt+F2}}
+
$ gsettings set org.gnome.settings-daemon.plugins.xrandr default-monitors-setup do-nothing
# 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 ===
+
===== Configure behaviour on lid switch close  =====
  
Adobe Flash Player is buggy and does not work directly in Epiphany. See [[Epiphany#Flash]] for a workaround involving nspluginwrapper.
+
The GNOME Tweak Tool can optionally ''inhibit'' the ''systemd'' setting for the lid close ACPI event.[http://ftp.gnome.org/pub/GNOME/sources/gnome-tweak-tool/3.17/gnome-tweak-tool-3.17.1.news] To ''inhibit'' the setting, start the Tweak Tool and, under the power tab, check the ''Don't suspend on lid close'' option. This means that the system will do nothing on lid close instead of suspending - the default behaviour. Checking the setting creates {{ic|~/.config/autostart/ignore-lid-switch-tweak.desktop}} which will autostart the Tweak Tool's inhibitor.
  
=== Unable to apply stored configuration for monitors ===
+
If you do not want the system to suspend or do nothing on lid close, you will need to ensure that the setting described above is '''not''' checked and then configure ''systemd'' with {{ic|1=HandleLidSwitch=''preferred_behaviour''}} as described in [[Power management#ACPI events]].
  
If you encounter this message try to disable the xrandr gnome-settings-daemon plugin :
+
===== Change critical battery level action =====
  
$ dconf write /org/gnome/settings-daemon/plugins/xrandr/active false
+
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.
  
=== Lock button fails to re-enable touchpad ===
+
{{hc|head=/etc/UPower/UPower.conf|output=
 +
PercentageLow=10
 +
PercentageCritical=3
 +
PercentageAction=2
 +
CriticalPowerAction=HybridSleep
 +
}}
  
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.
+
==== Sort applications into application (app) folders ====
# 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
+
  
=== Unable to connect to secured Wi-Fi networks ===
+
{{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 ctrl-c or run out of apps.}}
  
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]].
+
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:
  
=== "Any command has been defined 33" ===
+
['Utilities', 'Sundry']
  
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}}.
+
Add applications using {{ic|gsettings}}:
  
=== GDM and GNOME use X11 cursors ===
+
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ apps "['alacarte.desktop', 'dconf-editor.desktop']"
  
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):
+
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}}.
{{hc|/usr/share/icons/default/index.theme|<nowiki>
+
 
[Icon Theme]
+
To name the folder (if it has no name that appears at the top of the applications):
Inherits=Adwaita
+
 
</nowiki>}}
+
$ 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):
  
Note: Instead of "Adwaita", you can choose another cursor theme (e.g. Human).
+
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ categories "['Office']"
Alternatively, you can install {{AUR|gnome-cursors-fix}} from the [[AUR]].
+
  
=== Tracker & Documents don't list any local files ===
+
If certain applications matching a category are not wanted in a certain folder, exclusions can be set:
  
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:
+
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ excluded-apps "['libreoffice-draw.desktop']"
  
  # xdg-user-dirs-update
+
For further information, refer to the [https://git.gnome.org/browse/gsettings-desktop-schemas/tree/schemas/org.gnome.desktop.app-folders.gschema.xml.in app-folders schema].
  
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 ==
 
 
* [http://www.gnome.org/ The Official Website of GNOME]
 
* [http://www.gnome.org/ The Official Website of GNOME]
* [http://extensions.gnome.org/ Extensions for GNOME-shell]
+
* [https://extensions.gnome.org/ Extensions for GNOME-shell]
 +
* [https://wiki.gnome.org/Projects/GnomeShell/CheatSheet GNOME Shell Cheat Sheet], commands, keyboard shortcuts and other tips for using GNOME Shell.
 
* Themes, icons, and backgrounds:
 
* Themes, icons, and backgrounds:
 
** [http://art.gnome.org/ GNOME Art]
 
** [http://art.gnome.org/ GNOME Art]
Line 790: Line 420:
 
** [http://www.gnomefiles.org/ GNOME Files]
 
** [http://www.gnomefiles.org/ GNOME Files]
 
** [http://www.gnome.org/projects/ GNOME Project Listing]
 
** [http://www.gnome.org/projects/ GNOME Project Listing]
 +
* [http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html Customizing the GNOME Shell]
 +
* GNOME Source/Mirrors:
 +
** [https://git.gnome.org/browse/ GNOME Git Repository]
 +
** [https://github.com/GNOME GNOME Github Mirror]

Latest revision as of 12:23, 18 September 2016

GNOME (pronounced gah-nohm or nohm) 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.

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.

Additional packages

These packages are not in the above mentioned groups:

  • Boxes — A simple user interface to access libvirt virtual machines.
https://wiki.gnome.org/Apps/Boxes || gnome-boxes
  • GNOME Initial Setup — A simple, easy, and safe way to prepare a new system.
https://github.com/GNOME/gnome-initial-setup || gnome-initial-setup
  • GNOME PackageKit — Collection of graphical tools for PackageKit to be used in the GNOME desktop.
https://github.com/GNOME/gnome-packagekit || gnome-packagekit
https://wiki.gnome.org/Apps/Nemiver || nemiver
  • Software — Lets you install and update applications and system extensions.
https://wiki.gnome.org/Apps/Software/ || gnome-software

GNOME Sessions

GNOME has three available sessions, all using GNOME Shell.

  • GNOME is the default, innovative layout.
  • 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 Wayland runs GNOME Shell using the new Wayland protocol. Traditional X applications are run through Xwayland.

Starting GNOME

GNOME can be started either graphically, using a display manager, or manually from the console. For optimal desktop integration, using GDM (the GNOME Display manager) is recommended. Note that enabling a display manager (such as GDM) means that Xorg will run with root rights.

Note: Support for screen locking in GNOME is provided by GDM. If GNOME is not started using GDM, you will have to use another screen locker to provide this functionality - see List of applications/Security#Screen lockers.

Graphically

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

Manually

  • For the standard GNOME session, add to the ~/.xinitrc file: 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.

Note: GNOME on Wayland requires the xorg-server-xwayland package, and cannot be started using startx and ~/.xinitrc. Instead, run gnome-session --session=gnome-wayland. For more information, see Wayland.

GNOME applications in Wayland

Currently, by default, GNOME applications will be run as traditional X applications through Xwayland. To test GNOME applications with Wayland, use the command line to run the application and prefix the command with env GDK_BACKEND='wayland,x11' <command>.

Note: Setting a global Wayland environment, by running env GDK_BACKEND=wayland gnome-session --session=gnome-wayland, currently does not work. For workarounds, see GNOME/Troubleshooting#Setting global Wayland environment with an environment variable.

See the current status of Wayland on GNOME at GNOME Applications under Wayland.

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.

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

Configuration

The GNOME desktop relies on a configuration database backend (DConf) to store system and application settings. The desktop comes with default configuration settings, installed applications add their own to the database. The basic configuration is done either via the GNOME System Settings panel (gnome-control-center) or the preferences of the individual applications. A direct configuration of the DConf database is always possible as well and performed with the gsettings command line tool. In particular it can be used to configure settings which are not exposed via the user interface.

GNOME settings are then applied by the GNOME Settings Daemon. Note that the daemon can be run outside of a GNOME session in order to apply GNOME configuration in a non-GNOME environment. Execute nohup /usr/lib/gnome-settings-daemon/gnome-settings-daemon > /dev/null & to do so.

The configuration is usually performed per user and the rest of this section does not cover how to create configuration templates for a multi-user-system.

System settings

Control panel settings of note.

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.

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 Shell calendar, execute:

$ gsettings set org.gnome.shell.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: System > Details > Default applications.

For other protocols and methods see Default applications for configuration.

Mouse and touchpad

To help reduce touchpad interference you may wish to implement the settings below:

  • Disable touchpad while typing
  • Disable scrolling
  • Disable tap-to-click
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. It is installed by default as a dependency for tracker package, which is a part of gnome group, and just needs to be enabled.

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

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 man tracker-sparql 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 Tweak Tool (gnome-tweak-tool), 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 Tweak Tool 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

GTK+ themes and icon themes

To install a new theme or icon set, add the relevant ~/.local/share/themes or ~/.local/share/icons respectively (add to /usr/share/ instead of ~/.local/share/ for the themes to be available systemwide.) They and other GUI settings can also be defined in ~/.config/gtk-3.0/settings.ini:

~/.config/gtk-3.0/settings.ini
[Settings]
gtk-theme-name = Adwaita
# 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

Additional theme locations:

Once installed, they can be selected using the GNOME Tweak Tool or GSettings - see below for GSettings commands:

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
Global dark theme

GNOME will use the Adwaita light theme by default however a dark variant of this theme (called the Global Dark Theme) also exists and can be selected using the Tweak Tool or by editing the GTK+ 3 settings file - see GTK+#Dark theme variant. Some applications such as Image Viewer (eog) use the dark theme by default. It should be noted that the Global Dark Theme only works with GTK+ 3 applications; some GTK+ 3 applications may only have partial support for the Global Dark theme. Qt and GTK+ 2 support for the Global Dark Theme may be added in the future.

Window manager themes

The window manager theme (the style of the window titlebars) can be set using the GNOME Tweak Tool or the following GSettings command:

$ gsettings set org.gnome.desktop.wm.preferences theme theme-name
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
  • Install mutter-hide-legacy-decorationsAUR. 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 maximusAUR. To start the application, execute maximus from a terminal. When running, the daemon will automatically maximize windows. It will undecorate maximized windows and redecorate them when they are unmaximized. If you do not want all windows to start maximized, run maximus -m instead. Note that this will only work with windows decorated by the window manager; applications that use client-side decoration such as GNOME Files will not be undecorated 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 Tweak Tool or through the GNOME Shell Extensions webpage. Shell themes can then be loaded and selected using the GNOME Tweak Tool.

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

Desktop

Various Desktop settings can be applied.

Icons on the Desktop

See GNOME/Files#Desktop Icons.

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'

Extensions

Note: The GNOME Shell browser plugin which allows users to install extensions from extensions.gnome.org works out-of-the-box for browsers such as Firefox or GNOME/Web. For Google Chrome/Chromium, Opera and Vivaldi browsers, it is required to install chrome-gnome-shell-gitAUR.

GNOME Shell can be customized with extensions per user or system-wide.

The catalogue of extensions is available at extensions.gnome.org. By a user they can be installed and activated in the browser by setting the switch in the top left of the screen to ON and clicking Install on the resulting dialog (if the extension in question is not installed). After installation it is shown in the extensions.gnome.org/local/ tab, which has to be visited as well to check for available updates. Installed extensions can also be enabled or disabled using gnome-tweak-tool.

More information about GNOME shell extensions is available on the GNOME Shell Extensions about page.

Installing extensions via a package 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).

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.

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

Startup applications

To start certain applications on login, copy the relevant .desktop file from /usr/share/applications/ to ~/.config/autostart/.

The gnome-tweak-tool allows managing autostart-entries.

Tip: If the plus sign button in the Tweak Tool's Startup Applications section is unresponsive, try start the Tweak Tool from the terminal using the following command: gnome-tweak-tool. See the following forum thread.
Note: The deprecated gnome-session-properties dialog can be added by installing the gnome-session-propertiesAUR package.

Power

The basic power settings that may want to be altered (these example settings assume the user is using a laptop - change them as desired):

$ gsettings set org.gnome.settings-daemon.plugins.power button-power hibernate
$ 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.desktop.lockdown disable-lock-screen true

To keep a monitor active on lid close:

$ gsettings set org.gnome.settings-daemon.plugins.xrandr default-monitors-setup do-nothing
Configure behaviour on lid switch close

The GNOME Tweak Tool can optionally inhibit the systemd setting for the lid close ACPI event.[4] To inhibit the setting, start the Tweak Tool and, under the power tab, check the Don't suspend on lid close option. This means that the system will do nothing on lid close instead of suspending - the default behaviour. Checking the setting creates ~/.config/autostart/ignore-lid-switch-tweak.desktop which will autostart the Tweak Tool's inhibitor.

If you do not want the system to suspend or do nothing on lid close, you will need to ensure that the setting described above is not checked and then configure systemd with HandleLidSwitch=preferred_behaviour 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

Sort applications into application (app) 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 further information, refer to the app-folders schema.

See also