Skip to content

Commit

Permalink
Merge pull request #137131 from piegamesde/gnome-extensions
Browse files Browse the repository at this point in the history
gnomeExtensions: add patch framework and fix extensions
  • Loading branch information
maralorn authored Sep 30, 2021
2 parents 9208069 + 49041cd commit 786b429
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 10 deletions.
7 changes: 5 additions & 2 deletions pkgs/desktops/gnome/extensions/buildGnomeExtension.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
21 changes: 14 additions & 7 deletions pkgs/desktops/gnome/extensions/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
];
}
32 changes: 32 additions & 0 deletions pkgs/desktops/gnome/extensions/extensionOverrides.nix
Original file line number Diff line number Diff line change
@@ -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
'';
});

}
2 changes: 1 addition & 1 deletion pkgs/desktops/gnome/extensions/tilingnome/default.nix
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down

0 comments on commit 786b429

Please sign in to comment.