source: x/dm/sddm.xml@ 0b789c7

10.0 10.1 11.0 7.10 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind ken/refactor-virt lazarus nosym perl-modules qt5new trunk upgradedb xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 0b789c7 was 0b789c7, checked in by Fernando de Oliveira <fernando@…>, 6 years ago
  • Fix starting X with startx or sddm ... Part 3.

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

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