diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2016-11-29 16:40:34 +1300 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2016-11-29 16:40:34 +1300 |
commit | f629710cbe3455bf785fb1addca313bb47171cde (patch) | |
tree | 1e5b5dcb39c8ec1a89d4157a6a11d938c7b285c5 | |
parent | badeec2022be718a1c37ec0da223c9d74f44cb66 (diff) | |
download | lightdm-git-f629710cbe3455bf785fb1addca313bb47171cde.tar.gz |
Load greeters from XDG_DATA_DIRS instead of compile time value
-rw-r--r-- | data/lightdm.conf | 2 | ||||
-rw-r--r-- | src/Makefile.am | 3 | ||||
-rw-r--r-- | src/lightdm.c | 19 |
3 files changed, 20 insertions, 4 deletions
diff --git a/data/lightdm.conf b/data/lightdm.conf index 72d1f0bb..ce990a0b 100644 --- a/data/lightdm.conf +++ b/data/lightdm.conf @@ -31,7 +31,7 @@ #cache-directory=/var/cache/lightdm #sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions #remote-sessions-directory=/usr/share/lightdm/remote-sessions -#greeters-directory=/usr/share/lightdm/greeters:/usr/share/xgreeters +#greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters #backup-logs=true # diff --git a/src/Makefile.am b/src/Makefile.am index 4d59d515..edee5bf8 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -88,8 +88,7 @@ lightdm_CFLAGS = \ -DCACHE_DIR=\"$(localstatedir)/cache/lightdm\" \ -DSESSIONS_DIR=\"$(pkgdatadir)/sessions:$(datadir)/xsessions:$(datadir)/wayland-sessions\" \ -DWAYLAND_SESSIONS_DIR=\"$(datadir)/wayland-sessions\" \ - -DREMOTE_SESSIONS_DIR=\"$(pkgdatadir)/remote-sessions\" \ - -DGREETERS_DIR=\"$(pkgdatadir)/greeters:$(datadir)/xgreeters\" + -DREMOTE_SESSIONS_DIR=\"$(pkgdatadir)/remote-sessions\" lightdm_LDADD = \ $(LIGHTDM_LIBS) \ diff --git a/src/lightdm.c b/src/lightdm.c index fd62314c..b6355777 100644 --- a/src/lightdm.c +++ b/src/lightdm.c @@ -1460,7 +1460,24 @@ main (int argc, char **argv) if (!config_has_key (config_get_instance (), "LightDM", "remote-sessions-directory")) config_set_string (config_get_instance (), "LightDM", "remote-sessions-directory", REMOTE_SESSIONS_DIR); if (!config_has_key (config_get_instance (), "LightDM", "greeters-directory")) - config_set_string (config_get_instance (), "LightDM", "greeters-directory", GREETERS_DIR); + { + GPtrArray *dirs; + const gchar * const *data_dirs; + gchar *value; + int i; + + dirs = g_ptr_array_new_with_free_func (g_free); + data_dirs = g_get_system_data_dirs (); + for (i = 0; data_dirs[i]; i++) + g_ptr_array_add (dirs, g_build_filename (data_dirs[i], "lightdm/greeters", NULL)); + for (i = 0; data_dirs[i]; i++) + g_ptr_array_add (dirs, g_build_filename (data_dirs[i], "xgreeters", NULL)); + g_ptr_array_add (dirs, NULL); + value = g_strjoinv (":", (gchar **) dirs->pdata); + config_set_string (config_get_instance (), "LightDM", "greeters-directory", value); + g_free (value); + g_ptr_array_unref (dirs); + } if (!config_has_key (config_get_instance (), "XDMCPServer", "hostname")) config_set_string (config_get_instance (), "XDMCPServer", "hostname", g_get_host_name ()); |