glfs/x/dm/sddm.xml

462 lines
14 KiB
XML
Raw Normal View History

<?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;
<!-- Place this in the general.ent file
<!ENTITY TEMPLATE-version "">
-->
<!ENTITY sddm-download-http "&sources-anduin-other-http;/sddm-&sddm-version;.tar.gz">
<!ENTITY sddm-download-ftp " ">
<!ENTITY sddm-md5sum "e110a7683867400dc9484d4744fd41dd">
<!ENTITY sddm-size "4.6 KB">
<!ENTITY sddm-buildsize "18 MB">
<!ENTITY sddm-time "0.6 SBU ">
]>
<sect1 id="sddm" xreflabel="sddm-&sddm-version;">
<?dbhtml filename="sddm.html"?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>sddm-&sddm-version;</title>
<indexterm zone="sddm">
<primary sortas="a-SDDM">SDDM</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to SDDM</title>
<para>
The <application>SDDM</application> package contains a lightweight
display manager based upon <application>Qt</application> and QML.
</para>
&lfs77_checked; &gcc5_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&sddm-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&sddm-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &sddm-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &sddm-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &sddm-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &sddm-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">SDDM Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="cmake"/> and
<xref linkend="qt5"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="linux-pam"/> and
<xref linkend="upower"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<ulink url="http://sourceforge.net/projects/docutils/">Docutils</ulink>
(for the man pages)
</para>
<bridgehead renderas="sect4">Runtime Dependencies</bridgehead>
<para role="required">
<xref linkend="consolekit"/>
</para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/sddm"/>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of SDDM</title>
<para>
First, create a dedicated user and group to take
control of the <command>sddm</command> daemon after it is
started. Issue the following commands as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>groupadd -g 64 sddm &amp;&amp;
useradd -c "SDDM Daemon" -d /var/lib/sddm -u 64 -g sddm -s /bin/false sddm</userinput></screen>
<para>
By default, <application>SDDM</application> starts the X server with the
parameter <parameter>-nolisten tcp</parameter>. If you need to remotely
connect to X, this is undesirable. You can optionally remove this
parameter by running:
</para>
<screen><userinput>sed -e '/nolisten/d' \
-i src/daemon/XorgDisplayServer.cpp</userinput></screen>
<para>
Install <application>SDDM</application> by running the following
commands:
</para>
<screen><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_JOURNALD=OFF \
-Wno-dev .. &amp;&amp;
make</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>make install &amp;&amp;
install -v -dm755 -o sddm -g sddm /var/lib/sddm</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch is used to
apply additional compiler optimizations.
</para>
<para>
<parameter>-DENABLE_JOURNALD=OFF</parameter>: This switch is used because
BLFS does not support <application>systemd</application>.
</para>
<para>
<option>-DBUILD_MAN_PAGES=ON</option>: This switch may be used if you want
the man pages to be installed. Notice that you need
<ulink url="http://sourceforge.net/projects/docutils/">Docutils</ulink>
to build them.
</para>
</sect2>
<sect2 role="configuration">
<title>Configuring SDDM</title>
<sect3 id="sddm-config">
<title>Config File</title>
<para>
/etc/sddm.conf
</para>
<indexterm zone="sddm sddm-config">
<primary sortas="e-sddm.conf">/etc/sddm.conf</primary>
</indexterm>
</sect3>
<sect3 id="sddm-bootscript">
<title>Boot Script</title>
<para>
Install the <filename>/etc/rc.d/init.d/sddm</filename> init script from
the <xref linkend="bootscripts"/> package.
</para>
<indexterm zone="sddm sddm-bootscript">
<primary sortas="f-sddm">sddm</primary>
</indexterm>
<screen role="root"><userinput>make install-sddm</userinput></screen>
</sect3>
<sect3>
<title>Linux PAM Configuration</title>
<para>
If you have built <application>SDDM</application>
with <application>Linux PAM</application> support,
create the necessary configuration files by running
the following commands as the <systemitem
class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>cat &gt; /etc/pam.d/sddm &lt;&lt; "EOF" &amp;&amp;
<literal># Begin /etc/pam.d/sddm
auth requisite pam_nologin.so
auth required pam_env.so
auth required pam_succeed_if.so uid &gt;= 1000 quiet
auth include system-auth
account include system-account
password include system-password
session required pam_limits.so
session include system-session
# End /etc/pam.d/sddm</literal>
EOF
cat &gt; /etc/pam.d/sddm-autologin &lt;&lt; "EOF" &amp;&amp;
<literal># Begin /etc/pam.d/sddm-autologin
auth requisite pam_nologin.so
auth required pam_env.so
auth required pam_succeed_if.so uid &gt;= 1000 quiet
auth required pam_permit.so
account include system-account
password required pam_deny.so
session required pam_limits.so
session include system-session
# End /etc/pam.d/sddm-autologin</literal>
EOF
cat &gt; /etc/pam.d/sddm-greeter &lt;&lt; "EOF"
<literal># Begin /etc/pam.d/sddm-greeter
auth required pam_env.so
auth required pam_permit.so
account required pam_permit.so
password required pam_deny.so
session required pam_unix.so
-session optional pam_systemd.so
# End /etc/pam.d/sddm-greeter</literal>
EOF</userinput></screen>
</sect3>
<sect3 id="sddm-init">
<title>Starting sddm</title>
<para>
If the sddm bootscript has been installed, start it by running, as
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>/etc/rc.d/init.d/sddm start</userinput></screen>
<para>
By convention, X should be executed at runlevel 5, consequently, the
same is true for <application>sddm</application>. However, LFS default
runlevel is 3. Changing to runlevel 5, from a console terminal, as
<systemitem class="username">root</systemitem> user, starts the
<command>sddm</command> bootscript, bringing up the greeter screen:
</para>
<screen role="root"><userinput>init 5</userinput></screen>
<para>
In order to permanently set the default to 5, starting the
<command>sddm</command> greeter screen automatically, modify
<filename>/etc/inittab</filename>. As the <systemitem
class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>cp -v /etc/inittab{,-orig} &amp;&amp;
sed -i '/initdefault/ s/3/5/' /etc/inittab</userinput></screen>
</sect3>
<sect3 id="sddm-sessions">
<title>Available Sessions</title>
<para>
The greeter offers a list of available sessions,
depending on the Window Managers and Desktop Environments installed. The
list includes sessions which have a corresponding
<filename>.desktop</filename> file installed under
<filename class="directory">/usr/share/xsessions</filename>. Most of the
Window Managers and Desktop Environments automatically provide those
files, but if necessary, you may include a custom one.
</para>
</sect3>
<sect3 id="sddm-themes">
<title>Themes</title>
<para>
Four themes are installed at <filename class="directory">
/usr/share/sddm/themes</filename>:
circles,
elarun,
maldives, and
maui.
The default theme is <quote>maui</quote>. You can install other themes
in that directory. In order to change the theme, you need to edit
<filename>/etc/sddm.conf</filename>, which is not installed by default.
Before proceeding, make a backup of this file, if there is one already
installed. In order to generate <filename>/etc/sddm.conf</filename>,
issue, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>sddm --example-config > /etc/sddm.conf</userinput></screen>
<para>
Now, using your preferred text editor, change the default
<quote>maui</quote> theme, replacing <quote>Current=maui</quote> by
<quote>Current=<replaceable>&lt;insert new theme name here&gt;</replaceable></quote>,
e.g. <quote>Current=maldives</quote>.
</para>
<para>
In order to see the theme without leaving the session, issue:
</para>
<screen><userinput>sddm-greeter --test-mode --theme <replaceable>&lt;theme path&gt;</replaceable></userinput></screen>
</sect3>
<sect3 id="sddm-Issues">
<title>Known Issues</title>
<para>
This application works well, but there are issues. You find the
mainstream known issues at
<ulink url="https://github.com/sddm/sddm/issues">Issues</ulink>.
The BLFS development team have found some issues.
</para>
<para>
Keyboard selection: the greeter shows a double question mark or the
wrong keyboard. When you start to type the password or user name
(depending on the theme, only password), the right keyboard selection
magically appears. Optionally, a workaround is to include the keyboard
list in <command>/usr/share/sddm/scripts/Xsetup</command> script, as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>echo 'setxkbmap <replaceable>"&lt;your keyboard comma separated list&gt;"</replaceable>' &gt;&gt; /usr/share/sddm/scripts/Xsetup</userinput></screen>
<para>
E.g. <command>echo 'setxkbmap "gb,br,us"' &gt;&gt;
/usr/share/sddm/scripts/Xsetup</command>
</para>
<para>
Dircolors: the <filename>/etc/dircolors</filename> file is not
honoured. Particularly, the compressed files are not displayed in red
colour. If this happens, a workaround is to issue, as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>echo "source /etc/profile.d/dircolors.sh" &gt;&gt; /etc/bashrc</userinput></screen>
<para>
It has been reported that this package does not work with Xorg installed
with a prefix other than <filename class="directory">/usr</filename>.
</para>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
sddm and sddm-greeter
</seg>
<seg>
None
</seg>
<seg>
$QT5DIR/qml/SddmComponents,
/usr/share/sddm, and
/var/lib/sddm
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="sddm-prog">
<term><command>sddm</command></term>
<listitem>
<para>
is a display and login manager based on
<application>Qt</application> libraries.
</para>
<indexterm zone="sddm sddm-prog">
<primary sortas="b-sddm">sddm</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="sddm-greeter">
<term><command>sddm-greeter</command></term>
<listitem>
<para>
is an auxiliary process that displays the greeter,
a graphical user interface that performs user
authentication and initiates the selected window manager
or display environment.
</para>
<indexterm zone="sddm sddm-greeter">
<primary sortas="b-sddm-greeter">sddm-greeter</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>