diff options
-rw-r--r-- | data/gnome-login.session.in | 3 | ||||
-rw-r--r-- | data/meson.build | 43 | ||||
-rw-r--r-- | data/session.conf | 19 | ||||
-rw-r--r-- | data/session.conf.in | 4 |
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 |