|
|
|
@ -129,6 +129,14 @@ class DisplayManager(metaclass=abc.ABCMeta):
|
|
|
|
|
"""
|
|
|
|
|
# Many implementations do nothing
|
|
|
|
|
|
|
|
|
|
@abc.abstractmethod
|
|
|
|
|
def greeter_setup(self):
|
|
|
|
|
"""
|
|
|
|
|
Additional setup for the greeter.
|
|
|
|
|
"""
|
|
|
|
|
# Most implementations do nothing
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DMmdm(DisplayManager):
|
|
|
|
|
name = "mdm"
|
|
|
|
|
executable = "mdm"
|
|
|
|
@ -514,6 +522,38 @@ class DMlightdm(DisplayManager):
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def greeter_setup(self):
|
|
|
|
|
lightdm_conf_path = os.path.join(
|
|
|
|
|
root_mount_point, "etc/lightdm/lightdm.conf"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# configure lightdm-greeter
|
|
|
|
|
greeter_path = os.path.join(
|
|
|
|
|
root_mount_point, "usr/share/xgreeters"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if (os.path.exists(greeter_path)):
|
|
|
|
|
# configure first found lightdm-greeter
|
|
|
|
|
for entry in os.listdir(greeter_path):
|
|
|
|
|
if entry.endswith('.desktop'):
|
|
|
|
|
greeter = entry.split('.')[0]
|
|
|
|
|
libcalamares.utils.debug(
|
|
|
|
|
"found greeter {!s}".format(greeter)
|
|
|
|
|
)
|
|
|
|
|
os.system(
|
|
|
|
|
"sed -i -e \"s/^.*greeter-session=.*"
|
|
|
|
|
"/greeter-session={!s}/\" {!s}".format(
|
|
|
|
|
greeter,
|
|
|
|
|
lightdm_conf_path
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
libcalamares.utils.debug(
|
|
|
|
|
"{!s} configured as greeter.".format(greeter)
|
|
|
|
|
)
|
|
|
|
|
break
|
|
|
|
|
else:
|
|
|
|
|
return ("No lightdm greeter installed.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DMslim(DisplayManager):
|
|
|
|
|
name = "slim"
|
|
|
|
@ -711,36 +751,7 @@ def run():
|
|
|
|
|
# setup lightdm
|
|
|
|
|
if "lightdm" in displaymanagers:
|
|
|
|
|
if have_dm("lightdm", root_mount_point):
|
|
|
|
|
lightdm_conf_path = os.path.join(
|
|
|
|
|
root_mount_point, "etc/lightdm/lightdm.conf"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# configure lightdm-greeter
|
|
|
|
|
greeter_path = os.path.join(
|
|
|
|
|
root_mount_point, "usr/share/xgreeters"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if (os.path.exists(greeter_path)):
|
|
|
|
|
# configure first found lightdm-greeter
|
|
|
|
|
for entry in os.listdir(greeter_path):
|
|
|
|
|
if entry.endswith('.desktop'):
|
|
|
|
|
greeter = entry.split('.')[0]
|
|
|
|
|
libcalamares.utils.debug(
|
|
|
|
|
"found greeter {!s}".format(greeter)
|
|
|
|
|
)
|
|
|
|
|
os.system(
|
|
|
|
|
"sed -i -e \"s/^.*greeter-session=.*"
|
|
|
|
|
"/greeter-session={!s}/\" {!s}".format(
|
|
|
|
|
greeter,
|
|
|
|
|
lightdm_conf_path
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
libcalamares.utils.debug(
|
|
|
|
|
"{!s} configured as greeter.".format(greeter)
|
|
|
|
|
)
|
|
|
|
|
break
|
|
|
|
|
else:
|
|
|
|
|
return ("No lightdm greeter installed.")
|
|
|
|
|
pass
|
|
|
|
|
else:
|
|
|
|
|
libcalamares.utils.debug("lightdm selected but not installed")
|
|
|
|
|
displaymanagers.remove("lightdm")
|
|
|
|
|