summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/gnome-login.session.in3
-rw-r--r--data/meson.build43
-rw-r--r--data/session.conf19
-rw-r--r--data/session.conf.in4
4 files changed, 44 insertions, 25 deletions
diff --git a/data/gnome-login.session.in b/data/gnome-login.session.in
index fd9d45aa..63470962 100644
--- a/data/gnome-login.session.in
+++ b/data/gnome-login.session.in
@@ -1,4 +1,3 @@
[GNOME Session]
Name=Display Manager
-# Keep in sync with gnome-session@gnome-login.target.d/session.conf
-RequiredComponents=org.gnome.Shell;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;
+RequiredComponents=@gnome_required_components@;
diff --git a/data/meson.build b/data/meson.build
index bbcad589..cf068599 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -61,12 +61,38 @@ gdm_schema = configure_file(
install_data('locale.alias',
install_dir: get_option('datadir') / 'gdm',
)
+
+gdm_gnome_shell_component = 'org.gnome.Shell'
+gdm_gnome_session_required_components = [
+ 'org.gnome.SettingsDaemon.A11ySettings',
+ 'org.gnome.SettingsDaemon.Color',
+ 'org.gnome.SettingsDaemon.Datetime',
+ 'org.gnome.SettingsDaemon.Housekeeping',
+ 'org.gnome.SettingsDaemon.Keyboard',
+ 'org.gnome.SettingsDaemon.MediaKeys',
+ 'org.gnome.SettingsDaemon.Power',
+ 'org.gnome.SettingsDaemon.PrintNotifications',
+ 'org.gnome.SettingsDaemon.Rfkill',
+ 'org.gnome.SettingsDaemon.ScreensaverProxy',
+ 'org.gnome.SettingsDaemon.Sharing',
+ 'org.gnome.SettingsDaemon.Smartcard',
+ 'org.gnome.SettingsDaemon.Sound',
+ 'org.gnome.SettingsDaemon.Wacom',
+]
+
+gdm_gnome_user_session_wanted_components = gdm_gnome_session_required_components
+gdm_gnome_user_session_wanted_components += [
+ 'org.gnome.SettingsDaemon.XSettings',
+]
+
configure_file(
input: 'gnome-login.session.in',
output: '@BASENAME@',
configuration: {
'libexecdir': gdm_prefix / get_option('libexecdir'),
'check_accelerated_dir': check_accelerated_dir,
+ 'gnome_required_components': ';'.join(
+ [ gdm_gnome_shell_component ] + gdm_gnome_session_required_components),
},
install_dir: get_option('datadir') / 'gnome-session' / 'sessions',
)
@@ -165,10 +191,19 @@ configure_file(
format: 'cmake'
)
-install_data(
- 'session.conf',
- rename: join_paths('gnome-session@gnome-login.target.d', 'session.conf'),
- install_dir: systemd_userunitdir,
+gdm_gnome_session_wanted_targets = []
+foreach component: gdm_gnome_user_session_wanted_components
+ gdm_gnome_session_wanted_targets += 'Wants=@0@.target'.format(component)
+endforeach
+
+configure_file(
+ input: 'session.conf.in',
+ output: 'session.conf',
+ configuration: {
+ 'requires_component': gdm_gnome_shell_component,
+ 'wants_required_components': '\n'.join(gdm_gnome_session_wanted_targets),
+ },
+ install_dir: systemd_userunitdir / 'gnome-session@gnome-login.target.d',
)
# XSession
diff --git a/data/session.conf b/data/session.conf
deleted file mode 100644
index 560f8dce..00000000
--- a/data/session.conf
+++ /dev/null
@@ -1,19 +0,0 @@
-[Unit]
-# Keep in sync with gnome-login.session
-Wants=org.gnome.SettingsDaemon.A11ySettings.target
-Wants=org.gnome.SettingsDaemon.Color.target
-Wants=org.gnome.SettingsDaemon.Datetime.target
-Wants=org.gnome.SettingsDaemon.Housekeeping.target
-Wants=org.gnome.SettingsDaemon.Keyboard.target
-Wants=org.gnome.SettingsDaemon.MediaKeys.target
-Wants=org.gnome.SettingsDaemon.Power.target
-Wants=org.gnome.SettingsDaemon.PrintNotifications.target
-Wants=org.gnome.SettingsDaemon.Rfkill.target
-Wants=org.gnome.SettingsDaemon.ScreensaverProxy.target
-Wants=org.gnome.SettingsDaemon.Sharing.target
-Wants=org.gnome.SettingsDaemon.Smartcard.target
-Wants=org.gnome.SettingsDaemon.Sound.target
-Wants=org.gnome.SettingsDaemon.Wacom.target
-Wants=org.gnome.SettingsDaemon.XSettings.target
-
-Requires=org.gnome.Shell.target
diff --git a/data/session.conf.in b/data/session.conf.in
new file mode 100644
index 00000000..7bfa3652
--- /dev/null
+++ b/data/session.conf.in
@@ -0,0 +1,4 @@
+[Unit]
+@wants_required_components@
+
+Requires=@requires_component@.target