diff --git a/meson.build b/meson.build index 4a71f9c92d..920bb40668 100644 --- a/meson.build +++ b/meson.build @@ -37,6 +37,8 @@ gsd_pkglibdir = join_paths(gsd_libdir, gsd_api_name) gsd_schemadir = join_paths(gsd_datadir, 'glib-2.0', 'schemas') +gsd_xdg_autostart = join_paths(gsd_sysconfdir, 'xdg', 'autostart') + gsd_3_0_api_name = '@0@-@1@'.format(meson.project_name(), '3.0') gsd_gtk_modules_directory = join_paths(gsd_libdir, gsd_3_0_api_name, 'gtk-modules') diff --git a/plugins/meson.build b/plugins/meson.build index 6f963013b..d83d4c3fd 100644 --- a/plugins/meson.build +++ b/plugins/meson.build @@ -82,15 +82,36 @@ foreach plugin: all_plugins plugin_description = plugin[2] plugin_dbus_name='org.gnome.SettingsDaemon.@0@'.format(plugin_name_case) + desktop = 'org.gnome.SettingsDaemon.@0@.desktop'.format(plugin[1]) + + if disabled_plugins.contains(plugin_name) + desktop_in_file = files('org.gnome.SettingsDaemon.Dummy.desktop.in') + else + desktop_in_file = files('org.gnome.SettingsDaemon.Real.desktop.in') + endif + cflags = [ '-DG_LOG_DOMAIN="@0@-plugin"'.format(plugin_name), '-DPLUGIN_NAME="@0@"'.format(plugin_name), '-DPLUGIN_DBUS_NAME="@0@"'.format(plugin_dbus_name), ] + plugins_cflags + desktop = 'org.gnome.SettingsDaemon.@0@.desktop'.format(plugin[1]) + desktop_conf = configuration_data() + desktop_conf.set('libexecdir', gsd_libexecdir) + desktop_conf.set('systemd_hidden', enable_systemd ? 'true' : 'false') + desktop_conf.set('pluginname', plugin_name) + desktop_conf.set('description', plugin_description) + configure_file( + input: desktop_in_file, + output: desktop, + configuration: desktop_conf, + install_dir: gsd_xdg_autostart + ) + if not disabled_plugins.contains(plugin_name) - user_target = 'org.gnome.SettingsDaemon.@0@.target'.format(plugin_name_case) - user_service = 'org.gnome.SettingsDaemon.@0@.service'.format(plugin_name_case) + user_target = 'org.gnome.SettingsDaemon.@0@.target'.format(plugin[1]) + user_service = 'org.gnome.SettingsDaemon.@0@.service'.format(plugin[1]) unit_conf = configuration_data() unit_conf.set('plugin_name', plugin_name) diff --git a/plugins/org.gnome.SettingsDaemon.Dummy.desktop.in b/plugins/org.gnome.SettingsDaemon.Dummy.desktop.in new file mode 100644 index 000000000..f4cc7a278 --- /dev/null +++ b/plugins/org.gnome.SettingsDaemon.Dummy.desktop.in @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Application +Name=GNOME Settings Daemon's @pluginname@ dummy autostart file +Exec=false +OnlyShowIn=GNOME; +NoDisplay=true +Hidden=true diff --git a/plugins/org.gnome.SettingsDaemon.Real.desktop.in b/plugins/org.gnome.SettingsDaemon.Real.desktop.in new file mode 100644 index 000000000..3034e7125 --- /dev/null +++ b/plugins/org.gnome.SettingsDaemon.Real.desktop.in @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +Name=@description@ +Exec=@libexecdir@/gsd-@pluginname@ +OnlyShowIn=GNOME; +NoDisplay=true +X-GNOME-Autostart-Phase=Initialization +X-GNOME-Autostart-Notify=true +X-GNOME-AutoRestart=true +X-GNOME-HiddenUnderSystemd=@systemd_hidden@