diff options
author | maralorn <malte.brandy@maralorn.de> | 2021-09-30 23:22:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-30 23:22:11 +0200 |
commit | 786b429ace50ce4c65c42646a57d9ff1589ba76f (patch) | |
tree | 1cc0587521184143a9789d18cd6eea73867291c0 /pkgs/desktops | |
parent | 920806938b5b9cad0781ad70326af8df016f7d55 (diff) | |
parent | 49041cd82eeae4d8413c79a10e46d8a1d9e8c083 (diff) | |
download | nixpkgs-786b429ace50ce4c65c42646a57d9ff1589ba76f.tar nixpkgs-786b429ace50ce4c65c42646a57d9ff1589ba76f.tar.gz nixpkgs-786b429ace50ce4c65c42646a57d9ff1589ba76f.tar.bz2 nixpkgs-786b429ace50ce4c65c42646a57d9ff1589ba76f.tar.lz nixpkgs-786b429ace50ce4c65c42646a57d9ff1589ba76f.tar.xz nixpkgs-786b429ace50ce4c65c42646a57d9ff1589ba76f.tar.zst nixpkgs-786b429ace50ce4c65c42646a57d9ff1589ba76f.zip |
Merge pull request #137131 from piegamesde/gnome-extensions
gnomeExtensions: add patch framework and fix extensions
Diffstat (limited to 'pkgs/desktops')
4 files changed, 52 insertions, 10 deletions
diff --git a/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix b/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix index 3be7f5c8789..d661c853bbc 100644 --- a/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix +++ b/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix @@ -36,9 +36,12 @@ let echo "${metadata}" | base64 --decode > $out/metadata.json ''; }; - buildCommand = '' + dontBuild = true; + installPhase = '' + runHook preInstall mkdir -p $out/share/gnome-shell/extensions/ - cp -r -T $src $out/share/gnome-shell/extensions/${uuid} + cp -r -T . $out/share/gnome-shell/extensions/${uuid} + runHook postInstall ''; meta = { description = builtins.head (lib.splitString "\n" description); diff --git a/pkgs/desktops/gnome/extensions/default.nix b/pkgs/desktops/gnome/extensions/default.nix index f98e2fb4e67..2937cf6ac79 100644 --- a/pkgs/desktops/gnome/extensions/default.nix +++ b/pkgs/desktops/gnome/extensions/default.nix @@ -60,17 +60,24 @@ in rec { gnome38Extensions = mapUuidNames (produceExtensionsList "38"); gnome40Extensions = mapUuidNames (produceExtensionsList "40"); - gnomeExtensions = lib.recurseIntoAttrs ( - (mapReadableNames - (lib.attrValues (gnome40Extensions // (callPackages ./manuallyPackaged.nix {}))) - ) - // lib.optionalAttrs (config.allowAliases or true) { + gnomeExtensions = lib.trivial.pipe gnome40Extensions [ + # Apply some custom patches for automatically packaged extensions + (callPackage ./extensionOverrides.nix {}) + # Add all manually packaged extensions + (extensions: extensions // (callPackages ./manuallyPackaged.nix {})) + # Map the extension UUIDs to readable names + (lib.attrValues) + (mapReadableNames) + # Add some aliases + (extensions: extensions // lib.optionalAttrs (config.allowAliases or true) { unite-shell = gnomeExtensions.unite; # added 2021-01-19 arc-menu = gnomeExtensions.arcmenu; # added 2021-02-14 nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks."; mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md"; 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."; - } - ); + }) + # Make the set "public" + lib.recurseIntoAttrs + ]; } diff --git a/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/pkgs/desktops/gnome/extensions/extensionOverrides.nix new file mode 100644 index 00000000000..182bdf6ecdf --- /dev/null +++ b/pkgs/desktops/gnome/extensions/extensionOverrides.nix @@ -0,0 +1,32 @@ +{ + lib, + ddcutil, + gjs, +}: +# 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: super // { + + "display-brightness-ddcutil@themightydeity.github.com" = super."display-brightness-ddcutil@themightydeity.github.com".overrideAttrs (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" + ''; + }); + + "gnome-shell-screenshot@ttll.de" = super."gnome-shell-screenshot@ttll.de".overrideAttrs (old: { + # Requires gjs + # https://github.com/NixOS/nixpkgs/issues/136112 + postPatch = '' + for file in *.js; do + substituteInPlace $file --replace "gjs" "${gjs}/bin/gjs" + done + ''; + }); + +} diff --git a/pkgs/desktops/gnome/extensions/tilingnome/default.nix b/pkgs/desktops/gnome/extensions/tilingnome/default.nix index 42c6467dba8..fbf89ffa19c 100644 --- a/pkgs/desktops/gnome/extensions/tilingnome/default.nix +++ b/pkgs/desktops/gnome/extensions/tilingnome/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchFromGitHub, glib, gnome }: stdenv.mkDerivation rec { - pname = "gnome-shell-extension-tilingnome-unstable"; + pname = "gnome-shell-extension-tilingnome"; version = "unstable-2019-09-19"; src = fetchFromGitHub { |