mirror of
https://github.com/Zeckmathederg/glfs.git
synced 2025-01-27 09:42:12 +08:00
608 lines
19 KiB
XML
608 lines
19 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 sddm-download-http "https://github.com/sddm/sddm/archive/v&sddm-version;/sddm-&sddm-version;.tar.gz">
|
|
<!ENTITY sddm-download-ftp " ">
|
|
<!ENTITY sddm-md5sum "7af67d5fb767639861d35c80eb4e1191">
|
|
<!ENTITY sddm-size "3.4 MB">
|
|
<!ENTITY sddm-buildsize "22 MB">
|
|
<!ENTITY sddm-time "0.3 SBU (Using parallelism=4">
|
|
]>
|
|
|
|
<sect1 id="sddm" xreflabel="sddm-&sddm-version;">
|
|
<?dbhtml filename="sddm.html"?>
|
|
|
|
<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>
|
|
|
|
&lfs120_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"/>,
|
|
<xref linkend="extra-cmake-modules"/>, and
|
|
&qt5-deps;
|
|
</para>
|
|
|
|
<bridgehead renderas="sect4">Recommended</bridgehead>
|
|
<para role="recommended">
|
|
<xref linkend="docutils"/> (for the man pages),
|
|
<xref linkend="linux-pam"/>, and
|
|
<xref linkend="upower"/>
|
|
</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
|
|
&root; user:
|
|
</para>
|
|
|
|
<screen role="root"><userinput>groupadd -g 64 sddm &&
|
|
useradd -c "sddm Daemon" \
|
|
-d /var/lib/sddm \
|
|
-u 64 -g sddm \
|
|
-s /bin/false sddm</userinput></screen>
|
|
<!--
|
|
<para revision="sysv">
|
|
Next, fix the application to start <command>upowerd</command>,
|
|
if necessary, and after login, start the session with
|
|
<command>ck-launch-session</command>:
|
|
</para>
|
|
|
|
<screen revision="sysv"><userinput>sed -e '/UPOWER_SERVICE)/ s:^://:' \
|
|
-i src/daemon/PowerManager.cpp &&
|
|
|
|
sed -e '/\$@$/s/exec/& ck-launch-session/' \
|
|
-i data/scripts/Xsession</userinput></screen>
|
|
|
|
<para revision="sysv">
|
|
For sddm-0.16.0, ConsoleKit support has been added, but is broken. Remove
|
|
it with:
|
|
</para>
|
|
-->
|
|
<!-- This removes also logind support. Hopefully should be fixed for next
|
|
version
|
|
<screen revision="sysv"><userinput>sed -e '/available.*true/s/true/false/' \
|
|
-i src/daemon/LogindDBusTypes.cpp</userinput></screen>
|
|
-->
|
|
<para>
|
|
Install <application>sddm</application> by running the following
|
|
commands:
|
|
</para>
|
|
|
|
<screen revision="sysv"><userinput>mkdir build &&
|
|
cd build &&
|
|
|
|
cmake -DCMAKE_INSTALL_PREFIX=/usr \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DENABLE_JOURNALD=OFF \
|
|
-DNO_SYSTEMD=ON \
|
|
-DRUNTIME_DIR=/run/sddm \
|
|
-DUSE_ELOGIND=ON \
|
|
-DBUILD_MAN_PAGES=ON \
|
|
-DDATA_INSTALL_DIR=/usr/share/sddm \
|
|
-DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
|
|
.. &&
|
|
make</userinput></screen>
|
|
|
|
<screen revision="systemd"><userinput>mkdir build &&
|
|
cd build &&
|
|
|
|
cmake -DCMAKE_INSTALL_PREFIX=/usr \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DRUNTIME_DIR=/run/sddm \
|
|
-DBUILD_MAN_PAGES=ON \
|
|
-DDATA_INSTALL_DIR=/usr/share/sddm \
|
|
-DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
|
|
.. &&
|
|
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 &&
|
|
install -v -dm755 -o sddm -g sddm /var/lib/sddm
|
|
/usr/bin/sddm --example-config > /etc/sddm.conf</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 revision="sysv">
|
|
<parameter>-DENABLE_JOURNALD=OFF</parameter> and
|
|
<parameter>-DNO_SYSTEMD=ON</parameter>: These switchs are used because
|
|
this version of BLFS does not support <application>systemd</application>.
|
|
</para>
|
|
|
|
<para>
|
|
<parameter>-DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf</parameter>:
|
|
This switch prevents the file <filename>
|
|
/etc/dbus-1/system.d/org.freedesktop.DisplayManager.conf</filename> from
|
|
being overwritten, as it may be used by other DM's.
|
|
</para>
|
|
|
|
<para>
|
|
<option>-DBUILD_MAN_PAGES=ON</option>: This switch is used to build
|
|
and install man pages.
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="configuration">
|
|
<title>Configuring SDDM</title>
|
|
|
|
<sect3 id="sddm-config">
|
|
<title>Config Files</title>
|
|
|
|
<para>
|
|
/etc/sddm.config
|
|
</para>
|
|
|
|
<indexterm zone="sddm sddm-config">
|
|
<primary sortas="e-sddm.conf">/etc/sddm.conf</primary>
|
|
</indexterm>
|
|
|
|
<para>
|
|
Normally, you want to edit this file. For example, if Xorg is installed
|
|
in /opt, use your preferred editor as the &root; user to replace the
|
|
default <emphasis>XauthPath</emphasis> value by
|
|
<emphasis>/opt/xorg/bin/xauth</emphasis>. Or, as the &root; user,
|
|
issue:
|
|
</para>
|
|
|
|
<screen role="root"><userinput>sed -i.orig '/ServerPath/ s|usr|opt/xorg|' /etc/sddm.conf</userinput></screen>
|
|
|
|
<para>
|
|
This command will do the substitution and create a copy of the original
|
|
file with name <filename>/etc/sddm.conf.orig</filename>.
|
|
</para>
|
|
|
|
<para>
|
|
From now on, we will describe how to modify configurations using sed.
|
|
Of course, you may instead use your preferred editor as the &root;
|
|
user.
|
|
</para>
|
|
|
|
<para>
|
|
For security reasons, you normally want the default
|
|
<emphasis>ServerArguments=-nolisten tcp</emphasis>, unless a remote
|
|
machine needs access to the local X server. In that case, as the
|
|
&root; user, issue:
|
|
</para>
|
|
|
|
<screen role="root"><userinput>sed -i 's/-nolisten tcp//' /etc/sddm.conf</userinput></screen>
|
|
|
|
<para>
|
|
Desktop (Notebook) users, normally want the Num Lock key on (off). For
|
|
that, as &root;, issue:
|
|
</para>
|
|
|
|
<screen role="root"><userinput>sed -i 's/none/on/' /etc/sddm.conf</userinput></screen>
|
|
|
|
<para>
|
|
for Desktop users. For Notebook users, replace /on/ by /off/
|
|
in the command above.
|
|
</para>
|
|
|
|
<para>
|
|
By default, a virtual keyboard is presented for the user. If this is
|
|
not desired, run as &root;:
|
|
</para>
|
|
|
|
<screen role="root"><userinput>sed -i 's/qtvirtualkeyboard//' /etc/sddm.conf</userinput></screen>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="sddm-bootscript">
|
|
<title>Boot Script</title>
|
|
|
|
<para revision="sysv">
|
|
Install the <filename revision="sysv">/etc/rc.d/init.d/xdm</filename>
|
|
init script from the <xref linkend="bootscripts" revision="sysv"/>
|
|
package, as the &root; user:
|
|
</para>
|
|
|
|
<para revision="systemd">
|
|
Enable the pre-installed systemd unit by running the following command
|
|
as the &root; user:
|
|
</para>
|
|
|
|
<indexterm zone="sddm sddm-bootscript">
|
|
<primary sortas="f-sddm">sddm</primary>
|
|
</indexterm>
|
|
|
|
<screen role="root" revision="sysv"><userinput>make install-sddm</userinput></screen>
|
|
|
|
<screen role="root" revision="systemd"><userinput>systemctl enable sddm</userinput></screen>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Linux PAM Configuration</title>
|
|
|
|
<note>
|
|
<para>
|
|
The install procedure above installed a set of PAM configuration
|
|
files. These procedures overwrite them and use versions compatible
|
|
with a BLFS environment.
|
|
</para>
|
|
</note>
|
|
|
|
<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 &root; user:
|
|
</para>
|
|
|
|
<screen role="root" revision="sysv"><userinput>cat > /etc/pam.d/sddm << "EOF"
|
|
<literal># Begin /etc/pam.d/sddm
|
|
|
|
auth requisite pam_nologin.so
|
|
auth required pam_env.so
|
|
|
|
auth required pam_succeed_if.so uid >= 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 > /etc/pam.d/sddm-autologin << "EOF"
|
|
<literal># Begin /etc/pam.d/sddm-autologin
|
|
|
|
auth requisite pam_nologin.so
|
|
auth required pam_env.so
|
|
|
|
auth required pam_succeed_if.so uid >= 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 > /etc/pam.d/sddm-greeter << "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>
|
|
|
|
<screen role="root" revision="systemd"><userinput>cat > /etc/pam.d/sddm << "EOF" &&
|
|
<literal># Begin /etc/pam.d/sddm
|
|
|
|
auth requisite pam_nologin.so
|
|
auth required pam_env.so
|
|
|
|
auth required pam_succeed_if.so uid >= 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 > /etc/pam.d/sddm-autologin << "EOF" &&
|
|
<literal># Begin /etc/pam.d/sddm-autologin
|
|
|
|
auth requisite pam_nologin.so
|
|
auth required pam_env.so
|
|
|
|
auth required pam_succeed_if.so uid >= 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 > /etc/pam.d/sddm-greeter << "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" revision="sysv">
|
|
<title>Starting sddm</title>
|
|
|
|
<para>
|
|
If the sddm bootscript has been installed, start sddm by running, as the
|
|
&root; user:
|
|
</para>
|
|
|
|
<screen role="root"><userinput>/etc/rc.d/init.d/xdm start</userinput></screen>
|
|
|
|
<para>
|
|
By convention, X should be executed at runlevel 5, consequently, the
|
|
same is true for <application>sddm</application>. However, the 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} &&
|
|
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> or
|
|
<filename class="directory">/usr/share/wayland-sessions</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>
|
|
Three themes are installed at <filename class="directory">
|
|
/usr/share/sddm/themes</filename>:
|
|
elarun,
|
|
maldives, and
|
|
maya.
|
|
There is also a default theme, which is not present in that directory.
|
|
You can install other themes in that directory. In order to change the
|
|
theme, you need to edit <filename>/etc/sddm.conf</filename>,
|
|
to change the default (empty) theme, replacing <quote>Current=</quote>
|
|
with <quote>Current=<new theme></quote>, e.g.
|
|
<quote>Current=maldives</quote>.
|
|
</para>
|
|
|
|
<para>
|
|
In order to see the theme without leaving the session, issue:
|
|
</para>
|
|
|
|
<screen role="nodump"><userinput>sddm-greeter --test-mode --theme <replaceable><theme path></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>
|
|
|
|
<note>
|
|
<para>
|
|
In the next couple of paragraphs, due to a problem with sddm-greeter,
|
|
we mention how to define the keyboard used there. Notice that this is
|
|
also the keyboard that will be used in the X session, unless there is
|
|
a configuration in the Desktop Environment or in the Window Manager
|
|
overriding it, afterwards.
|
|
</para>
|
|
</note>
|
|
|
|
<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>"<your keyboard comma separated list>"</replaceable>' >> \
|
|
/usr/share/sddm/scripts/Xsetup</userinput></screen>
|
|
|
|
<para>
|
|
E.g. <command>echo 'setxkbmap "fr,gb,br,us"' >>
|
|
/usr/share/sddm/scripts/Xsetup</command>. A very accurate definition
|
|
of the keyboard(s) is possible, for example: <command>echo 'setxkbmap
|
|
-model pc105 -layout br,us -variant abnt2,dvorak -keycodes evdev'
|
|
>> /usr/share/sddm/scripts/Xsetup</command>. See man setxkbmap.
|
|
</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" >> /etc/bashrc</userinput></screen>
|
|
|
|
<para>
|
|
It has been reported that problems may happen with this package, if
|
|
Xorg is installed with a prefix other than <filename
|
|
class="directory">/usr</filename>. So far, BLFS development team has
|
|
not hit any problem, in this case.
|
|
</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>
|