Introduction to GNOME Session

The GNOME Session package contains the GNOME session manager.



Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

Package Information

GNOME Session Dependencies


elogind-252.9, gnome-desktop-44.0, JSON-GLib-1.8.0, Mesa-23.1.8, and UPower-1.90.2


xmlto-0.0.28, and libxslt-1.1.38 with docbook-xml-4.5 and docbook-xsl-nons-1.79.2 (to build the documentation)

Installation of GNOME Session

When running GNOME under Wayland-1.22.0, environment settings are not imported for the user using the system profile. The Wayland developers are currently undecided on a standard method to provide system environment settings for user sessions. To work around this limitation, execute the following command to make gnome-session use a login shell:

sed 's@/bin/sh@/bin/sh -l@' -i gnome-session/

Install GNOME Session by running the following commands:

mkdir build &&
cd    build &&

meson setup --prefix=/usr             \
            --buildtype=release       \
            -Dsystemd_journal=false   \
            -Dsystemduserunitdir=/tmp \
            ..                        &&

This package does not come with a test suite.

Now, as the root user:

ninja install

Move the documentation to a versioned directory:

mv -v /usr/share/doc/gnome-session{,-45.0}

This package creates two Xorg based .desktop files in the /usr/share/xsessions/ directory, and two Wayland based .desktop files in the /usr/share/wayland-sessions/ directory. Only one is needed in each directory on a BLFS system, so prevent the extra files showing up as options in a display manager. As the root user:

rm -v /usr/share/xsessions/gnome.desktop &&
rm -v /usr/share/wayland-sessions/gnome.desktop

Now, as the root user, remove systemd units that are useless on SysV systems:

rm -rv /tmp/{*.d,*.target,*.service}

The startup sequence of gnome-wayland needs to create a dbus session. On SysV, this has to be added to the shipped gnome-wayland.desktop file, which is written for systemd. As the root user:

sed -e 's@^Exec=@&/usr/bin/dbus-run-session @' \
    -i /usr/share/wayland-sessions/gnome-wayland.desktop

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dsystemd_journal=false and -Dsystemduserunitdir=/tmp: Allow building with elogind support on a SysV based system.

Starting GNOME

The easiest way to start GNOME is to use a display manager. GDM-45.0.1 is the recommended display manager.

It is also possible to start GNOME from the command line. However, you must still have GDM-45.0.1 installed for some portions of the desktop to work. One reason to start from the command line is if you want Wayland support on a system that has the proprietary NVIDIA driver installed, since GDM will not show the Wayland session type on such a system.

To start GNOME using xinit-1.4.2, run the following commands:

cat > ~/.xinitrc << "EOF"
dbus-run-session gnome-session


Alternatively, to start GNOME with Wayland support, run the following command:

XDG_SESSION_TYPE=wayland dbus-run-session gnome-session


Installed Programs: gnome-session, gnome-session-inhibit, and gnome-session-quit
Installed Libraries: None
Installed Directories: /usr/share/doc/gnome-session-45.0 and /usr/share/gnome-session

Short Descriptions


is used to start up the GNOME Desktop environment


is used to inhibit certain GNOME Session functionality while executing the given command


is used to end the GNOME Session