glfs/gnome/platform/gnome-session.xml
Bruce Dubbs 12fe806968 Remove unneeded .desktop files.
Several packages add unneeded .desktop files in /usr/share/xsessions/.
These then show up in display managers and can confuse users.
This change moves them out of the way.

Also document that lxdm does not support wayland based desktop sessions.
2023-02-22 19:21:48 -06:00

287 lines
9.1 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY gnome-session-download-http
"&gnome-download-http;/gnome-session/&gnome-43;/gnome-session-&gnome-session-version;.tar.xz">
<!ENTITY gnome-session-download-ftp
"&gnome-download-ftp;/gnome-session/&gnome-43;/gnome-session-&gnome-session-version;.tar.xz">
<!ENTITY gnome-session-md5sum "02ae90bc41fd06e780169b760fb55670">
<!ENTITY gnome-session-size "476 KB">
<!ENTITY gnome-session-buildsize "12 MB">
<!ENTITY gnome-session-time "0.1 SBU">
]>
<sect1 id="gnome-session" xreflabel="gnome-session-&gnome-session-version;">
<?dbhtml filename="gnome-session.html"?>
<title>gnome-session-&gnome-session-version;</title>
<indexterm zone="gnome-session">
<primary sortas="a-gnome-session">gnome-session</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to GNOME Session</title>
<para>
The <application>GNOME Session</application> package contains
the <application>GNOME</application> session manager.
</para>
&lfs113_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&gnome-session-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&gnome-session-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &gnome-session-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &gnome-session-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &gnome-session-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &gnome-session-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">GNOME Session Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<phrase revision="sysv"><xref role="runtime" linkend="elogind"/>,</phrase>
<xref linkend="gnome-desktop"/>,
<xref linkend="json-glib"/>,
<xref linkend="mesa"/>,
<phrase revision="systemd"><xref role="runtime" linkend="systemd"/>,</phrase>
and <xref linkend="upower"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="xmlto"/>, and
<xref linkend="libxslt"/> with
<xref linkend="DocBook"/> and
<xref linkend="docbook-xsl"/> (to build the documentation)
</para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/gnome-session"/>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of GNOME Session</title>
<para>
When running GNOME under <xref linkend="wayland"/>, 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
<command>gnome-session</command> use a login shell:
</para>
<screen><userinput>sed 's@/bin/sh@/bin/sh -l@' -i gnome-session/gnome-session.in</userinput></screen>
<para revision="sysv">
Adapt meson.build so that gnome-session can build without systemd:
</para>
<screen revision="sysv"><userinput remap="pre">sed -i "/ systemd_dep/,+3d;/if enable_systemd/a \ systemd_userunitdir = '/tmp\'" meson.build</userinput></screen>
<para>
Install <application>GNOME Session</application> by
running the following commands:
</para>
<screen revision="sysv"><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
meson --prefix=/usr \
--buildtype=release \
-Dsystemd_journal=false \
.. &amp;&amp;
ninja</userinput></screen>
<screen revision="systemd"><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
meson --prefix=/usr --buildtype=release .. &amp;&amp;
ninja</userinput></screen>
<para>
This package does not come with a test suite.
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>ninja install</userinput></screen>
<!-- For some reason, there are I/O errors with the DTD @ freedesktop
that causes error messages to flood stdin. -->
<para>
Move the documentation to a versioned directory:
</para>
<screen role="root"><userinput>mv -v /usr/share/doc/gnome-session{,-&gnome-session-version;}</userinput></screen>
<para>This package creates two Xorg based .desktop files in the
/usr/share/xsessions/ directory. Only one is needed in a
BLFS system, so prevent the extra file showing up as an option
in a window manager. As the &root; user:</para>
<screen role="root"><userinput>mkdir -p /usr/share/xsessions/deprecated &amp;&amp;
mv -v /usr/share/xsessions/gnome.desktop /usr/share/xsessions/deprecated</userinput></screen>
<para revision="sysv">
Now, as the <systemitem class="username">root</systemitem> user,
remove systemd units that are useless on SysV systems:
</para>
<screen role="root" revision="sysv"><userinput>rm -rv /tmp/{*.d,*.target,*.service}</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/meson-buildtype-release.xml"/>
</sect2>
<sect2 role="starting">
<title>Starting GNOME</title>
<para>
The easiest way to start GNOME is to use a display manager.
<xref linkend="gdm"/> is the recommendend display manager.
</para>
<para>
It is also possible to start <application>GNOME</application> from the
command line. However, you must still have <xref linkend="gdm"/> 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.
</para>
<para>
To start <application>GNOME</application> using
<xref role="nodep" linkend="xinit"/>, run the following commands:
</para>
<screen role="nodump"><userinput>cat &gt; ~/.xinitrc &lt;&lt; "EOF"
<literal>dbus-run-session gnome-session</literal>
EOF
startx</userinput></screen>
<para>
Alternatively, to start <application>GNOME</application> with Wayland
support, run the following command:
</para>
<screen role="nodump"><userinput>XDG_SESSION_TYPE=wayland dbus-run-session gnome-session</userinput></screen>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
gnome-session, gnome-session-inhibit, and gnome-session-quit
</seg>
<seg>
None
</seg>
<seg>
/usr/share/doc/gnome-session-&gnome-session-version; and
/usr/share/gnome-session
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="gnome-session-prog">
<term><command>gnome-session</command></term>
<listitem>
<para>
is used to start up the <application>GNOME</application>
Desktop environment
</para>
<indexterm zone="gnome-session gnome-session-prog">
<primary sortas="b-gnome-session">gnome-session</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnome-session-inhibit">
<term><command>gnome-session-inhibit</command></term>
<listitem>
<para>
is used to inhibit certain <application>GNOME</application>
Session functionality while executing the given command
</para>
<indexterm zone="gnome-session gnome-session-inhibit">
<primary sortas="b-gnome-session-inhibit">gnome-session-inhibit</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gnome-session-quit">
<term><command>gnome-session-quit</command></term>
<listitem>
<para>
is used to end the <application>GNOME</application> Session
</para>
<indexterm zone="gnome-session gnome-session-quit">
<primary sortas="b-gnome-session-quit">gnome-session-quit</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>