[displaymanager] Fix sysconfig-only

- Improve documentation of the settings
 - If sysconfigSetup is true, **only** setup sysconfig and ignore
   the rest. This seems to be consistent with existing openSUSE-
   derivative distro's, which set displaymanagers to something
   nonsensical.
This commit is contained in:
Adriaan de Groot 2019-10-07 15:54:55 +02:00
parent 160ecd5ddc
commit d592a5bb94
2 changed files with 21 additions and 8 deletions

View File

@ -1,9 +1,17 @@
# Configure one or more display managers (e.g. SDDM) # Configure one or more display managers (e.g. SDDM)
# with a "best effort" approach. # with a "best effort" approach.
#
# This module also sets up autologin, if the feature is enabled in
# globalstorage (where it would come from the users page).
--- ---
#The DM module attempts to set up all the DMs found in this list, in that precise order. # The DM module attempts to set up all the DMs found in this list, in the
#It also sets up autologin, if the feature is enabled in globalstorage. # precise order listed. The displaymanagers list can also be set in
#The displaymanagers list can also be set in globalstorage, and in that case it overrides anything set up here. # globalstorage, and in that case it overrides the setting here.
#
# If *sysconfigSetup* is set to *true* (see below, only relevant for
# openSUSE derivatives) then this list is ignored and only sysconfig
# is attempted. You can also list "sysconfig" in this list instead.
#
displaymanagers: displaymanagers:
- slim - slim
- sddm - sddm
@ -41,6 +49,10 @@ displaymanagers:
#packages, and best left to them. Therefore, it is disabled by default. #packages, and best left to them. Therefore, it is disabled by default.
basicSetup: false basicSetup: false
#If true, setup autologin for openSUSE. This only makes sense on openSUSE # If true, setup autologin for openSUSE. This only makes sense on openSUSE
#derivatives or other systems where /etc/sysconfig/displaymanager exists. # derivatives or other systems where /etc/sysconfig/displaymanager exists.
#
# The preferred way to pick sysconfig is to just list it in the
# *displaymanagers* list (as the only one).
#
sysconfigSetup: false sysconfigSetup: false

View File

@ -879,6 +879,10 @@ def run():
if libcalamares.globalstorage.contains("displayManagers"): if libcalamares.globalstorage.contains("displayManagers"):
displaymanagers = libcalamares.globalstorage.value("displayManagers") displaymanagers = libcalamares.globalstorage.value("displayManagers")
if ("sysconfigSetup" in libcalamares.job.configuration
and libcalamares.job.configuration["sysconfigSetup"]):
displaymanagers = ["sysconfig"]
if not displaymanagers: if not displaymanagers:
return ( return (
_("No display managers selected for the displaymanager module."), _("No display managers selected for the displaymanager module."),
@ -890,9 +894,6 @@ def run():
root_mount_point = libcalamares.globalstorage.value("rootMountPoint") root_mount_point = libcalamares.globalstorage.value("rootMountPoint")
dm_impl = [] dm_impl = []
dm_names = displaymanagers[:] dm_names = displaymanagers[:]
if ("sysconfigSetup" in libcalamares.job.configuration
and libcalamares.job.configuration["sysconfigSetup"]):
dm_names.append("sysconfig")
for dm in dm_names: for dm in dm_names:
# Find the implementation class # Find the implementation class
dm_instance = None dm_instance = None