summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorBenjamin Berg <bberg@redhat.com>2019-12-14 10:20:39 +0100
committerBenjamin Berg <bberg@redhat.com>2020-07-14 17:42:00 +0200
commitfc0aff2d99818eb0c3a13e7ff253ba8bd5e424cb (patch)
tree0aed66bb032715fa986ddfeb6ed988c6765fb750 /data
parentbc8c8bf6cc90302e941e40b8094940e5e1f85214 (diff)
downloadgnome-initial-setup-fc0aff2d99818eb0c3a13e7ff253ba8bd5e424cb.tar.gz
data: Port to new systemd session configuration approach
Earlier we had a global definition of which services will be launched in a GNOME session. However, the approach made it very hard to create customized session. With this approach, each session needs to drop-in a session configuration file. This file closely mirrors the old .session definition file.
Diffstat (limited to 'data')
-rw-r--r--data/gnome-initial-setup.session1
-rw-r--r--data/gnome-initial-setup.session.conf22
-rw-r--r--data/meson.build7
3 files changed, 29 insertions, 1 deletions
diff --git a/data/gnome-initial-setup.session b/data/gnome-initial-setup.session
index f6d7e92..9792edb 100644
--- a/data/gnome-initial-setup.session
+++ b/data/gnome-initial-setup.session
@@ -1,3 +1,4 @@
[GNOME Session]
Name=GNOME Initial Setup
+# Keep in sync with gnome-session@gnome-initial-setup.target.d/session.conf drop-in
RequiredComponents=org.gnome.Shell;gnome-initial-setup;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;org.gnome.SettingsDaemon.XSettings;
diff --git a/data/gnome-initial-setup.session.conf b/data/gnome-initial-setup.session.conf
new file mode 100644
index 0000000..c8f146a
--- /dev/null
+++ b/data/gnome-initial-setup.session.conf
@@ -0,0 +1,22 @@
+[Unit]
+# Keep in sync with gnome-initial-setup.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
+
+# Only difference to a standard GNOME session is the gnome-initial-setup service
+Requires=gnome-initial-setup.service
diff --git a/data/meson.build b/data/meson.build
index 19e3643..3cc0497 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -43,7 +43,6 @@ if enable_systemd
unitconf.set('libexecdir', libexec_dir)
unit_files = {
- 'gnome-initial-setup.service' : [ 'gnome-session@gnome-initial-setup.target.wants/' ],
'gnome-initial-setup-first-login.service' : [ 'gnome-session.target.wants/' ],
'gnome-initial-setup-copy-worker.service' : [ 'gnome-session.target.wants/' ],
'gnome-welcome-tour.service' : [ 'gnome-session.target.wants/' ],
@@ -61,6 +60,12 @@ if enable_systemd
meson.add_install_script('meson-add-wants.sh', systemd_userunitdir, target, unit)
endforeach
endforeach
+
+ install_data(
+ 'gnome-initial-setup.session.conf',
+ rename: join_paths('gnome-session@gnome-initial-setup.target.d', 'session.conf'),
+ install_dir: systemd_userunitdir
+ )
endif