source: archive/sddm.xml@ 3f2db3a6

11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since 3f2db3a6 was 3f2db3a6, checked in by Pierre Labastie <pierre.labastie@…>, 17 months ago

Remove sect1info tags

They only contain a date tag that is nowhere used.

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