about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/gnome-3/extensions/fuzzy-app-search/fix-desktop-file-paths.patch
blob: 1795f998c9bde02b344b493139503371256b7b72 (plain) (blame)
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
diff --git a/applicationsUtils.js b/applicationsUtils.js
index 728223b..aa9f291 100644
--- a/applicationsUtils.js
+++ b/applicationsUtils.js
@@ -44,27 +44,24 @@ var Search = new Lang.Class({
      * @return {Void}
      */
     _init: function () {
-        let dir = [
-            "/usr/share/applications",
-            GLib.get_home_dir() + "/.local/share/applications",
-        ];
-
-        // listen object - file/monitor list
-        this._listen = dir.map((path) => {
-            let file = Gio.File.new_for_path(path);
-            let monitor = file.monitor(Gio.FileMonitorFlags.NONE, null);
-
-            // refresh on each directory change
-            monitor.connect(
-                "changed",
-                Lang.bind(this, this._handleMonitorChanged)
-            );
-
-            return {
-                file: file,
-                monitor: monitor,
-            };
-        });
+        this._listen = [...new Set(GLib.get_system_data_dirs())]
+            .filter((path) => path.endsWith("/share"))
+            .map((path) => Gio.File.new_for_path(path + "/applications"))
+            .filter((file) => file.query_exists(null))
+            .map((file) => {
+                let monitor = file.monitor(Gio.FileMonitorFlags.NONE, null);
+
+                // refresh on each directory change
+                monitor.connect(
+                    "changed",
+                    Lang.bind(this, this._handleMonitorChanged)
+                );
+
+                return {
+                    file: file,
+                    monitor: monitor,
+                };
+            });
         this._interval = null;
         this._data = {};