glfs/gnome/platform/gnome-session.xml
Douglas R. Reno c71450cdb0 Tag the GNOME Desktop section
Off to Applications in the morning
2023-08-22 22:59:57 -05:00

310 lines
10 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-44;/gnome-session-&gnome-session-version;.tar.xz">
<!ENTITY gnome-session-download-ftp
"&gnome-download-ftp;/gnome-session/&gnome-44;/gnome-session-&gnome-session-version;.tar.xz">
<!ENTITY gnome-session-md5sum "0223353306fb2e5b84bd42e3fde905f0">
<!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>
&lfs120_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 linkend="elogind"/>,</phrase>
<xref linkend="gnome-desktop"/>,
<xref linkend="json-glib"/>,
<xref linkend="mesa"/>,
<phrase revision="systemd"><xref role="runtime" linkend="systemd"/>
(runtime),</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>
</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 setup --prefix=/usr \
--buildtype=release \
-Dsystemd_journal=false \
-Dsystemduserunitdir=/tmp \
.. &amp;&amp;
ninja</userinput></screen>
<screen revision="systemd"><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
meson setup --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 <filename>.desktop</filename> files
in the <filename class="directory">/usr/share/xsessions/</filename>
directory, and two Wayland based <filename>.desktop</filename> files in
the <filename class="directory">/usr/share/wayland-sessions/</filename>
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:
</para>
<screen role="root"><userinput>rm -v /usr/share/xsessions/gnome.desktop &amp;&amp;
rm -v /usr/share/wayland-sessions/gnome.desktop</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>
-->
<!-- this part is not needed on systemd, since the dbus session is created
by systemd-user.-->
<para revision="sysv">
The startup sequence of gnome-wayland needs to create a dbus session.
On SysV, this has to be added to the shipped
<filename>gnome-wayland.desktop</filename> file, which is written for
systemd. As the &root; user:
</para>
<screen role="root" revision="sysv"><userinput>sed -e 's@^Exec=@&amp;/usr/bin/dbus-run-session @' \
-i /usr/share/wayland-sessions/gnome-wayland.desktop</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"/>
<para revision="sysv">
<parameter>-Dsystemd_journal=false</parameter>
and <parameter>-Dsystemduserunitdir=/tmp</parameter>: Allow building
with elogind support on a SysV based system.
</para>
</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 recommended 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>