[displaymanager] Refactor greeter setup
- Only lightdm has support for dynamically configuring the greeter based on what is installed. Still, refactory that to something general.
This commit is contained in:
parent
383e0e4f25
commit
18392cb216
@ -129,6 +129,14 @@ class DisplayManager(metaclass=abc.ABCMeta):
|
|||||||
"""
|
"""
|
||||||
# Many implementations do nothing
|
# Many implementations do nothing
|
||||||
|
|
||||||
|
@abc.abstractmethod
|
||||||
|
def greeter_setup(self):
|
||||||
|
"""
|
||||||
|
Additional setup for the greeter.
|
||||||
|
"""
|
||||||
|
# Most implementations do nothing
|
||||||
|
|
||||||
|
|
||||||
class DMmdm(DisplayManager):
|
class DMmdm(DisplayManager):
|
||||||
name = "mdm"
|
name = "mdm"
|
||||||
executable = "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):
|
class DMslim(DisplayManager):
|
||||||
name = "slim"
|
name = "slim"
|
||||||
@ -711,36 +751,7 @@ def run():
|
|||||||
# setup lightdm
|
# setup lightdm
|
||||||
if "lightdm" in displaymanagers:
|
if "lightdm" in displaymanagers:
|
||||||
if have_dm("lightdm", root_mount_point):
|
if have_dm("lightdm", root_mount_point):
|
||||||
lightdm_conf_path = os.path.join(
|
pass
|
||||||
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.")
|
|
||||||
else:
|
else:
|
||||||
libcalamares.utils.debug("lightdm selected but not installed")
|
libcalamares.utils.debug("lightdm selected but not installed")
|
||||||
displaymanagers.remove("lightdm")
|
displaymanagers.remove("lightdm")
|
||||||
|
Loading…
Reference in New Issue
Block a user