GNOME/Configuration
GNOME is a popular desktop environment capable launching Xorg and Wayland sessions. This guide attempts to describe all aspects of GNOME, including installation, configuration, and usage.
Since version 3.30, GNOME on Gentoo is able to once again run on OpenRC.[1] See GNOME without systemd for more detail.
Qu'est-ce que gnome ?
Le projet
Le projet gnome est un projet de logiciel libre dédié à gnome, un environnement de bureau Unix/Linux et une plateforme de développement. La fondation gnome coordonne le développement et d'autres aspects du projet gnome.
Le logiciel
Le logiciel gnome est un environnement de bureau et une plateforme de développement . Ce logiciel libre est l'environnement de bureau préféré de plusieurs leaders de l'industrie. Il s'adresse tout autant aux entreprises, à Monsieur tout le monde et aux développeurs.
La communauté
Comme tous les gros projets de logiciel, gnome dispose d'une large base de développement et d'utilisation. GnomePlanet est un blog populaire qui intéresse les hackers de gnome et les contributeurs tandis que Developer.Gnome.Org s'adresse aux développeurs de gnome. La bibliothèque gnome (Gnome Library) contient une importante liste de ressources pour gnome pour les utilisateurs. Le World of gnome (monde de gnome) agrège les nouvelles concernant gnome.
Prerequisites
Historically speaking, the Xorg display server was the standard display base for all desktop environments on Linux. With GNOME 3 and beyond, a shift to the Wayland, a newer display server protocol, has begun. Systems other than NVIDIA will have no problem running GNOME sessions over Wayland.
That said, as a general fall back, it is a good idea to first read and follow the instructions in the Xorg Guide to setup a X environment.
According to GNOME upstream, GNOME 40 is written with the systemd init system in mind. Because of this, it is a good idea for systemd users to read and comply with all necessary kernel settings from the systemd article.
Installer gnome
Profile
Avant de procéder à l'installation de gnome, vous souhaiterez peut-être éditer votre variable USE. Assurez-vous d'avoir les options X
, gtk
et gnome
activées pour votre variable USE dans le fichier /etc/portage/make.conf. Si vous désirez disposer de la prise en charge de dbus
, un bus pour les messages système dont gnome fait un usage intensif, ajoutez l'option à USE. Si vous ne désirez pas la prise en charge de KDE (l'autre environnent majeur de bureau), désactivez les options qt4
and kde
.
Read relevant documentation before performing any profile changes.
OpenRC
OpenRC users using logind can select the GNOME OpenRC profile:
root #
eselect profile set default/linux/amd64/17.1/desktop/gnome
systemd
systemd users will want to select the following profile:
root #
eselect profile set default/linux/amd64/17.1/desktop/gnome/systemd
Make sure that X
, gtk
, and gnome
are in the USE variable located in /etc/portage/make.conf. It is recommended to enable support for D-Bus system-wide. systemd includes this system message bus.
/etc/portage/make.conf
Exemple d'options de la variable USE pour un environnement gnomeUSE="-qt4 -kde X dbus gtk gnome"
Si vous avez choisi un profil
desktop/gnome
, ces options de la variable USE sont automatiquement mises en place pour vous. Vous pouvez voir et modifier le profil que vous utilisez en exécutant les commandes eselect profile list
et eselect profile set <profile-name>
en tant qu'administrateur.Emerge
Une fois ces préparatifs terminés, installez gnome par la commande emerge gnome
:
root #
emerge gnome
Vous pouvez aussi opter pour une installation minimale de gnome en installant gnome-light
au lieu de gnome
. Si vous faites cela, vous disposerez d'une installation allégée de gnome sans les outils additionnels qu'apporte une installation complète.Vous aurez alors peut-être besoin d'installer quelques paquets par la suite.
root #
emerge --ask gnome-base/gnome-light
Also, consider disabling previewer for gnome-base/nautilus along with removing GNOME online accounts on low end devices to avoid net-libs/webkit-gtk and reduce build time:
/etc/portage/package.use/nautilus
Disabling previewer for nautilusgnome-base/nautilus -previewer
}}
{{{1}}}
Ceci prend un certain temps, alors, si vous n'avez pas encore eu le temps de lire le dernier bouquin que vous avez reçu pour votre anniversaire, c'est le moment d'en profiter ! ... Super ! Maintenant mettez votre environnement à jour :
root #
env-update && source /etc/profile
Vous pouvez maintenant nettoyer les services résiduels et les groupes d'utilisateurs.
Vérifier l'existence de groupe plugdev. S'il existe, il est recommandé de vous inscrire en tant que membre de ce groupe, mais cela reste facultatif (ce groupe n'est plus très courant).
root #
getent group plugdev
plugdev:x:104:
Remplacez yourUserName par votre nom d'utilisateur.
root #
gpasswd -a yourUserName plugdev
Premières impressions
Prenez le temps de regarder ce que vous venez de compiler. Sortez du shell root et reconnectez-vous en tant qu'utilisateur standard. Vous allez configurer votre session pour lancer gnome lorsque vous exécuterez la commande startx
(reportez-vous aussi à la section Utiliser startx du guide de configuration du serveur X) :
Enabling GDM
Help on troubleshooting issues with GDM can be found in the GNOME/GDM article.
OpenRC
For OpenRC systems, elogind is a dependency of GDM and must be started for GDM to run properly:
root #
rc-update add elogind boot
root #
rc-service elogind start
Next add display-manager-init to the default runlevel and start the service:
root #
emerge --ask --noreplace gui-libs/display-manager-init
In /etc/conf.d/display-manager set DISPLAYMANAGER to "gdm"
/etc/conf.d/display-manager
DISPLAYMANAGER="gdm"
To start on boot, add display-manager to the default runlevel:
root #
rc-update add display-manager default
To start GDM either reboot or start it with rc immediately:
root #
rc-service display-manager start
systemd
To start GDM upon boot:
root #
systemctl enable gdm.service
To start GDM immediately, run:
root #
systemctl start gdm.service
The following command both enables and starts GDM immediately:
root #
systemctl enable --now gdm.service
Another suggestion is to activate Network Manager, in case no other network managing service is activated.
Using startx
Exit the root shell and log in as a regular user. The next step is to configure the session manager to run GNOME when the the startx command is invoked (see using startx in the Xorg guide for more information).
user $
echo "exec gnome-session" > ~/.xinitrc
Depuis gnome-base/gnome-session-2.26.2
, il faut utiliser la variable préfixe XDG_MENU_PREFIX pour obtenir le menu de gnome si vous utilisez la méthode ~/.xinitrc pour lancer votre environnement de bureau. (Si vous n'utilisez pas ~/.xinitrc , cela sera fait automatiquement pour vous ; aucune configuration additionnelle n'est nécessaire.)
user $
sed -i '1i\export XDG_MENU_PREFIX=gnome-' ~/.xinitrc
Vous pouvez démarrer votre environnement graphique en exécutant la commande startx
:
user $
startx
Si tout s'est bien passé, vous devriez être accueilli par un mot de félicitations de gnome. Maintenant voyons comment configurer gnome pour qu'il réponde à vos besoins.
Privacy
Removing GNOME online accounts in the control center
Some users might be concerned about the fact that there is an online accounts section is the GNOME control center, which enables the user to connect the system to various services like Google, Microsoft, etc. In Portage, a USE flag can be set to remove this functionality:
/etc/portage/make.conf
USE="... -gnome-online-accounts"
This will tell Portage to not install the net-libs/gnome-online-accounts package if possible.
Re-emerge world with the --changed-use
flag and clean unused dependencies.
root #
emerge --ask --changed-use --update --deep @world
root #
emerge --depclean
Because of gnome-extra/gnome-contacts package being part of gnome-base/gnome via gnome-base/gnome-core-apps, the -gnome-online-accounts USE cannot be set as gnome-extra/gnome-contacts makes this a hard requirement to be enabled. gnome-base/gnome-light is an alternative though several other packages may be required for a full experience.
Configuration
Mixed localization
It could be general to have C
as the global default locale, with a different one for the desktop. This can be achieved by add settings:
~/.config/environment.d/01_localize.conf
Override locale for user sessionLANG="zh_CN.utf8"
LC_MESSAGES="zh_CN.utf8"
LC_TIME="zh_CN.utf8"
Then choose the region for locale in gnome-setting-center, or via command:
user $
gsettings set org.gnome.system.locale region 'zh_CN.utf8'
With global locale default to
C
, only set the region is not likely to change the locale for desktop, for which, configuration in environment.d is necessary, especially the LC_MESSAGES variable. And to make it work for sure, the following packages may be necessary: ≥ sys-apps/systemd-249.6-r1 and ≥ gnome-base/gnome-40.0.
Log out, make sure the old session is killed and re-login, these settings will be applied to the new session.
To override session's locale for terminal in gnome, add:
~/.bashrc
Override locale for terminalLANG="C.utf8"
LC_MESSAGES="C.utf8"
LC_TIME="C.utf8"
Tweaking GNOME
For extra configuration options in GNOME 40 install the gnome-extra/gnome-tweaks package. The tweak tool allows customization at a deeper level than the standard Settings frame.
Advanced tweaking
Advanced tweaking for GNOME can be performed from the command line via the gsettings or dconf commands or graphically via dconf-editor. All modifiable settings are accessible using these tools. For more information, see upstream's documentation.
Widgets in GNOME 40
By default on Gentoo GNOME 40 does not support widgets. For users who wish to obtain widget functionality a separate package is available:
root #
emerge --ask gnome-extra/gnome-shell-extensions
After the shell extensions are installed, eselect can be used to control defaults on a global level:
root #
eselect gnome-shell-extensions list
Available extensions (* means enabled for all users by default): [1] alternate-tab@gnome-shell-extensions.gcampax.github.com [2] apps-menu@gnome-shell-extensions.gcampax.github.com [3] auto-move-windows@gnome-shell-extensions.gcampax.github.com [4] drive-menu@gnome-shell-extensions.gcampax.github.com [5] launch-new-instance@gnome-shell-extensions.gcampax.github.com [6] native-window-placement@gnome-shell-extensions.gcampax.github.com [7] places-menu@gnome-shell-extensions.gcampax.github.com [8] screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com [9] user-theme@gnome-shell-extensions.gcampax.github.com [10] window-list@gnome-shell-extensions.gcampax.github.com [11] windowsNavigator@gnome-shell-extensions.gcampax.github.com [12] workspace-indicator@gnome-shell-extensions.gcampax.github.com
Enable click-to-install Shell Extensions through the web browser
For web browsers such as Google Chrome, Chromium, and Vivaldi be sure to get the required browser add-on through the Chrome store: https://chrome.google.com/webstore/detail/gphhapmejobijbbhgpjhcjognlahblep
Firefox users can get it here: https://addons.mozilla.org/firefox/addon/gnome-shell-integration/
Opera users will have to snag it here: https://addons.opera.com/extensions/details/gnome-shell-integration/
After the add-on has been installed for the browser of choice, a backend must also be emerged:
root #
emerge --ask gnome-extra/gnome-browser-connector
It should now be possible to install, manage, and uninstall shell extensions at https://extensions.gnome.org/
If things are not working as expected check the upstream installation instructions for news.
Non-root user authentication for dialogs
Certain GNOME dialogs such as Printers, adding wireless networks, and Users require administrator authentication. This is handled through sys-auth/polkit and operates independently from app-admin/sudo. By default in Gentoo, the root account is the only administrator, and so even if a user account can run root commands through sudo, authentication in these GNOME dialogs will fail.
If you would like all users of the group wheel to be administrators, create a copy of /usr/share/polkit-1/rules.d/50-default.rules starting with a number lower than 50, and edit the line return ["unix-user:0"] to the following:
/etc/polkit-1/rules.d/49-wheel.rules
Administrator wheel grouppolkit.addAdminRule(function(action, subject) {
return ["unix-group:wheel"];
});
The Polkit page provides more details on rules configuration.
GNOME hotspot
In order for gnome-hotspot to work, the wireless card must support AP (access point) infrastructure mode. The following package USE flags are also needed:
/etc/portage/package.use
Connection Sharing and Access Point Supportnet-misc/networkmanager connection-sharing
net-wireless/wpa_supplicant ap
In addition, the following kernel options are necessary:
Networking support (NET [=y])
Networking options --->
Network packet filtering framework (Netfilter) (NETFILTER [=y]) --->
IP: Netfilter Configuration --->
<*/M> IPv4 NAT (CONFIG_NF_NAT_IPv4)
<*/M> IPv4 masquerade support
<*/M> IP tables support (required for filtering/masq/NAT) (IP_NF_IPTABLES [=y])
<*/M> iptables NAT support
Removal
Unmerge
A possible way to completely remove a GNOME installation is by explicitly uninstalling the gnome-base/gnome package, then cleaning the dependencies of that package.
In order to do this sanely make sure the main ebuild repository has been synced:
root #
emerge --sync
Next, run a world update so that the system is fully up-to-date:
root #
emerge --ask --update --newuse --deep --with-bdeps=y @world
Unmerge the GNOME base package. Substitute the base package with gnome-base/gnome-light if the 'light' version of the package was installed instead:
root #
emerge --ask --depclean gnome-base/gnome
Finally, depclean the system:
root #
emerge --ask --depclean
GNOME should now be removed.
Troubleshooting
Login failure with message "Oh no something has gone wrong"
One source of this error can be the permissions for the video device. When logging in fails and a message appears that says "Oh no, something has gone wrong", then try to become a member of the video group. Add the user to the video group with gpasswd like so:
root #
gpasswd -a <user> video
GNOME on Wayland session is not launching with NVIDIA
Attempting to launch GNOME on Wayland sessions is a known issue. Unfortunately some older versions of the NVIDIA binary blob drivers are not compatible with Wayland. Systems that simply have older versions of the NVIDIA binary blob driver installed, but are not using it, can see this workaround.
GNOME built-in screen recorder is not working
GNOME's screen recorder uses vp8 codec which is developed by Google. The recorder needs this codec and pipewire screencast feature to record the desktop. It can be enabled it via the the vpx
and screencast
USE flags in either the make.conf or package.use files.
/etc/portage/make.conf
USE="vpx screencast"
GNOME and Pinentry not working with GPG
For example when using Evolution to sign emails with PGP, the private key needs to be decrypted. If this key has a password, a Pinentry dialogue trys to open. To enable the Gtk version, these configuration files need to be edited.
~/.gnupg/gpg.conf
use-agent
pinentry-mode loopback
~/.gnupg/gpg-agent.conf
pinentry-program /usr/bin/pinentry-gnome3
External resources
- https://github.com/dantrell/gentoo-project-gnome-without-systemd - GNOME without systemd.
- https://help.gnome.org/admin/ - Upstream GNOME administrator guide.
- https://help.gnome.org/users/ - Upstream GNOME user guide.
References
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Lars Strojny,
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.