fix(greetd): deal with no existing config
This commit is contained in:
parent
fbdb9e6779
commit
5701937883
@ -838,22 +838,30 @@ class DMsddm(DisplayManager):
|
||||
class DMgreetd(DisplayManager):
|
||||
name = "greetd"
|
||||
executable = "greetd"
|
||||
greeter_user = "greeter"
|
||||
greeter_group = "greetd"
|
||||
config_data = {}
|
||||
|
||||
def os_path(self, path):
|
||||
return os.path.join(self.root_mount_point, path)
|
||||
|
||||
def config_path(self):
|
||||
path = self.os_path("etc/greetd/config.toml")
|
||||
if not os.path.exists(path):
|
||||
open(path, 'a').close()
|
||||
return path
|
||||
return self.os_path("etc/greetd/config.toml")
|
||||
|
||||
def environments_path(self):
|
||||
return self.os_path("etc/greetd/environments")
|
||||
|
||||
def config_load(self):
|
||||
self.config_data = toml.loads(self.config_path())
|
||||
if (os.path.exists(self.config_path)):
|
||||
self.config_data = toml.loads(self.config_path())
|
||||
|
||||
self.config_data['terminal'] = dict(vt = "next")
|
||||
|
||||
if not os.path.exists(self.config_data['default_session']):
|
||||
self.config_data['default_session'] = {}
|
||||
|
||||
self.config_data['default_session']['user'] = self.greeter_user
|
||||
|
||||
return self.config_data
|
||||
|
||||
def config_write(self):
|
||||
@ -861,26 +869,23 @@ class DMgreetd(DisplayManager):
|
||||
|
||||
def basic_setup(self):
|
||||
if libcalamares.utils.target_env_call(
|
||||
['getent', 'group', 'greetd']
|
||||
['getent', 'group', self.greeter_group]
|
||||
) != 0:
|
||||
libcalamares.utils.target_env_call(
|
||||
['groupadd', 'greetd']
|
||||
['groupadd', self.greeter_group]
|
||||
)
|
||||
|
||||
if libcalamares.utils.target_env_call(
|
||||
['getent', 'passwd', 'greeter']
|
||||
['getent', 'passwd', self.greeter_user]
|
||||
) != 0:
|
||||
libcalamares.utils.target_env_call(
|
||||
['useradd',
|
||||
'-c', '"Greeter User"',
|
||||
'-g', 'greetd',
|
||||
'-g', self.greeter_group,
|
||||
'-s', '/bin/bash',
|
||||
'greeter'
|
||||
self.greeter_user
|
||||
]
|
||||
)
|
||||
self.config_load()
|
||||
self.config_data['terminal']['vt'] = "next"
|
||||
self.config_write()
|
||||
|
||||
def desktop_environment_setup(self, default_desktop_environment):
|
||||
with open(self.environments_path(), 'w') as envs_file:
|
||||
@ -892,25 +897,22 @@ class DMgreetd(DisplayManager):
|
||||
def set_autologin(self, username, do_autologin, default_desktop_environment):
|
||||
self.config_load()
|
||||
|
||||
if os.path.exists(self.os_path("usr/bin/gtkgreed") and os.path.exists(self.os_path("usr/bin/cage")):
|
||||
self.config_data['default_session']['command'] = "cage gtkgreet"
|
||||
if os.path.exists(self.os_path("usr/bin/gtkgreed")) and os.path.exists(self.os_path("usr/bin/cage")):
|
||||
self.config_data['default_session']['command'] = "cage -s -- gtkgreet"
|
||||
elif os.path.exists(self.os_path("usr/bin/tuigreet")):
|
||||
tuigreet_base_cmd = "tuigreet --remember --time --issue --asterisks --cmd "
|
||||
self.config_data['default_session']['command'] = tuigreet_base_cmd + default_desktop_environment
|
||||
elif os.path.exists(self.os_path("usr/bin/ddlm")):
|
||||
self.config_data['default_session']['command'] = "ddlm --target sway"
|
||||
self.config_data['default_session']['command'] = "ddlm --target " + default_desktop_environment
|
||||
else:
|
||||
self.config_data['default_session']['command'] = "agreety --cmd " + default_desktop_environment
|
||||
|
||||
if do_autologin == True:
|
||||
self.config_data['initial_session'] = {}
|
||||
self.config_data['initial_session']['command'] = default_desktop_environment
|
||||
self.config_data['initial_session']['user'] = username
|
||||
self.config_data['initial_session'] = dict(command = default_desktop_environment, user = username)
|
||||
|
||||
self.config_write()
|
||||
|
||||
|
||||
|
||||
class DMsysconfig(DisplayManager):
|
||||
name = "sysconfig"
|
||||
executable = None
|
||||
|
Loading…
Reference in New Issue
Block a user