[displaymanager] Refactor setting up default DE
- Some DMs allow setting up the default DE. Factor that out into a method like basic_setup() and setup_autologin() and add it to the configuration chain.
This commit is contained in:
parent
1c0b9e6a2a
commit
383e0e4f25
@ -119,7 +119,15 @@ class DisplayManager(metaclass=abc.ABCMeta):
|
|||||||
"""
|
"""
|
||||||
Do basic setup (e.g. users, groups, directory creation) for this DM.
|
Do basic setup (e.g. users, groups, directory creation) for this DM.
|
||||||
"""
|
"""
|
||||||
|
# Some implementations do nothing
|
||||||
|
|
||||||
|
@abc.abstractmethod
|
||||||
|
def desktop_environment_setup(self, desktop_environment):
|
||||||
|
"""
|
||||||
|
Configure the given @p desktop_environment as the default one, in
|
||||||
|
the configuration files for this DM.
|
||||||
|
"""
|
||||||
|
# Many implementations do nothing
|
||||||
|
|
||||||
class DMmdm(DisplayManager):
|
class DMmdm(DisplayManager):
|
||||||
name = "mdm"
|
name = "mdm"
|
||||||
@ -194,6 +202,15 @@ class DMmdm(DisplayManager):
|
|||||||
['chmod', '1770', '/var/lib/mdm']
|
['chmod', '1770', '/var/lib/mdm']
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def desktop_environment_setup(self, default_desktop_environment):
|
||||||
|
os.system(
|
||||||
|
"sed -i \"s|default.desktop|{!s}.desktop|g\" "
|
||||||
|
"{!s}/etc/mdm/custom.conf".format(
|
||||||
|
default_desktop_environment.desktop_file,
|
||||||
|
root_mount_point
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class DMgdm(DisplayManager):
|
class DMgdm(DisplayManager):
|
||||||
name = "gdm"
|
name = "gdm"
|
||||||
@ -397,6 +414,15 @@ class DMlxdm(DisplayManager):
|
|||||||
['chmod', '+r', '/etc/lxdm/lxdm.conf']
|
['chmod', '+r', '/etc/lxdm/lxdm.conf']
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def desktop_environment_setup(self, default_desktop_environment):
|
||||||
|
os.system(
|
||||||
|
"sed -i -e \"s|^.*session=.*|session={!s}|\" "
|
||||||
|
"{!s}/etc/lxdm/lxdm.conf".format(
|
||||||
|
default_desktop_environment.executable,
|
||||||
|
root_mount_point
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class DMlightdm(DisplayManager):
|
class DMlightdm(DisplayManager):
|
||||||
name = "lightdm"
|
name = "lightdm"
|
||||||
@ -479,6 +505,15 @@ class DMlightdm(DisplayManager):
|
|||||||
['chmod', '+r' '/etc/lightdm/lightdm.conf']
|
['chmod', '+r' '/etc/lightdm/lightdm.conf']
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def desktop_environment_setup(self, default_desktop_environment):
|
||||||
|
os.system(
|
||||||
|
"sed -i -e \"s/^.*user-session=.*/user-session={!s}/\" "
|
||||||
|
"{!s}".format(
|
||||||
|
default_desktop_environment.desktop_file,
|
||||||
|
lightdm_conf_path
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class DMslim(DisplayManager):
|
class DMslim(DisplayManager):
|
||||||
name = "slim"
|
name = "slim"
|
||||||
@ -680,15 +715,6 @@ def run():
|
|||||||
root_mount_point, "etc/lightdm/lightdm.conf"
|
root_mount_point, "etc/lightdm/lightdm.conf"
|
||||||
)
|
)
|
||||||
|
|
||||||
if default_desktop_environment is not None:
|
|
||||||
os.system(
|
|
||||||
"sed -i -e \"s/^.*user-session=.*/user-session={!s}/\" "
|
|
||||||
"{!s}".format(
|
|
||||||
default_desktop_environment.desktop_file,
|
|
||||||
lightdm_conf_path
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# configure lightdm-greeter
|
# configure lightdm-greeter
|
||||||
greeter_path = os.path.join(
|
greeter_path = os.path.join(
|
||||||
root_mount_point, "usr/share/xgreeters"
|
root_mount_point, "usr/share/xgreeters"
|
||||||
@ -730,14 +756,7 @@ def run():
|
|||||||
# Setup mdm
|
# Setup mdm
|
||||||
if "mdm" in displaymanagers:
|
if "mdm" in displaymanagers:
|
||||||
if have_dm("mdm", root_mount_point):
|
if have_dm("mdm", root_mount_point):
|
||||||
if default_desktop_environment is not None:
|
pass
|
||||||
os.system(
|
|
||||||
"sed -i \"s|default.desktop|{!s}.desktop|g\" "
|
|
||||||
"{!s}/etc/mdm/custom.conf".format(
|
|
||||||
default_desktop_environment.desktop_file,
|
|
||||||
root_mount_point
|
|
||||||
)
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
libcalamares.utils.debug("mdm selected but not installed")
|
libcalamares.utils.debug("mdm selected but not installed")
|
||||||
displaymanagers.remove("mdm")
|
displaymanagers.remove("mdm")
|
||||||
@ -745,14 +764,7 @@ def run():
|
|||||||
# Setup lxdm
|
# Setup lxdm
|
||||||
if "lxdm" in displaymanagers:
|
if "lxdm" in displaymanagers:
|
||||||
if have_dm("lxdm", root_mount_point):
|
if have_dm("lxdm", root_mount_point):
|
||||||
if default_desktop_environment is not None:
|
pass
|
||||||
os.system(
|
|
||||||
"sed -i -e \"s|^.*session=.*|session={!s}|\" "
|
|
||||||
"{!s}/etc/lxdm/lxdm.conf".format(
|
|
||||||
default_desktop_environment.executable,
|
|
||||||
root_mount_point
|
|
||||||
)
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
libcalamares.utils.debug("lxdm selected but not installed")
|
libcalamares.utils.debug("lxdm selected but not installed")
|
||||||
displaymanagers.remove("lxdm")
|
displaymanagers.remove("lxdm")
|
||||||
@ -782,6 +794,8 @@ def run():
|
|||||||
dm_message = None
|
dm_message = None
|
||||||
if enable_basic_setup:
|
if enable_basic_setup:
|
||||||
dm_message = dm_impl.basic_setup()
|
dm_message = dm_impl.basic_setup()
|
||||||
|
if default_desktop_environment is not None and dm_message is None:
|
||||||
|
dm_message = dm_impl.desktop_environment_setup(default_desktop_environment)
|
||||||
if dm_message is None:
|
if dm_message is None:
|
||||||
dm_message = dm_impl.set_autologin(username, default_desktop_environment, root_mount_point)
|
dm_message = dm_impl.set_autologin(username, default_desktop_environment, root_mount_point)
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user