source: x/dm/sddm.xml@ 7b0f4ce

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 7b0f4ce was 7b0f4ce, checked in by Douglas R. Reno <renodr@…>, 7 years ago

Fix to SDDM Page

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@19170 af4574ff-66df-0310-9fd7-8a98e5e911e0

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