about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/gnome/extensions/extensionOverrides.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/desktops/gnome/extensions/extensionOverrides.nix')
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/extensionOverrides.nix158
1 files changed, 158 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/nixpkgs/pkgs/desktops/gnome/extensions/extensionOverrides.nix
new file mode 100644
index 000000000000..77b09d870509
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/extensionOverrides.nix
@@ -0,0 +1,158 @@
+{ lib
+, ddcutil
+, easyeffects
+, gjs
+, glib
+, gnome
+, gobject-introspection
+, gsound
+, hddtemp
+, libgda
+, libgtop
+, liquidctl
+, lm_sensors
+, netcat-gnu
+, nvme-cli
+, procps
+, pulseaudio
+, python3
+, smartmontools
+, substituteAll
+, touchegg
+, util-linux
+, vte
+, wrapGAppsHook
+, xdg-utils
+}:
+let
+  # Helper method to reduce redundancy
+  patchExtension = name: override: super: (super // {
+    ${name} = super.${name}.overrideAttrs override;
+  });
+in
+# A set of overrides for automatically packaged extensions that require some small fixes.
+# The input must be an attribute set with the extensions' UUIDs as keys and the extension
+# derivations as values. Output is the same, but with patches applied.
+#
+# Note that all source patches refer to the built extension as published on extensions.gnome.org, and not
+# the upstream repository's sources.
+super: lib.trivial.pipe super [
+  (patchExtension "caffeine@patapon.info" (old: {
+    meta.maintainers = with lib.maintainers; [ eperuffo ];
+  }))
+
+  (patchExtension "dash-to-dock@micxgx.gmail.com" (old: {
+    meta.maintainers = with lib.maintainers; [ rhoriguchi ];
+  }))
+
+  (patchExtension "ddterm@amezin.github.com" (old: {
+    nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
+    buildInputs = [ vte ];
+    postFixup = ''
+      substituteInPlace "$out/share/gnome-shell/extensions/ddterm@amezin.github.com/bin/com.github.amezin.ddterm" --replace "gjs" "${gjs}/bin/gjs"
+      wrapGApp "$out/share/gnome-shell/extensions/ddterm@amezin.github.com/bin/com.github.amezin.ddterm"
+    '';
+  }))
+
+  (patchExtension "display-brightness-ddcutil@themightydeity.github.com" (old: {
+    # Has a hard-coded path to a run-time dependency
+    # https://github.com/NixOS/nixpkgs/issues/136111
+    postPatch = ''
+      substituteInPlace "extension.js" --replace "/usr/bin/ddcutil" "${ddcutil}/bin/ddcutil"
+    '';
+  }))
+
+  (patchExtension "eepresetselector@ulville.github.io" (old: {
+    patches = [
+      # Needed to find the currently set preset
+      (substituteAll {
+        src = ./extensionOverridesPatches/eepresetselector_at_ulville.github.io.patch;
+        easyeffects_gsettings_path = "${glib.getSchemaPath easyeffects}";
+      })
+    ];
+  }))
+
+  (patchExtension "freon@UshakovVasilii_Github.yahoo.com" (old: {
+    patches = [
+      (substituteAll {
+        src = ./extensionOverridesPatches/freon_at_UshakovVasilii_Github.yahoo.com.patch;
+        inherit hddtemp liquidctl lm_sensors procps smartmontools;
+        netcat = netcat-gnu;
+        nvmecli = nvme-cli;
+      })
+    ];
+  }))
+
+  (patchExtension "gnome-shell-screenshot@ttll.de" (old: {
+    # Requires gjs
+    # https://github.com/NixOS/nixpkgs/issues/136112
+    postPatch = ''
+      for file in *.js; do
+        substituteInPlace $file --replace "gjs" "${gjs}/bin/gjs"
+      done
+    '';
+  }))
+
+  (patchExtension "gtk4-ding@smedius.gitlab.com" (old: {
+    nativeBuildInputs = [ wrapGAppsHook ];
+    patches = [
+      (substituteAll {
+        inherit gjs util-linux xdg-utils;
+        util_linux = util-linux;
+        xdg_utils = xdg-utils;
+        src = ./extensionOverridesPatches/gtk4-ding_at_smedius.gitlab.com.patch;
+        nautilus_gsettings_path = "${glib.getSchemaPath gnome.nautilus}";
+      })
+    ];
+    postFixup = ''
+      wrapGApp "$out/share/gnome-shell/extensions/gtk4-ding@smedius.gitlab.com/app/ding.js"
+      wrapGApp "$out/share/gnome-shell/extensions/gtk4-ding@smedius.gitlab.com/app/createThumbnail.js"
+    '';
+  }))
+
+  (patchExtension "pano@elhan.io" (old: {
+    patches = [
+      (substituteAll {
+        src = ./extensionOverridesPatches/pano_at_elhan.io.patch;
+        inherit gsound libgda;
+      })
+    ];
+  }))
+
+  (patchExtension "system-monitor-next@paradoxxx.zero.gmail.com" (old: {
+    patches = [
+      (substituteAll {
+        src = ./extensionOverridesPatches/system-monitor-next_at_paradoxxx.zero.gmail.com.patch;
+        gtop_path = "${libgtop}/lib/girepository-1.0";
+      })
+    ];
+    meta.maintainers = with lib.maintainers; [ andersk ];
+  }))
+
+  (patchExtension "tophat@fflewddur.github.io" (old: {
+    patches = [
+      (substituteAll {
+        src = ./extensionOverridesPatches/tophat_at_fflewddur.github.io.patch;
+        gtop_path = "${libgtop}/lib/girepository-1.0";
+      })
+    ];
+  }))
+
+  (patchExtension "Vitals@CoreCoding.com" (old: {
+    patches = [
+      (substituteAll {
+        src = ./extensionOverridesPatches/vitals_at_corecoding.com.patch;
+        gtop_path = "${libgtop}/lib/girepository-1.0";
+      })
+    ];
+  }))
+
+  (patchExtension "x11gestures@joseexposito.github.io" (old: {
+    # Extension can't find Touchegg
+    # https://github.com/NixOS/nixpkgs/issues/137621
+    postPatch = ''
+      substituteInPlace "src/touchegg/ToucheggConfig.js" \
+        --replace "GLib.build_filenamev([GLib.DIR_SEPARATOR_S, 'usr', 'share', 'touchegg', 'touchegg.conf'])" "'${touchegg}/share/touchegg/touchegg.conf'"
+    '';
+  }))
+]