source: archive/sddm.xml

trunk
Last change on this file was 45ab6c7, checked in by Xi Ruoyao <xry111@…>, 4 months ago

more SVN prop clean up

Remove "$LastChanged$" everywhere, and also some unused $Date$

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