gnome-session-43.0

Introduction to GNOME Session

The GNOME Session package contains the GNOME session manager.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME Session Dependencies

Required

elogind-246.10, gnome-desktop-43.2, JSON-GLib-1.6.6, Mesa-22.3.5, and UPower-1.90.0

Optional

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

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-session

Installation of GNOME Session

When running GNOME under Wayland-1.21.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/gnome-session.in

Adapt meson.build so that gnome-session can build without systemd:

sed -i "/  systemd_dep/,+3d;/if enable_systemd/a \    systemd_userunitdir = '/tmp\'" meson.build

Install GNOME Session by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr           \
      --buildtype=release     \
      -Dsystemd_journal=false \
      .. &&
ninja

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{,-43.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.

Starting GNOME

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

It is also possible to start GNOME from the command line. However, you must still have GDM-43.0 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
EOF

startx

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

XDG_SESSION_TYPE=wayland dbus-run-session gnome-session

Contents

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

Short Descriptions

gnome-session

is used to start up the GNOME Desktop environment

gnome-session-inhibit

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

gnome-session-quit

is used to end the GNOME Session