https://wiki.archlinux.org/api.php?action=feedcontributions&user=I05&feedformat=atomArchWiki - User contributions [en]2024-03-28T22:23:25ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=GDM&diff=563466GDM2019-01-16T12:33:58Z<p>I05: Cosmetic change</p>
<hr />
<div>[[Category:Display managers]]<br />
[[Category:GNOME]]<br />
[[es:GDM]]<br />
[[fr:GDM]]<br />
[[ja:GDM]]<br />
[[pt:GDM]]<br />
[[zh-hans:GDM]]<br />
{{Related articles start}}<br />
{{Related|GNOME}}<br />
{{Related|Display manager}}<br />
{{Related articles end}}<br />
From [https://wiki.gnome.org/Projects/GDM GDM - GNOME Display Manager]: "The GNOME Display Manager (GDM) is a program that manages graphical display servers and handles graphical user logins."<br />
<br />
[[Display manager]]s provide [[X Window System]] and [[Wayland]] users with a graphical login prompt.<br />
<br />
== Installation ==<br />
<br />
GDM can be [[install]]ed with the {{Pkg|gdm}} package, and it is installed as part of the {{grp|gnome}} group.<br />
<br />
If you would prefer to use legacy GDM which was used in GNOME 2 and has its own configuration utility, install the {{AUR|gdm-old}} package. Note that the rest of this article discusses current GDM, not legacy GDM, unless indicated otherwise.<br />
<br />
You might also wish to install the following:<br />
* {{App|gdm3setup|An interface to configure GDM3, autologin options and change Shell theme|https://github.com/Nano77/gdm3setup|{{AUR|gdm3setup-utils}}}}<br />
<br />
== Starting ==<br />
<br />
To start GDM at boot time [[enable]] {{ic|gdm.service}}.<br />
<br />
=== Autostarting applications ===<br />
<br />
One might want to autostart certain commands, such as ''xrandr'' for instance, on login. This can be achieved by adding a command or script to a location that is sourced by the display manager. See [[Display manager#Autostarting]] for a list of supported locations. <br />
{{Note|1=The {{ic|/etc/gdm/Init}} directory is no longer a supported location, see [https://bugzilla.gnome.org/show_bug.cgi?id=751602#c2].}}<br />
<br />
== Configuration ==<br />
<br />
=== Log-in screen background image ===<br />
{{Accuracy|Configuration is not persistent and will be gone after gdm update. Needs to be rewritten to enable user-themes gnome-shell extension for gdm user and use custom theme and set gsetting to use that theme}}<br />
<br />
{{Note|<br />
* Since GNOME 3.16, GNOME Shell themes are now stored as binary files (gresource).<br />
* This change will be overwritten on subsequent updates of {{Pkg|gnome-shell}}.}}<br />
<br />
Firstly, you need to extract the existing GNOME Shell theme to a folder in your home directory. You can do this using the following script:<br />
<br />
{{hc|extractgst.sh|2=<br />
#!/bin/sh<br />
gst=/usr/share/gnome-shell/gnome-shell-theme.gresource<br />
workdir=${HOME}/shell-theme<br />
<br />
for r in `gresource list $gst`; do<br />
r=${r#\/org\/gnome\/shell/}<br />
if [ ! -d $workdir/${r%/*} ]; then<br />
mkdir -p $workdir/${r%/*}<br />
fi<br />
done<br />
<br />
for r in `gresource list $gst`; do<br />
gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/}<br />
done}}<br />
<br />
Navigate to the created directory. You should find that the theme files have been extracted to it. Now copy your preferred background image to this directory.<br />
<br />
Next, you need to create a file in the directory with the following content:<br />
<br />
{{hc|1=gnome-shell-theme.gresource.xml|2=<br />
<?xml version="1.0" encoding="UTF-8"?><br />
<gresources><br />
<gresource prefix="/org/gnome/shell/theme"><br />
<file>calendar-arrow-left.svg</file><br />
<file>calendar-arrow-right.svg</file><br />
<file>calendar-today.svg</file><br />
<file>checkbox.svg</file><br />
<file>checkbox-focused.svg</file><br />
<file>checkbox-off.svg</file><br />
<file>checkbox-off-focused.svg</file><br />
<file>close-window.svg</file><br />
<file>close-window-active.svg</file><br />
<file>close-window-hover.svg</file><br />
<file>corner-ripple-ltr.png</file><br />
<file>corner-ripple-rtl.png</file><br />
<file>dash-placeholder.svg</file><br />
<file>gnome-shell.css</file><br />
<file>gnome-shell-high-contrast.css</file><br />
<file>icons/message-indicator-symbolic.svg</file><br />
<file>key-enter.svg</file><br />
<file>key-hide.svg</file><br />
<file>key-layout.svg</file><br />
<file>key-shift.svg</file><br />
<file>key-shift-latched-uppercase.svg</file><br />
<file>key-shift-uppercase.svg</file><br />
<file>noise-texture.png</file><br />
<file>'''filename'''</file><br />
<file>no-events.svg</file><br />
<file>no-notifications.svg</file><br />
<file>pad-osd.css</file><br />
<file>page-indicator-active.svg</file><br />
<file>page-indicator-checked.svg</file><br />
<file>page-indicator-hover.svg</file><br />
<file>page-indicator-inactive.svg</file><br />
<file>process-working.svg</file><br />
<file>toggle-off-hc.svg</file><br />
<file>toggle-off-intl.svg</file><br />
<file>toggle-off-us.svg</file><br />
<file>toggle-on-hc.svg</file><br />
<file>toggle-on-intl.svg</file><br />
<file>toggle-on-us.svg</file><br />
</gresource><br />
</gresources>}}<br />
<br />
Replace '''filename''' with the filename of your background image.<br />
<br />
Now, open the {{ic|gnome-shell.css}} file in the directory and change the {{ic|#lockDialogGroup}} definition as follows:<br />
<br />
#lockDialogGroup {<br />
background: #2e3436 url('''filename''');<br />
background-size: '''[WIDTH]'''px '''[HEIGHT]'''px;<br />
background-repeat: no-repeat;<br />
}<br />
<br />
Set {{ic|background-size}} to the resolution that GDM uses, this might not necessarily be the resolution of the image. For a list of display resolutions see [[wikipedia:Display_resolution#Computer_monitors|Display resolution]]. Again, set '''filename''' to be the name of the background image.<br />
<br />
Finally, compile the theme using the following command:<br />
$ glib-compile-resources gnome-shell-theme.gresource.xml<br />
Then copy the resulting {{ic|gnome-shell-theme.gresource}} file to the {{ic|/usr/share/gnome-shell}} directory.<br />
<br />
Then restart {{ic|gdm.service}} (note that simply logging out is not enough) and you should find that it is using your preferred background image.<br />
<br />
For more information, please see the following [https://bbs.archlinux.org/viewtopic.php?id&#61;197036 forum thread].<br />
<br />
=== DConf configuration ===<br />
<br />
Some GDM settings are stored in a DConf database. They can be configured either by adding ''keyfiles'' to the {{ic|/etc/dconf/db/gdm.d}} directory and then recompiling the GDM database by running {{ic|dconf update}} as root or by logging into the GDM user on the system and changing the setting directly using the ''gsettings'' command line tool. Note that for the former approach, a GDM profile file is required - this must be created manually as it is no longer shipped upstream, see below:<br />
{{hc|/etc/dconf/profile/gdm|<br />
user-db:user<br />
system-db:gdm<br />
file-db:/usr/share/gdm/greeter-dconf-defaults}}<br />
For the latter approach, you can log into the GDM user with the command below:<br />
# machinectl shell gdm@<br />
<br />
==== Log-in screen logo ====<br />
<br />
Either create the following keyfile<br />
{{hc|/etc/dconf/db/gdm.d/02-logo|2=<br />
[org/gnome/login-screen]<br />
logo=<nowiki>'</nowiki>''/path/to/logo.png''<nowiki>'</nowiki>}}<br />
and then recompile the GDM database or alternatively log in to the GDM user and execute the following:<br />
$ gsettings set org.gnome.login-screen logo <nowiki>'</nowiki>''/path/to/logo.png''<nowiki>'</nowiki><br />
<br />
==== Changing the cursor theme ====<br />
<br />
GDM disregards [[GNOME]] cursor theme settings and it also ignores the cursor theme set according to the [[Cursor themes#XDG specification|XDG specification]]. To change the cursor theme used in GDM, either create the following keyfile<br />
<br />
{{hc|/etc/dconf/db/gdm.d/10-cursor-settings|<br />
<nowiki>[org/gnome/desktop/interface]<br />
cursor-theme='</nowiki>''theme-name'''<br />
}}<br />
and then recompile the GDM database or alternatively log in to the GDM user and execute the following:<br />
$ gsettings set org.gnome.desktop.interface cursor-theme <nowiki>'</nowiki>''theme-name''<nowiki>'</nowiki><br />
<br />
==== Larger font for log-in screen ====<br />
<br />
Click on the accessibility icon at the top right of the screen (a white circle with the silhouette of a person in the centre) and check the ''Large Text'' option.<br />
<br />
To set a specific scaling factor, you can create the following keyfile:<br />
{{hc|/etc/dconf/db/gdm.d/03-scaling|2=<br />
[org/gnome/desktop/interface]<br />
text-scaling-factor=<nowiki>'</nowiki>''1.25''<nowiki>'</nowiki>}}<br />
and then recompile the GDM database or alternatively log in to the GDM user and execute the following:<br />
$ gsettings set org.gnome.desktop.interface text-scaling-factor <nowiki>'</nowiki>''1.25''<nowiki>'</nowiki><br />
<br />
==== Turning off the sound ====<br />
<br />
This tweak disables the audible feedback heard when the system volume is adjusted (via keyboard) on the login screen.<br />
<br />
Either create the following keyfile:<br />
{{hc|/etc/dconf/db/gdm.d/04-sound|2=<br />
[org/gnome/desktop/sound]<br />
event-sounds='false'}}<br />
and then recompile the GDM database or alternatively log in to the GDM user and execute the following:<br />
$ gsettings set org.gnome.desktop.sound event-sounds 'false'<br />
<br />
==== Configure power button behavior ====<br />
<br />
{{Note|1=<nowiki></nowiki><br />
* The [[Power management#ACPI events|logind settings]] for the power button are overriden by GNOME Settings Daemon. [https://bugzilla.gnome.org/show_bug.cgi?id=755953#c4]<br />
* As of GDM 3.18, the power button cannot be set to ''interactive''. [https://bugzilla.gnome.org/show_bug.cgi?id=753713#c6]<br />
* In some cases, this setting will be ignored and hardcoded defaults will be used. [https://bugzilla.gnome.org/show_bug.cgi?id=755953#c17]}}<br />
<br />
{{Warning|Please note that the [[acpid]] daemon also handles the "power button" and "hibernate button" events. Running both systems at the same time may lead to unexpected behaviour.}}<br />
<br />
Either create the following keyfile:<br />
{{hc|/etc/dconf/db/gdm.d/05-power|2=<br />
[org/gnome/settings-daemon/plugins/power]<br />
power-button-action=<nowiki>'</nowiki>''action''<nowiki>'</nowiki>}}<br />
and then recompile the GDM database or alternatively log in to the GDM user and execute the following:<br />
$ gsettings set org.gnome.settings-daemon.plugins.power power-button-action <nowiki>'</nowiki>''action''<nowiki>'</nowiki><br />
where ''action'' can be one of {{ic|nothing}}, {{ic|suspend}} or {{ic|hibernate}}.<br />
<br />
==== Enabling tap-to-click ====<br />
<br />
Tap-to-click is disabled in GDM (and GNOME) by default, but you can easily enable it with a dconf setting.<br />
<br />
{{Note|If you want to do this under X, you have to first set up correct X server access permissions - see [[#Configure X server access permission]].}}<br />
<br />
To directly enable tap-to-click, use:<br />
<br />
{{bc|# sudo -u gdm gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true}}<br />
<br />
If you prefer to do this with a GUI, use:<br />
<br />
{{bc|# sudo -u gdm dconf-editor}}<br />
<br />
To check the if it was set correctly, use:<br />
<br />
{{bc|$ sudo -u gdm gsettings get org.gnome.desktop.peripherals.touchpad tap-to-click}}<br />
<br />
If you get the error {{ic|dconf-WARNING **: failed to commit changes to dconf: Error spawning command line}}, make sure dbus is running:<br />
<br />
{{bc|$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true}}<br />
<br />
==== Disable/Enable Accessibility Menu ====<br />
<br />
To disable or enable the Accessibility Menu, set the following key in dconf editor:<br />
<br />
{{bc|# machinectl shell gdm@<br />
# gsettings set org.gnome.desktop.interface toolkit-accessibility false<br />
# exit}}<br />
<br />
The menu is disabled when the key is false, enabled when it is true.<br />
<br />
=== Keyboard layout ===<br />
<br />
The system keyboard layout will be applied to GDM. See [[Keyboard configuration in Xorg#Using X configuration files]].<br />
<br />
{{Tip|See [[Wikipedia:ISO 3166-1]] for a list of keymaps.}}<br />
<br />
If a system has multiple users, it is possible to specify a keyboard layout for GDM to use which is different from the system keyboard layout. Firstly, ensure the package {{Pkg|gnome-control-center}} is installed. Then start ''gnome-control-center'' and navigate to ''Region & Language -> Input Sources''. In the header bar, hit the ''Login Screen'' toggle button and then choose a keyboard layout from the list. Note that the ''Login Screen'' button will not be visible in the header bar unless multiple users are present on the system [https://bugzilla.gnome.org/show_bug.cgi?id=741500].<br />
<br />
Users of GDM 2.x (legacy GDM) may need to edit {{ic|~/.dmrc}} as shown below:<br />
<br />
{{hc|~/.dmrc|2=<br />
[Desktop]<br />
Language=de_DE.UTF-8 # change to your default lang<br />
Layout=de nodeadkeys # change to your keyboard layout<br />
}}<br />
<br />
=== Change the language ===<br />
<br />
The system language will be applied to GDM. If a system has multiple users, it is possible to set a language for GDM different to the system language. In this case, firstly ensure that {{Pkg|gnome-control-center}} is installed. Then, start ''gnome-control-center'' and choose ''Region & Language''. In the header bar, check the ''Login Screen'' toggle button. Finally, click on ''Language'' and choose your language from the list. You will be prompted for your root password. Note that the ''Login Screen'' button will not be visible in the header bar unless multiple users are present on the system [https://bugzilla.gnome.org/show_bug.cgi?id=741500].<br />
<br />
{{Tip|By adding 2 different input languages, logging out then selecting your default language GDM will remember your choice once the second option is removed.}}<br />
<br />
=== Users and login ===<br />
<br />
==== Automatic login ====<br />
<br />
To enable automatic login with GDM, add the following to {{ic|/etc/gdm/custom.conf}} (replace ''username'' with your own):<br />
<br />
{{hc|1=/etc/gdm/custom.conf|<br />
2=# Enable automatic login for user<br />
[daemon]<br />
AutomaticLogin=''username''<br />
AutomaticLoginEnable=True<br />
}}<br />
<br />
{{Tip|If GDM fails after adding these lines, comment them out from a TTY.}}<br />
<br />
or for an automatic login with a delay:<br />
<br />
{{hc|1=/etc/gdm/custom.conf|<br />
2=[daemon]<br />
<br />
TimedLoginEnable=true<br />
TimedLogin=''username''<br />
TimedLoginDelay=1<br />
}}<br />
<br />
You can set the session used for automatic login (replace {{ic|gnome-xorg}} with desired session):<br />
<br />
{{hc|1=/var/lib/AccountsService/users/''username''|<br />
2=XSession=gnome-xorg<br />
}}<br />
<br />
==== Passwordless login ====<br />
<br />
If you want to bypass the password prompt in GDM then simply add the following line on the first line of {{ic|/etc/pam.d/gdm-password}}:<br />
<br />
auth sufficient pam_succeed_if.so user ingroup nopasswdlogin<br />
<br />
Then, add the group {{ic|nopasswdlogin}} to your system. See [[User group]] for group descriptions and group management commands.<br />
<br />
Now, add your user to the {{ic|nopasswdlogin}} group and you will only have to click on your username to login.<br />
<br />
{{Warning|<br />
<br />
* Do '''not''' do this for a '''root''' account.<br />
* You won't be able to change your session type at login with GDM anymore. If you want to change your default session type, you will first need to remove your user from the {{ic|nopasswdlogin}} group.}}<br />
<br />
==== Passwordless shutdown for multiple sessions ====<br />
<br />
GDM uses polkit and logind to gain permissions for shutdown. You can shutdown the system when multiple users are logged in by setting:<br />
<br />
{{hc|1=/etc/polkit-1/localauthority.conf.d/org.freedesktop.logind.policy|<br />
2=<?xml version="1.0" encoding="UTF-8"?><br />
<!DOCTYPE policyconfig PUBLIC<br />
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"<br />
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd"><br />
<br />
<!-- <br />
Policy definitions for logind<br />
--><br />
<br />
<policyconfig><br />
<br />
<action id="org.freedesktop.login1.power-off-multiple-sessions"><br />
<description>Shutdown the system when multiple users are logged in</description><br />
<message>System policy prevents shutting down the system when other users are logged in</message><br />
<defaults><br />
<allow_inactive>yes</allow_inactive><br />
<allow_active>yes</allow_active><br />
</defaults><br />
</action><br />
<br />
</policyconfig><br />
}}<br />
You can find all available logind options (e.g. reboot-multiple-sessions) [http://www.freedesktop.org/wiki/Software/systemd/logind#Security here].<br />
<br />
==== Enable root login in GDM ====<br />
<br />
It is not advised to login as root, but if necessary you can edit {{ic|/etc/pam.d/gdm-password}} and add the following line before the line {{ic|auth required pam_deny.so}}:<br />
<br />
{{ic|/etc/pam.d/gdm-password}}<br />
<br />
auth sufficient pam_succeed_if.so uid eq 0 quiet<br />
<br />
The file should look something like this:<br />
<br />
{{ic|/etc/pam.d/gdm-password}}<br />
<br />
...<br />
auth sufficient pam_succeed_if.so uid eq 0 quiet<br />
auth sufficient pam_succeed_if.so uid >= 1000 quiet<br />
auth required pam_deny.so<br />
...<br />
<br />
You should be able to login as root after restarting GDM.<br />
<br />
==== Hide user from login list ====<br />
<br />
The users for the gdm user list are gathered by [https://www.freedesktop.org/wiki/Software/AccountsService/ AccountsService]. It will automatically hide system users (UID < 1000).<br />
To hide ordinary users from the login list create or edit a file named after the user to hide in {{ic|/var/lib/AccountsService/users/}} to contain at least:<br />
{{hc|/var/lib/AccountsService/users/''username''|<br />
[User]<br />
<nowiki>SystemAccount=true</nowiki>}}<br />
<br />
=== Setup default monitor settings ===<br />
<br />
Some [[desktop environments]] store display settings in {{ic|~/.config/monitors.xml}}. ''xrandr'' commands are then generated on the base of the file content. GDM has a similar file stored in {{ic|/var/lib/gdm/.config/monitors.xml}}. <br />
<br />
If you have your monitors setup as you like (orientation, scaling, primary and so on) in {{ic|~/.config/monitors.xml}} and want GDM to honor those settings:<br />
$ sudo cp ~/.config/monitors.xml /var/lib/gdm/.config/<br />
$ sudo chown gdm:gdm /var/lib/gdm/.config/monitors.xml<br />
<br />
The relevant parts of {{ic|monitors.xml}} for screen rotation and scaling are:<br />
<monitors version="2"><br />
<configuration><br />
<logicalmonitor><br />
...<br />
<scale>2</scale><br />
...<br />
<transform><br />
<rotation>right</rotation><br />
<flipped>no</flipped><br />
</transform><br />
...<br />
</logicalmonitor><br />
</configuration><br />
</monitors><br />
<br />
Changes will take effect on logout. This is necessary because GDM does not respect {{ic|xorg.conf}}.<br />
<br />
{{Note|1=If you use GDM under Wayland, you must also use a {{ic|monitors.xml}} that was created under Wayland. See [https://gitlab.gnome.org/GNOME/gdm/issues/224 GDM bug 224] for more info. Alternatively, you can force GDM to [[#Use Xorg backend]], and use a {{ic|monitors.xml}} that was created under Xorg.}}<br />
<br />
=== Configure X server access permission ===<br />
<br />
You can use the {{ic|xhost}} command to configure X server access permissions.<br />
<br />
For instance, to grant GDM the right to access the X server, use the following command:<br />
<br />
{{bc|# xhost +SI:localuser:gdm}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Wayland and the proprietary NVIDIA driver ===<br />
<br />
GDM doesn't work well in Wayland mode with the proprietary [[NVIDIA]] driver. When using this driver, GDM will use Xorg instead.[https://gitlab.gnome.org/GNOME/gdm/merge_requests/46]<br />
<br />
=== Failure on logout ===<br />
<br />
If GDM starts up properly on boot, but fails after repeated attempts on logout, try adding this line to the daemon section of {{ic|/etc/gdm/custom.conf}}:<br />
<br />
GdmXserverTimeout=60<br />
<br />
=== Rootless Xorg ===<br />
<br />
See [[Xorg#Rootless Xorg]].<br />
<br />
=== Use Xorg backend ===<br />
<br />
The [[Wayland]] backend is used by default and the [[Xorg]] backend is used only if the Wayland backend cannot be started. As the Wayland backend has been [https://bugzilla.redhat.com/show_bug.cgi?id=1199890 reported] to cause problems for some users, use of the Xorg backend may be necessary. To use the Xorg backend by default, edit the {{ic|/etc/gdm/custom.conf}} file and uncomment the following line:<br />
#WaylandEnable=false<br />
<br />
=== GDM freezes with systemd ===<br />
<br />
If GDM gets hang-up with {{ic|systemctl enable gdm}} and {{ic|systemctl start gdm}} works as expected, apply the config with {{ic|systemctl edit gdm}} as below:<br />
<br />
[Service]<br />
Type=idle<br />
<br />
=== Incomplete removal of gdm ===<br />
<br />
After removing {{Pkg|gdm}}, [[systemd]] may report the following:<br />
<br />
user 'gdm': directory '/var/lib/gdm' does not exist<br />
<br />
To remove this warning, login as root and delete the primary user "gdm" and then delete the group "gdm":<br />
<br />
# userdel gdm<br />
# groupdel gdm<br />
<br />
Verify that gdm is successfully removed via {{ic|pwck}} and {{ic|grpck}}. To round it off, you may want to double-check no [[Pacman/Tips_and_tricks#Identify_files_not_owned_by_any_package|unowned files]] for gdm remain.<br />
<br />
=== GDM auto-suspend (GNOME 3.28) ===<br />
GDM uses a separate dconf database to control power management. You can make GDM behave the same way as user sessions by copying the user settings to GDM's dconf database.<br />
<br />
$ IFS=$'\n'; for x in $(sudo -u ''username'' gsettings list-recursively org.gnome.settings-daemon.plugins.power); do eval "sudo -u gdm dbus-launch gsettings set $x"; done; unset IFS<br />
<br />
where {{ic|''username''}} is your user's name.<br />
<br />
Or to simply disable auto-suspend (also run the command with {{ic|ac}} replaced with {{ic|battery}} to also disable it while running on battery):<br />
<br />
$ sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'<br />
<br />
== See also ==<br />
<br />
* [https://help.gnome.org/admin/gdm/stable/index.html.en GDM Reference Manual]</div>I05https://wiki.archlinux.org/index.php?title=GDM&diff=563465GDM2019-01-16T12:32:51Z<p>I05: Added a workaround with systemd</p>
<hr />
<div>[[Category:Display managers]]<br />
[[Category:GNOME]]<br />
[[es:GDM]]<br />
[[fr:GDM]]<br />
[[ja:GDM]]<br />
[[pt:GDM]]<br />
[[zh-hans:GDM]]<br />
{{Related articles start}}<br />
{{Related|GNOME}}<br />
{{Related|Display manager}}<br />
{{Related articles end}}<br />
From [https://wiki.gnome.org/Projects/GDM GDM - GNOME Display Manager]: "The GNOME Display Manager (GDM) is a program that manages graphical display servers and handles graphical user logins."<br />
<br />
[[Display manager]]s provide [[X Window System]] and [[Wayland]] users with a graphical login prompt.<br />
<br />
== Installation ==<br />
<br />
GDM can be [[install]]ed with the {{Pkg|gdm}} package, and it is installed as part of the {{grp|gnome}} group.<br />
<br />
If you would prefer to use legacy GDM which was used in GNOME 2 and has its own configuration utility, install the {{AUR|gdm-old}} package. Note that the rest of this article discusses current GDM, not legacy GDM, unless indicated otherwise.<br />
<br />
You might also wish to install the following:<br />
* {{App|gdm3setup|An interface to configure GDM3, autologin options and change Shell theme|https://github.com/Nano77/gdm3setup|{{AUR|gdm3setup-utils}}}}<br />
<br />
== Starting ==<br />
<br />
To start GDM at boot time [[enable]] {{ic|gdm.service}}.<br />
<br />
=== Autostarting applications ===<br />
<br />
One might want to autostart certain commands, such as ''xrandr'' for instance, on login. This can be achieved by adding a command or script to a location that is sourced by the display manager. See [[Display manager#Autostarting]] for a list of supported locations. <br />
{{Note|1=The {{ic|/etc/gdm/Init}} directory is no longer a supported location, see [https://bugzilla.gnome.org/show_bug.cgi?id=751602#c2].}}<br />
<br />
== Configuration ==<br />
<br />
=== Log-in screen background image ===<br />
{{Accuracy|Configuration is not persistent and will be gone after gdm update. Needs to be rewritten to enable user-themes gnome-shell extension for gdm user and use custom theme and set gsetting to use that theme}}<br />
<br />
{{Note|<br />
* Since GNOME 3.16, GNOME Shell themes are now stored as binary files (gresource).<br />
* This change will be overwritten on subsequent updates of {{Pkg|gnome-shell}}.}}<br />
<br />
Firstly, you need to extract the existing GNOME Shell theme to a folder in your home directory. You can do this using the following script:<br />
<br />
{{hc|extractgst.sh|2=<br />
#!/bin/sh<br />
gst=/usr/share/gnome-shell/gnome-shell-theme.gresource<br />
workdir=${HOME}/shell-theme<br />
<br />
for r in `gresource list $gst`; do<br />
r=${r#\/org\/gnome\/shell/}<br />
if [ ! -d $workdir/${r%/*} ]; then<br />
mkdir -p $workdir/${r%/*}<br />
fi<br />
done<br />
<br />
for r in `gresource list $gst`; do<br />
gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/}<br />
done}}<br />
<br />
Navigate to the created directory. You should find that the theme files have been extracted to it. Now copy your preferred background image to this directory.<br />
<br />
Next, you need to create a file in the directory with the following content:<br />
<br />
{{hc|1=gnome-shell-theme.gresource.xml|2=<br />
<?xml version="1.0" encoding="UTF-8"?><br />
<gresources><br />
<gresource prefix="/org/gnome/shell/theme"><br />
<file>calendar-arrow-left.svg</file><br />
<file>calendar-arrow-right.svg</file><br />
<file>calendar-today.svg</file><br />
<file>checkbox.svg</file><br />
<file>checkbox-focused.svg</file><br />
<file>checkbox-off.svg</file><br />
<file>checkbox-off-focused.svg</file><br />
<file>close-window.svg</file><br />
<file>close-window-active.svg</file><br />
<file>close-window-hover.svg</file><br />
<file>corner-ripple-ltr.png</file><br />
<file>corner-ripple-rtl.png</file><br />
<file>dash-placeholder.svg</file><br />
<file>gnome-shell.css</file><br />
<file>gnome-shell-high-contrast.css</file><br />
<file>icons/message-indicator-symbolic.svg</file><br />
<file>key-enter.svg</file><br />
<file>key-hide.svg</file><br />
<file>key-layout.svg</file><br />
<file>key-shift.svg</file><br />
<file>key-shift-latched-uppercase.svg</file><br />
<file>key-shift-uppercase.svg</file><br />
<file>noise-texture.png</file><br />
<file>'''filename'''</file><br />
<file>no-events.svg</file><br />
<file>no-notifications.svg</file><br />
<file>pad-osd.css</file><br />
<file>page-indicator-active.svg</file><br />
<file>page-indicator-checked.svg</file><br />
<file>page-indicator-hover.svg</file><br />
<file>page-indicator-inactive.svg</file><br />
<file>process-working.svg</file><br />
<file>toggle-off-hc.svg</file><br />
<file>toggle-off-intl.svg</file><br />
<file>toggle-off-us.svg</file><br />
<file>toggle-on-hc.svg</file><br />
<file>toggle-on-intl.svg</file><br />
<file>toggle-on-us.svg</file><br />
</gresource><br />
</gresources>}}<br />
<br />
Replace '''filename''' with the filename of your background image.<br />
<br />
Now, open the {{ic|gnome-shell.css}} file in the directory and change the {{ic|#lockDialogGroup}} definition as follows:<br />
<br />
#lockDialogGroup {<br />
background: #2e3436 url('''filename''');<br />
background-size: '''[WIDTH]'''px '''[HEIGHT]'''px;<br />
background-repeat: no-repeat;<br />
}<br />
<br />
Set {{ic|background-size}} to the resolution that GDM uses, this might not necessarily be the resolution of the image. For a list of display resolutions see [[wikipedia:Display_resolution#Computer_monitors|Display resolution]]. Again, set '''filename''' to be the name of the background image.<br />
<br />
Finally, compile the theme using the following command:<br />
$ glib-compile-resources gnome-shell-theme.gresource.xml<br />
Then copy the resulting {{ic|gnome-shell-theme.gresource}} file to the {{ic|/usr/share/gnome-shell}} directory.<br />
<br />
Then restart {{ic|gdm.service}} (note that simply logging out is not enough) and you should find that it is using your preferred background image.<br />
<br />
For more information, please see the following [https://bbs.archlinux.org/viewtopic.php?id&#61;197036 forum thread].<br />
<br />
=== DConf configuration ===<br />
<br />
Some GDM settings are stored in a DConf database. They can be configured either by adding ''keyfiles'' to the {{ic|/etc/dconf/db/gdm.d}} directory and then recompiling the GDM database by running {{ic|dconf update}} as root or by logging into the GDM user on the system and changing the setting directly using the ''gsettings'' command line tool. Note that for the former approach, a GDM profile file is required - this must be created manually as it is no longer shipped upstream, see below:<br />
{{hc|/etc/dconf/profile/gdm|<br />
user-db:user<br />
system-db:gdm<br />
file-db:/usr/share/gdm/greeter-dconf-defaults}}<br />
For the latter approach, you can log into the GDM user with the command below:<br />
# machinectl shell gdm@<br />
<br />
==== Log-in screen logo ====<br />
<br />
Either create the following keyfile<br />
{{hc|/etc/dconf/db/gdm.d/02-logo|2=<br />
[org/gnome/login-screen]<br />
logo=<nowiki>'</nowiki>''/path/to/logo.png''<nowiki>'</nowiki>}}<br />
and then recompile the GDM database or alternatively log in to the GDM user and execute the following:<br />
$ gsettings set org.gnome.login-screen logo <nowiki>'</nowiki>''/path/to/logo.png''<nowiki>'</nowiki><br />
<br />
==== Changing the cursor theme ====<br />
<br />
GDM disregards [[GNOME]] cursor theme settings and it also ignores the cursor theme set according to the [[Cursor themes#XDG specification|XDG specification]]. To change the cursor theme used in GDM, either create the following keyfile<br />
<br />
{{hc|/etc/dconf/db/gdm.d/10-cursor-settings|<br />
<nowiki>[org/gnome/desktop/interface]<br />
cursor-theme='</nowiki>''theme-name'''<br />
}}<br />
and then recompile the GDM database or alternatively log in to the GDM user and execute the following:<br />
$ gsettings set org.gnome.desktop.interface cursor-theme <nowiki>'</nowiki>''theme-name''<nowiki>'</nowiki><br />
<br />
==== Larger font for log-in screen ====<br />
<br />
Click on the accessibility icon at the top right of the screen (a white circle with the silhouette of a person in the centre) and check the ''Large Text'' option.<br />
<br />
To set a specific scaling factor, you can create the following keyfile:<br />
{{hc|/etc/dconf/db/gdm.d/03-scaling|2=<br />
[org/gnome/desktop/interface]<br />
text-scaling-factor=<nowiki>'</nowiki>''1.25''<nowiki>'</nowiki>}}<br />
and then recompile the GDM database or alternatively log in to the GDM user and execute the following:<br />
$ gsettings set org.gnome.desktop.interface text-scaling-factor <nowiki>'</nowiki>''1.25''<nowiki>'</nowiki><br />
<br />
==== Turning off the sound ====<br />
<br />
This tweak disables the audible feedback heard when the system volume is adjusted (via keyboard) on the login screen.<br />
<br />
Either create the following keyfile:<br />
{{hc|/etc/dconf/db/gdm.d/04-sound|2=<br />
[org/gnome/desktop/sound]<br />
event-sounds='false'}}<br />
and then recompile the GDM database or alternatively log in to the GDM user and execute the following:<br />
$ gsettings set org.gnome.desktop.sound event-sounds 'false'<br />
<br />
==== Configure power button behavior ====<br />
<br />
{{Note|1=<nowiki></nowiki><br />
* The [[Power management#ACPI events|logind settings]] for the power button are overriden by GNOME Settings Daemon. [https://bugzilla.gnome.org/show_bug.cgi?id=755953#c4]<br />
* As of GDM 3.18, the power button cannot be set to ''interactive''. [https://bugzilla.gnome.org/show_bug.cgi?id=753713#c6]<br />
* In some cases, this setting will be ignored and hardcoded defaults will be used. [https://bugzilla.gnome.org/show_bug.cgi?id=755953#c17]}}<br />
<br />
{{Warning|Please note that the [[acpid]] daemon also handles the "power button" and "hibernate button" events. Running both systems at the same time may lead to unexpected behaviour.}}<br />
<br />
Either create the following keyfile:<br />
{{hc|/etc/dconf/db/gdm.d/05-power|2=<br />
[org/gnome/settings-daemon/plugins/power]<br />
power-button-action=<nowiki>'</nowiki>''action''<nowiki>'</nowiki>}}<br />
and then recompile the GDM database or alternatively log in to the GDM user and execute the following:<br />
$ gsettings set org.gnome.settings-daemon.plugins.power power-button-action <nowiki>'</nowiki>''action''<nowiki>'</nowiki><br />
where ''action'' can be one of {{ic|nothing}}, {{ic|suspend}} or {{ic|hibernate}}.<br />
<br />
==== Enabling tap-to-click ====<br />
<br />
Tap-to-click is disabled in GDM (and GNOME) by default, but you can easily enable it with a dconf setting.<br />
<br />
{{Note|If you want to do this under X, you have to first set up correct X server access permissions - see [[#Configure X server access permission]].}}<br />
<br />
To directly enable tap-to-click, use:<br />
<br />
{{bc|# sudo -u gdm gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true}}<br />
<br />
If you prefer to do this with a GUI, use:<br />
<br />
{{bc|# sudo -u gdm dconf-editor}}<br />
<br />
To check the if it was set correctly, use:<br />
<br />
{{bc|$ sudo -u gdm gsettings get org.gnome.desktop.peripherals.touchpad tap-to-click}}<br />
<br />
If you get the error {{ic|dconf-WARNING **: failed to commit changes to dconf: Error spawning command line}}, make sure dbus is running:<br />
<br />
{{bc|$ sudo -u gdm dbus-launch gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true}}<br />
<br />
==== Disable/Enable Accessibility Menu ====<br />
<br />
To disable or enable the Accessibility Menu, set the following key in dconf editor:<br />
<br />
{{bc|# machinectl shell gdm@<br />
# gsettings set org.gnome.desktop.interface toolkit-accessibility false<br />
# exit}}<br />
<br />
The menu is disabled when the key is false, enabled when it is true.<br />
<br />
=== Keyboard layout ===<br />
<br />
The system keyboard layout will be applied to GDM. See [[Keyboard configuration in Xorg#Using X configuration files]].<br />
<br />
{{Tip|See [[Wikipedia:ISO 3166-1]] for a list of keymaps.}}<br />
<br />
If a system has multiple users, it is possible to specify a keyboard layout for GDM to use which is different from the system keyboard layout. Firstly, ensure the package {{Pkg|gnome-control-center}} is installed. Then start ''gnome-control-center'' and navigate to ''Region & Language -> Input Sources''. In the header bar, hit the ''Login Screen'' toggle button and then choose a keyboard layout from the list. Note that the ''Login Screen'' button will not be visible in the header bar unless multiple users are present on the system [https://bugzilla.gnome.org/show_bug.cgi?id=741500].<br />
<br />
Users of GDM 2.x (legacy GDM) may need to edit {{ic|~/.dmrc}} as shown below:<br />
<br />
{{hc|~/.dmrc|2=<br />
[Desktop]<br />
Language=de_DE.UTF-8 # change to your default lang<br />
Layout=de nodeadkeys # change to your keyboard layout<br />
}}<br />
<br />
=== Change the language ===<br />
<br />
The system language will be applied to GDM. If a system has multiple users, it is possible to set a language for GDM different to the system language. In this case, firstly ensure that {{Pkg|gnome-control-center}} is installed. Then, start ''gnome-control-center'' and choose ''Region & Language''. In the header bar, check the ''Login Screen'' toggle button. Finally, click on ''Language'' and choose your language from the list. You will be prompted for your root password. Note that the ''Login Screen'' button will not be visible in the header bar unless multiple users are present on the system [https://bugzilla.gnome.org/show_bug.cgi?id=741500].<br />
<br />
{{Tip|By adding 2 different input languages, logging out then selecting your default language GDM will remember your choice once the second option is removed.}}<br />
<br />
=== Users and login ===<br />
<br />
==== Automatic login ====<br />
<br />
To enable automatic login with GDM, add the following to {{ic|/etc/gdm/custom.conf}} (replace ''username'' with your own):<br />
<br />
{{hc|1=/etc/gdm/custom.conf|<br />
2=# Enable automatic login for user<br />
[daemon]<br />
AutomaticLogin=''username''<br />
AutomaticLoginEnable=True<br />
}}<br />
<br />
{{Tip|If GDM fails after adding these lines, comment them out from a TTY.}}<br />
<br />
or for an automatic login with a delay:<br />
<br />
{{hc|1=/etc/gdm/custom.conf|<br />
2=[daemon]<br />
<br />
TimedLoginEnable=true<br />
TimedLogin=''username''<br />
TimedLoginDelay=1<br />
}}<br />
<br />
You can set the session used for automatic login (replace {{ic|gnome-xorg}} with desired session):<br />
<br />
{{hc|1=/var/lib/AccountsService/users/''username''|<br />
2=XSession=gnome-xorg<br />
}}<br />
<br />
==== Passwordless login ====<br />
<br />
If you want to bypass the password prompt in GDM then simply add the following line on the first line of {{ic|/etc/pam.d/gdm-password}}:<br />
<br />
auth sufficient pam_succeed_if.so user ingroup nopasswdlogin<br />
<br />
Then, add the group {{ic|nopasswdlogin}} to your system. See [[User group]] for group descriptions and group management commands.<br />
<br />
Now, add your user to the {{ic|nopasswdlogin}} group and you will only have to click on your username to login.<br />
<br />
{{Warning|<br />
<br />
* Do '''not''' do this for a '''root''' account.<br />
* You won't be able to change your session type at login with GDM anymore. If you want to change your default session type, you will first need to remove your user from the {{ic|nopasswdlogin}} group.}}<br />
<br />
==== Passwordless shutdown for multiple sessions ====<br />
<br />
GDM uses polkit and logind to gain permissions for shutdown. You can shutdown the system when multiple users are logged in by setting:<br />
<br />
{{hc|1=/etc/polkit-1/localauthority.conf.d/org.freedesktop.logind.policy|<br />
2=<?xml version="1.0" encoding="UTF-8"?><br />
<!DOCTYPE policyconfig PUBLIC<br />
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"<br />
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd"><br />
<br />
<!-- <br />
Policy definitions for logind<br />
--><br />
<br />
<policyconfig><br />
<br />
<action id="org.freedesktop.login1.power-off-multiple-sessions"><br />
<description>Shutdown the system when multiple users are logged in</description><br />
<message>System policy prevents shutting down the system when other users are logged in</message><br />
<defaults><br />
<allow_inactive>yes</allow_inactive><br />
<allow_active>yes</allow_active><br />
</defaults><br />
</action><br />
<br />
</policyconfig><br />
}}<br />
You can find all available logind options (e.g. reboot-multiple-sessions) [http://www.freedesktop.org/wiki/Software/systemd/logind#Security here].<br />
<br />
==== Enable root login in GDM ====<br />
<br />
It is not advised to login as root, but if necessary you can edit {{ic|/etc/pam.d/gdm-password}} and add the following line before the line {{ic|auth required pam_deny.so}}:<br />
<br />
{{ic|/etc/pam.d/gdm-password}}<br />
<br />
auth sufficient pam_succeed_if.so uid eq 0 quiet<br />
<br />
The file should look something like this:<br />
<br />
{{ic|/etc/pam.d/gdm-password}}<br />
<br />
...<br />
auth sufficient pam_succeed_if.so uid eq 0 quiet<br />
auth sufficient pam_succeed_if.so uid >= 1000 quiet<br />
auth required pam_deny.so<br />
...<br />
<br />
You should be able to login as root after restarting GDM.<br />
<br />
==== Hide user from login list ====<br />
<br />
The users for the gdm user list are gathered by [https://www.freedesktop.org/wiki/Software/AccountsService/ AccountsService]. It will automatically hide system users (UID < 1000).<br />
To hide ordinary users from the login list create or edit a file named after the user to hide in {{ic|/var/lib/AccountsService/users/}} to contain at least:<br />
{{hc|/var/lib/AccountsService/users/''username''|<br />
[User]<br />
<nowiki>SystemAccount=true</nowiki>}}<br />
<br />
=== Setup default monitor settings ===<br />
<br />
Some [[desktop environments]] store display settings in {{ic|~/.config/monitors.xml}}. ''xrandr'' commands are then generated on the base of the file content. GDM has a similar file stored in {{ic|/var/lib/gdm/.config/monitors.xml}}. <br />
<br />
If you have your monitors setup as you like (orientation, scaling, primary and so on) in {{ic|~/.config/monitors.xml}} and want GDM to honor those settings:<br />
$ sudo cp ~/.config/monitors.xml /var/lib/gdm/.config/<br />
$ sudo chown gdm:gdm /var/lib/gdm/.config/monitors.xml<br />
<br />
The relevant parts of {{ic|monitors.xml}} for screen rotation and scaling are:<br />
<monitors version="2"><br />
<configuration><br />
<logicalmonitor><br />
...<br />
<scale>2</scale><br />
...<br />
<transform><br />
<rotation>right</rotation><br />
<flipped>no</flipped><br />
</transform><br />
...<br />
</logicalmonitor><br />
</configuration><br />
</monitors><br />
<br />
Changes will take effect on logout. This is necessary because GDM does not respect {{ic|xorg.conf}}.<br />
<br />
{{Note|1=If you use GDM under Wayland, you must also use a {{ic|monitors.xml}} that was created under Wayland. See [https://gitlab.gnome.org/GNOME/gdm/issues/224 GDM bug 224] for more info. Alternatively, you can force GDM to [[#Use Xorg backend]], and use a {{ic|monitors.xml}} that was created under Xorg.}}<br />
<br />
=== Configure X server access permission ===<br />
<br />
You can use the {{ic|xhost}} command to configure X server access permissions.<br />
<br />
For instance, to grant GDM the right to access the X server, use the following command:<br />
<br />
{{bc|# xhost +SI:localuser:gdm}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Wayland and the proprietary NVIDIA driver ===<br />
<br />
GDM doesn't work well in Wayland mode with the proprietary [[NVIDIA]] driver. When using this driver, GDM will use Xorg instead.[https://gitlab.gnome.org/GNOME/gdm/merge_requests/46]<br />
<br />
=== Failure on logout ===<br />
<br />
If GDM starts up properly on boot, but fails after repeated attempts on logout, try adding this line to the daemon section of {{ic|/etc/gdm/custom.conf}}:<br />
<br />
GdmXserverTimeout=60<br />
<br />
=== Rootless Xorg ===<br />
<br />
See [[Xorg#Rootless Xorg]].<br />
<br />
=== Use Xorg backend ===<br />
<br />
The [[Wayland]] backend is used by default and the [[Xorg]] backend is used only if the Wayland backend cannot be started. As the Wayland backend has been [https://bugzilla.redhat.com/show_bug.cgi?id=1199890 reported] to cause problems for some users, use of the Xorg backend may be necessary. To use the Xorg backend by default, edit the {{ic|/etc/gdm/custom.conf}} file and uncomment the following line:<br />
#WaylandEnable=false<br />
<br />
== GDM freezes with systemd ==<br />
<br />
If GDM gets hang-up with {{ic|systemctl enable gdm}} and {{ic|systemctl start gdm}} works as expected, apply the config with {{ic|systemctl edit gdm}} as below:<br />
<br />
[Service]<br />
Type=idle<br />
<br />
=== Incomplete removal of gdm ===<br />
<br />
After removing {{Pkg|gdm}}, [[systemd]] may report the following:<br />
<br />
user 'gdm': directory '/var/lib/gdm' does not exist<br />
<br />
To remove this warning, login as root and delete the primary user "gdm" and then delete the group "gdm":<br />
<br />
# userdel gdm<br />
# groupdel gdm<br />
<br />
Verify that gdm is successfully removed via {{ic|pwck}} and {{ic|grpck}}. To round it off, you may want to double-check no [[Pacman/Tips_and_tricks#Identify_files_not_owned_by_any_package|unowned files]] for gdm remain.<br />
<br />
=== GDM auto-suspend (GNOME 3.28) ===<br />
GDM uses a separate dconf database to control power management. You can make GDM behave the same way as user sessions by copying the user settings to GDM's dconf database.<br />
<br />
$ IFS=$'\n'; for x in $(sudo -u ''username'' gsettings list-recursively org.gnome.settings-daemon.plugins.power); do eval "sudo -u gdm dbus-launch gsettings set $x"; done; unset IFS<br />
<br />
where {{ic|''username''}} is your user's name.<br />
<br />
Or to simply disable auto-suspend (also run the command with {{ic|ac}} replaced with {{ic|battery}} to also disable it while running on battery):<br />
<br />
$ sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'<br />
<br />
== See also ==<br />
<br />
* [https://help.gnome.org/admin/gdm/stable/index.html.en GDM Reference Manual]</div>I05https://wiki.archlinux.org/index.php?title=GNOME/Troubleshooting&diff=563464GNOME/Troubleshooting2019-01-16T12:30:15Z<p>I05: Moving the section to GDM page</p>
<hr />
<div>[[Category:GNOME]]<br />
[[ja:GNOME/トラブルシューティング]]<br />
[[zh-hans:GNOME/Troubleshooting]]<br />
See [[GNOME]] for the main article.<br />
<br />
== Shell freezes ==<br />
<br />
In the event of a Shell freeze (which might be caused by certain appearance tweaks, malfunctioning extensions or perhaps a lack of available memory) restarting the Shell by pressing {{ic|Alt}} + {{ic|F2}} and then entering '''r''' may not be possible.<br />
<br />
In this case, try switching to another TTY ('''Ctrl''' + '''Alt''' + '''F2''') and entering the following command: {{ic|pkill -HUP gnome-shell}}. It may take a few seconds before the Shell successfully restarts. On X11 restarting the shell in this fashion should not log the user out but it is a good idea to try and ensure that all work is saved anyway; on Wayland (currently the default) restarting the shell kills the whole session, so everything will be lost.<br />
<br />
If this fails, the [[Xorg]] server will need to be restarted either by: {{ic|pkill X}} for console logins or: {{ic|systemctl restart gdm}} for GDM logins. Bear in mind that restarting the Xorg server will log the user out so try to ensure that all work is saved before attempting this.<br />
<br />
== Shell segfaults ==<br />
<br />
If you experience gnome-shell disappearing and reappearing, it means that it has segfaulted (probably because of an extension). Gnome-shell extensions use javascript; to enable debugging of extensions, it is necessary to<br />
<br />
1) rebuild {{pkg|gjs}} with the following changes to the PKGBUILD:<br />
<br />
{{bc|1=<br />
--- PKGBUILD (old)<br />
+++ PKGBUILD (new)<br />
@@ -29,10 +29,13 @@<br />
build() {<br />
cd $pkgname<br />
+ export CXXFLAGS='-g -O0'<br />
+ export CPPFLAGS='-D_FORITFY_SOURCE=0'<br />
./configure \<br />
+ --enable-debug-symbols=-gdwarf-2 \<br />
--prefix=/usr \<br />
--libexecdir=/usr/lib \<br />
--disable-static \<br />
--enable-compile-warnings=yes \<br />
--with-xvfb-tests<br />
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool<br />
make<br />
}<br />
}}<br />
<br />
2) rebuild {{pkg|js52}} with the following changes to the PKGBUILD:<br />
{{bc|1=<br />
--- PKGBUILD (old)<br />
+++ PKGBUILD (new)<br />
@@ -24,0 +25 @@<br />
+options=(debug)<br />
@@ -36,11 +37,9 @@<br />
build() {<br />
unset CPPFLAGS<br />
CFLAGS+=' -fno-delete-null-pointer-checks -fno-strict-aliasing -fno-tree-vrp -flto=3'<br />
CXXFLAGS+=' -fno-delete-null-pointer-checks -fno-strict-aliasing -fno-tree-vrp -flto=3'<br />
export CC=gcc CXX=g++ PYTHON=/usr/bin/python2<br />
<br />
cd mozilla-unified/js/src<br />
sh configure \<br />
--prefix=/usr \<br />
- --disable-debug \<br />
- --disable-debug-symbols \<br />
}}<br />
<br />
Once the gjs and js52 packages are installed and gnome-shell restarted ({{ic|Alt}}+ {{ic|F2}} + {{ic|r}}), whenever gnome-shell crashes the debug symbols will be available.<br />
<br />
After the crash:<br />
{{hc|1=$ coredumpctl -1|2=<br />
TIME PID UID GID SIG COREFILE EXE<br />
Mon 2017-07-17 15:34:49 CEST 27368 1000 1000 11 present /usr/bin/gnome-shell<br />
$ coredumpctl gdb 27368<br />
(gdb) bt<br />
#0 0x00007fbc7b997945 in js::GCMethods<JSObject*>::needsPostBarrier(JSObject*) (v=0x7fbc0a9548c0) at /usr/include/mozjs-38/js/RootingAPI.h:663<br />
#1 0x00007fbc7b997945 in JS::Heap<JSObject*>::set(JSObject*) (newPtr=0x0, this=0x254c260) at /usr/include/mozjs-38/js/RootingAPI.h:296<br />
#2 0x00007fbc7b997945 in JS::Heap<JSObject*>::operator=(JSObject* const&) (p=<optimized out>, this=0x254c260) at /usr/include/mozjs-38/js/RootingAPI.h:266<br />
#3 0x00007fbc7b997945 in GjsMaybeOwned<JSObject*>::reset() (this=0x254c250) at ./gjs/jsapi-util-root.h:267<br />
#4 0x00007fbc7b997945 in closure_clear_idle(void*) (data=0x254c220) at gi/closure.cpp:133<br />
#5 0x00007fbc79abd8c5 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0<br />
#6 0x00007fbc79abdc88 in () at /usr/lib/libglib-2.0.so.0<br />
#7 0x00007fbc79abdfa2 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0<br />
#8 0x00007fbc7b27508c in meta_run () at /usr/lib/libmutter-0.so.0<br />
#9 0x0000000000401ff7 in main ()<br />
}}<br />
<br />
You can then report the bug on the [https://gitlab.gnome.org/GNOME/gnome-shell/issues project page] at GNOME GitLab.<br />
<br />
== Incorrect application defaults ==<br />
<br />
When installing applications for the first time you may find that GNOME has the wrong application associated to a certain protocols - for instance, ''easytag'' becomes the folder handler instead of [[GNOME Files]].<br />
<br />
For GNOME Files see the following page: [[GNOME Files#Files is no longer the default file manager]].<br />
<br />
For Document Viewer, run the following command:<br />
$ xdg-mime default evince.desktop application/pdf<br />
<br />
For other applications, default handler settings are detailed on the following page: [[Default applications]].<br />
<br />
Optionally, you can [[install]] {{AUR|gnome-defaults-list}}. It will place your configuration file at {{ic|/etc/gnome/defaults.list}}.<br />
<br />
== Tracker & Documents do not list any local files ==<br />
<br />
In order for Tracker (and, therefore, Documents) to detect your local files, they must be stored in an [https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html XDG compliant directory] (such as 'Documents' or 'Music'). For more information, see [[XDG user directories]].<br />
<br />
You can also configure Tracker to recursively search inside specific directories such as your home directory. These settings can be made using {{ic|tracker-preferences}}.<br />
<br />
== Unable to add accounts in Empathy and GNOME Online Accounts ==<br />
<br />
Empathy, the engine behind integrated messaging, GNOME Online Accounts, and all other system settings based on messaging accounts will not function correctly unless the {{Grp|telepathy}} group of packages or at least one of the backends ({{Pkg|telepathy-gabble}}, or {{Pkg|telepathy-haze}}, for example) is [[install]]ed. View descriptions of ''telepathy'' components on the [https://telepathy.freedesktop.org/wiki/Components/ freedesktop.org telepathy wiki].<br />
<br />
{{Note|[[Avahi]] daemon is required for connecting with the People Nearby account, and also in order for some desktop extensions to work correctly like [https://extensions.gnome.org/extension/746/chat-status/ Chat Status]}}<br />
<br />
== Empathy does not use GNOME Online Accounts ==<br />
<br />
After adding a Gnome Online Account, it may be necessary to log out and log back in for it to be used by Empathy.<br />
<br />
== GNOME Online Accounts settings page does not show properly ==<br />
<br />
In some cases, due to interactions with Alacarte (menu editor), Gnome Online accounts settings page would not show. If that happens, "Restore System Configuration" in Alacarte can restore missing functions to gnome-control-center. (See https://bugzilla.redhat.com/show_bug.cgi?id=1520431.)<br />
<br />
== Cannot change settings in dconf-editor ==<br />
<br />
When one cannot set settings in {{pkg|dconf}}, it is possible their dconf user settings are corrupt. In this case it is best to delete the user dconf files in {{ic|~/.config/dconf/user*}} and set the settings in dconf-editor after.<br />
<br />
== When an extension breaks the shell ==<br />
<br />
When enabling shell extensions causes GNOME breakage, you should first remove the ''user-theme'' and ''auto-move-windows'' extensions from their installation directory.<br />
<br />
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.<br />
<br />
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://wiki.gnome.org/Projects/GnomeShell/Extensions GNOME web site.]<br />
<br />
If you have trouble with uninstalling an extension via [https://extensions.gnome.org/local/ extensions.gnome.org/local], then probably they have been installed as system-wide extensions with the {{Pkg|gnome-shell-extensions}} package. Removing the package again obviously affects all user accounts.<br />
<br />
== Extensions do not work after GNOME 3 update ==<br />
<br />
{{Note|Please bear in mind that whilst the methods below will allow you to '''try''' and activate an extension with an unsupported version of GNOME Shell, it is by no means a guarantee that the extension will work successfully. The most likely outcome of trying to activate such an extension is that GNOME Shell will crash and then restart.}}<br />
<br />
Before trying the workarounds below, check if an update is available for the extension by visiting [https://extensions.gnome.org/local extensions.gnome.org/local]. <br />
<br />
If there is no update for your current GNOME version yet, use the following command to disable version validation for extensions:<br />
$ gsettings set org.gnome.shell disable-extension-version-validation true<br />
<br />
Alternatively, you could modify the extension itself, changing the supported shell version to satisfy the version validation. See the method below.<br />
<br />
Locate the folder where your extensions are installed. It might be {{ic|~/.local/share/gnome-shell/extensions}} or {{ic|/usr/share/gnome-shell/extensions}}.<br />
<br />
Edit each occurrence of {{ic|metadata.json}} which appears in each extension sub-folder.<br />
<br />
{| border="0"<br />
| Insert: || {{ic|"shell-version": ["3.x"]}}<br />
|-<br />
| Instead of (for example): || {{ic|"shell-version": ["3.4"]}}<br />
|}<br />
<br />
{{ic|"3.x"}} indicates the extension works with every shell version. If it breaks, you will know to change it back.<br />
<br />
== Keyboard shortcut do not work with only conky running ==<br />
<br />
The GNOME shell keyboard shortcuts like {{ic|Alt+F2}}, {{ic|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.<br />
<br />
Solution: edit {{ic|.conkyrc}}<br />
<br />
own_window yes<br />
own_window_transparent yes<br />
own_window_argb_visual yes<br />
own_window_type dock<br />
own_window_class Conky<br />
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager<br />
<br />
== Unable to apply stored configuration for monitors ==<br />
<br />
If you encounter this message try to disable the ''xrandr'' {{ic|gnome-settings-daemon plugin}}:<br />
<br />
$ dconf write /org/gnome/settings-daemon/plugins/xrandr/active false<br />
<br />
== Consistent cursor theme ==<br />
<br />
See [[Cursor themes#Desktop environments]].<br />
<br />
== Windows cannot be modified with Alt-Key + mouse-button ==<br />
<br />
In GNOME 3.6 and above, the mouse button modifier (the key that allows you to drag a window from a location other than the titlebar) is the {{ic|Super}} key instead of the {{ic|Alt}} key which was used in the past. The change was made in response to the following [https://bugzilla.gnome.org/show_bug.cgi?id=607797 bug report]. <br />
<br />
To change the mouse button modifier back to the {{ic|Alt}} key, execute the following:<br />
$ gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier '<Alt>' <br />
<br />
{{Note|It is not possible to change this with ''System settings'' > ''Keyboard'' > ''Shortcuts''}}<br />
<br />
== Slow loading of system icons/slow GDM login ==<br />
<br />
Problems with the loading of system icons, such the ones in the title bar of Files, might be solved by executing the following command:<br />
# gdk-pixbuf-query-loaders --update-cache<br />
<br />
Running the aforementioned command may also fix repeated occurrences of the "Oh no! Something has gone wrong!" error screen and/or very slow loading and login with GDM as described in the following [https://bbs.archlinux.org/viewtopic.php?pid=1414157 forum thread].<br />
<br />
== Artifacts when maximizing windows ==<br />
<br />
Maximizing windows may cause artifacts as of GNOME 3.12.0 - see the following [https://bbs.archlinux.org/viewtopic.php?id=183617 forum thread] and [https://bugzilla.gnome.org/show_bug.cgi?id=728385 bug report]. A solution is detailed in the following section: [[#Tear-free video with Intel HD Graphics]].<br />
<br />
== Tear-free video with Intel HD Graphics ==<br />
<br />
;DRI3<br />
According to [https://bugzilla.gnome.org/show_bug.cgi?id=711028#c2 this bug report], DRI3 includes the {{ic|buffer_age}} extension that allows GNOME Shell's Mutter compositor to sync windows to vblank in an efficient way. Since version {{ic|1:2.99.917+682+g4eaab17-1}}, DRI3 is enabled by default in {{Pkg|xf86-video-intel}} [https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/xf86-video-intel&id=cd3de9bb45a9ab84383541ed45ee6f0c10ea8798].<br />
<br />
;Intel TearFree<br />
Enabling the [[Intel graphics#Tearing|Xorg Intel TearFree option]] is a known workaround for tearing problems on Intel adapters. However, the way this option acts increases memory consumption and lowers performance, see [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c123 the original bug report's final comment].<br />
<br />
;Mutter tweaks<br />
{{Note|1=This workaround has been [https://bugzilla.gnome.org/show_bug.cgi?id=711028#c0 reported] to have side effects and may not fix tearing in all cases.}}<br />
GNOME Shell's Mutter compositor has a tweak known to address tearing problems (see [https://bugzilla.gnome.org/show_bug.cgi?id=657071#c1 the original suggestion for this fix] and its mention in [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c59 the Freedesktop bug report]). To enable this tweak, append the following line to {{ic|/etc/environment}}: {{ic|1=CLUTTER_PAINT=disable-clipped-redraws:disable-culling}}. Then restart the Xorg server.<br />
<br />
;Disable Fullscreen Unredirect<br />
Gnome Shell does by default unredirect fullscreen applications. This may result in tearing. You can disable this with the gnome shell extension {{AUR|gnome-shell-extension-disable-unredirect}}.<br />
<br />
== Window opens behind other windows when using multiple monitors ==<br />
<br />
This is possibly a bug in GNOME Shell which causes new windows to open behind others. To fix this issue, one can run the following command:<br />
$ gsettings set org.gnome.shell.overrides workspaces-only-on-primary false<br />
<br />
== Lock button fails to re-enable touchpad ==<br />
<br />
Some laptops have a touchpad lock button that disables the touchpad so that users can type without worrying about touching the touchpad. Currently, it appears that although GNOME can lock the touchpad by pressing this button, it cannot unlock it. If the touchpad gets locked you can run the following to unlock it:<br />
<br />
$ xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 1<br />
<br />
== GNOME Shell keyboard sources menu not visible ==<br />
<br />
A menu showing the keyboard input sources (for example 'en' for an English keyboard layout) should be visible next to the status area containing icons for network, volume and power sources. If the keyboard sources menu is not visible, this is probably because you have configured your [[Xorg]] keyboard layout in a way which GNOME does not recognise.<br />
<br />
To ensure that the menu is visible, remove any Xorg keyboard configuration you might have created and set the keyboard locale using [[Keyboard_configuration_in_Xorg#Using_localectl|localectl]].<br />
<br />
Upon running the command and then logging out, you should find that the keyboard input sources menu is visible in GDM and in the GNOME Shell desktop. See [https://blogs.gnome.org/mclasen/2012/09/21/input-sources-in-gnome/ Input sources in GNOME] for more information.<br />
<br />
== Mouse cursor missing ==<br />
<br />
When using a separate [[window manager]] with ''gnome-settings-daemon'', the mouse cursor may vanish. Run:<br />
<br />
$ gsettings set org.gnome.settings-daemon.plugins.cursor active false<br />
<br />
== No restart button in session menu when screen is locked ==<br />
<br />
If [[XScreenSaver]] is installed, ensure that it is not running at startup, see [[GNOME#Autostart]].<br />
<br />
== PulseAudio system-wide causes delay in GNOME and GDM ==<br />
<br />
If you are running [[PulseAudio]] in system-wide mode, the PulseAudio 7.0 upgrade breaks [[GDM]] and GNOME.<br />
See [https://bbs.archlinux.org/viewtopic.php?id=203051 this forum post] for more information.<br />
<br />
== GNOME crashes when trying to reorder applications in the GNOME Shell Dash ==<br />
The dash is the "toolbar" that appears, by default, [[wikipedia:GNOME_Shell#Design_components|on the left]] when you click Activities. Applications can be reordered in the dash by dragging and dropping. If this fails, and/or causes GNOME to crash, try [https://bbs.archlinux.org/viewtopic.php?id=171689 changing your icon theme].<br />
<br />
== Gnome Crashes while installing gnome-extra ==<br />
<br />
{{Expansion|Is there a related bug report?}}<br />
<br />
Attempting to install the gnome-extra group while a gnome environment is running will crash gnome while installing gnome-getting-started-docs. X will continue to run, but gnome will not work until fixed. To fix, simply install gnome-extra from a terminal rather than inside gnome. When complete, gnome should work again.<br />
<br />
== No H264 Video in Gnome Video Player (Totem) ==<br />
<br />
[[Codecs#Tips and tricks|See Codecs]]<br />
<br />
== No suspend on LID closure ==<br />
<br />
GNOME defaults to this behaviour about suspension:<br />
* No external monitor attached, computer goes in suspension when LID closes.<br />
* External monitor attached, computer does not go in suspension when LID closes.<br />
Currently {{Pkg|gnome-tweaks}} is not able to modify the behaviour on the second case, when a monitor is connected to the computer. While it can inhibit suspension with no monitor attached.<br />
{{Note|Behaviour on LID closure is controlled also by systemd. See [[Power management#Power management with systemd]].}}<br />
<br />
== gnome-shell / gnome-session crashes on session startup ==<br />
<br />
Sometimes {{ic|gnome-session}} crashes immediately after login. This might be more visible on wayland and it might seem as if every second login attempt fails. The problem can be temporarily worked around by removing the files in {{ic|~/.config/gnome-session/saved-session}}. A more lasting work-around is to disable the session manager's {{ic|auto-save-session}} feature:<br />
<br />
$ gsettings set org.gnome.SessionManager auto-save-session false<br />
<br />
== Low OpenGL performance and stuttering ==<br />
<br />
* With proprietary NVIDIA driver<br />
<br />
[https://bugzilla.gnome.org/show_bug.cgi?id=781835 This] bug is much likely the cause of it. You should revert {{ic|383ba566bd7c2a76d0856015a66e47caedef06b6 }} commit in {{Pkg|mutter}}. Use [[ABS]] for this and add {{ic|git revert -n 383ba566bd7c2a76d0856015a66e47caedef06b6}} to the {{ic|prepare()}} function in the [[PKGBUILD]] or simply install {{Aur|mutter-781835-workaround}} instead.<br />
<br />
* With free drivers<br />
<br />
If video playback stutters (a bit), try ''GNOME on Xorg'' instead of Wayland.<br />
<br />
== GNOME Wayland session not available ==<br />
<br />
GNOME Wayland does not support more than one GPU for output yet, [https://bugzilla.gnome.org/show_bug.cgi?id=771442 falling back] on GNOME X11.<br />
<br />
If your displays are only connected to one of your video devices, add this to your [[Environment_variables#Using_pam_env|system environment variables]]:<br />
<br />
MUTTER_ALLOW_HYBRID_GPUS=1<br />
<br />
To avoid [https://bbs.archlinux.org/viewtopic.php?pid=1744592#p1744592 problems] with some chipsets enable [[Kernel_mode_setting#Early_KMS_start|Early KMS]].<br />
<br />
<br />
== gnome-control-center is empty and does not list any categories ==<br />
<br />
Under alternative window managers (i3 for example), ''gnome-control-center'' starts as an empty window.<br />
You need to set the variable {{ic|XDG_CURRENT_DESKTOP}} to {{ic|GNOME}} to start it (either in a script or exporting the variable in {{ic|~/.profile}}).<br />
<br />
export XDG_CURRENT_DESKTOP=GNOME<br />
gnome-control-center &<br />
<br />
<br />
== Gnome freezes for a second after using a Function (Fn) key shortcut ==<br />
<br />
This is a problem with the brazilian portuguese ABNT 2 keyboard. If you have the brazilian portuguese enabled, GNOME might experience this problem. To fix this issue and keep using this keyboard layout, un-map the scroll lock button by commenting this line at {{ic|/usr/share/X11/xkb/symbols/br}}:<br />
<br />
modifier_map Mod3 { Scroll_Lock };<br />
<br />
And restart the session (log out and in).</div>I05https://wiki.archlinux.org/index.php?title=GNOME/Troubleshooting&diff=563460GNOME/Troubleshooting2019-01-16T11:57:08Z<p>I05: Added "GDM freezes with systemd"</p>
<hr />
<div>[[Category:GNOME]]<br />
[[ja:GNOME/トラブルシューティング]]<br />
[[zh-hans:GNOME/Troubleshooting]]<br />
See [[GNOME]] for the main article.<br />
<br />
== Shell freezes ==<br />
<br />
In the event of a Shell freeze (which might be caused by certain appearance tweaks, malfunctioning extensions or perhaps a lack of available memory) restarting the Shell by pressing {{ic|Alt}} + {{ic|F2}} and then entering '''r''' may not be possible.<br />
<br />
In this case, try switching to another TTY ('''Ctrl''' + '''Alt''' + '''F2''') and entering the following command: {{ic|pkill -HUP gnome-shell}}. It may take a few seconds before the Shell successfully restarts. On X11 restarting the shell in this fashion should not log the user out but it is a good idea to try and ensure that all work is saved anyway; on Wayland (currently the default) restarting the shell kills the whole session, so everything will be lost.<br />
<br />
If this fails, the [[Xorg]] server will need to be restarted either by: {{ic|pkill X}} for console logins or: {{ic|systemctl restart gdm}} for GDM logins. Bear in mind that restarting the Xorg server will log the user out so try to ensure that all work is saved before attempting this.<br />
<br />
== Shell segfaults ==<br />
<br />
If you experience gnome-shell disappearing and reappearing, it means that it has segfaulted (probably because of an extension). Gnome-shell extensions use javascript; to enable debugging of extensions, it is necessary to<br />
<br />
1) rebuild {{pkg|gjs}} with the following changes to the PKGBUILD:<br />
<br />
{{bc|1=<br />
--- PKGBUILD (old)<br />
+++ PKGBUILD (new)<br />
@@ -29,10 +29,13 @@<br />
build() {<br />
cd $pkgname<br />
+ export CXXFLAGS='-g -O0'<br />
+ export CPPFLAGS='-D_FORITFY_SOURCE=0'<br />
./configure \<br />
+ --enable-debug-symbols=-gdwarf-2 \<br />
--prefix=/usr \<br />
--libexecdir=/usr/lib \<br />
--disable-static \<br />
--enable-compile-warnings=yes \<br />
--with-xvfb-tests<br />
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool<br />
make<br />
}<br />
}}<br />
<br />
2) rebuild {{pkg|js52}} with the following changes to the PKGBUILD:<br />
{{bc|1=<br />
--- PKGBUILD (old)<br />
+++ PKGBUILD (new)<br />
@@ -24,0 +25 @@<br />
+options=(debug)<br />
@@ -36,11 +37,9 @@<br />
build() {<br />
unset CPPFLAGS<br />
CFLAGS+=' -fno-delete-null-pointer-checks -fno-strict-aliasing -fno-tree-vrp -flto=3'<br />
CXXFLAGS+=' -fno-delete-null-pointer-checks -fno-strict-aliasing -fno-tree-vrp -flto=3'<br />
export CC=gcc CXX=g++ PYTHON=/usr/bin/python2<br />
<br />
cd mozilla-unified/js/src<br />
sh configure \<br />
--prefix=/usr \<br />
- --disable-debug \<br />
- --disable-debug-symbols \<br />
}}<br />
<br />
Once the gjs and js52 packages are installed and gnome-shell restarted ({{ic|Alt}}+ {{ic|F2}} + {{ic|r}}), whenever gnome-shell crashes the debug symbols will be available.<br />
<br />
After the crash:<br />
{{hc|1=$ coredumpctl -1|2=<br />
TIME PID UID GID SIG COREFILE EXE<br />
Mon 2017-07-17 15:34:49 CEST 27368 1000 1000 11 present /usr/bin/gnome-shell<br />
$ coredumpctl gdb 27368<br />
(gdb) bt<br />
#0 0x00007fbc7b997945 in js::GCMethods<JSObject*>::needsPostBarrier(JSObject*) (v=0x7fbc0a9548c0) at /usr/include/mozjs-38/js/RootingAPI.h:663<br />
#1 0x00007fbc7b997945 in JS::Heap<JSObject*>::set(JSObject*) (newPtr=0x0, this=0x254c260) at /usr/include/mozjs-38/js/RootingAPI.h:296<br />
#2 0x00007fbc7b997945 in JS::Heap<JSObject*>::operator=(JSObject* const&) (p=<optimized out>, this=0x254c260) at /usr/include/mozjs-38/js/RootingAPI.h:266<br />
#3 0x00007fbc7b997945 in GjsMaybeOwned<JSObject*>::reset() (this=0x254c250) at ./gjs/jsapi-util-root.h:267<br />
#4 0x00007fbc7b997945 in closure_clear_idle(void*) (data=0x254c220) at gi/closure.cpp:133<br />
#5 0x00007fbc79abd8c5 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0<br />
#6 0x00007fbc79abdc88 in () at /usr/lib/libglib-2.0.so.0<br />
#7 0x00007fbc79abdfa2 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0<br />
#8 0x00007fbc7b27508c in meta_run () at /usr/lib/libmutter-0.so.0<br />
#9 0x0000000000401ff7 in main ()<br />
}}<br />
<br />
You can then report the bug on the [https://gitlab.gnome.org/GNOME/gnome-shell/issues project page] at GNOME GitLab.<br />
<br />
== Incorrect application defaults ==<br />
<br />
When installing applications for the first time you may find that GNOME has the wrong application associated to a certain protocols - for instance, ''easytag'' becomes the folder handler instead of [[GNOME Files]].<br />
<br />
For GNOME Files see the following page: [[GNOME Files#Files is no longer the default file manager]].<br />
<br />
For Document Viewer, run the following command:<br />
$ xdg-mime default evince.desktop application/pdf<br />
<br />
For other applications, default handler settings are detailed on the following page: [[Default applications]].<br />
<br />
Optionally, you can [[install]] {{AUR|gnome-defaults-list}}. It will place your configuration file at {{ic|/etc/gnome/defaults.list}}.<br />
<br />
== Tracker & Documents do not list any local files ==<br />
<br />
In order for Tracker (and, therefore, Documents) to detect your local files, they must be stored in an [https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html XDG compliant directory] (such as 'Documents' or 'Music'). For more information, see [[XDG user directories]].<br />
<br />
You can also configure Tracker to recursively search inside specific directories such as your home directory. These settings can be made using {{ic|tracker-preferences}}.<br />
<br />
== Unable to add accounts in Empathy and GNOME Online Accounts ==<br />
<br />
Empathy, the engine behind integrated messaging, GNOME Online Accounts, and all other system settings based on messaging accounts will not function correctly unless the {{Grp|telepathy}} group of packages or at least one of the backends ({{Pkg|telepathy-gabble}}, or {{Pkg|telepathy-haze}}, for example) is [[install]]ed. View descriptions of ''telepathy'' components on the [https://telepathy.freedesktop.org/wiki/Components/ freedesktop.org telepathy wiki].<br />
<br />
{{Note|[[Avahi]] daemon is required for connecting with the People Nearby account, and also in order for some desktop extensions to work correctly like [https://extensions.gnome.org/extension/746/chat-status/ Chat Status]}}<br />
<br />
== Empathy does not use GNOME Online Accounts ==<br />
<br />
After adding a Gnome Online Account, it may be necessary to log out and log back in for it to be used by Empathy.<br />
<br />
== GNOME Online Accounts settings page does not show properly ==<br />
<br />
In some cases, due to interactions with Alacarte (menu editor), Gnome Online accounts settings page would not show. If that happens, "Restore System Configuration" in Alacarte can restore missing functions to gnome-control-center. (See https://bugzilla.redhat.com/show_bug.cgi?id=1520431.)<br />
<br />
== Cannot change settings in dconf-editor ==<br />
<br />
When one cannot set settings in {{pkg|dconf}}, it is possible their dconf user settings are corrupt. In this case it is best to delete the user dconf files in {{ic|~/.config/dconf/user*}} and set the settings in dconf-editor after.<br />
<br />
== When an extension breaks the shell ==<br />
<br />
When enabling shell extensions causes GNOME breakage, you should first remove the ''user-theme'' and ''auto-move-windows'' extensions from their installation directory.<br />
<br />
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.<br />
<br />
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://wiki.gnome.org/Projects/GnomeShell/Extensions GNOME web site.]<br />
<br />
If you have trouble with uninstalling an extension via [https://extensions.gnome.org/local/ extensions.gnome.org/local], then probably they have been installed as system-wide extensions with the {{Pkg|gnome-shell-extensions}} package. Removing the package again obviously affects all user accounts.<br />
<br />
== Extensions do not work after GNOME 3 update ==<br />
<br />
{{Note|Please bear in mind that whilst the methods below will allow you to '''try''' and activate an extension with an unsupported version of GNOME Shell, it is by no means a guarantee that the extension will work successfully. The most likely outcome of trying to activate such an extension is that GNOME Shell will crash and then restart.}}<br />
<br />
Before trying the workarounds below, check if an update is available for the extension by visiting [https://extensions.gnome.org/local extensions.gnome.org/local]. <br />
<br />
If there is no update for your current GNOME version yet, use the following command to disable version validation for extensions:<br />
$ gsettings set org.gnome.shell disable-extension-version-validation true<br />
<br />
Alternatively, you could modify the extension itself, changing the supported shell version to satisfy the version validation. See the method below.<br />
<br />
Locate the folder where your extensions are installed. It might be {{ic|~/.local/share/gnome-shell/extensions}} or {{ic|/usr/share/gnome-shell/extensions}}.<br />
<br />
Edit each occurrence of {{ic|metadata.json}} which appears in each extension sub-folder.<br />
<br />
{| border="0"<br />
| Insert: || {{ic|"shell-version": ["3.x"]}}<br />
|-<br />
| Instead of (for example): || {{ic|"shell-version": ["3.4"]}}<br />
|}<br />
<br />
{{ic|"3.x"}} indicates the extension works with every shell version. If it breaks, you will know to change it back.<br />
<br />
== Keyboard shortcut do not work with only conky running ==<br />
<br />
The GNOME shell keyboard shortcuts like {{ic|Alt+F2}}, {{ic|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.<br />
<br />
Solution: edit {{ic|.conkyrc}}<br />
<br />
own_window yes<br />
own_window_transparent yes<br />
own_window_argb_visual yes<br />
own_window_type dock<br />
own_window_class Conky<br />
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager<br />
<br />
== Unable to apply stored configuration for monitors ==<br />
<br />
If you encounter this message try to disable the ''xrandr'' {{ic|gnome-settings-daemon plugin}}:<br />
<br />
$ dconf write /org/gnome/settings-daemon/plugins/xrandr/active false<br />
<br />
== Consistent cursor theme ==<br />
<br />
See [[Cursor themes#Desktop environments]].<br />
<br />
== Windows cannot be modified with Alt-Key + mouse-button ==<br />
<br />
In GNOME 3.6 and above, the mouse button modifier (the key that allows you to drag a window from a location other than the titlebar) is the {{ic|Super}} key instead of the {{ic|Alt}} key which was used in the past. The change was made in response to the following [https://bugzilla.gnome.org/show_bug.cgi?id=607797 bug report]. <br />
<br />
To change the mouse button modifier back to the {{ic|Alt}} key, execute the following:<br />
$ gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier '<Alt>' <br />
<br />
{{Note|It is not possible to change this with ''System settings'' > ''Keyboard'' > ''Shortcuts''}}<br />
<br />
== Slow loading of system icons/slow GDM login ==<br />
<br />
Problems with the loading of system icons, such the ones in the title bar of Files, might be solved by executing the following command:<br />
# gdk-pixbuf-query-loaders --update-cache<br />
<br />
Running the aforementioned command may also fix repeated occurrences of the "Oh no! Something has gone wrong!" error screen and/or very slow loading and login with GDM as described in the following [https://bbs.archlinux.org/viewtopic.php?pid=1414157 forum thread].<br />
<br />
== Artifacts when maximizing windows ==<br />
<br />
Maximizing windows may cause artifacts as of GNOME 3.12.0 - see the following [https://bbs.archlinux.org/viewtopic.php?id=183617 forum thread] and [https://bugzilla.gnome.org/show_bug.cgi?id=728385 bug report]. A solution is detailed in the following section: [[#Tear-free video with Intel HD Graphics]].<br />
<br />
== Tear-free video with Intel HD Graphics ==<br />
<br />
;DRI3<br />
According to [https://bugzilla.gnome.org/show_bug.cgi?id=711028#c2 this bug report], DRI3 includes the {{ic|buffer_age}} extension that allows GNOME Shell's Mutter compositor to sync windows to vblank in an efficient way. Since version {{ic|1:2.99.917+682+g4eaab17-1}}, DRI3 is enabled by default in {{Pkg|xf86-video-intel}} [https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/xf86-video-intel&id=cd3de9bb45a9ab84383541ed45ee6f0c10ea8798].<br />
<br />
;Intel TearFree<br />
Enabling the [[Intel graphics#Tearing|Xorg Intel TearFree option]] is a known workaround for tearing problems on Intel adapters. However, the way this option acts increases memory consumption and lowers performance, see [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c123 the original bug report's final comment].<br />
<br />
;Mutter tweaks<br />
{{Note|1=This workaround has been [https://bugzilla.gnome.org/show_bug.cgi?id=711028#c0 reported] to have side effects and may not fix tearing in all cases.}}<br />
GNOME Shell's Mutter compositor has a tweak known to address tearing problems (see [https://bugzilla.gnome.org/show_bug.cgi?id=657071#c1 the original suggestion for this fix] and its mention in [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c59 the Freedesktop bug report]). To enable this tweak, append the following line to {{ic|/etc/environment}}: {{ic|1=CLUTTER_PAINT=disable-clipped-redraws:disable-culling}}. Then restart the Xorg server.<br />
<br />
;Disable Fullscreen Unredirect<br />
Gnome Shell does by default unredirect fullscreen applications. This may result in tearing. You can disable this with the gnome shell extension {{AUR|gnome-shell-extension-disable-unredirect}}.<br />
<br />
== Window opens behind other windows when using multiple monitors ==<br />
<br />
This is possibly a bug in GNOME Shell which causes new windows to open behind others. To fix this issue, one can run the following command:<br />
$ gsettings set org.gnome.shell.overrides workspaces-only-on-primary false<br />
<br />
== Lock button fails to re-enable touchpad ==<br />
<br />
Some laptops have a touchpad lock button that disables the touchpad so that users can type without worrying about touching the touchpad. Currently, it appears that although GNOME can lock the touchpad by pressing this button, it cannot unlock it. If the touchpad gets locked you can run the following to unlock it:<br />
<br />
$ xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 1<br />
<br />
== GNOME Shell keyboard sources menu not visible ==<br />
<br />
A menu showing the keyboard input sources (for example 'en' for an English keyboard layout) should be visible next to the status area containing icons for network, volume and power sources. If the keyboard sources menu is not visible, this is probably because you have configured your [[Xorg]] keyboard layout in a way which GNOME does not recognise.<br />
<br />
To ensure that the menu is visible, remove any Xorg keyboard configuration you might have created and set the keyboard locale using [[Keyboard_configuration_in_Xorg#Using_localectl|localectl]].<br />
<br />
Upon running the command and then logging out, you should find that the keyboard input sources menu is visible in GDM and in the GNOME Shell desktop. See [https://blogs.gnome.org/mclasen/2012/09/21/input-sources-in-gnome/ Input sources in GNOME] for more information.<br />
<br />
== Mouse cursor missing ==<br />
<br />
When using a separate [[window manager]] with ''gnome-settings-daemon'', the mouse cursor may vanish. Run:<br />
<br />
$ gsettings set org.gnome.settings-daemon.plugins.cursor active false<br />
<br />
== No restart button in session menu when screen is locked ==<br />
<br />
If [[XScreenSaver]] is installed, ensure that it is not running at startup, see [[GNOME#Autostart]].<br />
<br />
== PulseAudio system-wide causes delay in GNOME and GDM ==<br />
<br />
If you are running [[PulseAudio]] in system-wide mode, the PulseAudio 7.0 upgrade breaks [[GDM]] and GNOME.<br />
See [https://bbs.archlinux.org/viewtopic.php?id=203051 this forum post] for more information.<br />
<br />
== GNOME crashes when trying to reorder applications in the GNOME Shell Dash ==<br />
The dash is the "toolbar" that appears, by default, [[wikipedia:GNOME_Shell#Design_components|on the left]] when you click Activities. Applications can be reordered in the dash by dragging and dropping. If this fails, and/or causes GNOME to crash, try [https://bbs.archlinux.org/viewtopic.php?id=171689 changing your icon theme].<br />
<br />
== Gnome Crashes while installing gnome-extra ==<br />
<br />
{{Expansion|Is there a related bug report?}}<br />
<br />
Attempting to install the gnome-extra group while a gnome environment is running will crash gnome while installing gnome-getting-started-docs. X will continue to run, but gnome will not work until fixed. To fix, simply install gnome-extra from a terminal rather than inside gnome. When complete, gnome should work again.<br />
<br />
== No H264 Video in Gnome Video Player (Totem) ==<br />
<br />
[[Codecs#Tips and tricks|See Codecs]]<br />
<br />
== No suspend on LID closure ==<br />
<br />
GNOME defaults to this behaviour about suspension:<br />
* No external monitor attached, computer goes in suspension when LID closes.<br />
* External monitor attached, computer does not go in suspension when LID closes.<br />
Currently {{Pkg|gnome-tweaks}} is not able to modify the behaviour on the second case, when a monitor is connected to the computer. While it can inhibit suspension with no monitor attached.<br />
{{Note|Behaviour on LID closure is controlled also by systemd. See [[Power management#Power management with systemd]].}}<br />
<br />
== gnome-shell / gnome-session crashes on session startup ==<br />
<br />
Sometimes {{ic|gnome-session}} crashes immediately after login. This might be more visible on wayland and it might seem as if every second login attempt fails. The problem can be temporarily worked around by removing the files in {{ic|~/.config/gnome-session/saved-session}}. A more lasting work-around is to disable the session manager's {{ic|auto-save-session}} feature:<br />
<br />
$ gsettings set org.gnome.SessionManager auto-save-session false<br />
<br />
== Low OpenGL performance and stuttering ==<br />
<br />
* With proprietary NVIDIA driver<br />
<br />
[https://bugzilla.gnome.org/show_bug.cgi?id=781835 This] bug is much likely the cause of it. You should revert {{ic|383ba566bd7c2a76d0856015a66e47caedef06b6 }} commit in {{Pkg|mutter}}. Use [[ABS]] for this and add {{ic|git revert -n 383ba566bd7c2a76d0856015a66e47caedef06b6}} to the {{ic|prepare()}} function in the [[PKGBUILD]] or simply install {{Aur|mutter-781835-workaround}} instead.<br />
<br />
* With free drivers<br />
<br />
If video playback stutters (a bit), try ''GNOME on Xorg'' instead of Wayland.<br />
<br />
== GNOME Wayland session not available ==<br />
<br />
GNOME Wayland does not support more than one GPU for output yet, [https://bugzilla.gnome.org/show_bug.cgi?id=771442 falling back] on GNOME X11.<br />
<br />
If your displays are only connected to one of your video devices, add this to your [[Environment_variables#Using_pam_env|system environment variables]]:<br />
<br />
MUTTER_ALLOW_HYBRID_GPUS=1<br />
<br />
To avoid [https://bbs.archlinux.org/viewtopic.php?pid=1744592#p1744592 problems] with some chipsets enable [[Kernel_mode_setting#Early_KMS_start|Early KMS]].<br />
<br />
<br />
== gnome-control-center is empty and does not list any categories ==<br />
<br />
Under alternative window managers (i3 for example), ''gnome-control-center'' starts as an empty window.<br />
You need to set the variable {{ic|XDG_CURRENT_DESKTOP}} to {{ic|GNOME}} to start it (either in a script or exporting the variable in {{ic|~/.profile}}).<br />
<br />
export XDG_CURRENT_DESKTOP=GNOME<br />
gnome-control-center &<br />
<br />
<br />
== Gnome freezes for a second after using a Function (Fn) key shortcut ==<br />
<br />
This is a problem with the brazilian portuguese ABNT 2 keyboard. If you have the brazilian portuguese enabled, GNOME might experience this problem. To fix this issue and keep using this keyboard layout, un-map the scroll lock button by commenting this line at {{ic|/usr/share/X11/xkb/symbols/br}}:<br />
<br />
modifier_map Mod3 { Scroll_Lock };<br />
<br />
And restart the session (log out and in).<br />
<br />
<br />
== GDM freezes with systemd ==<br />
<br />
If GDM gets hang-up with {{ic|systemctl enable gdm}} but {{ic|systemctl start gdm}} works as expected, apply the config with {{ic|systemctl edit gdm}} as below:<br />
<br />
[Service]<br />
Type=idle</div>I05