summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorWill Thompson <will@willthompson.co.uk>2019-08-05 15:37:55 +0000
committerWill Thompson <will@willthompson.co.uk>2019-08-05 15:37:55 +0000
commit14b98357cfc05ee28bf24dae3f5e157a78857a07 (patch)
treefc9062ada1723f8b606e8dc96c6926619dc011f7 /data
parent6bf12319dbbb4dfe52250de0005dec7fba347c99 (diff)
parentcf8430f6a6d8e33573916a52a8783672b9f84777 (diff)
downloadgnome-initial-setup-14b98357cfc05ee28bf24dae3f5e157a78857a07.tar.gz
Merge branch 'wip/benzea/systemd-user' into 'master'
Use systemd user instance See merge request GNOME/gnome-initial-setup!38
Diffstat (limited to 'data')
-rw-r--r--data/gnome-initial-setup-copy-worker.desktop.in.in1
-rw-r--r--data/gnome-initial-setup-copy-worker.service.in15
-rw-r--r--data/gnome-initial-setup-first-login.desktop.in.in1
-rw-r--r--data/gnome-initial-setup-first-login.service.in19
-rw-r--r--data/gnome-initial-setup.service.in16
-rw-r--r--data/gnome-initial-setup.session3
-rw-r--r--data/gnome-welcome-tour.desktop.in.in1
-rw-r--r--data/gnome-welcome-tour.service.in15
-rw-r--r--data/meson.build35
-rw-r--r--data/setup-shell.desktop8
10 files changed, 93 insertions, 21 deletions
diff --git a/data/gnome-initial-setup-copy-worker.desktop.in.in b/data/gnome-initial-setup-copy-worker.desktop.in.in
index d1ebb66..7e4b2a4 100644
--- a/data/gnome-initial-setup-copy-worker.desktop.in.in
+++ b/data/gnome-initial-setup-copy-worker.desktop.in.in
@@ -7,3 +7,4 @@ NoDisplay=true
X-GNOME-AutoRestart=false
X-GNOME-Autostart-Phase=EarlyInitialization
AutostartCondition=unless-exists gnome-initial-setup-done
+X-GNOME-HiddenUnderSystemd=@systemd_hidden@
diff --git a/data/gnome-initial-setup-copy-worker.service.in b/data/gnome-initial-setup-copy-worker.service.in
new file mode 100644
index 0000000..df43c39
--- /dev/null
+++ b/data/gnome-initial-setup-copy-worker.service.in
@@ -0,0 +1,15 @@
+[Unit]
+Description=GNOME Initial Setup Copy Worker
+
+# Make sure we run really early
+Before=gnome-session-pre.target graphical-session-pre.target
+
+ConditionPathExists=!%E/gnome-initial-setup-done
+
+[Service]
+Type=simple
+ExecStart=@libexecdir@/gnome-initial-setup-copy-worker
+Restart=no
+
+[Install]
+WantedBy=gnome-session.target
diff --git a/data/gnome-initial-setup-first-login.desktop.in.in b/data/gnome-initial-setup-first-login.desktop.in.in
index 8445e03..6b81591 100644
--- a/data/gnome-initial-setup-first-login.desktop.in.in
+++ b/data/gnome-initial-setup-first-login.desktop.in.in
@@ -14,3 +14,4 @@ X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-initial-setup
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=unknown
+X-GNOME-HiddenUnderSystemd=@systemd_hidden@
diff --git a/data/gnome-initial-setup-first-login.service.in b/data/gnome-initial-setup-first-login.service.in
new file mode 100644
index 0000000..7c7f50d
--- /dev/null
+++ b/data/gnome-initial-setup-first-login.service.in
@@ -0,0 +1,19 @@
+[Unit]
+Description=GNOME Initial Setup
+
+BindsTo=gnome-session.target
+After=gnome-session.target
+
+# Together with Type=oneshot, make sure the welcome tour starts after setup
+Before=gnome-welcome-tour.service
+
+Conflicts=gnome-session@gnome-initial-setup.target
+ConditionPathExists=!%E/gnome-initial-setup-done
+
+[Service]
+Type=oneshot
+ExecStart=@libexecdir@/gnome-initial-setup --existing-user
+Restart=no
+
+[Install]
+WantedBy=gnome-session.target
diff --git a/data/gnome-initial-setup.service.in b/data/gnome-initial-setup.service.in
new file mode 100644
index 0000000..ea91d69
--- /dev/null
+++ b/data/gnome-initial-setup.service.in
@@ -0,0 +1,16 @@
+[Unit]
+Description=GNOME Initial Setup
+RefuseManualStart=true
+RefuseManualStop=true
+
+BindsTo=gnome-session.target
+After=gnome-session.target
+
+[Service]
+Type=simple
+ExecStart=@libexecdir@/gnome-initial-setup
+ExecStopPost=-@libexecdir@/gnome-session-ctl --shutdown
+Restart=no
+
+[Install]
+WantedBy=gnome-session@gnome-initial-setup.target
diff --git a/data/gnome-initial-setup.session b/data/gnome-initial-setup.session
index e4c5460..f6d7e92 100644
--- a/data/gnome-initial-setup.session
+++ b/data/gnome-initial-setup.session
@@ -1,4 +1,3 @@
[GNOME Session]
Name=GNOME Initial Setup
-RequiredComponents=setup-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;
-
+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-welcome-tour.desktop.in.in b/data/gnome-welcome-tour.desktop.in.in
index 22e4536..45d82e5 100644
--- a/data/gnome-welcome-tour.desktop.in.in
+++ b/data/gnome-welcome-tour.desktop.in.in
@@ -5,3 +5,4 @@ Exec=@LIBEXECDIR@/gnome-welcome-tour
AutostartCondition=if-exists run-welcome-tour
OnlyShowIn=GNOME;
NoDisplay=true
+X-GNOME-HiddenUnderSystemd=@systemd_hidden@
diff --git a/data/gnome-welcome-tour.service.in b/data/gnome-welcome-tour.service.in
new file mode 100644
index 0000000..2315540
--- /dev/null
+++ b/data/gnome-welcome-tour.service.in
@@ -0,0 +1,15 @@
+[Unit]
+Description=GNOME Welcome Tour
+
+BindsTo=gnome-session.target
+After=gnome-session.target
+
+ConditionPathExists=%E/run-welcome-tour
+
+[Service]
+Type=simple
+ExecStart=@libexecdir@/gnome-welcome-tour
+Restart=no
+
+[Install]
+WantedBy=gnome-session.target
diff --git a/data/meson.build b/data/meson.build
index 8fa6f29..9aa79bf 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -5,7 +5,8 @@ autostart_files = [
]
desktop_conf = configuration_data()
-desktop_conf.set('LIBEXECDIR', join_paths(prefix, get_option('libexecdir')))
+desktop_conf.set('LIBEXECDIR', libexec_dir)
+desktop_conf.set('systemd_hidden', enable_systemd ? 'true' : 'false')
foreach desktop_file: autostart_files
i18n.merge_file(
@@ -25,16 +26,6 @@ endforeach
i18n.merge_file(
'desktop',
- input: 'setup-shell.desktop',
- output: 'setup-shell.desktop',
- install_dir: join_paths(data_dir, 'gdm', 'greeter', 'applications'),
- po_dir: po_dir,
- install: true,
- type: 'desktop'
-)
-
-i18n.merge_file(
- 'desktop',
input: configure_file(
input: files('gnome-initial-setup.desktop.in.in'),
output: 'gnome-initial-setup.desktop.in',
@@ -47,6 +38,28 @@ i18n.merge_file(
type: 'desktop'
)
+if enable_systemd
+ unitconf = configuration_data()
+ unitconf.set('libexecdir', libexec_dir)
+
+ unit_files = [
+ 'gnome-initial-setup.service',
+ 'gnome-initial-setup-first-login.service',
+ 'gnome-initial-setup-copy-worker.service',
+ 'gnome-welcome-tour.service'
+ ]
+
+ foreach unit: unit_files
+ configure_file(
+ input: unit + '.in',
+ output: unit,
+ configuration: unitconf,
+ install_dir: systemd_userunitdir
+ )
+ endforeach
+endif
+
+
rules_dir = join_paths(data_dir, 'polkit-1', 'rules.d')
install_data('20-gnome-initial-setup.rules', install_dir: rules_dir)
diff --git a/data/setup-shell.desktop b/data/setup-shell.desktop
deleted file mode 100644
index cce175e..0000000
--- a/data/setup-shell.desktop
+++ /dev/null
@@ -1,8 +0,0 @@
-[Desktop Entry]
-Type=Application
-Name=GNOME Shell
-Exec=gnome-shell --mode=initial-setup
-X-GNOME-AutoRestart=true
-X-GNOME-Autostart-Phase=DisplayServer
-X-GNOME-Provides=panel;windowmanager;
-X-GNOME-Autostart-Notify=true