source: x/dm/sddm.xml@ 80f933b

12.0 12.1 12.2 gimp3 ken/TL2024 ken/tuningfonts lazarus lxqt plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/for-12.3 xry111/llvm18 xry111/spidermonkey128
Last change on this file since 80f933b was 80f933b, checked in by Bruce Dubbs <bdubbs@…>, 15 months ago

Initial add of sddm

  • Property mode set to 100644
File size: 18.9 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 "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 &lfs113_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 &qt5-deps;
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 <para condition="html" role="usernotes">User Notes:
90 <ulink url="&blfs-wiki;/sddm"/>
91 </para>
92-->
93 </sect2>
94 <sect2 role="installation">
95 <title>Installation of SDDM</title>
96
97 <para>
98 First, create a dedicated user and group to take
99 control of the <command>sddm</command> daemon after it is
100 started. Issue the following commands as the
101 &root; user:
102 </para>
103
104<screen role="root"><userinput>groupadd -g 64 sddm &amp;&amp;
105useradd -c "sddm Daemon" \
106 -d /var/lib/sddm \
107 -u 64 -g sddm \
108 -s /bin/false sddm</userinput></screen>
109<!--
110 <para revision="sysv">
111 Next, fix the application to start <command>upowerd</command>,
112 if necessary, and after login, start the session with
113 <command>ck-launch-session</command>:
114 </para>
115
116<screen revision="sysv"><userinput>sed -e '/UPOWER_SERVICE)/ s:^://:' \
117 -i src/daemon/PowerManager.cpp &amp;&amp;
118
119sed -e '/\$@$/s/exec/&amp; ck-launch-session/' \
120 -i data/scripts/Xsession</userinput></screen>
121
122 <para revision="sysv">
123 For sddm-0.16.0, ConsoleKit support has been added, but is broken. Remove
124 it with:
125 </para>
126-->
127<!-- This removes also logind support. Hopefully should be fixed for next
128 version
129<screen revision="sysv"><userinput>sed -e '/available.*true/s/true/false/' \
130 -i src/daemon/LogindDBusTypes.cpp</userinput></screen>
131-->
132 <para>
133 Install <application>sddm</application> by running the following
134 commands:
135 </para>
136
137<screen revision="sysv"><userinput>mkdir build &amp;&amp;
138cd build &amp;&amp;
139
140cmake -DCMAKE_INSTALL_PREFIX=/usr \
141 -DCMAKE_BUILD_TYPE=Release \
142 -DENABLE_JOURNALD=OFF \
143 -DNO_SYSTEMD=ON \
144 -DRUNTIME_DIR=/run/sddm \
145 -DDATA_INSTALL_DIR=/usr/share/sddm \
146 -DUSE_ELOGIND=ON \
147 -L ..
148
149 -DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
150 -Wno-dev .. &amp;&amp;
151make</userinput></screen>
152
153<screen revision="systemd"><userinput>mkdir build &amp;&amp;
154cd build &amp;&amp;
155
156cmake -DCMAKE_INSTALL_PREFIX=/usr \
157 -DCMAKE_BUILD_TYPE=Release \
158 -Wno-dev .. &amp;&amp;
159make</userinput></screen>
160
161 <para>
162 This package does not come with a test suite.
163 </para>
164
165 <para>
166 Now, as the <systemitem class="username">root</systemitem> user:
167 </para>
168
169<screen role="root"><userinput>make install &amp;&amp;
170install -v -dm755 -o sddm -g sddm /var/lib/sddm</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>: This switch is used because
184 this version of BLFS does not support <application>systemd</application>.
185 </para>
186
187 <para revision="sysv">
188 <parameter>-DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf</parameter>:
189 This switch prevents the file <filename>
190 /etc/dbus-1/system.d/org.freedesktop.DisplayManager.conf</filename> from
191 being overwritten, as it may be used by other DM's.
192 </para>
193
194 <para>
195 <option>-DBUILD_MAN_PAGES=ON</option>: This switch may be used if you want
196 the man pages to be installed. Notice that you need
197 <xref linkend="docutils"/> to build them.
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 /usr/lib/sddm/sddm.conf.d/*, /etc/sddm.conf.d/*, and /etc/sddm.conf
210 </para>
211
212 <indexterm zone="sddm sddm-config">
213 <primary sortas="e-usr-lib-sddm.conf.d">/usr/lib/sddm/sddm.conf.d</primary>
214 </indexterm>
215
216 <indexterm zone="sddm sddm-config">
217 <primary sortas="e-sddm.conf.d">/etc/sddm.conf.d</primary>
218 </indexterm>
219
220 <indexterm zone="sddm sddm-config">
221 <primary sortas="e-sddm.conf">/etc/sddm.conf</primary>
222 </indexterm>
223
224 <para>
225 Only <filename>/etc/sddm.conf</filename> is installed, but the
226 configuration files are read in the following order: all files in
227 <filename class="directory">/usr/lib/sddm/sddm.conf.d</filename> in
228 alphabetical order, then all files in <filename class="directory">
229 /etc/sddm.conf.d</filename> in alphabetical order, and finally
230 <filename>/etc/sddm.conf</filename>.
231 </para>
232
233 <para>
234 Normally, you want to edit this file. For example, if Xorg is installed
235 in /opt, use your preferred editor as the <systemitem
236 class="username">root</systemitem> user to replace the default
237 <emphasis>XauthPath</emphasis> value by
238 <emphasis>/opt/xorg/bin/xauth</emphasis>. Or, as the <systemitem
239 class="username">root</systemitem> user, issue:
240 </para>
241
242<screen role="root"><userinput>sed -e '/ServerPath/ s|usr|opt/xorg|' \
243 -i.orig /etc/sddm.conf</userinput></screen>
244
245 <para>
246 This command will do the substitution and create a copy of the original
247 file with name <filename>/etc/sddm.conf.orig</filename>.
248 </para>
249
250 <para>
251 From now on, we will describe how to modify configurations using sed.
252 Of course, you may instead use your preferred editor as the <systemitem
253 class="username">root</systemitem> user.
254 </para>
255
256 <para>
257 For security reasons, you normally want the default
258 <emphasis>ServerArguments=-nolisten tcp</emphasis>, unless a remote
259 machine needs access to the local X server. In that case, as the
260 <systemitem class="username">root</systemitem> user, issue:
261 </para>
262
263<screen role="root"><userinput>sed -e 's/-nolisten tcp//'\
264 -i /etc/sddm.conf</userinput></screen>
265
266 <para>
267 Desktop (Notebook) users, normally wish the Num Lock key on (off). For
268 that, as the <systemitem
269 class="username">root</systemitem> user, issue:
270 </para>
271
272<screen role="root"><userinput>sed -e 's/\"none\"/\"on\"/' \
273 -i /etc/sddm.conf</userinput></screen>
274
275 <para>
276 for Desktop users. For Notebook users, replace \"on\" by \"off\",
277 in the command above.
278 </para>
279
280 </sect3>
281
282 <sect3 id="sddm-bootscript">
283 <title>Boot Script</title>
284
285 <para>
286 Install the <filename revision="sysv">/etc/rc.d/init.d/sddm</filename>
287 init script from the <xref linkend="bootscripts" revision="sysv"/>
288 <xref linkend="systemd-units" revision="systemd"/> package.
289 </para>
290
291 <indexterm zone="sddm sddm-bootscript">
292 <primary sortas="f-sddm">sddm</primary>
293 </indexterm>
294
295<screen role="root" revision="sysv"><userinput>make install-sddm</userinput></screen>
296
297<screen role="root" revision="systemd"><userinput>systemctl enable sddm</userinput></screen>
298
299 </sect3>
300
301 <sect3>
302 <title>Linux PAM Configuration</title>
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 <systemitem class="username">root</systemitem> user:
421 </para>
422
423<screen role="root"><userinput>/etc/rc.d/init.d/sddm 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, LFS 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="root"><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,
452 depending on the Window Managers and Desktop Environments installed. The
453 list includes sessions which have a corresponding
454 <filename>.desktop</filename> file installed under
455 <filename class="directory">/usr/share/xsessions</filename>. Most of the
456 Window Managers and Desktop Environments automatically provide those
457 files, but if necessary, you may include a custom one.
458 </para>
459
460 </sect3>
461
462 <sect3 id="sddm-themes">
463 <title>Themes</title>
464
465 <para>
466 Three themes are installed at <filename class="directory">
467 /usr/share/sddm/themes</filename>:
468 elarun,
469 maldives, and
470 maya.
471 There is also a default theme, which is not present in that directory.
472 You can install other themes in that directory. In order to change the
473 theme, you need to edit <filename>/etc/sddm.conf</filename>,
474 to change the default (empty) theme, replacing <quote>Current=</quote>
475 with <quote>Current=&lt;new theme&gt;</quote>, e.g.
476 <quote>Current=maldives</quote>.
477 </para>
478
479 <para>
480 In order to see the theme without leaving the session, issue:
481 </para>
482
483<screen><userinput>sddm-greeter --test-mode --theme <replaceable>&lt;theme path&gt;</replaceable></userinput></screen>
484
485 </sect3>
486
487 <sect3 id="sddm-Issues">
488 <title>Known Issues</title>
489
490 <para>
491 This application works well, but there are issues. You find the
492 mainstream known issues at
493 <ulink url="https://github.com/sddm/sddm/issues">Issues</ulink>.
494 The BLFS development team have found some issues.
495 </para>
496
497 <note>
498 <para>
499 In the next couple of paragraphs, due to a problem with sddm-greeter,
500 we mention how to define the keyboard used there. Notice that this is
501 also the keyboard that will be used in the X session, unless there is
502 a configuration in the Desktop Environment or in the Window Manager
503 overriding it, afterwards.
504 </para>
505 </note>
506
507 <para>
508 Keyboard selection: the greeter shows a double question mark or the
509 wrong keyboard. When you start to type the password or user name
510 (depending on the theme, only password), the right keyboard selection
511 magically appears. Optionally, a workaround is to include the keyboard
512 list in <command>/usr/share/sddm/scripts/Xsetup</command> script, as the
513 <systemitem class="username">root</systemitem> user:
514 </para>
515
516<screen role="root"><userinput>echo 'setxkbmap <replaceable>"&lt;your keyboard comma separated list&gt;"</replaceable>' &gt;&gt; \
517 /usr/share/sddm/scripts/Xsetup</userinput></screen>
518
519 <para>
520 E.g. <command>echo 'setxkbmap "fr,gb,br,us"' &gt;&gt;
521 /usr/share/sddm/scripts/Xsetup</command>. A very accurate definition
522 of the keyboard(s) is possible, for example: <command>echo 'setxkbmap
523 -model pc105 -layout br,us -variant abnt2,dvorak -keycodes evdev'
524 &gt;&gt; /usr/share/sddm/scripts/Xsetup</command>. See man setxkbmap.
525 </para>
526
527 <para>
528 Dircolors: the <filename>/etc/dircolors</filename> file is not
529 honoured. Particularly, the compressed files are not displayed in red
530 colour. If this happens, a workaround is to issue, as the
531 <systemitem class="username">root</systemitem> user:
532 </para>
533
534<screen role="root"><userinput>echo "source /etc/profile.d/dircolors.sh" &gt;&gt; /etc/bashrc</userinput></screen>
535
536 <para>
537 It has been reported that problems may happen with this package, if
538 Xorg is installed with a prefix other than <filename
539 class="directory">/usr</filename>. So far, BLFS development team has
540 not hit any problem, in this case.
541 </para>
542
543 </sect3>
544
545 </sect2>
546
547 <sect2 role="content">
548 <title>Contents</title>
549
550 <segmentedlist>
551 <segtitle>Installed Programs</segtitle>
552 <segtitle>Installed Libraries</segtitle>
553 <segtitle>Installed Directories</segtitle>
554
555 <seglistitem>
556 <seg>
557 sddm and sddm-greeter
558 </seg>
559 <seg>
560 None
561 </seg>
562 <seg>
563 $QT5DIR/qml/SddmComponents,
564 /usr/share/sddm, and
565 /var/lib/sddm
566 </seg>
567 </seglistitem>
568 </segmentedlist>
569
570 <variablelist>
571 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
572 <?dbfo list-presentation="list"?>
573 <?dbhtml list-presentation="table"?>
574
575 <varlistentry id="sddm-prog">
576 <term><command>sddm</command></term>
577 <listitem>
578 <para>
579 is a display and login manager based on
580 <application>Qt</application> libraries.
581 </para>
582 <indexterm zone="sddm sddm-prog">
583 <primary sortas="b-sddm">sddm</primary>
584 </indexterm>
585 </listitem>
586 </varlistentry>
587
588 <varlistentry id="sddm-greeter">
589 <term><command>sddm-greeter</command></term>
590 <listitem>
591 <para>
592 is an auxiliary process that displays the greeter,
593 a graphical user interface that performs user
594 authentication and initiates the selected window manager
595 or display environment.
596 </para>
597 <indexterm zone="sddm sddm-greeter">
598 <primary sortas="b-sddm-greeter">sddm-greeter</primary>
599 </indexterm>
600 </listitem>
601 </varlistentry>
602
603 </variablelist>
604
605 </sect2>
606
607</sect1>
Note: See TracBrowser for help on using the repository browser.