diff options
author | David King <amigadave@amigadave.com> | 2013-06-24 08:21:22 +0100 |
---|---|---|
committer | David King <amigadave@amigadave.com> | 2014-09-01 11:03:25 +0100 |
commit | 147d3ecde3ec5f9153ce05208a043a802d320b3d (patch) | |
tree | cfc66bf278a5c34c6d25af96915bc8820bf80932 /data | |
parent | c53fd1edbcb2b4bbe664c58dc25fa7877d62d1b4 (diff) | |
download | caribou-147d3ecde3ec5f9153ce05208a043a802d320b3d.tar.gz |
daemon: Start with D-Bus activation
Install the daemon to libexecdir. Make the daemon own a name on the
session bus, and install a D-Bus service file for it. Allow the name
to be replaced by another process, so that a D-Bus activated daemon can
be replaced by a GSettings-key autostarted daemon. Handle run() being
called multiple times.
https://bugzilla.gnome.org/show_bug.cgi?id=683712
Diffstat (limited to 'data')
-rw-r--r-- | data/Makefile.am | 16 | ||||
-rw-r--r-- | data/caribou-autostart.desktop.in.in (renamed from data/caribou-autostart.desktop.in) | 2 | ||||
-rw-r--r-- | data/org.gnome.Caribou.Daemon.service.in | 3 |
3 files changed, 17 insertions, 4 deletions
diff --git a/data/Makefile.am b/data/Makefile.am index 2e83b85..97c663f 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -8,19 +8,28 @@ gsettings_schemas_in_files = \ gsettings_SCHEMAS = $(gsettings_schemas_in_files:.gschema.xml.in=.gschema.xml) autostartdir = $(sysconfdir)/xdg/autostart -autostart_in_files = caribou-autostart.desktop.in +autostart_in_in_files = caribou-autostart.desktop.in.in +autostart_in_files = $(autostart_in_in_files:.desktop.in.in=.desktop.in) autostart_DATA = $(autostart_in_files:.desktop.in=.desktop) servicefiledir = $(datadir)/dbus-1/services -servicefile_in_files = org.gnome.Caribou.Antler.service.in +servicefile_in_files = \ + org.gnome.Caribou.Antler.service.in \ + org.gnome.Caribou.Daemon.service.in servicefile_DATA = $(servicefile_in_files:.service.in=.service) +caribou-autostart.desktop.in: caribou-autostart.desktop.in.in + $(AM_V_GEN)sed -e "s|[@]libexecdir[@]|$(libexecdir)|" $< > $@ + org.gnome.Caribou.Antler.service: org.gnome.Caribou.Antler.service.in $(AM_V_GEN)sed -e "s|[@]libexecdir[@]|$(libexecdir)|" $< > $@ +org.gnome.Caribou.Daemon.service: org.gnome.Caribou.Daemon.service.in + $(AM_V_GEN)sed -e "s|[@]libexecdir[@]|$(libexecdir)|" $< > $@ + @INTLTOOL_DESKTOP_RULE@ -EXTRA_DIST = $(autostart_in_files) $(servicefile_in_files) +EXTRA_DIST = $(autostart_in_in_files) $(servicefile_in_files) org.gnome.caribou.gschema.xml.in: $(top_srcdir)/caribou/settings/caribou_settings.py $(AM_V_GEN)$(PYTHON) -B $(top_srcdir)/tools/make_schema.py \ @@ -34,6 +43,7 @@ org.gnome.antler.gschema.xml.in: $(top_srcdir)/caribou/antler/antler_settings.py CLEANFILES = \ $(autostart_DATA) \ + $(autostart_in_files) \ $(gsettings_schemas_in_files) \ $(gsettings_SCHEMAS) \ $(servicefile_DATA) diff --git a/data/caribou-autostart.desktop.in b/data/caribou-autostart.desktop.in.in index 445ad14..4bd1c03 100644 --- a/data/caribou-autostart.desktop.in +++ b/data/caribou-autostart.desktop.in.in @@ -1,7 +1,7 @@ [Desktop Entry] Type=Application Name=Caribou -Exec=caribou +Exec=@libexecdir@/caribou AutostartCondition=GSettings org.gnome.desktop.a11y.applications screen-keyboard-enabled X-GNOME-AutoRestart=true #X-GNOME-Autostart-Phase=Initialization diff --git a/data/org.gnome.Caribou.Daemon.service.in b/data/org.gnome.Caribou.Daemon.service.in new file mode 100644 index 0000000..a30d622 --- /dev/null +++ b/data/org.gnome.Caribou.Daemon.service.in @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=org.gnome.Caribou.Daemon +Exec=@libexecdir@/caribou |