git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #137131 from piegamesde/gnome-extensions

gnomeExtensions: add patch framework and fix extensions

commit786b429ace50ce4c65c42646a57d9ff1589ba76f authormaralorn <malte.brandy@maralorn.de> dateThu 30 Sep 2021, 23:22 (5 years ago) parent920806949041cd
4 files changed+52−10
pkgs/desktops/gnome/extensions/buildGnomeExtension.nix+5−2 pkgs/desktops/gnome/extensions/default.nix+14−7 pkgs/desktops/gnome/extensions/extensionOverrides.nix+32 pkgs/desktops/gnome/extensions/tilingnome/default.nix+1−1
pkgs/desktops/gnome/extensions/buildGnomeExtension.nix+5−2
@@ -36,9 +36,12 @@ let
3636 echo "${metadata}" | base64 --decode > $out/metadata.json
3737 '';
3838 };
39− buildCommand = ''
39+ dontBuild = true;
40+ installPhase = ''
41+ runHook preInstall
4042 mkdir -p $out/share/gnome-shell/extensions/
41− cp -r -T $src $out/share/gnome-shell/extensions/${uuid}
43+ cp -r -T . $out/share/gnome-shell/extensions/${uuid}
44+ runHook postInstall
4245 '';
4346 meta = {
4447 description = builtins.head (lib.splitString "\n" description);
pkgs/desktops/gnome/extensions/default.nix+14−7
@@ -60,17 +60,24 @@ in rec {
6060 gnome38Extensions = mapUuidNames (produceExtensionsList "38");
6161 gnome40Extensions = mapUuidNames (produceExtensionsList "40");
6262
63− gnomeExtensions = lib.recurseIntoAttrs (
64− (mapReadableNames
65− (lib.attrValues (gnome40Extensions // (callPackages ./manuallyPackaged.nix {})))
66− )
67− // lib.optionalAttrs (config.allowAliases or true) {
63+ gnomeExtensions = lib.trivial.pipe gnome40Extensions [
64+ # Apply some custom patches for automatically packaged extensions
65+ (callPackage ./extensionOverrides.nix {})
66+ # Add all manually packaged extensions
67+ (extensions: extensions // (callPackages ./manuallyPackaged.nix {}))
68+ # Map the extension UUIDs to readable names
69+ (lib.attrValues)
70+ (mapReadableNames)
71+ # Add some aliases
72+ (extensions: extensions // lib.optionalAttrs (config.allowAliases or true) {
6873 unite-shell = gnomeExtensions.unite; # added 2021-01-19
6974 arc-menu = gnomeExtensions.arcmenu; # added 2021-02-14
7075
7176 nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks.";
7277 mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md";
7378 remove-dropdown-arrows = throw "gnomeExtensions.remove-dropdown-arrows removed since 2021-05-25: The extensions has not seen an update sine GNOME 3.34. Furthermore, the functionality it provides is obsolete as of GNOME 40.";
74− }
75− );
79+ })
80+ # Make the set "public"
81+ lib.recurseIntoAttrs
82+ ];
7683}
pkgs/desktops/gnome/extensions/extensionOverrides.nixnew file+32
@@ -0,0 +1,32 @@
1+{
2+ lib,
3+ ddcutil,
4+ gjs,
5+}:
6+# A set of overrides for automatically packaged extensions that require some small fixes.
7+# The input must be an attribute set with the extensions' UUIDs as keys and the extension
8+# derivations as values. Output is the same, but with patches applied.
9+#
10+# Note that all source patches refer to the built extension as published on extensions.gnome.org, and not
11+# the upstream repository's sources.
12+super: super // {
13+
14+ "display-brightness-ddcutil@themightydeity.github.com" = super."display-brightness-ddcutil@themightydeity.github.com".overrideAttrs (old: {
15+ # Has a hard-coded path to a run-time dependency
16+ # https://github.com/NixOS/nixpkgs/issues/136111
17+ postPatch = ''
18+ substituteInPlace "extension.js" --replace "/usr/bin/ddcutil" "${ddcutil}/bin/ddcutil"
19+ '';
20+ });
21+
22+ "gnome-shell-screenshot@ttll.de" = super."gnome-shell-screenshot@ttll.de".overrideAttrs (old: {
23+ # Requires gjs
24+ # https://github.com/NixOS/nixpkgs/issues/136112
25+ postPatch = ''
26+ for file in *.js; do
27+ substituteInPlace $file --replace "gjs" "${gjs}/bin/gjs"
28+ done
29+ '';
30+ });
31+
32+}
pkgs/desktops/gnome/extensions/tilingnome/default.nix+1−1
@@ -1,7 +1,7 @@
11{ stdenv, lib, fetchFromGitHub, glib, gnome }:
22
33stdenv.mkDerivation rec {
4− pname = "gnome-shell-extension-tilingnome-unstable";
4+ pname = "gnome-shell-extension-tilingnome";
55 version = "unstable-2019-09-19";
66
77 src = fetchFromGitHub {