source: archive/sddm.xml@ 5c7f2497

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.4 9.0 9.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 upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 5c7f2497 was c225bfa, checked in by Bruce Dubbs <bdubbs@…>, 6 years ago

Archive sddm

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

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