git.iko.soy/typeable/nixpkgs
on master help sign in
gnomeExtensions.fuzzy-app-search: init at 4
commitb5fed71c86e5ea77add4f03809df8cafd7114c13 authorRyan Horiguchi <ryan.horiguchi@gmail.com> dateTue 19 Jan 2021, 21:52 (6 years ago) parent57c1982
3 files changed+80
pkgs/desktops/gnome-3/extensions/fuzzy-app-search/default.nix+29 pkgs/desktops/gnome-3/extensions/fuzzy-app-search/fix-desktop-file-paths.patch+50 pkgs/top-level/all-packages.nix+1
pkgs/desktops/gnome-3/extensions/fuzzy-app-search/default.nixnew file+29
@@ -0,0 +1,29 @@
1+{ lib, stdenv, fetchFromGitLab, gnome3, glib }:
2+
3+stdenv.mkDerivation rec {
4+ pname = "gnome-shell-extension-fuzzy-app-search";
5+ version = "4";
6+
7+ src = fetchFromGitLab {
8+ owner = "Czarlie";
9+ repo = "gnome-fuzzy-app-search";
10+ rev = "da9c15d39958d9c3b38df3b616fd40b85aed24e5";
11+ sha256 = "1r3qha530s97x818znn1wi76f4x9bhlgi7jlxfwjnrwys62cv5fn";
12+ };
13+
14+ uuid = "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com";
15+
16+ nativeBuildInputs = [ glib ];
17+
18+ patches = [ ./fix-desktop-file-paths.patch ];
19+
20+ makeFlags = [ "INSTALL_PATH=$(out)/share/gnome-shell/extensions" ];
21+
22+ meta = with lib; {
23+ description = "Fuzzy application search results for Gnome Search";
24+ license = licenses.gpl3Only;
25+ maintainers = with maintainers; [ rhoriguchi ];
26+ homepage = "https://gitlab.com/Czarlie/gnome-fuzzy-app-search";
27+ broken = versionOlder gnome3.gnome-shell.version "3.18";
28+ };
29+}
pkgs/desktops/gnome-3/extensions/fuzzy-app-search/fix-desktop-file-paths.patchnew file+50
@@ -0,0 +1,50 @@
1+diff --git a/applicationsUtils.js b/applicationsUtils.js
2+index 728223b..aa9f291 100644
3+--- a/applicationsUtils.js
4++++ b/applicationsUtils.js
5+@@ -44,27 +44,24 @@ var Search = new Lang.Class({
6+ * @return {Void}
7+ */
8+ _init: function () {
9+- let dir = [
10+- "/usr/share/applications",
11+- GLib.get_home_dir() + "/.local/share/applications",
12+- ];
13+-
14+- // listen object - file/monitor list
15+- this._listen = dir.map((path) => {
16+- let file = Gio.File.new_for_path(path);
17+- let monitor = file.monitor(Gio.FileMonitorFlags.NONE, null);
18+-
19+- // refresh on each directory change
20+- monitor.connect(
21+- "changed",
22+- Lang.bind(this, this._handleMonitorChanged)
23+- );
24+-
25+- return {
26+- file: file,
27+- monitor: monitor,
28+- };
29+- });
30++ this._listen = [...new Set(GLib.get_system_data_dirs())]
31++ .filter((path) => path.endsWith("/share"))
32++ .map((path) => Gio.File.new_for_path(path + "/applications"))
33++ .filter((file) => file.query_exists(null))
34++ .map((file) => {
35++ let monitor = file.monitor(Gio.FileMonitorFlags.NONE, null);
36++
37++ // refresh on each directory change
38++ monitor.connect(
39++ "changed",
40++ Lang.bind(this, this._handleMonitorChanged)
41++ );
42++
43++ return {
44++ file: file,
45++ monitor: monitor,
46++ };
47++ });
48+ this._interval = null;
49+ this._data = {};
50+
pkgs/top-level/all-packages.nix+1
@@ -27267,6 +27267,7 @@ in
2726727267 easyScreenCast = callPackage ../desktops/gnome-3/extensions/EasyScreenCast { };
2726827268 emoji-selector = callPackage ../desktops/gnome-3/extensions/emoji-selector { };
2726927269 freon = callPackage ../desktops/gnome-3/extensions/freon { };
27270+ fuzzy-app-search = callPackage ../desktops/gnome-3/extensions/fuzzy-app-search { };
2727027271 gsconnect = callPackage ../desktops/gnome-3/extensions/gsconnect { };
2727127272 icon-hider = callPackage ../desktops/gnome-3/extensions/icon-hider { };
2727227273 impatience = callPackage ../desktops/gnome-3/extensions/impatience { };