source: x/dm/sddm.xml@ 5169e8ca

12.2 trunk
Last change on this file since 5169e8ca was 5169e8ca, checked in by Bruce Dubbs <bdubbs@…>, 3 weeks ago

Build sddm with qt6. Tag it for lfs-12.2.

  • Property mode set to 100644
File size: 18.9 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY sddm-download-http "https://github.com/sddm/sddm/archive/v&sddm-version;/sddm-&sddm-version;.tar.gz">
8 <!ENTITY sddm-download-ftp " ">
9 <!ENTITY sddm-md5sum "e32a35c282d9be3360737eefbe25b5fa">
10 <!ENTITY sddm-size "3.4 MB">
11 <!ENTITY sddm-buildsize "24 MB">
12 <!ENTITY sddm-time "0.3 SBU (Using parallelism=4)">
13]>
14
15<sect1 id="sddm" xreflabel="sddm-&sddm-version;">
16 <?dbhtml filename="sddm.html"?>
17
18 <title>sddm-&sddm-version;</title>
19
20 <indexterm zone="sddm">
21 <primary sortas="a-sddm">sddm</primary>
22 </indexterm>
23
24 <sect2 role="package">
25 <title>Introduction to sddm</title>
26
27 <para>
28 The <application>sddm</application> package contains a lightweight
29 display manager based upon <application>Qt</application> and QML.
30 </para>
31
32 &lfs122_checked;
33
34 <bridgehead renderas="sect3">Package Information</bridgehead>
35 <itemizedlist spacing="compact">
36 <listitem>
37 <para>
38 Download (HTTP): <ulink url="&sddm-download-http;"/>
39 </para>
40 </listitem>
41 <listitem>
42 <para>
43 Download (FTP): <ulink url="&sddm-download-ftp;"/>
44 </para>
45 </listitem>
46 <listitem>
47 <para>
48 Download MD5 sum: &sddm-md5sum;
49 </para>
50 </listitem>
51 <listitem>
52 <para>
53 Download size: &sddm-size;
54 </para>
55 </listitem>
56 <listitem>
57 <para>
58 Estimated disk space required: &sddm-buildsize;
59 </para>
60 </listitem>
61 <listitem>
62 <para>
63 Estimated build time: &sddm-time;
64 </para>
65 </listitem>
66 </itemizedlist>
67
68 <bridgehead renderas="sect3">SDDM Dependencies</bridgehead>
69
70 <bridgehead renderas="sect4">Required</bridgehead>
71 <para role="required">
72 <xref linkend="cmake"/>,
73 <xref linkend="extra-cmake-modules"/>, and
74 <xref linkend="qt6"/>
75 </para>
76
77 <bridgehead renderas="sect4">Recommended</bridgehead>
78 <para role="recommended">
79 <xref linkend="docutils"/> (for the man pages),
80 <xref linkend="linux-pam"/>, and
81 <xref linkend="upower"/>
82 </para>
83
84<!--
85 <para condition="html" role="usernotes">User Notes:
86 <ulink url="&blfs-wiki;/sddm"/>
87 </para>
88-->
89 </sect2>
90 <sect2 role="installation">
91 <title>Installation of SDDM</title>
92
93 <para>
94 First, create a dedicated user and group to take
95 control of the <command>sddm</command> daemon after it is
96 started. Issue the following commands as the
97 &root; user:
98 </para>
99
100<screen role="root"><userinput>groupadd -g 64 sddm &amp;&amp;
101useradd -c "sddm Daemon" \
102 -d /var/lib/sddm \
103 -u 64 -g sddm \
104 -s /bin/false sddm</userinput></screen>
105<!--
106 <para revision="sysv">
107 Next, fix the application to start <command>upowerd</command>,
108 if necessary, and after login, start the session with
109 <command>ck-launch-session</command>:
110 </para>
111
112<screen revision="sysv"><userinput>sed -e '/UPOWER_SERVICE)/ s:^://:' \
113 -i src/daemon/PowerManager.cpp &amp;&amp;
114
115sed -e '/\$@$/s/exec/&amp; ck-launch-session/' \
116 -i data/scripts/Xsession</userinput></screen>
117
118 <para revision="sysv">
119 For sddm-0.16.0, ConsoleKit support has been added, but is broken. Remove
120 it with:
121 </para>
122-->
123<!-- This removes also logind support. Hopefully should be fixed for next
124 version
125<screen revision="sysv"><userinput>sed -e '/available.*true/s/true/false/' \
126 -i src/daemon/LogindDBusTypes.cpp</userinput></screen>
127-->
128 <para>
129 Install <application>sddm</application> by running the following
130 commands:
131 </para>
132
133<screen revision="sysv"><userinput>mkdir build &amp;&amp;
134cd build &amp;&amp;
135
136cmake -D CMAKE_INSTALL_PREFIX=/usr \
137 -D CMAKE_BUILD_TYPE=Release \
138 -D ENABLE_JOURNALD=OFF \
139 -D NO_SYSTEMD=ON \
140 -D RUNTIME_DIR=/run/sddm \
141 -D USE_ELOGIND=ON \
142 -D BUILD_MAN_PAGES=ON \
143 -D BUILD_WITH_QT6=ON \
144 -D DATA_INSTALL_DIR=/usr/share/sddm \
145 -D DBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
146 .. &amp;&amp;
147make</userinput></screen>
148
149<screen revision="systemd"><userinput>mkdir build &amp;&amp;
150cd build &amp;&amp;
151
152cmake -D CMAKE_INSTALL_PREFIX=/usr \
153 -D CMAKE_BUILD_TYPE=Release \
154 -D RUNTIME_DIR=/run/sddm \
155 -D BUILD_MAN_PAGES=ON \
156 -D BUILD_WITH_QT6=ON \
157 -D DATA_INSTALL_DIR=/usr/share/sddm \
158 -D DBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
159 .. &amp;&amp;
160make</userinput></screen>
161
162 <para>
163 This package does not come with a test suite.
164 </para>
165
166 <para>
167 Now, as the <systemitem class="username">root</systemitem> user:
168 </para>
169
170<screen role="root"><userinput>make install &amp;&amp;
171install -v -dm755 -o sddm -g sddm /var/lib/sddm
172/usr/bin/sddm --example-config > /etc/sddm.conf</userinput></screen>
173
174 </sect2>
175
176 <sect2 role="commands">
177 <title>Command Explanations</title>
178
179 <para>
180 <parameter>-D CMAKE_BUILD_TYPE=Release</parameter>: This switch is used to
181 apply additional compiler optimizations.
182 </para>
183
184 <para revision="sysv">
185 <parameter>-D ENABLE_JOURNALD=OFF</parameter> and
186 <parameter>-D NO_SYSTEMD=ON</parameter>: These switches are used because
187 this version of BLFS does not support <application>systemd</application>.
188 </para>
189
190 <para>
191 <parameter>-D DBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf</parameter>:
192 This switch prevents the file <filename>
193 /etc/dbus-1/system.d/org.freedesktop.DisplayManager.conf</filename> from
194 being overwritten, as it may be used by other DM's.
195 </para>
196
197 <para>
198 <parameter>-D BUILD_MAN_PAGES=ON</parameter>: This switch is used to build
199 and install man pages.
200 </para>
201
202 </sect2>
203
204 <sect2 role="configuration">
205 <title>Configuring SDDM</title>
206
207 <sect3 id="sddm-config">
208 <title>Config Files</title>
209
210 <para>
211 /etc/sddm.config
212 </para>
213
214 <indexterm zone="sddm sddm-config">
215 <primary sortas="e-sddm.conf">/etc/sddm.conf</primary>
216 </indexterm>
217
218 <para>
219 Normally, you want to edit this file. For example, if Xorg is installed
220 in /opt, use your preferred editor as the &root; user to replace the
221 default <emphasis>XauthPath</emphasis> value by
222 <emphasis>/opt/xorg/bin/xauth</emphasis>. Or, as the &root; user,
223 issue:
224 </para>
225
226<screen role="nodump"><userinput>sed -i.orig '/ServerPath/ s|usr|opt/xorg|' /etc/sddm.conf</userinput></screen>
227
228 <para>
229 This command will do the substitution and create a copy of the original
230 file with name <filename>/etc/sddm.conf.orig</filename>.
231 </para>
232
233 <para>
234 From now on, we will describe how to modify configurations using sed.
235 Of course, you may instead use your preferred editor as the &root;
236 user.
237 </para>
238
239 <para>
240 For security reasons, you normally want the default
241 <emphasis>ServerArguments=-nolisten tcp</emphasis>, unless a remote
242 machine needs access to the local X server. In that case, as the
243 &root; user, issue:
244 </para>
245
246<screen role="nodump"><userinput>sed -i 's/-nolisten tcp//' /etc/sddm.conf</userinput></screen>
247
248 <para>
249 Desktop (Notebook) users, normally want the Num Lock key on (off). For
250 that, as &root;, issue:
251 </para>
252
253<screen role="root"><userinput>sed -i '/Numlock/s/none/on/' /etc/sddm.conf</userinput></screen>
254
255 <para>
256 for Desktop users. For Notebook users, replace /on/ by /off/
257 in the command above.
258 </para>
259
260 <para>
261 By default, a virtual keyboard is presented for the user. If this is
262 not desired, run as &root;:
263 </para>
264
265<screen role="root"><userinput>sed -i 's/qtvirtualkeyboard//' /etc/sddm.conf</userinput></screen>
266
267 </sect3>
268
269 <sect3 id="sddm-bootscript">
270 <title>Boot Script</title>
271
272 <para revision="sysv">
273 Install the <filename revision="sysv">/etc/rc.d/init.d/xdm</filename>
274 init script from the <xref linkend="bootscripts" revision="sysv"/>
275 package, as the &root; user:
276 </para>
277
278 <para revision="systemd">
279 Enable the pre-installed systemd unit by running the following command
280 as the &root; user:
281 </para>
282
283 <indexterm zone="sddm sddm-bootscript">
284 <primary sortas="f-sddm">sddm</primary>
285 </indexterm>
286
287<screen role="root" revision="sysv"><userinput>make install-sddm</userinput></screen>
288
289<screen role="root" revision="systemd"><userinput>systemctl enable sddm</userinput></screen>
290
291 </sect3>
292
293 <sect3>
294 <title>Linux PAM Configuration</title>
295
296 <note>
297 <para>
298 The install procedure above installed a set of PAM configuration
299 files. These procedures overwrite them and use versions compatible
300 with a BLFS environment.
301 </para>
302 </note>
303
304 <para>
305 If you have built <application>sddm</application>
306 with <application>Linux PAM</application> support,
307 create the necessary configuration files by running
308 the following commands as the &root; user:
309 </para>
310
311<screen role="root" revision="sysv"><userinput>cat &gt; /etc/pam.d/sddm &lt;&lt; "EOF"
312<literal># Begin /etc/pam.d/sddm
313
314auth requisite pam_nologin.so
315auth required pam_env.so
316
317auth required pam_succeed_if.so uid &gt;= 1000 quiet
318auth include system-auth
319
320account include system-account
321password include system-password
322
323session required pam_limits.so
324session include system-session
325
326# End /etc/pam.d/sddm</literal>
327EOF
328
329cat &gt; /etc/pam.d/sddm-autologin &lt;&lt; "EOF"
330<literal># Begin /etc/pam.d/sddm-autologin
331
332auth requisite pam_nologin.so
333auth required pam_env.so
334
335auth required pam_succeed_if.so uid &gt;= 1000 quiet
336auth required pam_permit.so
337
338account include system-account
339
340password required pam_deny.so
341
342session required pam_limits.so
343session include system-session
344
345# End /etc/pam.d/sddm-autologin</literal>
346EOF
347
348cat &gt; /etc/pam.d/sddm-greeter &lt;&lt; "EOF"
349<literal># Begin /etc/pam.d/sddm-greeter
350
351auth required pam_env.so
352auth required pam_permit.so
353
354account required pam_permit.so
355password required pam_deny.so
356session required pam_unix.so
357-session optional pam_systemd.so
358
359# End /etc/pam.d/sddm-greeter</literal>
360EOF</userinput></screen>
361
362<screen role="root" revision="systemd"><userinput>cat &gt; /etc/pam.d/sddm &lt;&lt; "EOF" &amp;&amp;
363<literal># Begin /etc/pam.d/sddm
364
365auth requisite pam_nologin.so
366auth required pam_env.so
367
368auth required pam_succeed_if.so uid &gt;= 1000 quiet
369auth include system-auth
370
371account include system-account
372password include system-password
373
374session required pam_limits.so
375session include system-session
376
377# End /etc/pam.d/sddm</literal>
378EOF
379
380cat &gt; /etc/pam.d/sddm-autologin &lt;&lt; "EOF" &amp;&amp;
381<literal># Begin /etc/pam.d/sddm-autologin
382
383auth requisite pam_nologin.so
384auth required pam_env.so
385
386auth required pam_succeed_if.so uid &gt;= 1000 quiet
387auth required pam_permit.so
388
389account include system-account
390
391password required pam_deny.so
392
393session required pam_limits.so
394session include system-session
395
396# End /etc/pam.d/sddm-autologin</literal>
397EOF
398
399cat &gt; /etc/pam.d/sddm-greeter &lt;&lt; "EOF"
400<literal># Begin /etc/pam.d/sddm-greeter
401
402auth required pam_env.so
403auth required pam_permit.so
404
405account required pam_permit.so
406password required pam_deny.so
407session required pam_unix.so
408-session optional pam_systemd.so
409
410# End /etc/pam.d/sddm-greeter</literal>
411EOF</userinput></screen>
412
413 </sect3>
414
415 <sect3 id="sddm-init" revision="sysv">
416 <title>Starting sddm</title>
417
418 <para>
419 If the sddm bootscript has been installed, start sddm by running, as the
420 &root; user:
421 </para>
422
423<screen role="nodump"><userinput>/etc/rc.d/init.d/xdm start</userinput></screen>
424
425 <para>
426 By convention, X should be executed at runlevel 5, consequently, the
427 same is true for <application>sddm</application>. However, the default
428 runlevel is 3. Changing to runlevel 5, from a console terminal, as
429 <systemitem class="username">root</systemitem> user, starts the
430 <command>sddm</command> bootscript, bringing up the greeter screen:
431 </para>
432
433<screen role="nodump"><userinput>init 5</userinput></screen>
434
435 <para>
436 In order to permanently set the default to 5, starting the
437 <command>sddm</command> greeter screen automatically, modify
438 <filename>/etc/inittab</filename> as the <systemitem
439 class="username">root</systemitem> user:
440 </para>
441
442<screen role="root"><userinput>cp -v /etc/inittab{,-orig} &amp;&amp;
443sed -i '/initdefault/ s/3/5/' /etc/inittab</userinput></screen>
444
445 </sect3>
446
447 <sect3 id="sddm-sessions">
448 <title>Available Sessions</title>
449
450 <para>
451 The greeter offers a list of available sessions, depending on the
452 Window Managers and Desktop Environments installed. The list includes
453 sessions which have a corresponding <filename>.desktop</filename> file
454 installed under
455 <filename class="directory">/usr/share/xsessions</filename> or
456 <filename class="directory">/usr/share/wayland-sessions</filename>.
457 Most of the Window Managers and Desktop Environments automatically
458 provide those files, but if necessary, you may include a custom one.
459 </para>
460
461 </sect3>
462
463 <sect3 id="sddm-themes">
464 <title>Themes</title>
465
466 <para>
467 Three themes are installed at <filename class="directory">
468 /usr/share/sddm/themes</filename>:
469 elarun,
470 maldives, and
471 maya.
472 There is also a default theme, which is not present in that directory.
473 You can install other themes in that directory. In order to change the
474 theme, you need to edit <filename>/etc/sddm.conf</filename>,
475 to change the default (empty) theme, replacing
476 <literal>Current=</literal> with
477 <literal>Current=<replaceable>&lt;new theme&gt;</replaceable></literal>,
478 e.g. <literal>Current=maldives</literal>.
479 </para>
480
481 <para>
482 In order to see the theme without leaving the session, issue:
483 </para>
484
485<screen role="nodump"><userinput>sddm-greeter --test-mode --theme <replaceable>&lt;theme path&gt;</replaceable></userinput></screen>
486
487 </sect3>
488<!--
489 <sect3 id="sddm-Issues">
490 <title>Known Issues</title>
491
492 <para>
493 This application works well, but there are issues. You find the
494 mainstream known issues at
495 <ulink url="https://github.com/sddm/sddm/issues">Issues</ulink>.
496 The BLFS development team have found some issues.
497 </para>
498
499 <note>
500 <para>
501 In the next couple of paragraphs, due to a problem with sddm-greeter,
502 we mention how to define the keyboard used there. Notice that this is
503 also the keyboard that will be used in the X session, unless there is
504 a configuration in the Desktop Environment or in the Window Manager
505 overriding it, afterwards.
506 </para>
507 </note>
508
509 <para>
510 Keyboard selection: the greeter shows a double question mark or the
511 wrong keyboard. When you start to type the password or user name
512 (depending on the theme, only password), the right keyboard selection
513 magically appears. Optionally, a workaround is to include the keyboard
514 list in <command>/usr/share/sddm/scripts/Xsetup</command> script, as the
515 <systemitem class="username">root</systemitem> user:
516 </para>
517
518<screen role="root"><userinput>echo 'setxkbmap <replaceable>"&lt;your keyboard comma separated list&gt;"</replaceable>' &gt;&gt; \
519 /usr/share/sddm/scripts/Xsetup</userinput></screen>
520
521 <para>
522 E.g. <command>echo 'setxkbmap "fr,gb,br,us"' &gt;&gt;
523 /usr/share/sddm/scripts/Xsetup</command>. A very accurate definition
524 of the keyboard(s) is possible, for example: <command>echo 'setxkbmap
525 -model pc105 -layout br,us -variant abnt2,dvorak -keycodes evdev'
526 &gt;&gt; /usr/share/sddm/scripts/Xsetup</command>. See man setxkbmap.
527 </para>
528
529 <para>
530 Dircolors: the <filename>/etc/dircolors</filename> file is not
531 honoured. Particularly, the compressed files are not displayed in red
532 colour. If this happens, a workaround is to issue, as the
533 <systemitem class="username">root</systemitem> user:
534 </para>
535
536<screen role="root"><userinput>echo "source /etc/profile.d/dircolors.sh" &gt;&gt; /etc/bashrc</userinput></screen>
537
538 <para>
539 It has been reported that problems may happen with this package, if
540 Xorg is installed with a prefix other than <filename
541 class="directory">/usr</filename>. So far, BLFS development team has
542 not hit any problem, in this case.
543 </para>
544
545 </sect3>
546-->
547 </sect2>
548
549 <sect2 role="content">
550 <title>Contents</title>
551
552 <segmentedlist>
553 <segtitle>Installed Programs</segtitle>
554 <segtitle>Installed Libraries</segtitle>
555 <segtitle>Installed Directories</segtitle>
556
557 <seglistitem>
558 <seg>
559 sddm and
560 sddm-greeter
561 </seg>
562 <seg>
563 None
564 </seg>
565 <seg>
566 $QT5DIR/qml/SddmComponents,
567 /usr/share/sddm, and
568 /var/lib/sddm
569 </seg>
570 </seglistitem>
571 </segmentedlist>
572
573 <variablelist>
574 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
575 <?dbfo list-presentation="list"?>
576 <?dbhtml list-presentation="table"?>
577
578 <varlistentry id="sddm-prog">
579 <term><command>sddm</command></term>
580 <listitem>
581 <para>
582 is a display and login manager based on
583 <application>Qt</application> libraries.
584 </para>
585 <indexterm zone="sddm sddm-prog">
586 <primary sortas="b-sddm">sddm</primary>
587 </indexterm>
588 </listitem>
589 </varlistentry>
590
591 <varlistentry id="sddm-greeter">
592 <term><command>sddm-greeter</command></term>
593 <listitem>
594 <para>
595 is an auxiliary process that displays the greeter,
596 a graphical user interface that performs user
597 authentication and initiates the selected window manager
598 or display environment.
599 </para>
600 <indexterm zone="sddm sddm-greeter">
601 <primary sortas="b-sddm-greeter">sddm-greeter</primary>
602 </indexterm>
603 </listitem>
604 </varlistentry>
605
606 </variablelist>
607
608 </sect2>
609
610</sect1>
Note: See TracBrowser for help on using the repository browser.