summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/gnome-settings-daemon-restore-desktop-files.patch
blob: d9bf07ba8362fa93dde5255899a1a0c5d60f563d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
From 6eefa4ef615e24688d20847afcb5fddb31a69774 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?No=C3=A9=20Lopez?= <noelopez@free.fr>
Date: Wed, 15 Apr 2026 08:34:03 +0200
Subject: [PATCH] Revert "plugins: Drop .desktop files"

This reverts commit 242752d489b40f7cac20fc244a76eac8572cd955.
---
 meson.build                                   |  2 ++
 plugins/meson.build                           | 25 +++++++++++++++++--
 .../org.gnome.SettingsDaemon.Dummy.desktop.in |  7 ++++++
 .../org.gnome.SettingsDaemon.Real.desktop.in  | 10 ++++++++
 4 files changed, 42 insertions(+), 2 deletions(-)
 create mode 100644 plugins/org.gnome.SettingsDaemon.Dummy.desktop.in
 create mode 100644 plugins/org.gnome.SettingsDaemon.Real.desktop.in

diff --git a/meson.build b/meson.build
index b1d5c53c..b69e3e1d 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 fae3fc9e..68c79410 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 00000000..f4cc7a27
--- /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 00000000..3034e712
--- /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@
-- 
2.52.0