source: x/dm/sddm.xml@ f2cedb8

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.0 8.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 nosym 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 f2cedb8 was f2cedb8, checked in by Douglas R. Reno <renodr@…>, 8 years ago

Fix SDDM on systemd systems

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

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