This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
GNOME/Guide
GNOME is a popular desktop environment. This guide tries to describe all aspects of GNOME, including installation, configuration, usage, and more!
What is GNOME?
The project
The GNOME project is a free software project dedicated to the development of GNOME, a Unix/Linux desktop suite and development platform. The GNOME Foundation coordinates the development and other aspects of the GNOME Project.
The software
GNOME is a desktop environment and a development platform. This piece of free software is the desktop of choice for several industry leaders. It is interesting both for business users, home users, and developers.
The community
Like with any big free software project, GNOME has an extensive user and development base. GNOME Planet is a popular blog aggregator for GNOME hackers and contributors whereas developer.gnome.org is for the GNOME developers. GNOME Library contains a huge list of GNOME resources for end users. The WOGUE is also a popular aggregator for GNOME-related news.
Prerequisites
Before the GNOME install process, first read and follow the instructions in the Xorg guide to setup a X environment. X is the standard base for all desktop environments in Linux. Also, be sure to read and comply with all the settings from the systemd article.
If the reader does not want to use GNOME with systemd, please read the GNOME without systemd article.
Installation
Before installing GNOME, editing the system's USE variables is a good idea. 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. Add systemd
to the USE variable as well (D-Bus is a system message bus that GNOME uses extensively). If no KDE support is required, remove qt4
, qt5
and kde
from USE. USE flags can be removed by adding a minus sign (-
) in front of them. See the example below for the minus sign used properly.
/etc/portage/make.conf
Example global USE flags for a GNOME desktop environmentUSE="-qt4 -qt5 -kde X gtk gnome systemd"
Adding the branding
USE flag provides a lovely Gentoo-branded splash screen instead of the default GNOME splash screen:
root #
echo "gnome-base/gnome-session branding" >> /etc/portage/package.use
When using the
desktop/gnome/systemd
profile, these USE flags will be set automatically. It is possible to check the system profile by running eselect profile list. Modifications can be made by running eselect profile set <profile-name> as root. Be sure to replace "<profile-name>" with the number or name of the desired profile.Once finished, begin the GNOME installation by emerging GNOME:
root #
emerge --ask gnome-base/gnome
For a minimal GNOME installation install the gnome-base/gnome-light package. This option provides a lightweight GNOME installation without pulling in the full GNOME desktop environment. Most people may need to install additional packages afterwards.
root #
emerge --ask gnome-base/gnome-light
This will take a while, so start reading some books. Done? Great, now update environment variables:
root #
env-update && source /etc/profile
Next the remaining services and user groups will be cleaned.
Verify the plugdev
group exists. If it does, it is advisable to make each GNOME user member of that group, but step this is optional (the group is not common anymore).
root #
getent group plugdev
plugdev:x:104:
Substitute <username>
in the next command with each GNOME user's user name:
root #
gpasswd -a <username> plugdev
First impressions
It is time to take a look at what was just built. Either configure the session manager to run GNOME when the startx command is invoked (see using startx in the Xorg guide for more information), or enable the GDM service, for a more convenient way to start Gnome.
Enabling GDM
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
Starting with gnome-base/gnome-session-2.26.2, users will need to prepend the XDG_MENU_PREFIX variable to get the GNOME menus when using the ~/.xinitrc method to start the desktop. If ~/.xinitrc is not being used it will be handled automatically; no additional configuration is needed.
user $
sed -i '1i\export XDG_MENU_PREFIX=gnome-' ~/.xinitrc
Now start the graphical environment by issuing startx:
user $
startx
If all goes well GNOME should happily provide a greeting. Congratulations on setting up GNOME!
Customizing Gnome
For extra configuration options in GNOME 3 install the gnome-extra/gnome-tweak-tool package. The tweak tool allows customization at a deeper level than the standard Settings frame.
Widgets in GNOME 3
By default in Gentoo Gnome 3 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/chrome-gnome-shell
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 Gnome 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 /etc/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 wiki page provides more details on rules configuration.
Gnome Hotspot
In order for gnome-hotspot to work, your 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 needed:
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 Portage 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:
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
External resources
- https://plus.google.com/+WorldofGnomeOrg - The World of GNOME Google+ page.
- https://github.com/dantrell/gentoo-project-gnome-without-systemd - GNOME without Systemd
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, Joshua Saddler (nightmorph)
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.