source: x/dm/sddm.xml@ e24fb74

12.0 12.1 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since e24fb74 was e24fb74, checked in by Pierre Labastie <pierre.labastie@…>, 11 months ago

Add role="nodump" for sddm theme test

  • Property mode set to 100644
File size: 18.5 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/archive/v&sddm-version;/sddm-&sddm-version;.tar.gz">
8 <!ENTITY sddm-download-ftp " ">
9 <!ENTITY sddm-md5sum "7af67d5fb767639861d35c80eb4e1191">
10 <!ENTITY sddm-size "3.4 MB">
11 <!ENTITY sddm-buildsize "22 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 &lfs113_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 &qt5-deps;
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 -DCMAKE_INSTALL_PREFIX=/usr \
137 -DCMAKE_BUILD_TYPE=Release \
138 -DENABLE_JOURNALD=OFF \
139 -DNO_SYSTEMD=ON \
140 -DRUNTIME_DIR=/run/sddm \
141 -DUSE_ELOGIND=ON \
142 -DBUILD_MAN_PAGES=ON \
143 -DDATA_INSTALL_DIR=/usr/share/sddm \
144 -DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
145 .. &amp;&amp;
146make</userinput></screen>
147
148<screen revision="systemd"><userinput>mkdir build &amp;&amp;
149cd build &amp;&amp;
150
151cmake -DCMAKE_INSTALL_PREFIX=/usr \
152 -DCMAKE_BUILD_TYPE=Release \
153 -DRUNTIME_DIR=/run/sddm \
154 -DBUILD_MAN_PAGES=ON \
155 -DDATA_INSTALL_DIR=/usr/share/sddm \
156 -DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
157 .. &amp;&amp;
158make</userinput></screen>
159
160 <para>
161 This package does not come with a test suite.
162 </para>
163
164 <para>
165 Now, as the <systemitem class="username">root</systemitem> user:
166 </para>
167
168<screen role="root"><userinput>make install &amp;&amp;
169install -v -dm755 -o sddm -g sddm /var/lib/sddm
170/usr/bin/sddm --example-config > /etc/sddm.conf</userinput></screen>
171
172 </sect2>
173
174 <sect2 role="commands">
175 <title>Command Explanations</title>
176
177 <para>
178 <parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch is used to
179 apply additional compiler optimizations.
180 </para>
181
182 <para revision="sysv">
183 <parameter>-DENABLE_JOURNALD=OFF</parameter> and
184 <parameter>-DNO_SYSTEMD=ON</parameter>: These switchs are used because
185 this version of BLFS does not support <application>systemd</application>.
186 </para>
187
188 <para>
189 <parameter>-DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf</parameter>:
190 This switch prevents the file <filename>
191 /etc/dbus-1/system.d/org.freedesktop.DisplayManager.conf</filename> from
192 being overwritten, as it may be used by other DM's.
193 </para>
194
195 <para>
196 <option>-DBUILD_MAN_PAGES=ON</option>: This switch is used to build
197 and install man pages.
198 </para>
199
200 </sect2>
201
202 <sect2 role="configuration">
203 <title>Configuring SDDM</title>
204
205 <sect3 id="sddm-config">
206 <title>Config Files</title>
207
208 <para>
209 /etc/sddm.config
210 </para>
211
212 <indexterm zone="sddm sddm-config">
213 <primary sortas="e-sddm.conf">/etc/sddm.conf</primary>
214 </indexterm>
215
216 <para>
217 Normally, you want to edit this file. For example, if Xorg is installed
218 in /opt, use your preferred editor as the &root; user to replace the
219 default <emphasis>XauthPath</emphasis> value by
220 <emphasis>/opt/xorg/bin/xauth</emphasis>. Or, as the &root; user,
221 issue:
222 </para>
223
224<screen role="root"><userinput>sed -i.orig '/ServerPath/ s|usr|opt/xorg|' /etc/sddm.conf</userinput></screen>
225
226 <para>
227 This command will do the substitution and create a copy of the original
228 file with name <filename>/etc/sddm.conf.orig</filename>.
229 </para>
230
231 <para>
232 From now on, we will describe how to modify configurations using sed.
233 Of course, you may instead use your preferred editor as the &root;
234 user.
235 </para>
236
237 <para>
238 For security reasons, you normally want the default
239 <emphasis>ServerArguments=-nolisten tcp</emphasis>, unless a remote
240 machine needs access to the local X server. In that case, as the
241 &root; user, issue:
242 </para>
243
244<screen role="root"><userinput>sed -i 's/-nolisten tcp//' /etc/sddm.conf</userinput></screen>
245
246 <para>
247 Desktop (Notebook) users, normally want the Num Lock key on (off). For
248 that, as the &root;, issue:
249 </para>
250
251<screen role="root"><userinput>sed -i 's/none/on/' /etc/sddm.conf</userinput></screen>
252
253 <para>
254 for Desktop users. For Notebook users, replace /on/ by /off/
255 in the command above.
256 </para>
257
258 </sect3>
259
260 <sect3 id="sddm-bootscript">
261 <title>Boot Script</title>
262
263 <para revision="sysv">
264 Install the <filename revision="sysv">/etc/rc.d/init.d/xdm</filename>
265 init script from the <xref linkend="bootscripts" revision="sysv"/>
266 package, as the &root; user:
267 </para>
268
269 <para revision="systemd">
270 Enable the pre-installed systemd unit by running the following command
271 as the &root; user:
272 </para>
273
274 <indexterm zone="sddm sddm-bootscript">
275 <primary sortas="f-sddm">sddm</primary>
276 </indexterm>
277
278<screen role="root" revision="sysv"><userinput>make install-sddm</userinput></screen>
279
280<screen role="root" revision="systemd"><userinput>systemctl enable sddm</userinput></screen>
281
282 </sect3>
283
284 <sect3>
285 <title>Linux PAM Configuration</title>
286
287 <note>
288 <para>
289 The install procedure above installed a set of PAM configuration
290 files. These procedures overwrite them and use versions compatible
291 with a BLFS environment.
292 </para>
293 </note>
294
295 <para>
296 If you have built <application>sddm</application>
297 with <application>Linux PAM</application> support,
298 create the necessary configuration files by running
299 the following commands as the &root; user:
300 </para>
301
302<screen role="root" revision="sysv"><userinput>cat &gt; /etc/pam.d/sddm &lt;&lt; "EOF"
303<literal># Begin /etc/pam.d/sddm
304
305auth requisite pam_nologin.so
306auth required pam_env.so
307
308auth required pam_succeed_if.so uid &gt;= 1000 quiet
309auth include system-auth
310
311account include system-account
312password include system-password
313
314session required pam_limits.so
315session include system-session
316
317# End /etc/pam.d/sddm</literal>
318EOF
319
320cat &gt; /etc/pam.d/sddm-autologin &lt;&lt; "EOF"
321<literal># Begin /etc/pam.d/sddm-autologin
322
323auth requisite pam_nologin.so
324auth required pam_env.so
325
326auth required pam_succeed_if.so uid &gt;= 1000 quiet
327auth required pam_permit.so
328
329account include system-account
330
331password required pam_deny.so
332
333session required pam_limits.so
334session include system-session
335
336# End /etc/pam.d/sddm-autologin</literal>
337EOF
338
339cat &gt; /etc/pam.d/sddm-greeter &lt;&lt; "EOF"
340<literal># Begin /etc/pam.d/sddm-greeter
341
342auth required pam_env.so
343auth required pam_permit.so
344
345account required pam_permit.so
346password required pam_deny.so
347session required pam_unix.so
348-session optional pam_systemd.so
349
350# End /etc/pam.d/sddm-greeter</literal>
351EOF</userinput></screen>
352
353<screen role="root" revision="systemd"><userinput>cat &gt; /etc/pam.d/sddm &lt;&lt; "EOF" &amp;&amp;
354<literal># Begin /etc/pam.d/sddm
355
356auth requisite pam_nologin.so
357auth required pam_env.so
358
359auth required pam_succeed_if.so uid &gt;= 1000 quiet
360auth include system-auth
361
362account include system-account
363password include system-password
364
365session required pam_limits.so
366session include system-session
367
368# End /etc/pam.d/sddm</literal>
369EOF
370
371cat &gt; /etc/pam.d/sddm-autologin &lt;&lt; "EOF" &amp;&amp;
372<literal># Begin /etc/pam.d/sddm-autologin
373
374auth requisite pam_nologin.so
375auth required pam_env.so
376
377auth required pam_succeed_if.so uid &gt;= 1000 quiet
378auth required pam_permit.so
379
380account include system-account
381
382password required pam_deny.so
383
384session required pam_limits.so
385session include system-session
386
387# End /etc/pam.d/sddm-autologin</literal>
388EOF
389
390cat &gt; /etc/pam.d/sddm-greeter &lt;&lt; "EOF"
391<literal># Begin /etc/pam.d/sddm-greeter
392
393auth required pam_env.so
394auth required pam_permit.so
395
396account required pam_permit.so
397password required pam_deny.so
398session required pam_unix.so
399-session optional pam_systemd.so
400
401# End /etc/pam.d/sddm-greeter</literal>
402EOF</userinput></screen>
403
404 </sect3>
405
406 <sect3 id="sddm-init" revision="sysv">
407 <title>Starting sddm</title>
408
409 <para>
410 If the sddm bootscript has been installed, start sddm by running, as the
411 &root; user:
412 </para>
413
414<screen role="root"><userinput>/etc/rc.d/init.d/xdm start</userinput></screen>
415
416 <para>
417 By convention, X should be executed at runlevel 5, consequently, the
418 same is true for <application>sddm</application>. However, the default
419 runlevel is 3. Changing to runlevel 5, from a console terminal, as
420 <systemitem class="username">root</systemitem> user, starts the
421 <command>sddm</command> bootscript, bringing up the greeter screen:
422 </para>
423
424<screen role="root"><userinput>init 5</userinput></screen>
425
426 <para>
427 In order to permanently set the default to 5, starting the
428 <command>sddm</command> greeter screen automatically, modify
429 <filename>/etc/inittab</filename> as the <systemitem
430 class="username">root</systemitem> user:
431 </para>
432
433<screen role="root"><userinput>cp -v /etc/inittab{,-orig} &amp;&amp;
434sed -i '/initdefault/ s/3/5/' /etc/inittab</userinput></screen>
435
436 </sect3>
437
438 <sect3 id="sddm-sessions">
439 <title>Available Sessions</title>
440
441 <para>
442 The greeter offers a list of available sessions, depending on the
443 Window Managers and Desktop Environments installed. The list includes
444 sessions which have a corresponding <filename>.desktop</filename> file
445 installed under
446 <filename class="directory">/usr/share/xsessions</filename> or
447 <filename class="directory">/usr/share/wayland-sessions</filename>.
448 Most of the Window Managers and Desktop Environments automatically
449 provide those files, but if necessary, you may include a custom one.
450 </para>
451
452 </sect3>
453
454 <sect3 id="sddm-themes">
455 <title>Themes</title>
456
457 <para>
458 Three themes are installed at <filename class="directory">
459 /usr/share/sddm/themes</filename>:
460 elarun,
461 maldives, and
462 maya.
463 There is also a default theme, which is not present in that directory.
464 You can install other themes in that directory. In order to change the
465 theme, you need to edit <filename>/etc/sddm.conf</filename>,
466 to change the default (empty) theme, replacing <quote>Current=</quote>
467 with <quote>Current=&lt;new theme&gt;</quote>, e.g.
468 <quote>Current=maldives</quote>.
469 </para>
470
471 <para>
472 In order to see the theme without leaving the session, issue:
473 </para>
474
475<screen role="nodump"><userinput>sddm-greeter --test-mode --theme <replaceable>&lt;theme path&gt;</replaceable></userinput></screen>
476
477 </sect3>
478<!--
479 <sect3 id="sddm-Issues">
480 <title>Known Issues</title>
481
482 <para>
483 This application works well, but there are issues. You find the
484 mainstream known issues at
485 <ulink url="https://github.com/sddm/sddm/issues">Issues</ulink>.
486 The BLFS development team have found some issues.
487 </para>
488
489 <note>
490 <para>
491 In the next couple of paragraphs, due to a problem with sddm-greeter,
492 we mention how to define the keyboard used there. Notice that this is
493 also the keyboard that will be used in the X session, unless there is
494 a configuration in the Desktop Environment or in the Window Manager
495 overriding it, afterwards.
496 </para>
497 </note>
498
499 <para>
500 Keyboard selection: the greeter shows a double question mark or the
501 wrong keyboard. When you start to type the password or user name
502 (depending on the theme, only password), the right keyboard selection
503 magically appears. Optionally, a workaround is to include the keyboard
504 list in <command>/usr/share/sddm/scripts/Xsetup</command> script, as the
505 <systemitem class="username">root</systemitem> user:
506 </para>
507
508<screen role="root"><userinput>echo 'setxkbmap <replaceable>"&lt;your keyboard comma separated list&gt;"</replaceable>' &gt;&gt; \
509 /usr/share/sddm/scripts/Xsetup</userinput></screen>
510
511 <para>
512 E.g. <command>echo 'setxkbmap "fr,gb,br,us"' &gt;&gt;
513 /usr/share/sddm/scripts/Xsetup</command>. A very accurate definition
514 of the keyboard(s) is possible, for example: <command>echo 'setxkbmap
515 -model pc105 -layout br,us -variant abnt2,dvorak -keycodes evdev'
516 &gt;&gt; /usr/share/sddm/scripts/Xsetup</command>. See man setxkbmap.
517 </para>
518
519 <para>
520 Dircolors: the <filename>/etc/dircolors</filename> file is not
521 honoured. Particularly, the compressed files are not displayed in red
522 colour. If this happens, a workaround is to issue, as the
523 <systemitem class="username">root</systemitem> user:
524 </para>
525
526<screen role="root"><userinput>echo "source /etc/profile.d/dircolors.sh" &gt;&gt; /etc/bashrc</userinput></screen>
527
528 <para>
529 It has been reported that problems may happen with this package, if
530 Xorg is installed with a prefix other than <filename
531 class="directory">/usr</filename>. So far, BLFS development team has
532 not hit any problem, in this case.
533 </para>
534
535 </sect3>
536-->
537 </sect2>
538
539 <sect2 role="content">
540 <title>Contents</title>
541
542 <segmentedlist>
543 <segtitle>Installed Programs</segtitle>
544 <segtitle>Installed Libraries</segtitle>
545 <segtitle>Installed Directories</segtitle>
546
547 <seglistitem>
548 <seg>
549 sddm and
550 sddm-greeter
551 </seg>
552 <seg>
553 None
554 </seg>
555 <seg>
556 $QT5DIR/qml/SddmComponents,
557 /usr/share/sddm, and
558 /var/lib/sddm
559 </seg>
560 </seglistitem>
561 </segmentedlist>
562
563 <variablelist>
564 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
565 <?dbfo list-presentation="list"?>
566 <?dbhtml list-presentation="table"?>
567
568 <varlistentry id="sddm-prog">
569 <term><command>sddm</command></term>
570 <listitem>
571 <para>
572 is a display and login manager based on
573 <application>Qt</application> libraries.
574 </para>
575 <indexterm zone="sddm sddm-prog">
576 <primary sortas="b-sddm">sddm</primary>
577 </indexterm>
578 </listitem>
579 </varlistentry>
580
581 <varlistentry id="sddm-greeter">
582 <term><command>sddm-greeter</command></term>
583 <listitem>
584 <para>
585 is an auxiliary process that displays the greeter,
586 a graphical user interface that performs user
587 authentication and initiates the selected window manager
588 or display environment.
589 </para>
590 <indexterm zone="sddm sddm-greeter">
591 <primary sortas="b-sddm-greeter">sddm-greeter</primary>
592 </indexterm>
593 </listitem>
594 </varlistentry>
595
596 </variablelist>
597
598 </sect2>
599
600</sect1>
Note: See TracBrowser for help on using the repository browser.